docs(handoff): refresh post-v0.21.3 — anchor to new tag, reset menu state

Anchors handoff to v0.21.3 at `3d92a91`, resets the "Since the cut"
section to placeholder, updates the READ FIRST CHANGELOG pointer,
and bumps the Resume-prompt summary to reflect the accessibility
arc closure as the v0.21.3 through-line. Resume menu stays at
A/B/C since v0.21.3 closes only post-v0.21.2 carve-outs (the
remaining options were already heavy / multi-session).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
funman300
2026-05-08 14:41:02 -07:00
parent 3d92a91e3b
commit 886e0cf8a1
+33 -63
View File
@@ -1,73 +1,45 @@
# Solitaire Quest — Session Handoff # Solitaire Quest — Session Handoff
**Last updated:** 2026-05-08 — v0.21.2 cut and tagged at `f23df3b`; **Last updated:** 2026-05-08 — **v0.21.3 cut and tagged at
post-cut work shipped: Toast Warning (`279e23d`) and the HC `3d92a91`**, working tree clean, all post-tag work pushed to
dynamic-paint rollout (`c153363`). Working tree clean, all origin.
post-tag work pushed to origin.
v0.21.2 is a patch release for the post-v0.21.1 polish work: v0.21.3 is a patch release with one through-line: **accessibility
extends accessibility (full HC chrome rollout across 8 surfaces; arc closure**. v0.21.2 explicitly carved out "dynamic-paint sites"
splash reduce-motion gating on scanline + cursor pulse), adds a (HUD action buttons, modal buttons, radial menu rim) on the
floating MOVE chip above the destination card during replay assumption that their existing paint cycles would race the
playback, and lights up the first real consumer of central `update_high_contrast_borders` system. v0.21.3 walks the
`ToastVariant::Error` (a "Invalid move" toast as the third leg actual code, finds the carve-out was over-cautious, and closes
of the existing audio + visual rejection-feedback stool). it. Bonus: the first real consumer of `ToastVariant::Warning`
also lands here, making the `ToastVariant` enum fully load-bearing
(every variant has at least one driver).
Full v0.21.2 detail lives in `CHANGELOG.md` § [0.21.2]. This Full v0.21.3 detail lives in `CHANGELOG.md` § [0.21.3]. This
file from here on focuses on what's *open* post-cut and how to file from here on focuses on what's *open* post-cut and how to
resume. resume.
## Status at pause ## Status at pause
- **HEAD locally:** see `git rev-parse HEAD`. The cut commit is - **HEAD locally:** see `git rev-parse HEAD`. The cut commit is
`f23df3b`; post-cut work (`279e23d` Toast Warning, `c153363` `3d92a91`; any post-cut docs edits ride on top of that.
HC dynamic-paint rollout) rides on top of that. - **HEAD on origin:** matches local. v0.21.3 is fully on origin.
- **HEAD on origin:** matches local. v0.21.2 is fully on origin.
- **Working tree:** clean. No WIP outstanding. - **Working tree:** clean. No WIP outstanding.
- **`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:** **1207 passing / 0 failing** across the workspace - **Tests:** **1207 passing / 0 failing** across the workspace
(net +12 from the v0.21.2 cut: 8 from Toast Warning wiring; (net +12 from v0.21.2's 1195 baseline). Detail in
4 from the radial-rim HC truth-table). `CHANGELOG.md` § [0.21.3] § Stats.
- **Tags on origin:** `v0.9.0` through `v0.21.2`. v0.21.2 is on - **Tags on origin:** `v0.9.0` through `v0.21.3`. v0.21.3 is on
`f23df3b`; v0.21.1 stays on `daa655a`; v0.21.0 stays on `3d92a91`; v0.21.2 stays on `f23df3b`; v0.21.1 stays on
`04f9bf9`; v0.20.0 stays on `41a009a`. `daa655a`; v0.21.0 stays on `04f9bf9`; v0.20.0 stays on
`41a009a`.
## Since the v0.21.2 cut ## Since the v0.21.3 cut
- **`279e23d` — Toast Warning variant wired.** First in-engine No threads in flight. Working tree clean as of 2026-05-08. New
consumer of `ToastVariant::Warning`: a 4 s amber-bordered work since the cut would land here as commit narratives; for
toast that fires once per daily-challenge date when the the v0.21.3 contents themselves, see `CHANGELOG.md` § [0.21.3].
player is within 30 min of UTC midnight reset and hasn't yet
completed today's challenge. Mirrors the v0.21.2 Toast Error
pattern — a domain message (`WarningToastEvent(String)`) is
the contract between the daily plugin and the animation
plugin's spawn handler. Suppression decided by a pure helper
(`compute_expiry_warning_minutes`) that's exhaustively tested
without an `App`. After this commit every `ToastVariant`
(Info / Warning / Error / Celebration) has at least one real
driver — the variant enum is fully load-bearing.
- **`c153363` — HC rollout to the dynamic-paint sites.** Closes
the v0.21.2 carve-out. Re-reading the code revealed only one
of three "dynamic-paint" sites was actually a border-paint
cycle — HUD action buttons and modal buttons paint
*backgrounds* dynamically with static borders, so they take
the existing `HighContrastBorder` marker pattern cleanly. The
radial menu rim is the only true dynamic-painter (full
per-frame respawn of `Sprite` entities); HC is folded into
the spawn there with a pure helper (`radial_rim_outline`)
that boosts the *focused* rim to `BORDER_SUBTLE_HC` under HC
rather than `BORDER_STRONG` — naive marker substitution would
invert the focused-vs-resting hierarchy because
`BORDER_SUBTLE_HC` (#a0a0a0) is lighter than `BORDER_STRONG`
(#505050). After this commit, every UI surface in the v0.21.x
accessibility arc either carries the marker or has HC folded
into its own spawn cycle. No "un-tagged because race-risk"
surfaces remain.
For the v0.21.2 contents themselves, see `CHANGELOG.md` §
[0.21.2].
## Open punch list ## Open punch list
@@ -252,22 +224,20 @@ into a v0.21.1 / v0.22.0 cut.
``` ```
You are a senior Rust + Bevy developer working on Solitaire Quest. You are a senior Rust + Bevy developer working on Solitaire Quest.
Working directory: <Rusty_Solitaire clone path on this machine>. Working directory: <Rusty_Solitaire clone path on this machine>.
Branch: master. v0.21.2 is tagged at f23df3b (cut 2026-05-08, a Branch: master. v0.21.3 is tagged at 3d92a91 (cut 2026-05-08, a
patch release rolling up accessibility extensions, replay polish, patch release rolling up the accessibility-arc closure: HC reaches
and the first real `ToastVariant::Error` consumer). v0.21.1 stays the previously-carved-out dynamic-paint sites, and the first real
at daa655a, v0.21.0 at 04f9bf9. Working tree clean. Post-cut consumer of `ToastVariant::Warning` lands as the daily-challenge
work shipped: Toast Warning variant (`279e23d`) and the HC expiry toast). v0.21.2 stays at f23df3b, v0.21.1 at daa655a,
dynamic-paint rollout (`c153363`) — accessibility arc is fully v0.21.0 at 04f9bf9. Working tree clean. See CHANGELOG.md §
closed, every `ToastVariant` has at least one real driver. See [0.21.3] for full detail.
CHANGELOG.md § [0.21.2] + the "Since the v0.21.2 cut" section
above for full detail.
State: HEAD locally — see `git rev-parse HEAD`. All workspace tests State: HEAD locally — see `git rev-parse HEAD`. All workspace tests
pass (1207+; check with `cargo test --workspace`), clippy clean. pass (1207+; 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
2. CHANGELOG.md — [0.21.2] section is the most recent cut 2. CHANGELOG.md — [0.21.3] section is the most recent cut
3. CLAUDE.md — unified-3.0 rule set 3. CLAUDE.md — unified-3.0 rule set
4. CLAUDE_SPEC.md — formal architecture spec 4. CLAUDE_SPEC.md — formal architecture spec
5. ARCHITECTURE.md — crate responsibilities + data flow 5. ARCHITECTURE.md — crate responsibilities + data flow