FABRIC.md item 4.4ac: screendump-verify boot scrollback, mark done

Confirms 4.4ac's boot-mode scrollback ring actually works: injected
'99999 SCROLL-BACK' over the serial chardev socket (same mechanism the
old DOE_INJECT automation used to drive EXEC-DOE -- SCROLL-BACK is a
plain FORTH word, and sk_repl_step()'s input comes from console_getc()
polling the UART), then captured the framebuffer with QEMU's own HMP
screendump command over its monitor socket. No GTK session or physical
typing needed, correcting this item's own earlier assumption that it
would.

Result (logs/screendump-4.4ac/amd64-scrollback.png) shows PARITY:
MAMA_INIT, Init: Mama birth OK, ACL: CAPSULE-BIRTH pinned STRICT,
Starting heartbeat..., and HADES DoE rows from steps 58-73 all on
screen at once -- genuinely early POST content, not just the pre-TTF
tail. Also confirms a small pre-existing 4.4q limitation (live cursor
draw corrupting a scrolled-back view) is unaffected by this item, not
a new regression.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Robert Allan James
2026-08-12 18:25:52 -04:00
co-authored by Claude Sonnet 5
parent 3396e9a7b4
commit 31a86ee50d
3 changed files with 8590 additions and 7 deletions
+19 -7
View File
@@ -6114,7 +6114,7 @@ document and committing that amendment as its own item.*
> `: MARGIN 30 SPACES CR ;`, both echoed correctly including shift-key punctuation) — > `: MARGIN 30 SPACES CR ;`, both echoed correctly including shift-key punctuation) —
> confirms full-width text with no box confinement, no strip, no border artifacts. > confirms full-width text with no box confinement, no strip, no border artifacts.
- [ ] **4.4ac — Scrollback during boot/POST, not just from the REPL onward.** Scoped - [x] **4.4ac — Scrollback during boot/POST, not just from the REPL onward.** Scoped
2026-08-12, in conversation with Captain Bob. Found while investigating a separate report 2026-08-12, in conversation with Captain Bob. Found while investigating a separate report
("the framebuffer does not mimic the serial port"): `console_putc()` does mirror every byte ("the framebuffer does not mimic the serial port"): `console_putc()` does mirror every byte
to both serial and framebuffer during boot, so that report wasn't a mirroring bug — it's to both serial and framebuffer during boot, so that report wasn't a mirroring bug — it's
@@ -6157,12 +6157,24 @@ document and committing that amendment as its own item.*
a live REPL session shows POST/self-test text recovered, not just the pre-TTF tail. a live REPL session shows POST/self-test text recovered, not just the pre-TTF tail.
*Refs:* §27.8, 4.4q. *Refs:* §27.8, 4.4q.
> **Boot/logs half DONE 2026-08-12; screendump half still open.** Three-arch QEMU boot + > **DONE 2026-08-12.** Three-arch QEMU boot + logs clean, no regression:
> logs clean, no regression: `logs/20260812-173850/amd64`, `logs/20260812-174418/aarch64`, > `logs/20260812-173850/amd64`, `logs/20260812-174418/aarch64`, `logs/20260812-175223/riscv64`.
> `logs/20260812-175223/riscv64`. Not yet verified: an actual amd64 screendump showing > Screendump verification (`logs/screendump-4.4ac/amd64-scrollback.png`,
> recalled POST/self-test text via PgUp scrollback -- that needs a live GTK QEMU window and > `logs/screendump-4.4ac/qemu-amd64.log`) turned out not to need a physical GTK
> someone typing the scroll-back command interactively, the same way 4.4ab's screendump was > session as this item originally assumed -- `SCROLL-BACK` is a plain FORTH word, and
> captured directly by Captain Bob, not something doable from a headless acceptance boot. > `sk_repl_step()`'s input comes from `console_getc()` polling the UART, the same serial
> path the old `DOE_INJECT` automation used to drive `EXEC-DOE`. So `99999 SCROLL-BACK`
> (clamped to full history) was injected over the serial chardev socket headlessly, then
> captured with QEMU's own HMP `screendump` command over its monitor socket -- no GUI, no
> physical typing required. The result shows `PARITY:MAMA_INIT`, `Init: Mama birth OK`,
> `ACL: CAPSULE-BIRTH pinned STRICT`, `Starting heartbeat...`, and HADES DoE rows from
> steps 58-73 all on screen at once -- genuinely early POST content, not the pre-TTF tail,
> confirming the boot ring is real and reachable. **Found, not fixed (pre-existing 4.4q
> limitation, not introduced here):** the injected serial text got drawn at the live
> cursor position even while scrolled back, visibly corrupting two lines
> (`okDES][WARN ]`, `ok> S][DOE ]`) -- exactly the "drawing new live output while
> `g_scroll_offset > 0` is unverified... would visually corrupt a scrolled-back view"
> case 4.4q's own comment block already calls out as known and out of scope.
- [ ] **4.5 — URGENT, flagged by Captain Bob 2026-08-11: the kernel build has never used any - [ ] **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 compiler optimization.** **Blocking priority, set by Captain Bob 2026-08-11: no other
Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

File diff suppressed because it is too large Load Diff