FABRIC.md: defer toggle meta-key choice, add morning resume punch list
TAB was recorded too specifically in 4.4u/4.4v -- Bob deferred the exact toggle key (TAB/Ctrl+TAB/other) to decide later; both items now say so and 4.4v's interception scope is keyed off "whatever key gets chosen" instead of hardcoded to TAB. Added an explicit six-step breakpoint/punch list after 4.4v recording the dependency-ordered resume sequence for tomorrow: pin 4.4u's open numbers, redo 4.4n's CANVAS math, decide the toggle key, build 4.4v, draw the scroll box's border, then build 4.4r. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
fa8d7ab7dd
commit
074466f271
@@ -5819,11 +5819,17 @@ document and committing that amendment as its own item.*
|
||||
All REPL output/scrollback history (4.4q) renders inside this box. **Not yet drawn** —
|
||||
4.4t confined content to this rect but never stroked a visible border on it.
|
||||
7. **Above the box: nothing, by default** — reserved blank space, no permanent content.
|
||||
8. **The toggle (4.4r) is bound to the TAB key.** Toggling hides the box's contents; at that
|
||||
point the box's own footprint *and* the blank space above it become one unified, full
|
||||
8. **The toggle (4.4r) is bound to a meta key — exact key not yet decided** (candidates
|
||||
floated: TAB, Ctrl+TAB, or something else; Bob deferred picking one, 2026-08-11 — "we'll
|
||||
figure out what meta keys we wanna use for that part later"). Whatever key it ends up
|
||||
being, it flips the same "flipping" behavior: toggling hides the box's contents, and at
|
||||
that point the box's own footprint *and* the blank space above it become one unified, full
|
||||
CANVAS free-play area for vector/graphics work. Toggling again restores the box and its
|
||||
scrollback content undisturbed. **The REPL strip (steps 1-4) is never covered by this —
|
||||
toggle state only ever affects the box and the space above it, never the bottom strip.**
|
||||
4.4v's keyboard-bridge work needs to intercept *whatever* key is chosen before it reaches
|
||||
the line buffer, not specifically TAB — don't hardcode TAB-interception logic assuming
|
||||
this is locked.
|
||||
**Colors, decided explicitly:** REPL strip characters — **bright white** (`0xFFFFFF`,
|
||||
`FB_ANSI_PALETTE[15]`). The two horizontal lines bounding the REPL strip — **gray** (exact
|
||||
shade not yet pinned to a specific palette index or RGB triple; use a mid-gray consistent
|
||||
@@ -5887,10 +5893,11 @@ document and committing that amendment as its own item.*
|
||||
confirm which `i8042.c` actually captures, don't assume — plus `virtio_input.c`'s `EV_KEY`
|
||||
codes for aarch64/riscv64, both need a table); `sk_readline()` gains a second poll path
|
||||
alongside its existing serial read, merging both sources into the same line buffer (matches
|
||||
the "merged serial+keyboard source" language already on record from the 4.3.5 entries); TAB
|
||||
specifically needs to be intercepted *before* it reaches the line buffer as a character, and
|
||||
routed to whatever the 4.4r toggle word ends up being, not inserted as a literal tab
|
||||
character.
|
||||
the "merged serial+keyboard source" language already on record from the 4.3.5 entries);
|
||||
whatever meta key 4.4u eventually settles on for the toggle (TAB/Ctrl+TAB/other — not decided
|
||||
yet, see 4.4u step 8) needs to be intercepted *before* it reaches the line buffer as a
|
||||
character, and routed to the 4.4r toggle word instead of inserted literally — the interception
|
||||
mechanism should be keyed off "the chosen toggle key," not hardcoded to TAB specifically.
|
||||
*Done when:* typing at a real (or QEMU-emulated) keyboard produces the same REPL behavior as
|
||||
serial injection does today, on all three architectures, verified by QEMU boot with a
|
||||
keyboard event injected via QEMU's own input-send-event monitor command (not socat/serial),
|
||||
@@ -5898,6 +5905,29 @@ 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.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
|
||||
punch-list item is worked until 4.5a–4.5f are done**, ahead of whatever would otherwise
|
||||
|
||||
Reference in New Issue
Block a user