Skip to content

design+impl(aggregator): triage actions on /attention - acknowledge, snooze, escalate, answer - orchestrator-mediated #1152

Closed

Description

@dezren39

Finding

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

Activity

  1. added
    kind/featureNew feature or capability request
    app/pm-stackpm-stack (Pad/Grist) in developing-today/code
    on Oct 27, 2026
  2. developing-today commented on Oct 27, 2026

    @developing-today
    Contributor
  3. dezren39 commented on Oct 27, 2026

    @dezren39
    MemberAuthor

    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).

  4. added a commit that references this issue on Oct 27, 2026
  5. dezren39 commented on Oct 27, 2026

    @dezren39
    MemberAuthor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

app/pm-stackpm-stack (Pad/Grist) in developing-today/codekind/featureNew feature or capability requeststatus:done

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions