FABRIC-3.md: BMAPFMT gets FORTH wrappers, design fully closed
Decided: yes, FORTH wrappers for the block-card ACL primitives, mirroring the word-level ACL split (raw C accessors, policy composed in FORTH). zuse_cert_seed's C-only precedent doesn't apply -- that's key material, block ACL fields are ordinary ACL state like DictEntry's. BMAPFMT's field/API design (owner_fp, acl_allow, acl_ttl, flags bits, FORTH wrappers) is now fully decided across this and the prior three passes -- only the actual code edit remains. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
ce1618dcd8
commit
197ff03963
+21
-6
@@ -1796,10 +1796,20 @@ pubkey-based model — flagged, not silently reused.
|
||||
mechanism as the word card, gated the same way by Zuse's eligibility list (§H.5) — see the
|
||||
`acl_ttl` field added above. Also resolved same day: the `flags` bit values above.
|
||||
|
||||
**Not yet scoped (deferred within this node):** whether `blk_get_meta()`/`blk_set_meta()`
|
||||
need new FORTH word wrappers or stay C-only like `zuse_cert_seed`'s "no FORTH access"
|
||||
precedent; the actual repurposing edit to `block_subsystem.h`/`.c` itself — this pass (plus
|
||||
the `acl_ttl` pass before it) produced the full field design, not the code change.
|
||||
**Decided 2026-09-02: yes, FORTH wrappers.** Mirrors the existing word-level ACL split
|
||||
exactly — raw C accessors (e.g. `BLK-ACL-ALLOW@`/`!`, `BLK-ACL-TTL@`/`!`, `BLK-OWNER@`), actual
|
||||
elevation/policy logic composed in FORTH on top, presumably a new capsule alongside `ACL.4th`
|
||||
— per this project's own standing hard rule ("ACL policy belongs in `ACL.4th`, never in C...
|
||||
Compose in FORTH first"). `zuse_cert_seed`'s "no FORTH access" is a different case, not a
|
||||
counter-precedent: that field is private signing-key material, walled off from FORTH for
|
||||
key-material-specific reasons — block ACL fields (`owner_fp`, `acl_allow`, `acl_ttl`, `flags`
|
||||
bits) are ordinary ACL state, same category as `DictEntry`'s `acl_allow`/`acl_ttl` (which
|
||||
already have FORTH accessors), not key material.
|
||||
|
||||
**Only remaining open item on this whole node**: the actual code edit to
|
||||
`block_subsystem.h`/`.c` plus the new FORTH-wrapper primitives and policy capsule — field/API
|
||||
design is now fully decided across this pass and the two before it (`acl_ttl`, `flags` bit
|
||||
values, this FORTH-wrapper decision), nothing implemented yet.
|
||||
|
||||
### F.5 — `WIREBIND` (breadcrumb only — followed into `RUNCAP` instead, 2026-08-27)
|
||||
|
||||
@@ -3688,8 +3698,13 @@ doubling as block state) uses orthogonal bits, not a mutually-exclusive enum. St
|
||||
bit 0 = `CLAIMED`, bit 1 = `MIGRATING` (serves `MIGSM`), bit 2 = `STALE` (serves `UNCLEAN`),
|
||||
remaining 61 bits reserved.
|
||||
|
||||
`BMAPFMT`'s field design (TTL + flags bits) is now complete but **the code change was never
|
||||
made** — this refactor is presumably where it finally lands.
|
||||
**FORTH-wrapper question decided 2026-09-02: yes.** Mirrors the word-level ACL split — raw C
|
||||
accessors (`BLK-ACL-ALLOW@`/`!`, `BLK-ACL-TTL@`/`!`, `BLK-OWNER@`), policy composed in FORTH on
|
||||
top. `zuse_cert_seed`'s C-only precedent doesn't apply — that's key material, block ACL fields
|
||||
are ordinary ACL state like `DictEntry`'s.
|
||||
|
||||
`BMAPFMT`'s field/API design (TTL + flags bits + FORTH wrappers) is now fully complete but
|
||||
**the code change was never made** — this refactor is presumably where it finally lands.
|
||||
|
||||
### H.7 — Messaging protocol groundwork (prerequisite to the message card)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user