Extend BIRTH/CAPSULE-BIRTH to all VMs symmetrically; flag a real std79 lockdown gap (FABRIC-3.md §XXV)
Scoping the workload-into-factorial design's placement-mode factor led to a real architectural improvement: rather than EXEC-ing a workload capsule into an already-running, ACL-locked identity's own persistent dictionary (filesystem-shaped, doesn't dodge the block- collision exposure just traced in §XXIV), a workload now runs as a fresh ephemeral child VM, BIRTH'd per trial and reaped after -- matching the project's own stated principle of automanagement over imposed policy. CAPSULE-BIRTH already passes vm->stadium_vm_id (who is birthing this VM) as the new child's parent, not a hardcoded Hera constant, confirmed by reading the C -- so a workload trial genuinely inherits the specific identity's own lineage when that identity does the birthing. Which surfaced a real premise: only Hera could call BIRTH/ CAPSULE-BIRTH at all (registered only in register_mama_forth_words(), confirmed directly, not part of the earlier §XX messaging-symmetry fix which deliberately kept this as one of her remaining privileges). Extended symmetrically now, agreed explicitly before touching code: - mama_forth_words.c: BIRTH and CAPSULE-BIRTH added to register_child_vm_words(), matching §XX's own pattern. - acl-std79.4th: ' BIRTH , ' CAPSULE-BIRTH , added to ACL-STD79-LIST (new block 4048) -- a deliberate, explicit, named exception to the lockdown's own "standard words only" guarantee, not a silent one. Symmetric registration alone can't weaken any lockdown on its own: ACL-LOCKDOWN-STD79 is allowlist-based, deny-by-default, so a newly registered word is auto-denied there unless explicitly added. Verified: clean build on all 3 architectures, zero new warnings. Hera's own dict_hash unchanged (expected); Hermes/Artemis show the same new dict_hash on all 3 architectures. Live-tested against a real attached std79-locked identity: CAPSULE-BIRTH executes correctly (returns vm_uuid_none() for a deliberately out-of-range capsule-id, zero fault, zero ACL denial). Found, and explicitly stopped short of fixing, a separate pre- existing gap while verifying the above: MSG-STATUS and MSG-K (messaging.4th words, not on the std79 allowlist) execute for a locked identity instead of being denied. ACL-LOCKDOWN-STD79 is confirmed to actually run; something more specific isn't reaching messaging.4th's dictionary entries. Root cause not traced -- needs its own investigation into vm_core.c's dictionary-link mechanics and whichever capsule actually loads messaging for these identities. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EXieurDfDSsDFdnSyusuWo
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
cd2fda4351
commit
3c2daf50d1
+28
-27
@@ -1,5 +1,5 @@
|
||||
# Capsule Block Manifest — Auto-generated
|
||||
<!-- Generated by mkcapsule --manifest 2026-09-13T01:55:21Z -->
|
||||
<!-- Generated by mkcapsule --manifest 2026-09-13T02:28:34Z -->
|
||||
<!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. -->
|
||||
<!-- Hand-written justifications and immutability notes live -->
|
||||
<!-- in MANIFEST.md alongside this auto-generated index. -->
|
||||
@@ -9,7 +9,7 @@
|
||||
| Capsule | Blocks claimed | xxHash64 | Signed |
|
||||
|---------|----------------|----------|--------|
|
||||
| `ACL.4th` | 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4015 | `0xd781d22148ff171d` | yes |
|
||||
| `acl-std79.4th` | 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047 | `0x5a622e41d1fd0bb9` | yes |
|
||||
| `acl-std79.4th` | 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048 | `0x773bf9209df191d1` | yes |
|
||||
| `artemis:init.4th` | 4110, 4111, 4112, 4113, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4177, 4178, 4179, 4180, 4181, 4182, 4851, 4852, 4853, 4854, 4856, 4857, 4858 | `0xac215ecb873c4db3` | yes |
|
||||
| `block-acl.4th` | 4019, 4020 | `0xf6cc2a59e3a6734e` | yes |
|
||||
| `common:messaging.4th` | 5003, 5004, 5005, 5006, 5007, 5008, 5009, 5010, 5011, 5012, 5013, 5014, 5015, 5016, 5017, 5018, 5019, 5020, 5021, 5022, 5023, 5024, 5025, 5026, 5027, 5028, 5029, 5030, 5031, 5032, 5033, 5034, 5035, 5036, 5037, 5038, 5039, 5040, 5041, 5042 | `0xedde53f6faed7355` | yes |
|
||||
@@ -114,31 +114,32 @@
|
||||
| 4020 | `block-acl.4th` | `0xf6cc2a59e3a6734e` | ok |
|
||||
| 4021 | `zuse-eligibility.4th` | `0x8b49c1bc1e01dc58` | ok |
|
||||
| 4022 | `zuse-eligibility.4th` | `0x8b49c1bc1e01dc58` | ok |
|
||||
| 4023 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4024 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4025 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4026 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4027 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4028 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4029 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4030 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4031 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4032 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4033 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4034 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4035 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4036 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4037 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4038 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4039 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4040 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4041 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4042 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4043 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4044 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4045 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4046 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4047 | `acl-std79.4th` | `0x5a622e41d1fd0bb9` | ok |
|
||||
| 4023 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4024 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4025 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4026 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4027 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4028 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4029 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4030 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4031 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4032 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4033 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4034 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4035 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4036 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4037 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4038 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4039 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4040 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4041 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4042 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4043 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4044 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4045 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4046 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4047 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4048 | `acl-std79.4th` | `0x773bf9209df191d1` | ok |
|
||||
| 4050 | `lib.4th` | `0x4b216635c359ef73` | ok |
|
||||
| 4055 | `common:msg.4th` | `0x850a0382344ea6c4` | ok |
|
||||
| 4060 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
|
||||
|
||||
Reference in New Issue
Block a user