From 838dcab5d23a50d5593ba2216272a742228ac95c Mon Sep 17 00:00:00 2001 From: Robert Allan James Date: Tue, 11 Aug 2026 07:31:15 -0400 Subject: [PATCH] FABRIC.md: lock REPL prompt format and colors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Punch list §25 item 4.4 complete. Design-only, no code. Format [VM name] ok>; ok> reuses existing FB_ANSI_PALETTE[14] bright cyan (0x55FFFF); [VM name] gets a fresh literal orange (0xFFA500), since no orange exists in the ANSI palette. Verified: no implementation, just literal values checked against the existing codebase constants and written into FABRIC.md for 4.4a/4.4c to consume. Co-Authored-By: Claude Sonnet 5 --- FABRIC.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/FABRIC.md b/FABRIC.md index a76e459..7f149c8 100644 --- a/FABRIC.md +++ b/FABRIC.md @@ -4980,7 +4980,7 @@ document and committing that amendment as its own item.* *and keyboard work above. 4.5 (renumbered from 4.4, 2026-08-11) is unaffected by anything* *added above this marker.)* -- [ ] **4.4 — Design-only: lock the prompt format and color values.** No code. Write down the +- [x] **4.4 — Design-only: lock the prompt format and color values.** No code. Write down the exact target string — `[VM name] ok>` for now, `(user)` added later per 4.4n — and the exact color values for the bracketed VM name and for `ok>` against [`repl-mockup.png`](repl-mockup.png). Captain Bob's spoken values (orange, cyan) were both @@ -4990,6 +4990,20 @@ document and committing that amendment as its own item.* document, referencing the mockup. *Refs:* §25.5, §27.8. + > **DONE 2026-08-11.** Format: `[VM name] ok>` — e.g. `[Hera] ok>`, `[Hermes] ok>`. The + > entire bracketed substring (brackets included) renders in one color; `ok>` (including its + > trailing space) renders in a second, distinct color. Values chosen with Captain Bob, + > checked against what already exists in the codebase rather than invented cold: + > - **`ok>`: bright cyan, `0x55FFFF`.** Reuses `FB_ANSI_PALETTE[14]` + > (`framebuffer.c:30`) as-is — no new constant, stays consistent with the ANSI palette the + > rest of the console already uses. + > - **`[VM name]`: standard web orange, `0xFFA500`.** No orange exists anywhere in the + > classic 16-color ANSI palette (checked — `FB_ANSI_PALETTE` has none), so this is a fresh + > literal value, not a reused constant. `TTF-TEXT`'s `color` argument is a raw RGB value + > (not an ANSI palette index), so this is not a constraint — any RGB is valid. + > These are literal `FB_RGB()`-equivalent values for 4.4a/4.4c to consume directly; no + > implementation performed by this item, per its own "no code" scope. + - [ ] **4.4a — Build `[VM name]` bracket text in the prompt, monochrome.** Replace the two existing, mutually inconsistent VM-identity conventions — `console.c`'s per-line `[Name]` prefix (`console_set_vm_name()`/`g_active_vm_name`, unaffected/out of scope for non-prompt