docs(handoff): record scrub-bar notches; B's next step is notch labels

Post-v0.21.4 carve-out: fe68861 ships quarter-mark notches on the
scrub bar. Update Since-cut log, visual-identity bullet, B option
in the Resume menu, status (1228 → 1232 tests), and HEAD hint.

Next finite step on B-2: percentage labels under each notch —
forces banner height to grow from 60 px to ~76 px, making it the
first real layout change in the screen-takeover arc.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
funman300
2026-05-08 15:44:05 -07:00
parent fe68861e10
commit c9e4c0b4cd
+46 -23
View File
@@ -35,9 +35,10 @@ resume.
- **`artwork/` directory:** still untracked. Intentional. - **`artwork/` directory:** still untracked. Intentional.
- **Build:** `cargo clippy --workspace --all-targets -- -D warnings` - **Build:** `cargo clippy --workspace --all-targets -- -D warnings`
clean. clean.
- **Tests:** **1228 passing / 0 failing** across the workspace - **Tests:** **1232 passing / 0 failing** across the workspace
(net +21 from v0.21.3's 1207 baseline). Detail in (1228 in v0.21.4 + 4 from `fe68861`'s scrub-notch tests).
`CHANGELOG.md` § [0.21.4] § Stats. Detail in `CHANGELOG.md` § [0.21.4] § Stats; post-cut delta
tracked here.
- **Tags on origin:** `v0.9.0` through `v0.21.4`. v0.21.4 is on - **Tags on origin:** `v0.9.0` through `v0.21.4`. v0.21.4 is on
`23ff62c`; v0.21.3 stays on `3d92a91`; v0.21.2 stays on `23ff62c`; v0.21.3 stays on `3d92a91`; v0.21.2 stays on
`f23df3b`; v0.21.1 stays on `daa655a`; v0.21.0 stays on `f23df3b`; v0.21.1 stays on `daa655a`; v0.21.0 stays on
@@ -49,9 +50,25 @@ resume.
## Since the v0.21.4 cut ## Since the v0.21.4 cut
No threads in flight. Working tree clean as of 2026-05-08. New - **`fe68861` — `feat(replay): add quarter-mark notches to scrub
work since the cut would land here as commit narratives; for bar`.** First finite step toward B-2's screen-takeover layout.
the v0.21.4 contents themselves, see `CHANGELOG.md` § [0.21.4]. Five 1px vertical ticks at 0/25/50/75/100 % give the player
visual anchor points without needing to mentally bisect the
bar. Pure helper `scrub_notch_positions()` returns the fixed
array; spawn loop lives next to the WIN MOVE marker spawn so
the lifecycles match. Notches paint in `BORDER_SUBTLE`
(matches unfilled-track colour) and rely on extending past the
1px track (5px tall, anchored 2px above track top) for
visibility — same trick the WIN MOVE marker uses. Spawned
*after* the WIN MOVE marker so a notch and the marker landing
on the same percentage paint the marker on top. Mirrors the
notch ladder in `docs/ui-mockups/replay-overlay-mobile.html`.
4 new tests; 1228 → 1232.
Next finite step on B-2: percentage labels (`0%`, `25%`, …)
under each notch — needs the banner height to grow from 60 px to
~76 px to accommodate ~10 px of label space, so it's a real
layout change rather than another decoration commit.
## Open punch list ## Open punch list
@@ -92,11 +109,15 @@ palette refresh all shipped in v0.20.0 + v0.21.0. What stays open:
shipped in v0.21.2 (`2fb2d63`). The WIN MOVE scrub-bar marker shipped in v0.21.2 (`2fb2d63`). The WIN MOVE scrub-bar marker
shipped post-v0.21.3 in `ab857bb` (data field) + `52befa6` shipped post-v0.21.3 in `ab857bb` (data field) + `52befa6`
(UI). Playback controls (pause / resume / step + Space (UI). Playback controls (pause / resume / step + Space
accelerator) shipped post-v0.21.3 in `fbe48ac`. What still accelerator) shipped post-v0.21.3 in `fbe48ac`. Quarter-mark
needs to land: a move-log scroller and a mini-tableau scrub notches (5 ticks at 0/25/50/75/100 %) shipped
preview — both screen-takeover-only pieces that need a post-v0.21.4 in `fe68861` — first decoration step toward the
larger layout reflow than the existing banner can carry. takeover layout. What still needs to land: percentage labels
Multi-session. under each notch (forces the banner to grow from 60 px to
~76 px so it's a real layout change), then a move-log scroller
and a mini-tableau preview — both screen-takeover-only pieces
that need a larger layout reflow than the existing banner can
carry. Multi-session.
- *Floating `MOVE N/M` chip above the focused card during - *Floating `MOVE N/M` chip above the focused card during
playback — closed 2026-05-08 by `2fb2d63`.* World-space playback — closed 2026-05-08 by `2fb2d63`.* World-space
`Text2d` entity sibling to the banner overlay; uses the same `Text2d` entity sibling to the banner overlay; uses the same
@@ -248,8 +269,10 @@ marker possible). v0.21.3 stays at 3d92a91, v0.21.2 at f23df3b,
v0.21.1 at daa655a, v0.21.0 at 04f9bf9. Working tree clean. See v0.21.1 at daa655a, v0.21.0 at 04f9bf9. Working tree clean. See
CHANGELOG.md § [0.21.4] for full detail. CHANGELOG.md § [0.21.4] for full detail.
State: HEAD locally — see `git rev-parse HEAD`. All workspace tests State: HEAD locally — see `git rev-parse HEAD`. Post-cut HEAD is
pass (1228+; check with `cargo test --workspace`), clippy clean. `fe68861` (one carved-out commit on top of v0.21.4 — scrub-bar
notches). All workspace tests pass (1232; check with
`cargo test --workspace`), clippy clean.
READ FIRST (in order, before doing anything): READ FIRST (in order, before doing anything):
1. SESSION_HANDOFF.md — this file 1. SESSION_HANDOFF.md — this file
@@ -277,16 +300,16 @@ DECISION TO ASK THE PLAYER FIRST:
work. Three sub-pieces shipped in v0.21.4: WIN MOVE work. Three sub-pieces shipped in v0.21.4: WIN MOVE
marker (data field + UI) and pause / step / Space marker (data field + UI) and pause / step / Space
playback controls. The smaller floating-MOVE-chip piece playback controls. The smaller floating-MOVE-chip piece
shipped in v0.21.2 (`2fb2d63`). What still needs to shipped in v0.21.2 (`2fb2d63`). Post-v0.21.4: quarter-
land: a move-log scroller and a mini-tableau preview — mark scrub notches shipped in `fe68861` (5 ticks at
both layout-heavy pieces that need more vertical real 0/25/50/75/100 %). The natural next finite step is
estate than the current banner-only overlay carries, so **percentage labels under each notch** — small but
the natural next finite step is the **screen-takeover forces the banner height to grow from 60 px to ~76 px,
layout itself** (mockup at making it the first real layout change in the arc.
`docs/ui-mockups/replay-overlay-mobile.html`). That's After that: move-log scroller and mini-tableau preview,
the single multi-session arc the remaining work groups both screen-takeover-only pieces that need more vertical
under — once the takeover layout lands, the scroller and real estate than the banner can carry. Mockup at
preview can each be small carved-out commits. `docs/ui-mockups/replay-overlay-mobile.html`.
C. Phase 8 (sync) — local storage scaffolding, self-hosted C. Phase 8 (sync) — local storage scaffolding, self-hosted
Axum server, `SolitaireServerClient` impl, GPGS stub Axum server, `SolitaireServerClient` impl, GPGS stub
wired into Settings. The biggest open arc by scope; rolls wired into Settings. The biggest open arc by scope; rolls