Phase 7 complete, closing out §H.12's punch list. MSG-DELIVER turned out to VM-EXEC payload text directly rather than dispatching by type, so the "handler" is ELEVATE-GRANT, a word the delivered text calls. New Hera-only C primitives (ZUSE-ELIGIBLE?, NAME>XT, ELEVATE-PUBKEY-UNPACK) stay plain and unconditional; capsules/zuse-eligibility.4th composes the actual eligibility check + ACL-ALLOW!/ACL-TTL! grant in FORTH. SEND-ELEVATE-REQUEST (common:messaging.4th) builds the payload text and sends it via the item-20-gated CH-REQUEST. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QgooKd5hJNtTYqB6CyK5f9
27 lines
985 B
Forth
27 lines
985 B
Forth
Block 4021
|
|
( zuse-eligibility.4th - H.5/H.8 elevation grant )
|
|
( C prims: ZUSE-ELIGIBILITY-ADD ZUSE-ELIGIBLE? )
|
|
( NAME>XT ELEVATE-PUBKEY-UNPACK )
|
|
( Policy word this file: ELEVATE-GRANT. Runs in )
|
|
( Hera's own dict -- delivered here by messaging.4th's )
|
|
( MSG-DELIVER via VM-EXEC when a session calls the )
|
|
( common:messaging.4th SEND-ELEVATE-REQUEST entrypoint. )
|
|
( FABRIC-3.md H.12 step 21, 2026-09-03. )
|
|
CREATE ELEVATE-PK-BUF 32 ALLOT
|
|
|
|
Block 4022
|
|
( ELEVATE-GRANT ( waddr wu pk0 pk1 pk2 pk3 -- ) )
|
|
( Reconstructs the caller's pubkey, checks Zuse's )
|
|
( eligibility list, and on match grants the named )
|
|
( word ACL-ALLOW!/ACL-TTL! via the same reused )
|
|
( ACL-TTL mechanism H.5 decided on. No grant, no )
|
|
( error, on any mismatch -- silent refusal. )
|
|
: ELEVATE-GRANT ( waddr wu pk0 pk1 pk2 pk3 -- )
|
|
ELEVATE-PK-BUF ELEVATE-PUBKEY-UNPACK
|
|
ELEVATE-PK-BUF ZUSE-ELIGIBLE? IF
|
|
NAME>XT DUP IF
|
|
1 OVER ACL-ALLOW!
|
|
ACL-BASE-TTL SWAP ACL-TTL!
|
|
ELSE DROP THEN
|
|
ELSE 2DROP THEN ;
|