Skip to content

fix(dashboard): drop unfiltered /api/storyboards fallback (closes #4254)#4369

Merged
bokelley merged 1 commit into
mainfrom
bokelley/dashboard-filter-applicable-storyboards
May 11, 2026
Merged

fix(dashboard): drop unfiltered /api/storyboards fallback (closes #4254)#4369
bokelley merged 1 commit into
mainfrom
bokelley/dashboard-filter-applicable-storyboards

Conversation

@bokelley
Copy link
Copy Markdown
Contributor

Summary

Closes #4254. The dashboard's storyboard picker was falling back to the unfiltered full catalog when applicable-storyboards returned a generic error, defeating the per-agent filter.

The bug

The dashboard renders the storyboard picker by calling /api/registry/agents/:url/applicable-storyboards, which uses resolveStoryboardsForCapabilities to filter to (universal baseline + protocol baseline + declared specialisms). That endpoint works correctly.

But when it returned anything other than 2xx / OAuth-challenge / needs-auth / unknown-specialism (e.g. capabilities probe failed for a different reason), the dashboard fell back to /api/storyboards — the unfiltered, registry-wide catalog. So a signals-only agent rendered pagination-creative-formats, get-media-buys-pagination-integrity, collection-lists-pagination-integrity, and the rest. The issue report's "20+ storyboards including pagination-integrity (list_creatives)" is exactly this code path firing.

Fix

Drop the fallback. Keep the error message; suffix it with the underlying contract pointer (get_adcp_capabilities must return supported_protocols and specialisms before applicable storyboards can be computed). OAuth, needs-auth, and unknown-specialism error paths unchanged — those still surface their respective actionable UIs (authorize button / connect form / specialism list).

Test plan

  • Owner dashboard on an agent whose capabilities probe succeeds → renders filtered applicable list (current behavior, unchanged)
  • Owner dashboard on an agent that requires OAuth → renders Authorize button (unchanged)
  • Owner dashboard on an agent that requires saved auth → renders connect form (unchanged)
  • Owner dashboard on an agent that declared an unknown specialism → renders specialism error + known-specialisms list (unchanged)
  • Owner dashboard on an agent whose capabilities probe failed for a generic reason → renders the error message without falling back to the full catalog

Stack note

Part of Push A in the compliance reporting fidelity initiative (PR #4364 → this PR → docs-disambiguation PR → canonical-surface UI). Orthogonal to Emma's #4247 unification stack.

🤖 Generated with Claude Code

When /api/registry/agents/:url/applicable-storyboards returned a generic
error — capabilities probe failure for any reason other than the
recognized OAuth / needs-auth / unknown-specialism shapes — the dashboard
fell back to /api/storyboards (the FULL unfiltered storyboard catalog).
So a signals-only agent rendered pagination-creative-formats,
get-media-buys-pagination-integrity, collection-lists-pagination-
integrity, and the rest, even though none of those are applicable.

That's misleading: without the agent's declared protocols + specialisms,
we have no basis for showing any storyboard list. The applicable-
storyboards endpoint's own filter (via resolveStoryboardsForCapabilities)
is the only correct surface; falling back to the unfiltered catalog
defeats it.

Fix: remove the fallback. Keep the error message, suffix it with a
pointer to the underlying contract (get_adcp_capabilities must return
supported_protocols + specialisms before applicable storyboards can be
computed). OAuth / needs-auth / unknown-specialism error paths
unchanged — those still surface their respective actionable UIs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@bokelley bokelley merged commit 85ef480 into main May 11, 2026
13 checks passed
@bokelley bokelley deleted the bokelley/dashboard-filter-applicable-storyboards branch May 11, 2026 10:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Dashboard storyboard list not filtered by agent's declared capabilities

1 participant