this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

docs

alice 17fc2bac d4c23fa5

+36 -9
+16 -1
AGENTS.md
··· 58 58 - 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`. 59 59 - 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. 60 60 - 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. 61 + 62 + - Editor visuals parity: 63 + - Palette switched to Sweetie16 (source-accurate); white is idx=12; greys 13/14/15. 64 + - Selection shadows fixed: per-cell 7×7 shadow+fill with outer-perimeter edges; no interior seams; right-edge shadow 7 px tall. 65 + - Toolbar top bar matches TIC-80: 7 px white bar; left “CODE” label in grey (14); RUN/STOP/RESET labels in grey; no left underline. 66 + - Code grid: small font (6 px) on 7 px pitch; first row starts immediately under the bar; gutter is 18 px (3 digits) plus a 1 px gap before code. 67 + - Caret uses cursor color idx 2 with 1 px drop shadow; glyph under caret redrawn in background color. 68 + - Fixed text insertion baseline (no 1 px vertical drift); selection and caret aligned to same baseline. 61 69 - 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. 62 70 63 71 **Near-Term Backlog** ··· 142 150 - Ran `cargo fmt`, `cargo clippy --all-targets --all-features -D warnings`, and `cargo test`: all green. 143 151 - Conducted a full code review of the `tic80_rust` crate. Findings are positive; suggestions for minor refactorings have been logged in `docs/roadmap/todos_code_review.md` and a summary added to `docs/adr/codereviews/001.md`. 144 152 - Performed a second code review. The summary is located at `docs/adr/codereviews/002_ai_review.md` and actionable suggestions are in `docs/roadmap/todos_from_ai_review.md`. 145 - - 2025-08-27 (cont.): 153 + - 2025-08-27 (cont.): 146 154 - Editor basic editing implemented and tested: 147 155 - Text input (ReceivedCharacter), Enter newline, Tab → one space; Backspace/Delete; Home/End. 148 156 - Selection with Shift+arrows; clipboard shortcuts (copy/cut/paste) using OS clipboard; select-all. ··· 153 161 - Editor polish and bugfixes: 154 162 - macOS Cmd shortcuts fixed by using per-event modifiers (`KeyboardInput.modifiers`) for Cmd/Ctrl detection. 155 163 - Selection highlight aligned with caret box (vertical off-by-one vs clip corrected); added unit test for alignment. 164 + - 2025-09-01: 165 + - Switched framebuffer palette to Sweetie16 (exact TIC-80 ordering); updated palette mapping tests. 166 + - Implemented selection per-cell shadowing; removed interior seams; added tests for no-seam and 7 px right-edge shadow. 167 + - Top bar parity: 7 px white toolbar; “CODE” grey label; removed shadow for title; removed CONSOLE tab visuals. 168 + - Editor layout tightened: small-font baseline, 7 px line pitch, gutter=18 px with 1 px gap; first row starts immediately below the bar; removed extra paddings. 169 + - Fixed new-text baseline misalignment (was rendered 1 px too low); unified small-font rendering across normal/selected/caret glyphs. 170 + - Tests and docs updated; clippy/tests green. 156 171 - 2025-09-01: 157 172 - Fixed editor selection drop shadow to avoid interior horizontal seams for multi-line selections. 158 173 - Implemented per-row bottom shadow segmentation by subtracting next-row overlap; right-edge rule preserved.
+1 -1
docs/README.md
··· 14 14 - `docs/specs/lua_api_parity.md`: API parity checklist for Lua (name, signature, side effects). 15 15 - `docs/specs/graphics.md`: Framebuffer, palette mapping, text/print semantics (stub to be expanded). 16 16 - `docs/specs/audio_fft_vqt.md`: FFT/VQT behavior and Rust implementation plan (cpal + realfft), with links to `CLAUDE.md`. 17 - - `docs/specs/implementation_status.md`: What’s implemented vs pending, with notes on behavior. 17 + - `docs/specs/implementation_status.md`: What’s implemented vs pending, with notes on behavior. Palette is Sweetie16 (white=12; greys 13/14/15). 18 18 19 19 ## Architecture 20 20 - `docs/architecture/workspace.md`: Crate layout and module boundaries.
+8 -1
docs/architecture/editor.md
··· 20 20 - Position stays aligned to the 6×8 grid; auto-scrolling keeps caret visible. 21 21 22 22 ## Selection & Shadows 23 - - Selection fill uses palette 14 (pink) and respects the 6×8 cell grid. 23 + - Selection fill uses palette index 14 (grey, Sweetie16) and respects the 6×8 cell grid. 24 24 - Drop shadow (palette 0) is rendered only on the outer perimeter: 25 25 - Right edge: draw a 1px vertical line unless the next row’s selection extends strictly further right (to keep the outer edge clean). 26 26 - 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. 27 27 - This matches TIC‑80’s visual continuity for multi-line selections (no interior seams). 28 + 29 + ## Top Bar & Layout 30 + - Toolbar height: 7 px (1 px margins around 6 px small font). 31 + - Title: left‑aligned “CODE” in grey (palette 14); no shadow in the current build (can be re‑enabled later). 32 + - Background: white (palette 12). 33 + - Gutter: 3 digits (18 px) width; a 1 px gap separates gutter and code. 34 + - Text grid: 6 px small font on a 7 px line pitch; first code row starts immediately under the toolbar (no extra padding). 28 35 29 36 ## Input 30 37 - Tabs and buttons: rectangle hit testing in framebuffer space.
+2 -2
docs/architecture/workspace.md
··· 2 2 3 3 Crates (target layout) 4 4 - `tic-core`: VM state, memory map, cart model, fixed-step ticker. 5 - - `tic-gfx`: CPU rasterizer (`pix/line/rect/...`), VRAM/VRAM banks, palette ops. 5 + - `tic-gfx`: CPU rasterizer (`pix/line/rect/...`), VRAM/VRAM banks, palette ops (Sweetie16 palette ordering). 6 6 - `tic-audio`: PSG synth + mixer; later capture buffer for FX. 7 7 - `tic-io`: Input abstraction (kbd/mouse/gamepad), FS/cart IO, time. 8 8 - `tic-api`: Language-agnostic API facade matching TIC-80 surface. ··· 13 13 14 14 Data Flow 15 15 - Lua (`tic-lua`) calls into `tic-api` → forwards to `tic-core/gfx/audio/io`. 16 - - `tic-gfx` writes to VRAM page(s); presenter converts palette indices to RGBA for display. 16 + - `tic-gfx` writes to VRAM page(s); presenter converts palette indices to RGBA for display using Sweetie16 (white=12; greys 13/14/15). 17 17 - `tic-audio` produces sample blocks; optional capture ring shared with `tic-fx`. 18 18 - `tic-studio` (planned): A framebuffer‑rendered TIC‑80‑style UI. We will deliver CODE first, then CONSOLE (console scope may be reduced). Integrates with `tic-runner`/`tic-core` for hot reload and .tic code‑only round‑trip. See `docs/roadmap/editor_livecoding.md`.
+6 -2
docs/specs/implementation_status.md
··· 77 77 - `fget`, `fset`. 78 78 79 79 Implemented (Editor) 80 - - UI shell: top bar (tabs + buttons) rendered in framebuffer; integer-scaling window. 81 - - CODE view: rope‑backed buffer; editable; gutter; selection highlight; TIC‑style caret (red box + shadow with inverted glyph); 6×8 cell grid. 80 + - UI shell: top bar rendered in framebuffer; integer-scaling window. 81 + - Toolbar: 7 px tall; background white (index 12); left title “CODE” in grey (14); RUN/STOP/RESET labels in grey. 82 + - CODE view: rope‑backed buffer; editable; gutter; selection highlight; TIC‑style caret (cursor color index 2 + shadow); 6 px small font on a 7 px pitch. 83 + - Layout: gutter 18 px wide (3 digits), 1 px gap before code; first row starts directly under the toolbar; no extra top/bottom padding. 84 + - Selection: per‑cell 7×7 shadow+fill; outer-perimeter shadow only; no inter‑line seams. 82 85 - Navigation: arrows, Home/End; auto‑scroll keeps caret visible. 83 86 - Editing: insert chars/newline/tab (1 space), backspace/delete with line joins at SOL/EOL. 84 87 - Selection/Clipboard: Shift+arrows; Select All (Cmd/Ctrl+A); copy/cut/paste via OS clipboard (Cmd/Ctrl+C/V/X). ··· 95 98 - API parity checklist: `docs/specs/lua_api_parity.md`. 96 99 - Testing strategy and catalog: `docs/testing/strategy.md`, `docs/testing/test_catalog.md`. 97 100 - Hygiene: clippy pedantic baseline enforced with curated allows for DSP and TIC-style APIs; see `AGENTS.md` for current lint policy and status. 101 + - Palette: uses Sweetie16 (TIC‑80 default) with white at index 12 and greys at 13/14/15.
+3 -2
docs/testing/test_catalog.md
··· 8 8 - `pix_read_write_and_bounds`: `pix` read/write semantics; OOB reads return `None` and writes are ignored. 9 9 - `rect_fill_and_clipping`: `rect` fills and clips to viewport; fully OOB rects are no‑ops. 10 10 - `line_basic_counts_and_endpoints`: Line endpoints colored; counts match `max(dx,dy)+1` both directions. 11 - - `blit_to_rgba_maps_palette`: Palette index→RGBA mapping matches expected sRGB bytes. 11 + - `blit_to_rgba_maps_palette`: Palette index→RGBA mapping matches Sweetie16 sRGB bytes (white=idx12, greys idx13/14/15). 12 12 - `rectb_draws_border`: `rectb` draws a 1‑px border; interior remains unchanged. 13 13 - `clip_limits_drawing_and_reset`: Clip restricts drawing; reset restores full viewport. 14 14 - `print_width_fixed_vs_variable_and_newline`: `print_text` width (fixed vs variable), newline row advance, and scale behavior. ··· 75 75 - `tic80_rust/tests/editor_code_view_tests.rs`: CODE viewport renders gutter digits and text cells. 76 76 - `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. 77 77 - `tic80_rust/tests/editor_selection_undo_tests.rs`: selection replace/cut/paste and undo/redo cycles; select-all. 78 - - 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). 78 + - `tic80_rust/tests/editor_selection_shadow_tests.rs`: multi-line selection renders without interior bottom seams; right-edge shadow is exactly 7 px tall. 79 + - `tic80_rust/tests/editor_selection_align_tests.rs`: selection top aligns with caret box (small font baseline at 6 px, pitch 7 px). 79 80 80 81 ## Screenshot Tests 81 82 - `tic80_rust/tests/screenshot_smoke.rs`