be: catalog snapshot collector + GET /roster/assistant/catalog #1211
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/agent-hooks#1211
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Part of the Agents Roster AI Assistant feature. The assistant must only propose skills/MCPs that exist in the current deployment, and must clearly flag any MCP requiring additional setup. To do that, the model call needs a catalog snapshot of what's actually installed.
This ticket is the catalog producer: it enumerates the world the assistant is allowed to draw from, hashes it, and exposes it both as a standalone endpoint (FE can display "you'd need to add MCP X") and as the input to the prompt builder.
Scope
Collector
A service-side function
collectCatalog(): CatalogSnapshotthat enumerates:setup_required: true)Output matches
CatalogSnapshotfrom #1210. Thehashfield is a stable digest of the snapshot contents — used to detect drift mid-session.Endpoint
GET /roster/assistant/catalogreturns the currentCatalogSnapshot. No auth beyond whatever the rest of the roster API already enforces.Caching
Snapshot is memoized in-process. Invalidated when:
Deliverables
collectCatalog()implementation + unit tests with fixture registriesGET /roster/assistant/catalogroute + integration testcatalog_hashis stable across calls when nothing changed, and changes when anything doesNotes for implementer
Don't reinvent registry access — find where skills and MCPs are already enumerated for the existing roster page and reuse those code paths.
Depends on: #1210 (uses
CatalogSnapshottype)Blocks: assistant prompt ticket (needs catalog input)
🤖 Auto-assigned to code-lead (heuristic: area:agents → code-lead (architecture-touching)). Reply
/unassignto reroute.🦵 @charles kicked the queue — re-running implement on @code-lead.