From 098b437180290503f5da47c4fd50245f5c740915 Mon Sep 17 00:00:00 2001 From: Robert Allan James Date: Tue, 11 Aug 2026 23:49:25 -0400 Subject: [PATCH] FABRIC.md: break the morning resume note into proper punch-list items The prior commit's resume note was a single blockquote blob with a numbered list buried inside item 4.4v -- not the document's own established format. Replaced with four real standalone items matching every other entry in this section (own checkbox, description, Done when, Refs): 4.4w (pin 4.4u's open numbers), 4.4x (redo 4.4n's CANVAS math for the real strip height), 4.4y (decide the toggle meta-key), 4.4z (draw the scroll box's visible border). Updated 4.4r's dependency list to include 4.4v and 4.4z. Co-Authored-By: Claude Sonnet 5 --- FABRIC.md | 67 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 43 insertions(+), 24 deletions(-) diff --git a/FABRIC.md b/FABRIC.md index b31f070..61ed2ad 100644 --- a/FABRIC.md +++ b/FABRIC.md @@ -5773,8 +5773,9 @@ document and committing that amendment as its own item.* - [ ] **4.4r — Toggle word: hide/show the scroll box.** A FORTH word that hides the 640×480 scroll box, revealing the rest of CANVAS beneath it for drawing; showing it again restores the scroll-box content undisturbed, no scrollback loss. Depends on 4.4o/4.4p (geometry), - 4.4q (scrollback), and 4.4t (confinement — the box must be real before it can be hidden) - all being done first. + 4.4q (scrollback), 4.4t (confinement — the box must be real before it can be hidden), 4.4v + (keyboard bridge — the toggle key has to reach the REPL), and 4.4z (the box needs a drawn + border before "hide/show" is visually meaningful) all being done first. *Done when:* toggling off then on again, verified by screendump, shows the CANVAS drawing area unobstructed while off and the exact prior scroll-box content restored when back on; three-arch QEMU boot + logs per CLAUDE.md. @@ -5905,28 +5906,46 @@ document and committing that amendment as its own item.* CLAUDE.md. *Refs:* §27.8, 4.3.5 series, 4.4r, 4.4u, `docs/lithosananke/ROADMAP.md` M8 section. - > **Session breakpoint, 2026-08-11 night — punch list for resume, not a new item.** Nothing - > below this line is implemented; recorded so "continue" tomorrow picks up exactly here - > instead of re-deriving it. In order: - > 1. **Pin 4.4u's still-open numbers with Bob**: exact gray RGB for the REPL-strip border - > lines (currently just "a mid-gray, not chosen"); reconcile the "~255/256 char" REPL - > input-line width against the real `INPUT_BUFFER_SIZE`=1025 (CLAUDE.md); confirm the - > 15px/15px REPL-strip gaps and 8px box gap are final, not just the current mockup - > working values. - > 2. **Redo 4.4n's CANVAS-rectangle math** once 4.4u's real (much smaller than 96px) strip - > height is pinned — this is arithmetic against already-known numbers, not a new design - > question, but must happen before any drawing code touches CANVAS sizing. - > 3. **Decide the toggle meta-key** (TAB/Ctrl+TAB/other) — explicitly deferred by Bob - > 2026-08-11, needed before 4.4v's interception code can be written. - > 4. **Build 4.4v** (keyboard→REPL bridge) — scancode/EV_KEY→ASCII tables, second poll path - > in `sk_readline()`, meta-key interception. Three-arch verified via QEMU's - > `input-send-event` monitor command, not socat/serial injection (that would only prove - > the REPL side works, not the keyboard side). - > 5. **Draw the scroll box's visible border** (4.4t confined content to the rect but never - > stroked a line on it — small, separable from 4.4v). - > 6. **Build 4.4r** (hide/show toggle) — depends on 1-5 above being real, not just planned. - > None of steps 1-6 has code yet. Do not skip ahead per §25.0 rule 1 — this order is also the - > dependency order, not an arbitrary preference. +- [ ] **4.4w — Pin 4.4u's open numbers with Bob.** Design-only, no code. Three specific values + 4.4u left as working/placeholder, not final: (1) exact gray RGB for the two REPL-strip + border lines — 4.4u only says "a mid-gray, not chosen"; (2) the REPL input-line's character + width — Bob's verbal estimate was "~255/256 chars," which needs reconciling against the real + shared `INPUT_BUFFER_SIZE`=1025 (CLAUDE.md) — are these the same buffer, or does the REPL + strip want a smaller practical typing limit than LOAD's block-content buffer; (3) the + 15px/15px REPL-strip gaps and 8px box-to-strip gap used in the second mockup pass — confirm + final or still tune-able. + *Done when:* all three values above are stated explicitly and recorded here, no longer + "working values." + *Refs:* §27.8, 4.4u. + +- [ ] **4.4x — Redo 4.4n's CANVAS rectangle for the real (single-line) REPL-strip height.** + 4.4n's existing CANVAS math assumed 4.4m's 96px/4-line REPL strip; 4.4u replaced that with a + single-line strip (4.4w's gap values, once pinned, give the real height — order-of-magnitude + 20-40px, not 96px). Pure arithmetic against already-decided numbers, not a new design + question, but CANVAS's top-left/width/height must be recomputed before any drawing code + reads them. Depends on 4.4w (gap values pinned first). + *Done when:* a new CANVAS rectangle (top-left, width, height) is computed and recorded per + architecture, explicitly superseding 4.4n's numbers the way 4.4n itself is referenced from + 4.4u as historical record, not edited in place. + *Refs:* §27.8, 4.4n, 4.4u, 4.4w. + +- [ ] **4.4y — Decide the toggle meta-key.** Design-only, no code. 4.4u step 8 left this open — + candidates floated were TAB and Ctrl+TAB, Bob explicitly deferred choosing ("we'll figure out + what meta keys we wanna use for that part later," 2026-08-11). Blocks 4.4v's interception + code, which needs to know which key to intercept before it can be written. + *Done when:* one specific key (or key combination) is chosen and recorded here. + *Refs:* §27.8, 4.4u, 4.4v. + +- [ ] **4.4z — Draw the scroll box's visible border.** 4.4t confined REPL text to the 640×480 + box's coordinate space but never stroked a visible rectangle outline on it — the box's edges + are implicit (where text stops), not drawn. 4.4u step 6 calls for "an actual stroked + rectangle outline." Small, separable from 4.4v/4.4r — a single `fb_fill_rect()`-based + rectangle-outline draw (four thin `fb_fill_rect()` strips, matching 4.4p's reverted probe + technique but made permanent this time) called once when TTF mode is entered (alongside + 4.4t's existing box-clear in `vt100_enable_ttf()`), redrawn if the box is ever cleared. + *Done when:* three-arch screendump shows a visible border on the box matching the color 4.4u + locks in (see 4.4w); three-arch QEMU boot + logs per CLAUDE.md. + *Refs:* §27.8, 4.4t, 4.4u, 4.4w. - [ ] **4.5 — URGENT, flagged by Captain Bob 2026-08-11: the kernel build has never used any compiler optimization.** **Blocking priority, set by Captain Bob 2026-08-11: no other