From 31139ae455d19d23b129a6078448c7d41e510c4d Mon Sep 17 00:00:00 2001 From: funman300 Date: Fri, 8 May 2026 11:28:27 -0700 Subject: [PATCH] docs(handoff): record Options A + F closures, refresh Resume prompt menu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two post-v0.21.0 options closed today; "Since the v0.21.0 cut" section now narrates both: - A — App icon (`3eb3a26` + `716a025`). Runtime Window::icon wired via WinitWindows on desktop, 9-size PNG hierarchy at assets/icon/. The follow-up `716a025` wraps NonSend in Option<...> to satisfy Bevy 0.18's stricter system-param validation. - F — Accessibility modes (`c5787c6` + `07e0357`). High- contrast and reduce-motion settings flags + Settings UI toggles + engine wiring. CBM and HC compose; reduce-motion forces card slide_secs to 0. Open punch list refreshed: - Visual-identity follow-ups: HC and reduce-motion entries marked closed with future-scope notes (HC chrome borders, reduce-motion splash gating). - Carried forward from v0.19.0: App icon entry marked closed with future-scope note for .ico/.icns bundle formats (need new deps + matter only at packaging time). Resume prompt menu trimmed: A and F decision options now marked closed inline (preserved for audit-trail readability). B, C, D, E remain live. No runtime / test changes — pure docs hygiene to keep the handoff orientation accurate as work flows. Co-Authored-By: Claude Opus 4.7 --- SESSION_HANDOFF.md | 95 +++++++++++++++++++++++++++++++++------------- 1 file changed, 68 insertions(+), 27 deletions(-) diff --git a/SESSION_HANDOFF.md b/SESSION_HANDOFF.md index c013a84..cdf76fb 100644 --- a/SESSION_HANDOFF.md +++ b/SESSION_HANDOFF.md @@ -36,9 +36,40 @@ resume. ## Since the v0.21.0 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.0 contents themselves, see `CHANGELOG.md` § [0.21.0]. +Two Resume-prompt options closed post-tag (2026-05-08): + +- **Option A — App icon round** (`3eb3a26` + `716a025`). 9-size + PNG hierarchy in `assets/icon/` (16/24/32/48/64/128/256/512/ + 1024 px), generated by a new `icon_generator` example from a + shared `icon_svg` builder (Terminal `▌RS` mark on dark + `#151515` with brick-red accent). Runtime `Window::icon` + wired via `WinitWindows` on desktop only (Android draws its + launcher icon from the APK manifest). The follow-up fix + `716a025` wraps `NonSend` in `Option<...>` + to satisfy Bevy 0.18's stricter system-param validation — + the resource doesn't exist on the first few frames before + winit's `Resumed` event fires. New deps (target-gated + non-Android): direct `winit = "0.30"` for `Icon` + construction, direct `tiny-skia` for PNG → RGBA decode. + Pin test `icon_svg_pin` guards future rasteriser drift. +- **Option F — Accessibility modes** (`c5787c6` + `07e0357`). + High-contrast and reduce-motion settings flags wired through + the engine and surfaced as Settings panel toggles. HC boosts + `RED_SUIT_COLOUR` to `#ff8aa0` and `BLACK_SUIT_COLOUR` to + `#f5f5f5` for card text rendering; reduce-motion forces + `effective_slide_secs` to 0 regardless of `AnimSpeed`. CBM + and HC compose: lime CBM wins on red when both are on; HC + still applies to black suits when both are on. Six new + tests pin the truth tables. UI toggles sit alongside the + Color-blind row in Settings → Cosmetic; tab-walk visits + all three accessibility flags in one vertical run. + +Three Resume-prompt options remain live: B (APK launch +verification), C (replay-overlay extensions), D (Toast +Warning/Error wiring), E (Phase 8 sync). The visible-payoff +pieces of the post-v0.21.0 menu have shipped; what's left is +Android runtime work, replay-overlay polish, sync infrastructure, +and toast-event sourcing. ## Open punch list @@ -86,24 +117,30 @@ palette refresh all shipped in v0.20.0 + v0.21.0. What stays open: for `Warning` (gold) and `Error` (pink) but no in-engine event uses them yet. Wire when a warning- or error-flavoured toast event materialises. -- **High-contrast accessibility mode.** `design-system.md` line - 274 mentions it (boost foreground from `#d0d0d0` to `#f5f5f5`, - suit-red from `#fb9fb1` to `#ff8aa0`). Not implemented; no - Settings toggle. -- **Reduced-motion mode** for card lift / drop transitions. - `design-system.md` accessibility item, separate from - artwork. Not implemented. +- *High-contrast accessibility mode — closed 2026-05-08 by + `c5787c6` + `07e0357`.* Card text rendering picks up + `TEXT_PRIMARY_HC` (`#f5f5f5`) and `RED_SUIT_COLOUR_HC` + (`#ff8aa0`); Settings panel has a toggle. Future scope: + extend HC through chrome borders (`BORDER_SUBTLE_HC` already + defined, not yet consumed), buttons, popover edges. +- *Reduced-motion mode — closed 2026-05-08 by the same pair.* + `effective_slide_secs` forces 0 when on, regardless of the + `AnimSpeed` setting. Future scope: gate splash scanline + overlay + cursor pulse animation on the same flag, gate + warning-chip pulse, gate any future card-lift z-bump + animation. ### Carried forward from v0.19.0 -- **App icon round.** `Window::icon` not yet wired; no - `.icns` / `.ico` / Linux hicolor PNG hierarchy. The 11-size - icon export the v0.19 handoff referenced is *not* currently - in `artwork/` (current `artwork/` holds the reverted Rusty - Pixel card PNGs and is intentionally untracked); icon-export - needs to be re-run before this item can be picked up. - Half-day task once the PNGs are back in place. No cert - dependency. +- *App icon round — closed 2026-05-08 by `3eb3a26` + `716a025`.* + Runtime `Window::icon` wired (Linux/macOS/Windows); 9-size + PNG hierarchy at `assets/icon/icon_.png` covers Linux + hicolor + downstream `.icns`/`.ico` packaging needs. The + `.ico` and `.icns` bundle-format files themselves are *not* + generated — both would need new crate deps (`ico` and + `icns` respectively) and only matter at app-bundle time + (cargo-bundle / packaging), not at `cargo run`. Open if the + project later ships as a packaged macOS / Windows app. ### Other small candidates @@ -223,16 +260,16 @@ READ FIRST (in order, before doing anything): fresh machine) DECISION TO ASK THE PLAYER FIRST: - A. App icon round — re-run artwork/Icon Export.html (the - export PNGs are not currently in `artwork/`), then wire - Window::icon + generate .icns / .ico / Linux hicolor PNG - hierarchy. Half-day task. No cert dependency. Pure - desktop work. + A. *Closed 2026-05-08 by `3eb3a26` + `716a025`.* App icon + round — runtime `Window::icon` wired plus a 9-size PNG + hierarchy at `assets/icon/`. `.ico` / `.icns` bundle + formats stay open if the project later ships as a + packaged macOS / Windows app. B. APK launch verification on AVD / device — `adb install` + `adb logcat` to shake out runtime bugs the build / unit tests can't catch. Likely surfaces JNI ClipboardManager and Android Keystore stubs that need real bridges. Larger - scope than A; needs an Android device or emulator running. + scope; needs an Android device or emulator running. C. Replay-overlay extensions — either the floating `MOVE N/M` chip above the focused card (smaller, cross-plugin; needs cursor → card-position plumbing in `card_plugin`) or the @@ -248,9 +285,13 @@ DECISION TO ASK THE PLAYER FIRST: wired into Settings. The biggest open arc by scope; rolls up several Phase Android dependencies (Keystore, ClipboardManager). - F. High-contrast and reduced-motion accessibility modes. - Both flagged in design-system.md but unimplemented; needs - Settings toggles + token alternates. + F. *Closed 2026-05-08 by `c5787c6` + `07e0357`.* High-contrast + and reduced-motion accessibility modes — Settings flags + + UI toggles + engine wiring. Card text rendering uses + HC variants when on; card slide_secs forces to 0 when + reduce-motion is on. Future scope: extend HC through + chrome borders, buttons; gate splash + warning-chip + animations on reduce-motion. WORKFLOW NOTES: - Use the system git config (already correct).