§H.12 steps 7-9: thread real parent VMUuid through the birth call chain
Session.parent now comes from the actual birthing VM's own stadium_vm_id, not a hardcoded vm_uuid_hera(). Added a VMUuid parent parameter to capsule_birth_baby() and, one level up, to capsule_console_birth()/capsule_runcap_birth() (neither had a VM* in their own signature, but every caller did). Updated all 6 real call sites: BIRTH, CAPSULE-BIRTH, CONNECT-ARTEMIS, CONNECT-HERMES, RUNCAP-TEST, PAIR-TEST (mama_forth_words.c) and the console+user birth pair in capsule_wirebind_try_attach() (capsule_wirebind.c). Two functions had their vm parameter marked __attribute__((unused)), now genuinely used -- attribute removed. Steps 8 (Session.name from capsule name) and 9 (identity defaults to installed=0) were already satisfied by step 5's existing session_register() call and its identity-zeroing -- confirmed by inspection, no further code needed. Verified 3-arch boot to ok> (amd64/aarch64/riscv64). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
09998af999
commit
ed86a759e1
+21
-5
@@ -4001,11 +4001,27 @@ work, not new invention.
|
||||
comment and this entry.
|
||||
|
||||
**Phase 3 — Session fields wired at birth**
|
||||
- [ ] **7.** Populate `Session.parent` from the birthing VM's `stadium_vm_id`.
|
||||
- [ ] **8.** Populate `Session.name` from the capsule's own name string (already available at
|
||||
this point in `capsule_birth.c`).
|
||||
- [ ] **9.** Confirm `Session.identity` defaults to `installed=0` correctly (no behavior
|
||||
change expected yet).
|
||||
- [x] **7. DONE 2026-09-03, larger than one line — a real signature-threading pass.**
|
||||
`Session.parent` now comes from the actual birthing VM's own `stadium_vm_id`, not a
|
||||
hardcoded `vm_uuid_hera()`. This meant adding a `VMUuid parent` parameter to
|
||||
`capsule_birth_baby()` and, one level up, to `capsule_console_birth()` and
|
||||
`capsule_runcap_birth()` (neither had a `VM *` in their own signature, but every one of
|
||||
their callers did) — traced all 6 real call sites across `mama_forth_words.c` (4: `BIRTH`,
|
||||
`CAPSULE-BIRTH`, `CONNECT-ARTEMIS`, `CONNECT-HERMES`, plus `RUNCAP-TEST`/`PAIR-TEST` = 6
|
||||
total) and `capsule_wirebind.c` (2: console + user birth in
|
||||
`capsule_wirebind_try_attach()`), confirmed each has a real `VM *` (`vm`/`mama_vm`) in
|
||||
scope, and passed `vm->stadium_vm_id` through at every one. Two functions
|
||||
(`mama_word_connect_artemis`/`_hermes`) had their `vm` parameter marked
|
||||
`__attribute__((unused))`, now genuinely used — attribute removed. User explicitly chose
|
||||
this option (full threading) over leaving the earlier `vm_uuid_hera()` hardcode in place.
|
||||
- [x] **8. Already satisfied by step 5.** `session_register(vm_id, parent, capsule_name)`
|
||||
already passes the capsule's own name string — nothing further needed.
|
||||
- [x] **9. Confirmed by code inspection.** `session_register()` (step 2) zeroes `identity`
|
||||
unconditionally — `installed` reads 0 by construction, matching `VMIdentity`'s own
|
||||
documented default. No behavior change, as expected.
|
||||
|
||||
Verified 3-arch boot to `ok>` (amd64/aarch64/riscv64) for step 7's actual code changes,
|
||||
which also exercises 8 and 9 unchanged.
|
||||
|
||||
**Phase 4 — Creator-ceiling enforcement (H.3, birth-time snapshot)**
|
||||
- [ ] **10.** `dictionary_snapshot_acl_from_parent(child, parent)`: for each word also present
|
||||
|
||||
Reference in New Issue
Block a user