docs: session handoff 64 + ADR-0047 implemented (#22/#24)

Flip ADR-0047 Status -> implemented (commits f879d54..2d0f4b2, phased
A->B->C + flat-rectangle restyle); update the README index entry to
match (implemented, flat black-on-yellow rectangles, final 2290-green
tally, website-cast follow-up noted). Add session handoff 64 covering
#24 (vi load-picker nav) and #22 (ADR-0047 demo overlay layer).
This commit is contained in:
claude@clouddev1
2026-06-11 09:59:51 +00:00
parent 2d0f4b2958
commit f0afec3812
3 changed files with 167 additions and 2 deletions
+26 -1
View File
@@ -2,13 +2,38 @@
## Status
Accepted (2026-06-10). Addresses Gitea **#22**. Builds the in-app
Accepted (2026-06-10); **implemented 2026-06-11**, phased A→B→C (closes
Gitea **#22**). Addresses Gitea **#22**. Builds the in-app
overlay/annotation primitive that screencast recording (ADR-website-001
§2, the `autocast` pipeline) and a future guided-lesson system both
need. Adjacent to ADR-0046 (the nav-mode sidebar overlay it must
coexist with) and unblocks the polished version of the assistive-editor
and projects (`#24`) casts.
**Implementation (commits `f879d54` → `2d0f4b2`).** Phase A
(`f879d54`): `--demo` flag + `RDBMS_PLAYGROUND_DEMO` env →
`App.demo_mode`, mirroring the `--no-undo` plumbing; help text mentions
only the visible badges (the `Ctrl+]` caption trigger stays
low-profile, D6). Phase B (`2584e76`): automatic keystroke badges — pure
`demo_badge_label`, set in `App::update` before the modal gate, expired
by a ~1.5 s runtime timer via the new `nearest_deadline` helper that
extends the time-boxed-`recv` arm condition **without** regressing the
ADR-0027 indicator debounce (the rewrite tracks `Instant` deadlines;
verified equivalent). Phase C (`241f60c`): the stealth `Ctrl+]`
caption buffer in `App::update`, intercepted before the modal gate so
captions work over the load picker. Post-build (`2d0f4b2`, user
decision): the overlays render as **flat filled yellow rectangles** (no
border glyphs, one-cell text margin) to read as a distinct callout. A
whole-implementation `/runda` pass returned **PASS** with no blockers;
the only untested wiring is the `run_loop` badge timer (not unit-testable
in isolation — same posture as the existing `IndicatorDebounce`; the
pure pieces are all tested). One intentional, user-acknowledged
behaviour: `Ctrl-C` is inert while capturing (every non-`Ctrl+]` key is,
by spec; exit capture with `Ctrl+]`). Tests: 2290 passing / 0 failing /
0 skipped (Tier-1 label fn + caption FSM + `nearest_deadline`, Tier-2
dark/light/stacked/wrapped/clamp snapshots + black-on-yellow style,
CLI parse/env); clippy clean.
All primary forks and the visual placement were **user-confirmed**
including the two follow-ups settled after the first draft: the trigger
key (**`Ctrl+]`**, the maximally-obscure valid single-byte code, over