Files
stack/docs/plans/2026-09-13_board-attention-status.md
T
jason.woltjeandClaude Opus 5.5 af4203ca92 feat(board): session attention, Discord rows, task attribution and relaunch activity (rows 18, 22, #1511, #1512)
One cumulative control-board, webui and seat state. The four rows edit the
same files (scan.mjs, page.html, README.md, app.js), so they land together,
each on its own receipt:

- Row 18, Discord connector rows on the board (#1509): R3 approved by
  Darkwing and Dewey, Gitea comment 26257, manifest 254403b8. Jason
  accepted the visual test.
- Row 22, board attention status (#1503): Filbert approved R1, comment
  26248, manifest e40b58ec; restart receipt 26249.
- #1511, task attribution (row 6 code phase): R2 approved by Filbert and
  Dewey, manifest d4c96395. docs/TOOLS.md carries the approved --by usage
  line (tools-usage.patch 86bcba3c).
- #1512, relaunch activity (row 6 pilot): R1 approved by Darkwing and
  Dewey, candidate manifest 47769fad. All seven source files match it.

Row 16, internal development bootstrap (#1510): the seven files outside
shared records match Filbert's R1 pins, receipt 26204 (agents/researcher/*,
scripts/test-darkwing-launch.mjs, the bootstrap plan).

packages/webui/src/public/app.js is committed at its #1512 R1 pin ce7d79a4.
The working copy holds Dewey's unreviewed return-flow candidate on top of
that, and it stays uncommitted.

Also: the four row briefs and Darkwing's evidence records under
agents/darkwing/work, including the 2026-09-26 tree manifest and the #1512
re-run against 21e3e908. Serial acceptance command: 397/397, three runs.
The failures that only show when tests run concurrently are in #1509 engine
tests, and they reproduce on clean HEAD.

Suites on the exact staged tree: config 24, task 90, foundation 43,
conductor 17, release 14, auth 15, discord 63; package union 397/397
(serial); test-darkwing-launch 5/5.

Shared records (BUILD-LOG, QUEUE, CURRENT, DEFERRED, SESSIONS, AGENTS.md,
agents/README.md) follow in Sage's records commit.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-26 14:54:18 -05:00

2.5 KiB

Board attention status correction

Jason accepted discovery/reply tests 1-4, then reported Researcher still showing waiting after its completed reply. He approved separating idle from explicit requests for human input. This is a #1503 acceptance defect, not new chat scope.

Darkwing authors; internal Filbert independently reviews. Baseline observed on refactor: d9745a4510. Preserve existing shared edits and Dewey's UI work. Source scope: control-board scanner, tests and README, AGENTS.md status guidance, the downstream packages/webui/tests/fixture.mjs waiting case and scoped tracking records. Dewey confirmed no overlapping ownership. No home-directory or fleet changes, agent restarts, new public JSON fields, approval/control authority, text classification service or unrelated UI changes.

Rule and evidence

Completed normal assistant replies are idle. A completed assistant reply requests human attention only when its first nonblank text line is exactly prefixed Input needed: followed by a nonempty request. This readable status convention is explicit, not a guess based on questions, sentiment, or turn completion. Quoted examples, user/tool messages and thinking blocks do not signal attention. Tool activity and errors retain their existing precedence. The latest message wins; a later ordinary completed reply clears the previous request.

The signal is advisory display state, never permission to perform an action. Agents use it only for Jason's decision/input, not a wait on another agent or a routine completion. Existing conversations without the signal become idle after normal completion. Earlier unstated human blockers cannot be inferred safely.

Seen acknowledges a specific waiting/error event. It hides that event from the attention list but does not resolve a genuine input request. New explicit requests reappear; ordinary completions do not. No change to existing API enum or fields.

Acceptance: reproduce BOARD_REPLY_OK incorrectly becoming waiting, test completed replies/explicit requests/quoted and stale markers/tool activity/errors/Seen, run scanner/server and relevant downstream regressions, and obtain exact-candidate independent review. Verify the corrected classification against Researcher's actual session without editing it. Running-board replacement and operator retest must be reported separately from source tests; no unattended service restart.

Before implementation: new attention tests reproduce two failures, including BOARD_REPLY_OK being classified as waiting. One precedence test already passes.