From a4afecb656038712e49282b2bef8044ae49c30a5 Mon Sep 17 00:00:00 2001 From: Robert Allan James Date: Tue, 11 Aug 2026 20:17:33 -0400 Subject: [PATCH] FABRIC.md: item 4.4m -- REPL text size and strip height decided Design decision, no code change (4.4j's constants are already the final values). Text size 20px (unchanged from 4.4j), 4 visible lines, strip height 96px (4 x the existing 24px cell height, no extra padding -- leading is already baked into that cell height). Flagged the constraint this feeds into before deciding: 4.4o needs a 640x480 scroll-box to fit inside CANVAS on the 600px-tall aarch64/riscv64 screens, which only leaves 24px of slack over the 480px minimum once the 96px strip is subtracted. 4.4n's gap choice must stay <=24px on those architectures or 4.4o's fit check fails -- recorded now so it's not a surprise two items later. Co-Authored-By: Claude Sonnet 5 --- FABRIC.md | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/FABRIC.md b/FABRIC.md index b213b66..d6d16d7 100644 --- a/FABRIC.md +++ b/FABRIC.md @@ -5456,7 +5456,7 @@ document and committing that amendment as its own item.* > (CANVAS geometry) computed per-architecture needs to actually branch on this, not assume a > single shared screen size. -- [ ] **4.4m — Decide REPL-strip pixel height.** Currently undefined anywhere in this document +- [x] **4.4m — Decide REPL-strip pixel height.** Currently undefined anywhere in this document or the code. Once 4.4j lands, REPL text renders via `TTF-TEXT` at some chosen point/pixel size (also not yet chosen) — strip height derives from that size's line height plus padding, not from `font_8x16.c`'s fixed 8×16 cell. @@ -5464,6 +5464,31 @@ document and committing that amendment as its own item.* recorded here. *Refs:* §27.8. + > **Decided with Captain Bob, 2026-08-11.** Before deciding, flagged the real constraint this + > choice feeds into: 4.4o needs a 640×480 scroll-box to fit inside CANVAS, and CANVAS height + > = screen height (4.4l) − strip height − a fixed gap (4.4n). On aarch64/riscv64 (600px tall), + > that leaves very little room — strip height + gap must stay well under 120px or 4.4o's own + > text says it must stop and report rather than silently shrink the box. + > + > **Text size: 20px, unchanged from 4.4j's provisional value** — no rework, and 4.4j's own + > `VT100_TTF_SIZE_PX`/`VT100_TTF_CELL_W_PX`/`VT100_TTF_CELL_H_PX` constants are now the + > final values, not placeholders (their code comments calling them "provisional, pending + > 4.4m" are stale as of this decision — worth a follow-up comment cleanup when 4.4n/4.4o + > touch that code next, not urgent enough to justify a code-only commit for comment text + > alone). + > + > **Visible lines: 4.** **Strip height: 4 × `VT100_TTF_CELL_H_PX` (24px) = 96px** — no + > additional padding layered on top of that, since each line already carries 4px of leading + > baked into the 24px cell height itself (`VT100_TTF_CELL_H_PX`'s own comment: "size + 4px + > leading/descender"). + > + > **Checked against the 480px constraint, not assumed safe:** on the 600px-tall + > aarch64/riscv64 screens, `600 − 96 = 504px` remains for CANVAS + gap. That's only 24px of + > slack over the 480px minimum — a generous gap choice in 4.4n (e.g. anything over ~24px) + > would fail 4.4o's fit check. **4.4n's gap must stay ≤ 24px on the small architectures**, + > flagged here explicitly so it isn't discovered as a surprise failure two items later. amd64 + > (800px tall) has no such pressure (`800 − 96 = 704px` for CANVAS + gap). + - [ ] **4.4n — CANVAS rectangle definition, per architecture.** Screen height (4.4l) minus REPL strip height (4.4m) minus the small fixed gap (exact pixel value chosen here) between CANVAS and the strip.