diff --git a/BUILD-LOG.md b/BUILD-LOG.md index b1430424..a4108995 100644 --- a/BUILD-LOG.md +++ b/BUILD-LOG.md @@ -2012,3 +2012,16 @@ change, one static test (control-board 65/65, registry 69/69). Sonnet review: APPROVED, one FYI (the default-on test would still pass without the persistence guard), fixed by tightening the regex. Verified in Chrome against Jason's real marks. Next: Jason keeps using it. + +## 2026-09-12 — Control board step 3, fourth refinement (#1503) + +Before: the project header showed the full count ("fleet (38)") above a +table that only showed 13 rows; the only explanation was the note at the +bottom. + +After: the header reads "fleet (13 of 38)" while Hide offline or Hide seen +hides at least one row, and "fleet (38)" when nothing is hidden. The note +under the table is unchanged. Page-only change, one static test +(control-board 66/66, packages/mosaic 69/69). Sonnet review: +APPROVED, no findings. Verified in Chrome: "1 of 4", "3 of 4", "4", "13 of 38", +console clean. Next: Jason keeps using it. diff --git a/docs/SESSIONS.md b/docs/SESSIONS.md index fdf5b449..6246ee00 100644 --- a/docs/SESSIONS.md +++ b/docs/SESSIONS.md @@ -217,3 +217,4 @@ are never rewritten or removed; corrections are new entries. - 2026-09-12 — jarvis (Claude Code, coordinator) — Control board step 3, first refinement (#1503): Jason reported killed pi sessions still "waiting" and most waiting rows being completion reports. Liveness now requires a tmux pane running pi; "Seen" marks (seen.json, POST /api/seen, Seen/Unsee on the page) drop read rows out of "Waiting on you" until the agent writes again. Tests 63/63 (30 new by sonnet helper), registry 69/69; sonnet review APPROVED (README command fixed). Receipt docs/plans/reviews/2026-09-12_control-board-step3-seen-marks.md. - 2026-09-12 — jarvis (Claude Code, coordinator) — Control board step 3, second refinement (#1503): Jason asked for a way to recall Seen rows; added a collapsed "Seen (N)" section with Unsee per row. Page-only change plus one static test (64/64); sonnet review APPROVED; live check in Chrome against Jason's two real marks. - 2026-09-12 — jarvis (Claude Code, coordinator) — Control board step 3, third refinement (#1503): Jason suggested a per-project "Hide seen" checkbox beside "Hide offline"; added, on by default, with a combined hidden-count note. Page-only change plus one static test (65/65); sonnet review APPROVED (one test-rigor FYI fixed); live check in Chrome. +- 2026-09-12 — jarvis (Claude Code, coordinator) — Control board step 3, fourth refinement (#1503): Jason asked for "N of N" in the project header; now "shown of total" while a checkbox hides rows, plain total otherwise. Page-only change plus one static test (66/66); sonnet review APPROVED (no findings); live check in Chrome at all four edges. diff --git a/docs/plans/2026-09-12_control-board-mvp.md b/docs/plans/2026-09-12_control-board-mvp.md index d8799ae4..ae9b080e 100644 --- a/docs/plans/2026-09-12_control-board-mvp.md +++ b/docs/plans/2026-09-12_control-board-mvp.md @@ -144,3 +144,9 @@ closed across refreshes. "Hide offline" so seen rows stop cluttering the fleet table now that the Seen section exists. Each project header has both boxes, on by default, and the note under the table reads "N offline hidden · N seen hidden". + +**2026-09-12 — Header count "N of N".** Jason pointed out that "fleet (38)" +sat above a table showing 13 rows. The header now reads "fleet (13 of 38)" +while a checkbox hides something and falls back to "fleet (38)" when nothing +is hidden. The note under the table stays: the header says how many, the +note says why. One static test. diff --git a/packages/control-board/README.md b/packages/control-board/README.md index 06af35fb..5dffa271 100644 --- a/packages/control-board/README.md +++ b/packages/control-board/README.md @@ -98,7 +98,9 @@ no longer matches, and the row falls back into "Waiting on you" on its own. Marked rows are listed under a collapsed "Seen (N)" section on the page, each with an "Unsee" button, so nothing marked is ever out of reach. Each project table has "Hide offline" and "Hide seen" checkboxes (both on by -default) with a note saying how many rows each one hides. +default) with a note saying how many rows each one hides. While a box hides +something the project header reads "N of N" (shown of total); otherwise it +shows the plain total. If `seen.json` exists but is not valid JSON (or not an object of string values), the scan refuses rather than silently dropping every mark. diff --git a/packages/control-board/src/page.html b/packages/control-board/src/page.html index e76d7f30..e2d54404 100644 --- a/packages/control-board/src/page.html +++ b/packages/control-board/src/page.html @@ -295,9 +295,10 @@ if (offlineHidden > 0) noteParts.push(offlineHidden + " offline hidden"); if (seenHidden > 0) noteParts.push(seenHidden + " seen hidden"); var note = noteParts.length > 0 ? '
' + noteParts.join(" \u00b7 ") + "
" : ""; + var headCount = visible.length < group.length ? visible.length + " of " + group.length : String(group.length); return ( '