be: POST /roster/assistant/propose endpoint + in-memory session store #1212
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#1212
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 FE sidebar sends user messages and receives structured
ProposalEnvelopes. This ticket is the HTTP surface and the session lifecycle — the actual Claude call and prompt assembly live in a separate ticket so this can land in parallel with the prompt work.Scope
Endpoint
POST /roster/assistant/proposeRequest:
Response:
ProposalEnvelope(from #1210)Session store
In-memory map keyed by
session_id. Holds:refinements_usedcountercatalog_hashshown to the modelGC policy: drop sessions idle > 1 hour. No persistence in v1.
Rate limiting
soft_cap_exceeded: trueflag in the envelope so FE can warn.Error handling
messagelength (reject > 4000 chars with 400)session_idnot found, return 404 (FE should drop the id and start fresh)Deliverables
buildAndCallProposer(history, catalog)injection point — that's a separate ticket's responsibilityNotes for implementer
The Claude call is NOT in scope for this ticket. Mock the prompt-builder behind a function interface so tests can run without a real model call, and so the prompt ticket can be landed in parallel.
Depends on: #1210 (proposal types)
Depended on by: assistant prompt ticket, FE sidebar ticket
🤖 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.