Skip to content

feat(mission): evidence chips on Done cards — test tallies, tsc & PR links (#425)#437

Merged
imran31415 merged 1 commit into
mainfrom
mission-evidence-chips
Jul 24, 2026
Merged

feat(mission): evidence chips on Done cards — test tallies, tsc & PR links (#425)#437
imran31415 merged 1 commit into
mainfrom
mission-evidence-chips

Conversation

@umi-appcoder

@umi-appcoder umi-appcoder Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

What & why

Evidence chips on Mission Control's Done cards (#425): a finished card now carries proof of what happened — test tallies, tsc errors, and PR links — so review starts from evidence without opening the session. This re-homes the "evidence chips" idea from the original proposal onto Done, after #435 folded the "Needs review" column away.

Extraction is fully deterministic — regex over the same bounded ANSI-stripped output tail the headline already reads; no LLM pass (by design). Covered signals:

  • Test tallies for vitest, jest/helm-unittest, pytest, and Python unittest (Ran N tests + OK/FAILED(failures=…)). Last occurrence per runner wins, so a red run that was re-run green reports green.
  • tsc errors (error TSxxxx: count) — failure-only, since a clean tsc is silent.
  • PR links (github.com/…/pull/N), deduped, capped at 2, rendered as neutral link chips.

The tail is now read once per card and shared between headline + evidence. Chips ride the queue and drawer payloads (evidence is always present; empty for live cards and chats), and render on the web board card, the detail drawer, and the mobile card row. Also retired the leftover review states from the shoot-mission* screenshot fixtures.

Mission board with evidence chips — desktop dark

Testing

  • server.py suite — 1271 passed (6 new: chip extraction ok/fail/last-tally-wins, unittest FAILED parsing, empty evidence on live cards & chats)
  • dashboard SPA tsc + vite build + vitest — 450 passed (new chip-rendering test)
  • mobile tsc --noEmit + vitest — 40 passed
  • helm + bash -n start.sh — unchanged surfaces, green
  • Screenshot above captured via scripts/shoot-mission.mjs against the real SPA

🤖 Generated with Claude Code

…inks (#425)

A finished card now carries proof of what happened without opening the
session: deterministic regex extraction over the same bounded output
tail the headline reads — no LLM pass. Chips cover vitest/jest/pytest/
unittest tallies (last occurrence per runner wins, so a red run re-run
green reports green), tsc error counts, and up to two PR links.

- server.py: _mc_evidence_from_log + evidence field on queue/drawer
  cards (always present; empty for live cards and chats). The tail is
  now read once per card and shared with the headline.
- web: EvidenceChips component on board card + drawer, chip styles
- mobile: chips on the MissionControlScreen card row
- shoot-mission fixtures: retired the leftover 'review' states from
  #435 and added evidence to the mocked cards

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@imran31415
imran31415 merged commit 7a2540d into main Jul 24, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant