fe: proposal preview, per-agent edit, diff-vs-previous, accept-to-roster #1215
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
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/agent-hooks#1215
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 sidebar (#1213) ships the chat and renders raw JSON. This ticket replaces that debug view with the real structured preview, makes every field editable in place, shows a diff against the previous proposal on refinements, and wires the Accept handlers that write the chosen agents into the roster.
Scope
Per-agent card
For each
ProposedAgentin the envelope, render a card with editable fields:model_tier_reasonshown beneathsetup_required: trueshow a "setup needed" badge linking to docs)Editing a card mutates a local draft copy — the original proposal stays intact in case the operator wants to refine again.
Fleet-level summary
Render
ProposalEnvelope.summaryabove the cards as a short narrative of how the agents work together.Selection
Diff vs previous proposal
parent_proposal_idis set, fetch the previous envelope from local session state and compute a card-by-card diffAccept handler
Catalog drift guard
envelope.catalog_hashto current catalog (cheap refetch on accept)Deliverables
Notes for implementer
Reuse the existing manual-agent-editor field components wherever possible. Two divergent editors for the same data shape will rot fast — make the assistant preview a wrapper around the same primitives.
Depends on: #1210 (types), #1213 (sidebar host)
Depended on by: nothing — leaf on the FE side
🤖 Auto-assigned to code-lead (heuristic: area:dashboard + body 3349 bytes (> 2 KB) — code-lead (heavy)). Reply
/unassignto reroute.