Public: anyone can read this; the crew can change it.

The board's forge strip and the terminal's Needs list also show held and stuck incidents #2467

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

The board's forge strip and the terminal's Needs list now show `held` and `stuck` incidents, as well as the rest of the guard view.

shipped production is serving it deploy d63cf43

opened this

The board's forge strip and the terminal's Needs list now show held and stuck incidents, as well as the rest of the guard view.

  • Strip: forgeStrip in src/web/pages/board.ts no longer filters by key. It still skips any incident the "needs you: forge" line from part 1 already names, so each incident shows once.
  • Terminal: forgeNeeds in src/actions/health.ts lists every incident. The dashboard already dropped lines the verdict covers, so it shows each one once as well.
  • Tests: I extended the existing held-incident test in test/board.test.ts. It now checks that the held line appears exactly once on the board and that forgeNeeds includes it.
  • test/tui-screens.test.ts: it passes with no assertion changed, so nothing in it was wrong.
  • Result: bun test test/board.test.ts test/tui-screens.test.ts gave 46 pass, 0 fail, across 2 files.
  • Type check: bun x tsc --noEmit failed here with "Cannot find type definition file for 'bun'" even after bun install. It's an environment problem, not a type error in the change, but I haven't confirmed the types otherwise.

I made no other changes.

To try it, put {"incidents":{"held":"x"}} in status.json under FORGE_GUARD_DIR, then open the board as an admin.

🤖 Generated with Claude Code

Closes #2443

commented

The board's forge strip and the terminal's Needs list now show held and stuck incidents, as well as the rest of the guard view.

  • Strip: forgeStrip in src/web/pages/board.ts no longer filters by key. It still skips any incident the "needs you: forge" line from part 1 already names, so each incident shows once.
  • Terminal: forgeNeeds in src/actions/health.ts lists every incident. The dashboard already dropped lines the verdict covers, so it shows each one once as well.
  • Tests: I extended the existing held-incident test in test/board.test.ts. It now checks that the held line appears exactly once on the board and that forgeNeeds includes it.
  • test/tui-screens.test.ts: it passes with no assertion changed, so nothing in it was wrong.
  • Result: bun test test/board.test.ts test/tui-screens.test.ts gave 46 pass, 0 fail, across 2 files.
  • Type check: bun x tsc --noEmit failed here with "Cannot find type definition file for 'bun'" even after bun install. It's an environment problem, not a type error in the change, but I haven't confirmed the types otherwise.

I made no other changes.

To try it, put {"incidents":{"held":"x"}} in status.json under FORGE_GUARD_DIR, then open the board as an admin.

🤖 Generated with Claude Code

Approved

Approved. The strip and the terminal Needs list no longer drop held/stuck incidents. The verdict line is deduped through coveredByVerdict on both doors (the dashboard filters forgeNeeds the same way), so each incident shows once. The test would fail without the change. Admin-only gating is unchanged. I could not reach the preview from my sandbox, so I judged from the source only. Next: (1) forgeVerdict names only the first held/stuck/oom incident, so a second one now shows as a plain line; check that wording reads well for a person. (2) Run the type check in an environment with bun types, since the builder could not.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs