docs(handoff): record win_move_index data field; B's next finite step
Captures `ab857bb` (Replay::win_move_index data field) under "Since the v0.21.3 cut". Updates the Visual-identity follow-up entry for B-2 to flag the data-layer prerequisite as landed and identifies the WIN MOVE scrub-bar marker UI as the natural next finite commit. Bumps test count to 1212. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
+37
-16
@@ -21,15 +21,16 @@ resume.
|
||||
## Status at pause
|
||||
|
||||
- **HEAD locally:** see `git rev-parse HEAD`. The cut commit is
|
||||
`3d92a91`; any post-cut docs edits ride on top of that.
|
||||
`3d92a91`; the post-cut `Replay::win_move_index` data field
|
||||
(`ab857bb`) rides on top of that.
|
||||
- **HEAD on origin:** matches local. v0.21.3 is fully on origin.
|
||||
- **Working tree:** clean. No WIP outstanding.
|
||||
- **`artwork/` directory:** still untracked. Intentional.
|
||||
- **Build:** `cargo clippy --workspace --all-targets -- -D warnings`
|
||||
clean.
|
||||
- **Tests:** **1207 passing / 0 failing** across the workspace
|
||||
(net +12 from v0.21.2's 1195 baseline). Detail in
|
||||
`CHANGELOG.md` § [0.21.3] § Stats.
|
||||
- **Tests:** **1212 passing / 0 failing** across the workspace
|
||||
(1207 from v0.21.3's stats + 5 from `ab857bb`'s
|
||||
`win_move_index` coverage).
|
||||
- **Tags on origin:** `v0.9.0` through `v0.21.3`. v0.21.3 is on
|
||||
`3d92a91`; v0.21.2 stays on `f23df3b`; v0.21.1 stays on
|
||||
`daa655a`; v0.21.0 stays on `04f9bf9`; v0.20.0 stays on
|
||||
@@ -37,9 +38,21 @@ resume.
|
||||
|
||||
## Since the v0.21.3 cut
|
||||
|
||||
No threads in flight. Working tree clean as of 2026-05-08. New
|
||||
work since the cut would land here as commit narratives; for
|
||||
the v0.21.3 contents themselves, see `CHANGELOG.md` § [0.21.3].
|
||||
- **`ab857bb` — `Replay::win_move_index` data field landed.**
|
||||
First finite step toward the B-2 replay screen-takeover
|
||||
redesign. Additive optional `Option<usize>` on `Replay` with
|
||||
`#[serde(default)]` so older `latest_replay.json` /
|
||||
`replays.json` files load unchanged (no schema bump). Populated
|
||||
at the live recording site via a new `with_win_move_index`
|
||||
builder; for fresh recordings the value is always
|
||||
`Some(moves.len() - 1)` because recording freezes on win, but
|
||||
storing it explicitly lets the playback UI read the WIN MOVE
|
||||
position directly without re-deriving on every render. UI
|
||||
consumption (the WIN MOVE marker on the scrub bar, plus the
|
||||
broader screen-takeover work — move-log scroller, mini-tableau
|
||||
preview, playback controls) lands in subsequent commits. 5 new
|
||||
tests (1207 → 1212): default, builder set / set-None, on-disk
|
||||
round-trip, legacy-JSON-loads-with-None backward-compat.
|
||||
|
||||
## Open punch list
|
||||
|
||||
@@ -77,11 +90,14 @@ palette refresh all shipped in v0.20.0 + v0.21.0. What stays open:
|
||||
a WIN MOVE marker on the scrub bar. Banner-local pieces all
|
||||
shipped in v0.21.0 (`c84d9f4` + `6204db8` + `54005d5` +
|
||||
`e080b49`); the floating MOVE chip above the focused card
|
||||
shipped in v0.21.2 (`2fb2d63`). The screen-takeover is a
|
||||
multi-session redesign with data-layer impact — needs a new
|
||||
`win_move_index: Option<usize>` field on `Replay` (currently
|
||||
unimplemented), a move-log scroller, and a mini-tableau
|
||||
preview.
|
||||
shipped in v0.21.2 (`2fb2d63`). The data-layer prerequisite
|
||||
for the WIN MOVE marker — `Replay::win_move_index:
|
||||
Option<usize>` — landed post-v0.21.3 in `ab857bb` (additive
|
||||
serde-default field; populated at the recording site;
|
||||
exhaustively tested). What still needs to land for the
|
||||
screen-takeover: the WIN MOVE scrub-bar marker UI (consumes
|
||||
the new field), a move-log scroller, a mini-tableau preview,
|
||||
and playback controls. Multi-session.
|
||||
- *Floating `MOVE N/M` chip above the focused card during
|
||||
playback — closed 2026-05-08 by `2fb2d63`.* World-space
|
||||
`Text2d` entity sibling to the banner overlay; uses the same
|
||||
@@ -258,10 +274,15 @@ DECISION TO ASK THE PLAYER FIRST:
|
||||
and Android Keystore stubs that need real bridges. Larger
|
||||
scope; needs an Android device or emulator running.
|
||||
B. Replay-overlay screen-takeover redesign — multi-session
|
||||
work: move-log scroller, mini-tableau preview, WIN MOVE
|
||||
marker on the scrub bar (needs new `Replay::win_move_index`
|
||||
field), playback controls. The smaller floating-MOVE-chip
|
||||
piece of B already shipped in v0.21.2 (`2fb2d63`).
|
||||
work: WIN MOVE marker on the scrub bar (data field
|
||||
`Replay::win_move_index` already landed in `ab857bb`, just
|
||||
needs UI consumption), move-log scroller, mini-tableau
|
||||
preview, playback controls. The smaller floating-MOVE-chip
|
||||
piece of B already shipped in v0.21.2 (`2fb2d63`); the
|
||||
data-layer prerequisite shipped post-v0.21.3 in `ab857bb`.
|
||||
The natural next commit on B is the WIN MOVE marker UI on
|
||||
the scrub bar — finite, single-system, consumes the new
|
||||
field directly.
|
||||
C. Phase 8 (sync) — local storage scaffolding, self-hosted
|
||||
Axum server, `SolitaireServerClient` impl, GPGS stub
|
||||
wired into Settings. The biggest open arc by scope; rolls
|
||||
|
||||
Reference in New Issue
Block a user