You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Drew's requirement: "I need to be able to remediate or respond to issues that need my attention, doing basic triage work" - from the dashboard. Today the ONLY write the dashboard supports is comments (POST /api/comments). On /attention Drew can read tiers and open a discuss page, but cannot: acknowledge an item, snooze it, move it between tiers, or answer a waiting session's question in place. Every response means leaving the dashboard.
Proposal
Dashboard actions modeled on the comments write pattern (dashboard-local store + orchestrator consumption, so the orchestrator remains the single writer of Project/GitHub state): per tier item - Acknowledge (records Drew saw it; item drops from NEEDS DREW until new signal), Snooze (until a chosen horizon), Escalate/De-escalate (tier override with reason), Answer (for stopped-for-question sessions: free-text answer the orchestrator delivers like it does for its own classifications). Each action is an attributed record (author drew, timestamp, item ref) the orchestrator polls and applies/reports.
Acceptance
Each action round-trips: taken on the dashboard -> consumed by an orchestration pass -> visible state change on /attention, with the action log inspectable via API.
Agent note (pickup, 2026-10-27): building this now on branch pm/triage-write-path — the actions store (src/actions.ts, mirroring src/comments.ts), the three endpoints, and the card controls land together with #1152/#1154/#1156 as one slice of epic #1184, plus the orchestration-pass (+ keeper, for Jules session actions) consumer steps. Verb names align with the needs-user actions addendum from the start (answer/delegate/dismiss included in the enum; proposal verbs reserved for #1290–#1293).
Agent note (completion, 2026-10-27): SHIPPED and live-verified. PR #1346 (merge 2cc9324) + treefmt follow-up PR #1350 (f9c9ffd); deployed to the laptop aggregator (install.sh + explicit service restart; .opencode configs preserved byte-for-byte).
What landed: src/actions.ts store (comments-pattern: PM_AGG_ACTIONS_FILE, atomic writes, clientToken dedupe, consume-once results, supersede-undo, records never deleted), POST /api/actions + GET /api/actions.json + POST /api/actions/result, and the /attention controls — acknowledge / snooze (presets + custom) / escalate / de-escalate on tier cards, pending/applied/rejected badges from the store, a visible 'Snoozed by you' strip with unsnooze, and section-item controls disabled with the reason whenever the tier source is not live (session-derived stay enabled). Verb set aligned with the needs-user addendum (answer carries text/optionId/answers[]; delegate/dismiss in the enum; dismiss requires a reason at the boundary; proposal verbs reserved for #1290-#1293).
Consumer: the orchestration-pass job definition gained a DASHBOARD ACTIONS step (verified byte-identical to pre-edit + the single insertion). Live round-trip: test acknowledge da-mvqdfu1m-11lms9 on gh:#812 (a current NEEDS DREW item) posted via the endpoint, sat state=new, then a triggered pass (run orch-2026-10-27T07:36:37Z) applied it with the note 'recorded against #812 in orchestrator-state.json; its NEEDS DREW tier entry notes the ack' — and /attention now renders the ✓ acknowledged badge on the card. Closing.
Activity
developing-today commentedon Oct 27, 2026
CODE-288
dezren39 commentedon Oct 27, 2026
Agent note (pickup, 2026-10-27): building this now on branch
pm/triage-write-path— the actions store (src/actions.ts, mirroringsrc/comments.ts), the three endpoints, and the card controls land together with #1152/#1154/#1156 as one slice of epic #1184, plus the orchestration-pass (+ keeper, for Jules session actions) consumer steps. Verb names align with the needs-user actions addendum from the start (answer/delegate/dismiss included in the enum; proposal verbs reserved for #1290–#1293).pm-stack aggregator: dashboard actions store + triage write path UI (#…
Merge pull request #1346 from developing-today/pm/triage-write-path
dezren39 commentedon Oct 27, 2026
Agent note (completion, 2026-10-27): SHIPPED and live-verified. PR #1346 (merge 2cc9324) + treefmt follow-up PR #1350 (f9c9ffd); deployed to the laptop aggregator (install.sh + explicit service restart; .opencode configs preserved byte-for-byte).
What landed: src/actions.ts store (comments-pattern: PM_AGG_ACTIONS_FILE, atomic writes, clientToken dedupe, consume-once results, supersede-undo, records never deleted), POST /api/actions + GET /api/actions.json + POST /api/actions/result, and the /attention controls — acknowledge / snooze (presets + custom) / escalate / de-escalate on tier cards, pending/applied/rejected badges from the store, a visible 'Snoozed by you' strip with unsnooze, and section-item controls disabled with the reason whenever the tier source is not live (session-derived stay enabled). Verb set aligned with the needs-user addendum (answer carries text/optionId/answers[]; delegate/dismiss in the enum; dismiss requires a reason at the boundary; proposal verbs reserved for #1290-#1293).
Consumer: the orchestration-pass job definition gained a DASHBOARD ACTIONS step (verified byte-identical to pre-edit + the single insertion). Live round-trip: test acknowledge da-mvqdfu1m-11lms9 on gh:#812 (a current NEEDS DREW item) posted via the endpoint, sat state=new, then a triggered pass (run orch-2026-10-27T07:36:37Z) applied it with the note 'recorded against #812 in orchestrator-state.json; its NEEDS DREW tier entry notes the ack' — and /attention now renders the ✓ acknowledged badge on the card. Closing.
fix(aggregator): disposition Codex findings on watchdog tier items (#…
fix(aggregator): disposition Codex round-2 findings on watchdog items (…