§H.12 step 20: CH-REQUEST initiator-only gate (MY-CH-ID)
Added VARIABLE MY-CH-ID to messaging.4th (fail-closed -1 default) and set it per-VM in hermes/init.4th and artemis/init.4th. CH-REQUEST now refuses if the caller-supplied 'from' doesn't match the calling VM's own id, closing a real spoofing gap found while implementing this. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QgooKd5hJNtTYqB6CyK5f9
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
7d53344875
commit
cb6e079a73
+16
-2
@@ -4140,8 +4140,22 @@ work, not new invention.
|
|||||||
to `ok>` (amd64/aarch64/riscv64), each run in the foreground.
|
to `ok>` (amd64/aarch64/riscv64), each run in the foreground.
|
||||||
|
|
||||||
**Phase 7 — Message card gate + `ELEVATE-REQUEST` (H.8)**
|
**Phase 7 — Message card gate + `ELEVATE-REQUEST` (H.8)**
|
||||||
- [ ] **20.** Add the initiator-only ACL gate at `CH-REQUEST`'s entry point
|
- [x] **20. DONE 2026-09-03.** Found a real gap before writing this: `CH-REQUEST`'s `from`
|
||||||
(default-permissive baseline, real hook point established).
|
parameter is a small numeric messaging "member id" (0/1/2 = Hera/Hermes/Artemis, per
|
||||||
|
`VM-NAMES-INIT`), but no canonical "this is my own id" fact existed anywhere — each VM's
|
||||||
|
init capsule just hardcoded numbers ad hoc for `CH-ADD-MBR`. Added `VARIABLE MY-CH-ID`
|
||||||
|
(`capsules/common/messaging.4th`, defaults to `-1` sentinel in `MSG-CD-INIT`, meaning
|
||||||
|
fail-closed until a VM sets its own), each VM's own init capsule sets it right after
|
||||||
|
`MSG-CD-INIT` (`1 MY-CH-ID !` in `hermes/init.4th`, `2 MY-CH-ID !` in `artemis/init.4th`
|
||||||
|
— Hera doesn't currently load `messaging.4th` at all, so nothing to set there). `CH-REQUEST`
|
||||||
|
now refuses (drops the whole stack frame) unless the caller-supplied `from` matches
|
||||||
|
`MY-CH-ID @` — stops a session from posting a commune request while claiming to be a
|
||||||
|
different VM. Passed `mkcapsule --lint` cleanly (caught and fixed two real violations along
|
||||||
|
the way: comment lines over the 64-char limit, and `MSG-CD-INIT` exceeding the 16-content-
|
||||||
|
line cap after the addition — merged two init lines onto one). Verified 3-arch boot to `ok>`
|
||||||
|
(amd64/aarch64/riscv64, each in the foreground); confirmed via the amd64 log that both
|
||||||
|
Hermes's and Artemis's `PARITY:BIRTH` still succeed (their init capsules, including the new
|
||||||
|
lines, compile and run cleanly).
|
||||||
- [ ] **21.** Define `ELEVATE-REQUEST` and a minimal real handler checking the eligibility
|
- [ ] **21.** Define `ELEVATE-REQUEST` and a minimal real handler checking the eligibility
|
||||||
list, granting via `ACL-ALLOW!`/`ACL-TTL!` on match.
|
list, granting via `ACL-ALLOW!`/`ACL-TTL!` on match.
|
||||||
- [ ] **22.** Add the FORTH entrypoint a session actually calls to send one.
|
- [ ] **22.** Add the FORTH entrypoint a session actually calls to send one.
|
||||||
|
|||||||
+92
-92
@@ -1,5 +1,5 @@
|
|||||||
# Capsule Block Manifest — Auto-generated
|
# Capsule Block Manifest — Auto-generated
|
||||||
<!-- Generated by mkcapsule --manifest 2026-09-03T15:36:04Z -->
|
<!-- Generated by mkcapsule --manifest 2026-09-03T15:52:36Z -->
|
||||||
<!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. -->
|
<!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. -->
|
||||||
<!-- Hand-written justifications and immutability notes live -->
|
<!-- Hand-written justifications and immutability notes live -->
|
||||||
<!-- in MANIFEST.md alongside this auto-generated index. -->
|
<!-- in MANIFEST.md alongside this auto-generated index. -->
|
||||||
@@ -9,15 +9,15 @@
|
|||||||
| Capsule | Blocks claimed | xxHash64 | Signed |
|
| Capsule | Blocks claimed | xxHash64 | Signed |
|
||||||
|---------|----------------|----------|--------|
|
|---------|----------------|----------|--------|
|
||||||
| `ACL.4th` | 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4015 | `0xd781d22148ff171d` | yes |
|
| `ACL.4th` | 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4015 | `0xd781d22148ff171d` | 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 | `0xfe6e570467368153` | 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 | `0x90208e9ab5ae0070` | yes |
|
||||||
| `block-acl.4th` | 4019, 4020 | `0xf5eab0544b962dfa` | yes |
|
| `block-acl.4th` | 4019, 4020 | `0xf5eab0544b962dfa` | 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 | `0x892fd1c86d8c175e` | 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 | `0x000bef369e84a1aa` | yes |
|
||||||
| `common:msg.4th` | 4055 | `0x850a0382344ea6c4` | yes |
|
| `common:msg.4th` | 4055 | `0x850a0382344ea6c4` | yes |
|
||||||
| `doe-campaign.4th` | 4060, 4061, 4062, 4063, 4064, 4065 | `0x3d4549142d91ec20` | yes |
|
| `doe-campaign.4th` | 4060, 4061, 4062, 4063, 4064, 4065 | `0x3d4549142d91ec20` | yes |
|
||||||
| `doe.4th` | 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107 | `0xf154616d248e861f` | yes |
|
| `doe.4th` | 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107 | `0xf154616d248e861f` | yes |
|
||||||
| `fabric.4th` | 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 5000, 5001, 5002 | `0x9b1d061339cea98d` | yes |
|
| `fabric.4th` | 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 5000, 5001, 5002 | `0x9b1d061339cea98d` | yes |
|
||||||
| `font.4th` | 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985 | `0x720792b4fc758156` | yes |
|
| `font.4th` | 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985 | `0x720792b4fc758156` | yes |
|
||||||
| `hermes:init.4th` | 4153, 4855, 5116 | `0x9d6119b69d4113af` | yes |
|
| `hermes:init.4th` | 4153, 4855, 5116 | `0x7d4ab35a4d3ffc0c` | yes |
|
||||||
| `init-0.4th` | 2200, 2201 | `0xd0a9550baf786bb3` | yes |
|
| `init-0.4th` | 2200, 2201 | `0xd0a9550baf786bb3` | yes |
|
||||||
| `init-1.4th` | 4406, 4415, 4425, 4435 | `0x63e251adb0a03613` | yes |
|
| `init-1.4th` | 4406, 4415, 4425, 4435 | `0x63e251adb0a03613` | yes |
|
||||||
| `init-2.4th` | 4506, 4515, 4525, 4535, 4545 | `0xf113b3d0bcccae47` | yes |
|
| `init-2.4th` | 4506, 4515, 4525, 4535, 4545 | `0xf113b3d0bcccae47` | yes |
|
||||||
@@ -118,52 +118,52 @@
|
|||||||
| 4063 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
|
| 4063 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
|
||||||
| 4064 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
|
| 4064 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
|
||||||
| 4065 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
|
| 4065 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
|
||||||
| 4110 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4110 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4111 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4111 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4112 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4112 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4113 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4113 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4122 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4122 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4123 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4123 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4124 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4124 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4125 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4125 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4126 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4126 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4127 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4127 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4128 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4128 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4129 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4129 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4130 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4130 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4131 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4131 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4132 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4132 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4133 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4133 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4134 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4134 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4135 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4135 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4136 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4136 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4137 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4137 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4138 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4138 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4139 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4139 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4140 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4140 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4141 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4141 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4153 | `hermes:init.4th` | `0x9d6119b69d4113af` | ok |
|
| 4153 | `hermes:init.4th` | `0x7d4ab35a4d3ffc0c` | ok |
|
||||||
| 4160 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4160 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4161 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4161 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4162 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4162 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4163 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4163 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4164 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4164 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4165 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4165 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4166 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4166 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4167 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4167 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4168 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4168 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4169 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4169 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4170 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4170 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4171 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4171 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4172 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4172 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4173 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4173 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4174 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4174 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4177 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4177 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4178 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4178 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4179 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4179 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4180 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4180 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4181 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4181 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4182 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4182 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4200 | `user-font-demo.4th` | `0xce1fd7d1b581a56d` | ok |
|
| 4200 | `user-font-demo.4th` | `0xce1fd7d1b581a56d` | ok |
|
||||||
| 4201 | `user-font-demo.4th` | `0xce1fd7d1b581a56d` | ok |
|
| 4201 | `user-font-demo.4th` | `0xce1fd7d1b581a56d` | ok |
|
||||||
| 4202 | `user-font-demo.4th` | `0xce1fd7d1b581a56d` | ok |
|
| 4202 | `user-font-demo.4th` | `0xce1fd7d1b581a56d` | ok |
|
||||||
@@ -203,11 +203,11 @@
|
|||||||
| 4840 | `init-l8-transition.4th` | `0xbcc1a81976f0a4c9` | ok |
|
| 4840 | `init-l8-transition.4th` | `0xbcc1a81976f0a4c9` | ok |
|
||||||
| 4841 | `init-l8-transition.4th` | `0xbcc1a81976f0a4c9` | ok |
|
| 4841 | `init-l8-transition.4th` | `0xbcc1a81976f0a4c9` | ok |
|
||||||
| 4842 | `init-l8-transition.4th` | `0xbcc1a81976f0a4c9` | ok |
|
| 4842 | `init-l8-transition.4th` | `0xbcc1a81976f0a4c9` | ok |
|
||||||
| 4851 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4851 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4852 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4852 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4853 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4853 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4854 | `artemis:init.4th` | `0xfe6e570467368153` | ok |
|
| 4854 | `artemis:init.4th` | `0x90208e9ab5ae0070` | ok |
|
||||||
| 4855 | `hermes:init.4th` | `0x9d6119b69d4113af` | ok |
|
| 4855 | `hermes:init.4th` | `0x7d4ab35a4d3ffc0c` | ok |
|
||||||
| 4900 | `fabric.4th` | `0x9b1d061339cea98d` | ok |
|
| 4900 | `fabric.4th` | `0x9b1d061339cea98d` | ok |
|
||||||
| 4901 | `fabric.4th` | `0x9b1d061339cea98d` | ok |
|
| 4901 | `fabric.4th` | `0x9b1d061339cea98d` | ok |
|
||||||
| 4902 | `fabric.4th` | `0x9b1d061339cea98d` | ok |
|
| 4902 | `fabric.4th` | `0x9b1d061339cea98d` | ok |
|
||||||
@@ -297,42 +297,42 @@
|
|||||||
| 5000 | `fabric.4th` | `0x9b1d061339cea98d` | ok |
|
| 5000 | `fabric.4th` | `0x9b1d061339cea98d` | ok |
|
||||||
| 5001 | `fabric.4th` | `0x9b1d061339cea98d` | ok |
|
| 5001 | `fabric.4th` | `0x9b1d061339cea98d` | ok |
|
||||||
| 5002 | `fabric.4th` | `0x9b1d061339cea98d` | ok |
|
| 5002 | `fabric.4th` | `0x9b1d061339cea98d` | ok |
|
||||||
| 5003 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5003 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5004 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5004 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5005 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5005 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5006 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5006 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5007 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5007 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5008 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5008 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5009 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5009 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5010 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5010 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5011 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5011 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5012 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5012 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5013 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5013 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5014 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5014 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5015 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5015 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5016 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5016 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5017 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5017 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5018 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5018 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5019 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5019 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5020 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5020 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5021 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5021 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5022 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5022 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5023 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5023 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5024 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5024 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5025 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5025 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5026 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5026 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5027 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5027 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5028 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5028 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5029 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5029 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5030 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5030 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5031 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5031 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5032 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5032 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5033 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5033 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5034 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5034 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5035 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5035 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5036 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5036 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5037 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5037 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5038 | `common:messaging.4th` | `0x892fd1c86d8c175e` | ok |
|
| 5038 | `common:messaging.4th` | `0x000bef369e84a1aa` | ok |
|
||||||
| 5100 | `turtle.4th` | `0x4d470418ca543365` | ok |
|
| 5100 | `turtle.4th` | `0x4d470418ca543365` | ok |
|
||||||
| 5101 | `turtle.4th` | `0x4d470418ca543365` | ok |
|
| 5101 | `turtle.4th` | `0x4d470418ca543365` | ok |
|
||||||
| 5102 | `turtle.4th` | `0x4d470418ca543365` | ok |
|
| 5102 | `turtle.4th` | `0x4d470418ca543365` | ok |
|
||||||
@@ -349,7 +349,7 @@
|
|||||||
| 5113 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok |
|
| 5113 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok |
|
||||||
| 5114 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok |
|
| 5114 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok |
|
||||||
| 5115 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok |
|
| 5115 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok |
|
||||||
| 5116 | `hermes:init.4th` | `0x9d6119b69d4113af` | ok |
|
| 5116 | `hermes:init.4th` | `0x7d4ab35a4d3ffc0c` | ok |
|
||||||
|
|
||||||
## Conflicts
|
## Conflicts
|
||||||
|
|
||||||
|
|||||||
@@ -497,5 +497,6 @@ Block 4854
|
|||||||
( INIT). Hermes always exists by Artemis's birth. )
|
( INIT). Hermes always exists by Artemis's birth. )
|
||||||
S" common:messaging.4th" EXEC
|
S" common:messaging.4th" EXEC
|
||||||
MSG-CD-INIT
|
MSG-CD-INIT
|
||||||
|
2 MY-CH-ID !
|
||||||
S" 2 COMMON-CH @ CH-ADD-MBR" S" Hermes" VM-EXEC
|
S" 2 COMMON-CH @ CH-ADD-MBR" S" Hermes" VM-EXEC
|
||||||
STARTUP-BANNER
|
STARTUP-BANNER
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ VARIABLE MBR-FREE-HEAD
|
|||||||
VARIABLE MSG-SEQ
|
VARIABLE MSG-SEQ
|
||||||
VARIABLE CH-ACTIVE
|
VARIABLE CH-ACTIVE
|
||||||
VARIABLE COMMON-CH
|
VARIABLE COMMON-CH
|
||||||
|
VARIABLE MY-CH-ID
|
||||||
Block 5006
|
Block 5006
|
||||||
( VM name routing table -- same fixed table every VM loads, )
|
( VM name routing table -- same fixed table every VM loads, )
|
||||||
( so IDX>NAME resolves identically everywhere. )
|
( so IDX>NAME resolves identically everywhere. )
|
||||||
@@ -351,7 +352,10 @@ Block 5031
|
|||||||
: CH-MINT-ID ( owner -- id )
|
: CH-MINT-ID ( owner -- id )
|
||||||
MSG-SEQ @ 1+ DUP MSG-SEQ !
|
MSG-SEQ @ 1+ DUP MSG-SEQ !
|
||||||
SWAP 32 LSHIFT OR ;
|
SWAP 32 LSHIFT OR ;
|
||||||
|
( H.8: initiator-only gate. Refuses if `from` doesn't )
|
||||||
|
( match MY-CH-ID -- no posting while claiming another VM. )
|
||||||
: CH-REQUEST ( type from to paddr plen -- )
|
: CH-REQUEST ( type from to paddr plen -- )
|
||||||
|
3 PICK MY-CH-ID @ <> IF 2DROP 2DROP DROP EXIT THEN
|
||||||
COMMON-CH @ CH-STATE@ CH-OPEN = IF
|
COMMON-CH @ CH-STATE@ CH-OPEN = IF
|
||||||
COMMON-CH @ MSG-SEND
|
COMMON-CH @ MSG-SEND
|
||||||
ELSE 2DROP 2DROP DROP THEN ;
|
ELSE 2DROP 2DROP DROP THEN ;
|
||||||
@@ -385,7 +389,7 @@ Block 5033
|
|||||||
MBR-INIT-FREE
|
MBR-INIT-FREE
|
||||||
0 MSG-SEQ !
|
0 MSG-SEQ !
|
||||||
0 MSG-LAST-MSG !
|
0 MSG-LAST-MSG !
|
||||||
0 CH-ACTIVE !
|
0 CH-ACTIVE ! -1 MY-CH-ID !
|
||||||
COMMON-INIT
|
COMMON-INIT
|
||||||
VM-NAMES-INIT ;
|
VM-NAMES-INIT ;
|
||||||
Block 5034
|
Block 5034
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ Block 5116
|
|||||||
( VM that doesn't exist yet at Hera's own birth. )
|
( VM that doesn't exist yet at Hera's own birth. )
|
||||||
S" common:messaging.4th" EXEC
|
S" common:messaging.4th" EXEC
|
||||||
MSG-CD-INIT
|
MSG-CD-INIT
|
||||||
|
1 MY-CH-ID !
|
||||||
S" lib.4th" EXEC
|
S" lib.4th" EXEC
|
||||||
1 COMMON-CH @ CH-ADD-MBR
|
1 COMMON-CH @ CH-ADD-MBR
|
||||||
0 COMMON-CH @ CH-ADD-MBR
|
0 COMMON-CH @ CH-ADD-MBR
|
||||||
|
|||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user