FABRIC-3.md: add §I, consolidated live punch list of open items

Groups the 23 confirmed-still-open items from the 2026-09-03 stale-
checkbox audit (commit 403f53d) by subsystem instead of scattered
document chronology, each pointing back to its full original entry.
Doesn't replace §A/§B as historical record -- it's the live index;
closing an item here should also update its original location.

Two findings surfaced while writing this:
- The block-map first-touch allocation item's own described mechanism
  (blk_meta_t prev_block/next_block/chain_length) is stale -- those
  fields don't exist since §H.12's BMAPFMT rebuild; flagged for
  re-scoping against the current layout.
- EXPIRE (ACL)'s stated blocker ("Phase 8 doesn't exist yet") is now
  stale -- Phase 8 closed 2026-08-26/27 -- but the real remaining gaps
  (no zuse-session lifetime/logout, no Stadium generic ttl-reap
  mechanism) are narrower and still real, so it's flagged, not unblocked.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QgooKd5hJNtTYqB6CyK5f9
This commit is contained in:
Robert Allan James
2026-09-03 13:48:33 -04:00
co-authored by Claude Sonnet 5
parent 403f53d056
commit b16b54f5a8
+109
View File
@@ -4248,3 +4248,112 @@ work, not new invention.
**Excluded, per H.11's deferred items 1011**: VM card multi-owner support, live-console
`sudo`-style elevation, pre-signed capability tickets.
---
## I. Consolidated punch list — everything confirmed still genuinely open (2026-09-03)
§A through §H accumulated 34 unchecked (`- [ ]`) lines across five months of carry-forwards
from `FABRIC.md`/`FABRIC-2.md`, several of them stale — closed by later work in this document
or `FABRIC-2.md` but never reconciled back to the original checkbox. A full sweep (commit
`403f53d`, memory `project_fabric3_stale_checkbox_audit_20260903.md`) checked off 11 that were
already done, each with a `RETROACTIVELY CHECKED 2026-09-03` note citing real file:line
evidence in place. This section is what's left: the 23 confirmed still-open items, grouped by
subsystem instead of scattered across the document's chronology, each a one-line summary
pointing back to its full original entry (still there, unmodified, in §A/§B) for detail.
**This section doesn't replace §A/§B as the historical record — it's the live index.** When an
item here closes, check it here *and* at its original location with a matching note, the same
`RETROACTIVELY CHECKED`-style discipline the 2026-09-03 sweep used, so this list never drifts
stale the way the original carry-forwards did.
### I.1 — Console prompt chain (one real blocker, three downstream)
- [ ] **4.4s — `(user)` prompt segment.** Not started; the REPL prompt is still the fixed
`ok> `. This is the actual blocker for the three items below — nothing else stands between
them and closing. *(Full entry: §A, "From FABRIC-2.md §A — Blocked or scoped, not started.")*
- [ ] **4.3 — Console umbrella.** Open only because 4.4s is; everything else under it
(4.3.14.3.7f, 4.44.4ac) is already done. *(Same location as above.)*
- [ ] **1.11 — Dirty-event granularity.** Blocked on 4.3 by design (settled as part of the
console migration, not speculatively before it). *(Same location as above.)*
- [ ] **§17.4 — framebuffer utility's internal heat/decay dynamics.** Undesigned, blocked on
1.11 specifically (not "the framebuffer work" generally). *(Full entry: §A, "From
FABRIC-2.md §D — Design questions still genuinely open.")*
### I.2 — Block subsystem
- [ ] **First-touch allocation function** (identity pubkey + block count → claimed range).
**Re-scoping note added 2026-09-03**: the item's own text (last touched 2026-08-27) still
describes claims as scanning `blk_meta_t`'s `prev_block`/`next_block`/`chain_length` fields
— those fields no longer exist. `§H.12` steps 1213 (2026-09-03, this document) rebuilt
`blk_meta_t` for `BMAPFMT`: `owner_fp[8]`/`acl_allow`/`acl_ttl`/`flags` (bits `CLAIMED`/
`MIGRATING`/`STALE`), no chain-link fields at all. Whoever picks this up next should design
the claim/scan mechanism against the *current* layout, not the described one. *(Full entry:
§A, "From FABRIC-2.md §X, Milestone 3 — Block subsystem extensions.")*
- [ ] **Migration state machine** (states, transition triggers). Direction decided (ACL/
compudynamics-heat governs *when*; migration itself expected rare, not routine) but no state
machine designed. *(Same location as above.)*
### I.3 — Milestone 5 remainder (BINDSTEP)
- [ ] **`EJECT` / detach behavior.** Scoped 2026-08-27 (§F.10): flush via
`blk_vm_flush_all()`, reset the console's active VM if bound to the departing VM, then
`capsule_vm_kill()` (already complete). Needs one new piece of state `WIREBIND` must own —
which `VMUuid` is currently attached via the home-blocks USB path. Not built. *(Full entry:
§A, "From FABRIC-2.md §X, Milestone 5 — Console/VM key-match binding.")*
### I.4 — Milestone 6 remainder (PKI)
- [ ] **`MANIFEST_AUTO.md` signature-status column.** Investigated 2026-09-03, left unchecked
on purpose: this document's own Phase 8 close-out already redirected the underlying need to
`capsules/BLOCK_MAP.md`'s real `Signed` column instead — the goal is met, the literal file
this item names was never touched. Box stays open as an accurate "moot as worded" marker,
not a real remaining task. *(Full entry: §A, "From FABRIC-2.md §X, Milestone 6 — Kernel/
capsule PKI signing chain.")*
- [ ] **Magic-number content-type detection.** Not started — shared scope with Milestone 4's
foreign-drive check and Milestone 7 below. *(Same location as above.)*
### I.5 — Milestone 7 (contributor capsules / trust tiers) — nothing started
- [ ] Create `capsules/contrib/` (mechanically trivial once the real decision below is made).
- [ ] Add a `FLAG_CONTRIB` bit to `mkcapsule.c` (path-match, mirrors `FLAG_MAMA_INIT`).
- [ ] **Real open decision, not just an implementation gap**: which of the four spitballed
trust-tier directions (signature-authority tiers / block-namespace sandboxing / QEMU-vs-
real-hardware conditional enforcement) — none chosen.
- [ ] If block-namespace sandboxing is the choice: extend `mkcapsule`'s conflict-detection to
reject a `contrib/` capsule claiming blocks outside its reserved range.
*(Full entries: §A, "From FABRIC-2.md §X, Milestone 7 — Contributor capsules / trust
tiers.")*
### I.6 — Milestone 8 (real hardware boot) — requires a physical machine and a human present
Not verifiable from source inspection at all; no evidence in this repo that a physical boot
has ever happened, and sections as recent as §G.1/§G.2 still say "real hardware untested."
Eight sequential steps, none done: build a fresh ISO, identify the target USB device path,
flash it (`dd`, with an open question on whether `isohybrid` is needed first), physically boot
the machine (Secure Boot handling unknown until tried), decide an observation method with no
serial-socket log available, confirm POST reaches the same 1012/0/0 result, confirm `ok>` and
a basic command work identically to QEMU, and document the outcome. *(Full entries: §A, "From
FABRIC-2.md §X, Milestone 8 — Bare-metal boot from physical USB.")*
### I.7 — Milestone 9 (networking / capsule distribution) — correctly still deferred
- [ ] Explicitly deferred until Milestone 7 closes — its own precondition isn't met, nothing
to do here yet. *(Full entry: §A, "From FABRIC-2.md §X, Milestone 9.")*
### I.8 — `EXPIRE` (ACL) — deferred, but its stated blocker is now stale
- [ ] Decided 2026-08-26 (§B): a zuse superuser session, not a per-word ACL entry, is the
right unit to admit as a Stadium patron and reap on expiry — but explicitly deferred "until
Phase 8 (PKI/zuse session minting) lands," since building a reap mechanism with nothing real
to feed it would be speculative infrastructure ahead of its only consumer.
**Flag, not a fix, 2026-09-03**: that stated precondition is now stale. Phase 8 (Zuse
identity/PKI) closed 2026-08-26/27 — real entropy → Ed25519 keygen → thumbdrive-resident
identity → `ZUSE-AUTHENTICATE`/`zuse_session` all exist and work
(`.claude/CLAUDE.md`'s own ACL section still lists Phase 8 as "the open item," which is
itself now stale — see `project_phase8_milestone6_complete.md`). This does **not** mean
`EXPIRE` is ready to build: a zuse session today has no bounded lifetime or logout at
all (`zuse_session` is set once by `ACL-ZUSE-BOOT` and never cleared), and Stadium's own
generic ttl-decrement/reap mechanism still doesn't exist either — both real gaps, narrower
than "Phase 8 doesn't exist," worth re-scoping against before treating this as unblocked.
*(Full entry: §B, "From FABRIC-2.md §... — EXPIRE (ACL).")*