Migrate Hera->Artemis storage-attach to a real message round-trip
Build / build-aarch64-iso (push) Waiting to run
Build / build-amd64-iso (push) Waiting to run
Build / build-riscv64-img (push) Waiting to run

Hera still polls xHCI and sig-checks attached drives, but the storage
registration step (blk_subsys_attach_device(), now wrapped as the
BLK-ATTACH primitive) moves to Artemis's own dictionary, reached via
HERA-BLK-ATTACH-REQ/BLK-ATTACH-ACK (VM-EXEC, since Hera can't load her
own messaging.4th -- see the doc comment in repl.c). Identity birth
(Zuse genesis / WIREBIND) is deferred until the ack confirms storage
actually succeeded, instead of running synchronously underneath a
storage call that might fail ("wait for ack, safer for identity data").

Caught and fixed a real bug live during acceptance testing: Artemis's
ACK-APPEND-NUM fed a single-cell value into <# #S #> (which expects a
double-cell pair), causing a stack underflow the first time
HERA-BLK-ATTACH-REQ ran. Fixed with the same `0 SWAP` convention every
other numeric-append helper in this codebase already uses.

Verified booting clean to (zuse) ok> with no VM-EXEC errors on all
three architectures (amd64/aarch64/riscv64).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ec88YKxxhZGG1RNnune78
This commit is contained in:
Robert Allan James
2026-09-07 21:22:04 -04:00
co-authored by Claude Sonnet 5
parent c4f94c409f
commit 63b8b3bc29
25 changed files with 149357 additions and 125 deletions
+94 -90
View File
@@ -1,5 +1,5 @@
# Capsule Block Manifest — Auto-generated
<!-- Generated by mkcapsule --manifest 2026-09-07T19:31:34Z -->
<!-- Generated by mkcapsule --manifest 2026-09-08T01:19:50Z -->
<!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. -->
<!-- Hand-written justifications and immutability notes live -->
<!-- in MANIFEST.md alongside this auto-generated index. -->
@@ -10,9 +10,9 @@
|---------|----------------|----------|--------|
| `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 |
| `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 | `0x1bb1886fc961c152` | 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 | `0x9cb26fa2d67465db` | 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 | `0x5cfb02a42f4a8323` | yes |
| `common:msg.4th` | 4055 | `0x850a0382344ea6c4` | yes |
| `doe-campaign.4th` | 4060, 4061, 4062, 4063, 4064, 4065 | `0x3d4549142d91ec20` | yes |
| `doe.4th` | 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107 | `0xf154616d248e861f` | yes |
@@ -147,52 +147,52 @@
| 4063 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
| 4064 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
| 4065 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
| 4110 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4111 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4112 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4113 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4122 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4123 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4124 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4125 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4126 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4127 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4128 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4129 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4130 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4131 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4132 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4133 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4134 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4135 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4136 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4137 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4138 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4139 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4140 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4141 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4110 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4111 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4112 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4113 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4122 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4123 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4124 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4125 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4126 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4127 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4128 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4129 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4130 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4131 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4132 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4133 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4134 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4135 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4136 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4137 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4138 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4139 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4140 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4141 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4153 | `hermes:init.4th` | `0x2df61924448a6812` | ok |
| 4160 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4161 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4162 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4163 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4164 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4165 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4166 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4167 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4168 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4169 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4170 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4171 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4172 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4173 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4174 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4177 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4178 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4179 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4180 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4181 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4182 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4160 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4161 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4162 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4163 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4164 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4165 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4166 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4167 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4168 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4169 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4170 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4171 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4172 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4173 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4174 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4177 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4178 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4179 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4180 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4181 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4182 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4200 | `user-font-demo.4th` | `0xce1fd7d1b581a56d` | ok |
| 4201 | `user-font-demo.4th` | `0xce1fd7d1b581a56d` | ok |
| 4202 | `user-font-demo.4th` | `0xce1fd7d1b581a56d` | ok |
@@ -232,11 +232,14 @@
| 4840 | `init-l8-transition.4th` | `0xbcc1a81976f0a4c9` | ok |
| 4841 | `init-l8-transition.4th` | `0xbcc1a81976f0a4c9` | ok |
| 4842 | `init-l8-transition.4th` | `0xbcc1a81976f0a4c9` | ok |
| 4851 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4852 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4853 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4854 | `artemis:init.4th` | `0x1bb1886fc961c152` | ok |
| 4851 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4852 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4853 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4854 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4855 | `hermes:init.4th` | `0x2df61924448a6812` | ok |
| 4856 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4857 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4858 | `artemis:init.4th` | `0xac215ecb873c4db3` | ok |
| 4900 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4901 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 4902 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
@@ -326,44 +329,45 @@
| 5000 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 5001 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 5002 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 5003 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5004 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5005 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5006 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5007 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5008 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5009 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5010 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5011 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5012 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5013 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5014 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5015 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5016 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5017 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5018 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5019 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5020 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5021 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5022 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5023 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5024 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5025 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5026 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5027 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5028 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5029 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5030 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5031 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5032 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5033 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5034 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5035 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5036 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5037 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5038 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5039 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5040 | `common:messaging.4th` | `0x9cb26fa2d67465db` | ok |
| 5003 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5004 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5005 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5006 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5007 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5008 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5009 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5010 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5011 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5012 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5013 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5014 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5015 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5016 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5017 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5018 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5019 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5020 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5021 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5022 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5023 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5024 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5025 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5026 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5027 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5028 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5029 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5030 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5031 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5032 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5033 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5034 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5035 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5036 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5037 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5038 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5039 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5040 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5041 | `common:messaging.4th` | `0x5cfb02a42f4a8323` | ok |
| 5100 | `turtle.4th` | `0x4d470418ca543365` | ok |
| 5101 | `turtle.4th` | `0x4d470418ca543365` | ok |
| 5102 | `turtle.4th` | `0x4d470418ca543365` | ok |
+37
View File
@@ -500,3 +500,40 @@ MSG-CD-INIT
2 MY-CH-ID !
S" 2 COMMON-CH @ CH-ADD-MBR" S" Hermes" VM-EXEC
STARTUP-BANNER
Block 4856
( Storage-attach ack builder. Hera sends "<dev-addr> )
( HERA-BLK-ATTACH-REQ"; reply is "<dev-addr> <ok?> )
( BLK-ATTACH-ACK" so identity birth only proceeds once )
( storage is confirmed (repl.c's BLK-ATTACH-ACK). Bob, )
( 2026-09-07. )
CREATE ATTACH-ACK-BUF 64 ALLOT
VARIABLE ATTACH-ACK-LEN
: ACK-APPEND ( src-addr len -- )
DUP >R
ATTACH-ACK-BUF ATTACH-ACK-LEN @ +
SWAP CMOVE
ATTACH-ACK-LEN @ R> + ATTACH-ACK-LEN ! ;
Block 4857
: ACK-APPEND-CHAR ( char -- )
ATTACH-ACK-BUF ATTACH-ACK-LEN @ + C!
ATTACH-ACK-LEN @ 1+ ATTACH-ACK-LEN ! ;
: ACK-APPEND-NUM ( n -- )
0 SWAP <# #S #> ACK-APPEND ;
Block 4858
( HERA-BLK-ATTACH-REQ ( dev-addr -- ): VM-EXEC'd by MSG- )
( DELIVER when Hera's request arrives. Runs BLK-ATTACH on )
( Artemis's own dictionary (real ACL gating, same as any )
( other message payload), then replies to Hera (idx 0). )
: HERA-BLK-ATTACH-REQ ( dev-addr -- )
0 ATTACH-ACK-LEN !
DUP ACK-APPEND-NUM
BL ACK-APPEND-CHAR
DUP BLK-ATTACH ACK-APPEND-NUM
DROP
BL ACK-APPEND-CHAR
S" BLK-ATTACH-ACK" ACK-APPEND
BLK-ATTACH-EVENT 2 0 ATTACH-ACK-BUF
ATTACH-ACK-LEN @ 0 MSG-SEND ;
+11
View File
@@ -23,6 +23,17 @@ Block 5038
( carried to Zuse via CH-REQUEST. See SEND-ELEVATE- )
( REQUEST/ELEVATE-GRANT below and in zuse-eligibility.4th. )
8 CONSTANT ELEVATE-REQUEST
Block 5041
( BLK-ATTACH-EVENT: Hera -> Artemis storage-attach request, )
( and Artemis -> Hera ack. Payload is FORTH text, executed )
( by the receiver, same as every other message here -- see )
( HERA-BLK-ATTACH-REQ (artemis:init.4th) and BLK-ATTACH-ACK )
( (repl.c). Messaging-migration decision, Bob, 2026-09-07: )
( Hera keeps polling/sig-checking; the storage-registration )
( step (blk_subsys_attach_device) moves to a real message )
( instead of a direct C call, so identity birth only )
( proceeds once Artemis confirms storage succeeded. )
9 CONSTANT BLK-ATTACH-EVENT
Block 5004
( StadiumBehaviour tags, match stadium.h's enum )
0 CONSTANT SB-MIGRATE