···5757- Audio capture foundation: `cpal` input stream with mono downmix into a lock‑free ring buffer (8192 samples); CLI flags `--list-audio`, `--audio-device`, `--audio-vu`, `--audio-disable`; simple VU feedback prints peak dBFS once per second.
5858 - FFT: 2k R2C (`realfft`) on tick thread; maintains raw/smoothed/normalized buffers with peak tracking; `--debug-fft` throttled print; Lua `fft/ffts/fftr/fftrs` wired with C-identical clamping/sum semantics; headless tests added; simple cart at `assets/fft_test.lua`.
5959- Screenshots: CLI supports `--screenshot <path> [--screenshot-scale N] [--screenshot-frame N]` and `--headless` offscreen capture. In windowed mode, F12 saves to `./screenshots/scr-YYYYmmdd-HHMMSS.png` without exiting.
6060- - Editor: CODE view supports basic editing (insert chars/newline/tab, backspace/delete, Home/End), selection (Shift+arrows), clipboard (Ctrl/Cmd+C/V/X), undo/redo (Ctrl/Cmd+Z / Shift+Z or Y). Caret + auto-scroll; gutter and rendering intact; tests added.
6060+- Editor: CODE view supports basic editing (insert chars/newline/tab, backspace/delete, Home/End), selection (Shift+arrows), clipboard (Ctrl/Cmd+C/V/X), undo/redo (Ctrl/Cmd+Z / Shift+Z or Y). Caret + auto-scroll; gutter and rendering intact; tests added.
6161+ - Editor selection shadows: multi-line selection now renders without interior seams; bottom shadow is only drawn on outer perimeter segments. Headless diagnostic flag added to aid screenshots.
61626263**Near-Term Backlog**
6364- FFT implementation (cpal + realfft) per `docs/specs/audio_fft_vqt.md` (see Implementation TODOs section); add headless tests and Lua `fft/ffts/fftr/fftrs`.
···151152 - Hygiene verified: `cargo fmt`, `cargo clippy --all-targets --all-features -- -D warnings`, and `cargo test` all green.
152153 - Editor polish and bugfixes:
153154 - macOS Cmd shortcuts fixed by using per-event modifiers (`KeyboardInput.modifiers`) for Cmd/Ctrl detection.
154154- - Selection highlight aligned with caret box (vertical off-by-one vs clip corrected); added unit test for alignment.
155155+ - Selection highlight aligned with caret box (vertical off-by-one vs clip corrected); added unit test for alignment.
156156+ - 2025-09-01:
157157+ - Fixed editor selection drop shadow to avoid interior horizontal seams for multi-line selections.
158158+ - Implemented per-row bottom shadow segmentation by subtracting next-row overlap; right-edge rule preserved.
159159+ - Added headless diagnostic flag `--editor-demo-select` to generate a 3-line selection for screenshots.
160160+ - Verified visually via headless screenshot; clippy/tests clean; formatted code.
161161+ - Docs updated: editor selection/shadow semantics in `docs/architecture/editor.md`; testing catalog notes planned conformance tests.
155162156163**Docs Index**
157164- Start here: `docs/README.md`
+7-1
docs/architecture/editor.md
···1919- TIC‑80 style: a red box slightly larger than the glyph cell with a 1px drop shadow; glyph under the caret is redrawn in dark to simulate inversion.
2020- Position stays aligned to the 6×8 grid; auto-scrolling keeps caret visible.
21212222+## Selection & Shadows
2323+- Selection fill uses palette 14 (pink) and respects the 6×8 cell grid.
2424+- Drop shadow (palette 0) is rendered only on the outer perimeter:
2525+ - Right edge: draw a 1px vertical line unless the next row’s selection extends strictly further right (to keep the outer edge clean).
2626+ - Bottom edge: drawn per-segment by subtracting the next row’s covered columns. If the next row overlaps, no interior horizontal seam is drawn; only left/right overhangs render a bottom shadow.
2727+ - This matches TIC‑80’s visual continuity for multi-line selections (no interior seams).
2828+2229## Input
2330- Tabs and buttons: rectangle hit testing in framebuffer space.
2431- Caret navigation: arrows (more keybinds to be added).
···3138- Pixel assertions for UI scaffolding and code viewport.
3239- Buffer operation tests for text edits and viewport mapping.
3340- Integration tests for `.tic` round‑trip and hot reload gating.
3434-
+1
docs/testing/test_catalog.md
···7575- `tic80_rust/tests/editor_code_view_tests.rs`: CODE viewport renders gutter digits and text cells.
7676- `tic80_rust/tests/editor_editing_tests.rs`: basic editing behavior for insert/newline, backspace (join-prev), delete (join-next), Home/End, and Tab-as-spaces.
7777- `tic80_rust/tests/editor_selection_undo_tests.rs`: selection replace/cut/paste and undo/redo cycles; select-all.
7878+ - Planned: `editor_selection_shadow_tests.rs`: verify multi-line selection renders without interior bottom seams and only draws right-edge shadow on the outer perimeter (uses deterministic framebuffer pixels).
78797980## Screenshot Tests
8081- `tic80_rust/tests/screenshot_smoke.rs`