Repository navigation
Description
Finding
Evidence (live review 2026-10-26 ~22:40 CDT, laptop loopback + gh, cross-checked): /sessions lists 219 registry records and /attention lists live sessions, all read-only. When a session is stopped-for-question or stalled, Drew's dashboard offers no poke/answer/stop - the keeper and orchestrator do this from cron, and Drew watches. Session coverage also differs per page (footer says 61 feed records; page header counts 219 merged) - actions must target the merged identity, not whichever list Drew is looking at.
Proposal
Session row actions (poke = nudge via the owning server, answer = deliver text, stop = terminate) implemented as dashboard action records consumed by the keeper/orchestrator (which own the live servers), with results reported back onto the session row. Start with poke + answer; stop behind a confirm. All actions attributed + logged.
Acceptance
- Poke and answer round-trip on a real sandbox OpenCode session with visible effect + audit record.
- Actions unavailable (with reason) for sources that can't support them (e.g. Jules - keeper-mediated note instead).
Refs: impl(dashboard): slice 3 — pluggable pages (DNS register first), comments everywhere, agent/session identity registry #906 (registry), impl(orchestrator): recurring orchestration job — queue triage, priority ladder, blocker awareness, goal measurement #899.
Acceptance criteria
- Poke and answer round-trip on a real sandbox OpenCode session with visible effect + audit record — restating the body's Acceptance section as the criteria section.
- Actions are unavailable (with reason) for sources that can't support them (e.g. Jules — keeper-mediated note instead).
- Actions target the merged session identity (not whichever list the viewer is on); stop sits behind a confirm; all actions are attributed + logged.
Activity
developing-today commentedon Oct 27, 2026
CODE-292
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 (status, 2026-10-27): aggregator half SHIPPED (PR #1346 merge 2cc9324; deployed live). /sessions rows (live records only, merged registry identity) and /attention session cards carry poke / answer / stop: OpenCode sources get the full set; Jules renders answer enabled with poke/stop disabled ('keeper-mediated — answer only'); Muse renders all disabled ('no live control channel'); stop is behind a two-step confirm. Consumers assigned per (kind, source) and live in the job definitions (byte-verified insertions): orchestration-pass takes OpenCode session actions; the jules-review keeper gained a DASHBOARD SESSION ACTIONS — JULES step that polls kind=session&state=new, delivers answer text via :sendMessage under its step-3 rules, and posts results back.
REMAINDER (why this stays open): the acceptance asks for a poke/answer round-trip on a real sandbox OpenCode session — the sandbox OpenCode server is intentionally OFF by Drew's standing order, and no live session was perturbed for a test. The first real dashboard session action on a live (e.g. laptop/OpenCode) session will exercise the path; the store + badges already render its pending/applied state. Reopen-check: post a poke from /sessions on a live session and watch /api/actions.json transition.
dezren39 commentedon Oct 27, 2026
Agent note — observation still pending (not closing). Status of the live session round-trip observation: the session-action routing changed under this issue on 2026-10-27 — the sandbox OpenCode server is retired (the orchestration-pass body now rejects
opencode-sandboxsession actions with that note), and session actions route to the laptop server via the attach pattern (#1344). A live poke/answer/stop round-trip through the dashboard actions path has NOT yet been observed by an agent note here, so the observation closure remains open. The store + consumer plumbing is the same one proven live for triage/status-request (#1154, closed with its observation) and for the delegate loop (#1292).9 remaining items
dezren39 commentedon Nov 1, 2026
agent-note:v1 — picked up (queue task 4890, OpenChamber scheduled lane)
Revalidating the deployed laptop dashboard + live OpenCode route for the scoped poke/answer round-trip. I will only send an action to a verified suitable live session; no code changes unless the observation identifies an in-scope routing failure.
dezren39 commentedon Nov 1, 2026
agent-note:v1 — escalated (queue task 4890, OpenChamber scheduled lane)
The deployed dashboard and session-action controls are live; the actions queue had no pending items. I found no source-designated live test/demo session. The orchestration consumer may pick up queued actions later, so I did not submit a production poke or answer to an arbitrary session or unknown question.
@dezren39 please provide a disposable opencode-laptop test session and the exact safe answer text, or explicitly authorize a specific existing session and answer text. Once supplied, I can run the dashboard round-trip and post the action IDs, consumer run ID, and before/after evidence. No code changes; #1156 remains open.