Milestone 6: BLOCK_MAP.md signature-status column

--manifest mode's file scan is a completely separate code path from
build mode (only ever walks .4th files, never the embedded PKI cert or
font capsule) -- extended it to accept the same optional --sign-key
<path> prefix build mode already has, factoring the key-loading code
into a shared load_sign_key(), so the manifest can report real
per-capsule signing status without touching or requiring a rebuild of
capsule_generated.c.

New "Signed" column on the capsule summary table: yes/no when
--sign-key was given, n/a (with an explanatory footnote) when it
wasn't -- never a bare blank that could be misread as "unsigned".
Makefile.starkernel's manifest-generation call site now passes the same
SIGN_KEY_ARGS the real build uses, so capsules/BLOCK_MAP.md reflects
this machine's actual signed state by default.

Verified: clean compile, BLOCK_MAP.md correctly shows "yes" for all 31
tracked capsules on a real signed build; a quick amd64 boot (no kernel
code touched, host tooling only) confirmed no regression.

This closes every open Milestone 6 item except magic-number
content-type detection (shared with Milestone 4, not started) and the
hard-refuse flip (deliberately deferred). Documented in FABRIC-3.md.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U14ET9CWAtbQMbYqomKgXd
This commit is contained in:
Robert Allan James
2026-08-26 21:43:50 -04:00
co-authored by Claude Sonnet 5
parent 2fc55f47e1
commit c640f99211
5 changed files with 9170 additions and 75 deletions
+21
View File
@@ -802,6 +802,27 @@ decisions get added here, not to `FABRIC-2.md`. Follow the same discipline `FABR
clean for a while, not bundled into this pass) and the `BLOCK_MAP.md` signature-status
column.
**`BLOCK_MAP.md` signature-status column, done 2026-08-26.** `--manifest` mode's file scan
(`manifest_file()`) is a completely separate code path from build mode's `process_file()` —
confirmed it only ever walks `.4th` files (never the embedded PKI cert or font capsule), and
the Makefile invokes `mkcapsule` twice per build for two different purposes (once to emit
`capsule_generated.c`, once for the manifest). Extended `--manifest` to accept the same
optional `--sign-key <path>` prefix as build mode (factored the key-loading code, previously
inline in build mode's arg parsing, into a shared `load_sign_key()` used by both) so the
manifest can report real per-capsule signing status without touching or requiring a rebuild
of `capsule_generated.c`. New `Signed` column on the capsule summary table: `yes`/`no` when
`--sign-key` was given, `n/a` (with an explanatory footnote) when it wasn't — never a bare
blank that could be misread as "unsigned." `Makefile.starkernel`'s manifest-generation call
site updated to pass the same `$(SIGN_KEY_ARGS)` the real build already uses, so
`capsules/BLOCK_MAP.md` reflects this machine's actual signed state by default. Verified:
clean compile, `capsules/BLOCK_MAP.md` correctly shows `yes` for all 31 tracked `.4th`
capsules on a real signed build; a quick amd64 boot (no kernel code touched by this step,
only host tooling) confirmed no regression, zero signature warnings, conservation intact.
**This closes every open item from FABRIC-2.md's original Milestone 6 punch list except
magic-number content-type detection (Section U item 14, shared with Milestone 4, not
started) and the hard-refuse flip (deliberately deferred).**
### From FABRIC-2.md §X, Milestone 7 — Contributor capsules / trust tiers
- [ ] Create the `capsules/contrib/` directory (mechanically trivial, matches existing