Add Artemis compudynamics implementation plan; add stress campaign fixture
The 30-replicate Artemis surface-stress campaign ran across all three architectures: 30 reps x 50 trials x 3 arches = 4500 trials, zero failures. The block_words.c stale-pointer cache-aliasing fix holds at scale. Adds ART-STRESS-CAMPAIGN (block 4174) plus ART-STRESS-REP rep-tagging in the CSV header/summary emitters, so a multi-replicate run is distinguishable in the serial log. Campaign auto-invoke is left enabled in block 4170 for now; Makefile.starkernel's QEMU boot deadlines stay at 12h to accommodate long-running experiments. Adds docs/working/architecture/ARTEMIS-COMPUDYNAMICS-IMPLEMENTATION-PLAN-20260802.md, which documents the real gap this campaign exposed: block heat and message heat do not decay at all. ART-TICK has zero call sites anywhere in the tree, and HERMES-TICK has zero C call sites -- every caller is Hera poking it by hand. BLK-HEAT@/MSG-HEAT@ read a number nothing ages, so blocks never reap by cooling and message TTL never expires on its own. The plan mirrors word-level physics as the reference model: lazy decay at each access point against vm->heartbeat.tick_count, plus a bounded background sweep with a resumable cursor (the existing answer to "sweeping 22,998 blocks per tick is too expensive"). Phase 1 Artemis, Phase 2 Hermes, Phase 3 K participation deferred behind the Logical BAM. The plan's preamble also records a wrong turn taken while investigating: chasing VM-fleet heat instead of block heat, and building synthetic Hera-driven VM-EXEC calls to force a physics reading -- which TRIPOD.md prohibits outright. That work was reverted; the record is kept so it isn't repeated. Status: plan approved in shape, NOT final and NOT started. Six open questions need answers and further design discussion is pending. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
1cb68502fb
commit
7597a9ccd4
+3
-3
@@ -714,7 +714,7 @@ ifeq ($(ARCH),amd64)
|
||||
-serial chardev:cserial \
|
||||
-display none \
|
||||
-no-reboot & QPID=$$!; \
|
||||
DEADLINE=$$(( $$(date +%s) + 1800 )); \
|
||||
DEADLINE=$$(( $$(date +%s) + 43200 )); \
|
||||
echo " Waiting for ok> / zuse)ok> prompt..."; \
|
||||
while ! grep -qE '\[Hera\].*(zuse\))?ok>' $$LOG 2>/dev/null; do \
|
||||
[ $$(date +%s) -ge $$DEADLINE ] && echo " TIMEOUT waiting for ok>" && break; \
|
||||
@@ -796,7 +796,7 @@ else ifeq ($(ARCH),aarch64)
|
||||
-m 2048 \
|
||||
-no-reboot \
|
||||
-d guest_errors & QPID=$$!; \
|
||||
DEADLINE=$$(( $$(date +%s) + 1800 )); \
|
||||
DEADLINE=$$(( $$(date +%s) + 43200 )); \
|
||||
echo " Waiting for ok> / zuse)ok> prompt..."; \
|
||||
while ! grep -qE '\[Hera\].*(zuse\))?ok>' $$LOG 2>/dev/null; do \
|
||||
[ $$(date +%s) -ge $$DEADLINE ] && echo " TIMEOUT waiting for ok>" && break; \
|
||||
@@ -894,7 +894,7 @@ else ifeq ($(ARCH),riscv64)
|
||||
-display none \
|
||||
-no-reboot \
|
||||
-d guest_errors & QPID=$$!; \
|
||||
DEADLINE=$$(( $$(date +%s) + 3600 )); \
|
||||
DEADLINE=$$(( $$(date +%s) + 43200 )); \
|
||||
echo " Waiting for ok> / zuse)ok> prompt..."; \
|
||||
while ! grep -qE '\[Hera\].*(zuse\))?ok>' $$LOG 2>/dev/null; do \
|
||||
[ $$(date +%s) -ge $$DEADLINE ] && echo " TIMEOUT waiting for ok>" && break; \
|
||||
|
||||
+222
-216
@@ -1,229 +1,235 @@
|
||||
# Capsule Block Manifest — Auto-generated
|
||||
|
||||
<!-- Generated by mkcapsule --manifest 2026-08-02T18:02:36Z -->
|
||||
<!-- Generated by mkcapsule --manifest 2026-08-03T00:19:59Z -->
|
||||
<!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. -->
|
||||
<!-- Hand-written justifications and immutability notes live -->
|
||||
<!-- in MANIFEST.md alongside this auto-generated index. -->
|
||||
|
||||
## Capsule Summary
|
||||
|
||||
| Capsule | Blocks claimed | xxHash64 |
|
||||
|--------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------|
|
||||
| `ACL.4th` | 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4015 | `0xd781d22148ff171d` |
|
||||
| `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, 4851, 4852 | `0x8f1ba626b4fe297b` |
|
||||
| `common:msg.4th` | 4055 | `0xa99c5bcd3877f80e` |
|
||||
| `doe-campaign.4th` | 4060, 4061, 4062, 4063, 4064, 4065 | `0x3d4549142d91ec20` |
|
||||
| `doe.4th` | 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107 | `0xb6ecf5374e8ee77c` |
|
||||
| `hermes:init.4th` | 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153 | `0xbb77f3ac463f507f` |
|
||||
| `init-0.4th` | 2200, 2201 | `0xd0a9550baf786bb3` |
|
||||
| `init-1.4th` | 4406, 4415, 4425, 4435 | `0x63e251adb0a03613` |
|
||||
| `init-2.4th` | 4506, 4515, 4525, 4535, 4545 | `0xf113b3d0bcccae47` |
|
||||
| `init-3.4th` | 4606, 4615, 4625, 4635, 4645, 4655, 4665 | `0x62b7a71576ad1041` |
|
||||
| `init-4.4th` | 2130, 2131, 2132 | `0x89e3ef1db5ac0627` |
|
||||
| `init-5.4th` | *(none — raw code capsule)* | `0xda0c179af10a46a9` |
|
||||
| `init-6.4th` | 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095 | `0x06fc0ce1e369ef5a` |
|
||||
| `init-7.4th` | 2150 | `0xb88df2efeb753d64` |
|
||||
| `init-8.4th` | 2160 | `0x714746312b72f83d` |
|
||||
| `init-9.4th` | 4706, 4715, 4725, 4735, 4745 | `0x3f2bec73142aa424` |
|
||||
| `init-l8-diverse.4th` | 4820, 4821, 4822 | `0xaa293201a6c91838` |
|
||||
| `init-l8-omni.4th` | 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079 | `0x5979e314d6452045` |
|
||||
| `init-l8-stable.4th` | 4806 | `0xdc3830f189063a9a` |
|
||||
| `init-l8-temporal.4th` | 4830, 4831 | `0x51abd4c138246651` |
|
||||
| `init-l8-transition.4th` | 4840, 4841, 4842 | `0xbcc1a81976f0a4c9` |
|
||||
| `init-l8-volatile.4th` | 4810, 4811, 4812, 4813 | `0x98caabbbd92abac4` |
|
||||
| `init.4th` | 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059 | `0x7e54f972ef83ae23` |
|
||||
| `lib.4th` | 4050 | `0x20625ebf1276c239` |
|
||||
| `process.4th` | 4300, 4301 | `0x781afc1dbd0294f7` |
|
||||
| `zuse.4th` | 4016, 4017, 4018 | `0x12f38ec782434a77` |
|
||||
| Capsule | Blocks claimed | xxHash64 |
|
||||
|---------|----------------|----------|
|
||||
| `ACL.4th` | 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4015 | `0xd781d22148ff171d` |
|
||||
| `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, 4175, 4176, 4851, 4852 | `0x289044d7bc1de308` |
|
||||
| `common:msg.4th` | 4055 | `0xa99c5bcd3877f80e` |
|
||||
| `doe-campaign.4th` | 4060, 4061, 4062, 4063, 4064, 4065 | `0x3d4549142d91ec20` |
|
||||
| `doe.4th` | 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107 | `0xb6ecf5374e8ee77c` |
|
||||
| `hermes:init.4th` | 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153 | `0xbb77f3ac463f507f` |
|
||||
| `init-0.4th` | 2200, 2201 | `0xd0a9550baf786bb3` |
|
||||
| `init-1.4th` | 4406, 4415, 4425, 4435 | `0x63e251adb0a03613` |
|
||||
| `init-2.4th` | 4506, 4515, 4525, 4535, 4545 | `0xf113b3d0bcccae47` |
|
||||
| `init-3.4th` | 4606, 4615, 4625, 4635, 4645, 4655, 4665 | `0x62b7a71576ad1041` |
|
||||
| `init-4.4th` | 2130, 2131, 2132 | `0x89e3ef1db5ac0627` |
|
||||
| `init-5.4th` | *(none — raw code capsule)* | `0xda0c179af10a46a9` |
|
||||
| `init-6.4th` | 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095 | `0x06fc0ce1e369ef5a` |
|
||||
| `init-7.4th` | 2150 | `0xb88df2efeb753d64` |
|
||||
| `init-8.4th` | 2160 | `0x714746312b72f83d` |
|
||||
| `init-9.4th` | 4706, 4715, 4725, 4735, 4745 | `0x3f2bec73142aa424` |
|
||||
| `init-l8-diverse.4th` | 4820, 4821, 4822 | `0xaa293201a6c91838` |
|
||||
| `init-l8-omni.4th` | 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079 | `0x5979e314d6452045` |
|
||||
| `init-l8-stable.4th` | 4806 | `0xdc3830f189063a9a` |
|
||||
| `init-l8-temporal.4th` | 4830, 4831 | `0x51abd4c138246651` |
|
||||
| `init-l8-transition.4th` | 4840, 4841, 4842 | `0xbcc1a81976f0a4c9` |
|
||||
| `init-l8-volatile.4th` | 4810, 4811, 4812, 4813 | `0x98caabbbd92abac4` |
|
||||
| `init.4th` | 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063 | `0x2f5b3bfa012e52c4` |
|
||||
| `lib.4th` | 4050 | `0x20625ebf1276c239` |
|
||||
| `process.4th` | 4300, 4301 | `0x781afc1dbd0294f7` |
|
||||
| `zuse.4th` | 4016, 4017, 4018 | `0x12f38ec782434a77` |
|
||||
|
||||
## Block Map (sorted by LBN)
|
||||
|
||||
| LBN | Capsule | xxHash64 | Status |
|
||||
|------|--------------------------|----------------------|--------|
|
||||
| 2049 | `init.4th` | `0x7e54f972ef83ae23` | ok |
|
||||
| 2050 | `init.4th` | `0x7e54f972ef83ae23` | ok |
|
||||
| 2051 | `init.4th` | `0x7e54f972ef83ae23` | ok |
|
||||
| 2052 | `init.4th` | `0x7e54f972ef83ae23` | ok |
|
||||
| 2053 | `init.4th` | `0x7e54f972ef83ae23` | ok |
|
||||
| 2054 | `init.4th` | `0x7e54f972ef83ae23` | ok |
|
||||
| 2055 | `init.4th` | `0x7e54f972ef83ae23` | ok |
|
||||
| 2056 | `init.4th` | `0x7e54f972ef83ae23` | ok |
|
||||
| 2057 | `init.4th` | `0x7e54f972ef83ae23` | ok |
|
||||
| 2058 | `init.4th` | `0x7e54f972ef83ae23` | ok |
|
||||
| 2059 | `init.4th` | `0x7e54f972ef83ae23` | ok |
|
||||
| 2064 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2065 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2066 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2067 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2068 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2069 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2070 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2071 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2072 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2073 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2074 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2075 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2076 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2077 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2078 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2079 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2080 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2081 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2082 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2083 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2084 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2085 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2086 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2087 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2088 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2089 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2090 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2091 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2092 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2093 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2094 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2095 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2100 | `doe.4th` | `0xb6ecf5374e8ee77c` | ok |
|
||||
| 2101 | `doe.4th` | `0xb6ecf5374e8ee77c` | ok |
|
||||
| 2102 | `doe.4th` | `0xb6ecf5374e8ee77c` | ok |
|
||||
| 2103 | `doe.4th` | `0xb6ecf5374e8ee77c` | ok |
|
||||
| 2104 | `doe.4th` | `0xb6ecf5374e8ee77c` | ok |
|
||||
| 2105 | `doe.4th` | `0xb6ecf5374e8ee77c` | ok |
|
||||
| 2106 | `doe.4th` | `0xb6ecf5374e8ee77c` | ok |
|
||||
| 2107 | `doe.4th` | `0xb6ecf5374e8ee77c` | ok |
|
||||
| 2130 | `init-4.4th` | `0x89e3ef1db5ac0627` | ok |
|
||||
| 2131 | `init-4.4th` | `0x89e3ef1db5ac0627` | ok |
|
||||
| 2132 | `init-4.4th` | `0x89e3ef1db5ac0627` | ok |
|
||||
| 2150 | `init-7.4th` | `0xb88df2efeb753d64` | ok |
|
||||
| 2160 | `init-8.4th` | `0x714746312b72f83d` | ok |
|
||||
| 2200 | `init-0.4th` | `0xd0a9550baf786bb3` | ok |
|
||||
| 2201 | `init-0.4th` | `0xd0a9550baf786bb3` | ok |
|
||||
| 4000 | `ACL.4th` | `0xd781d22148ff171d` | ok |
|
||||
| 4001 | `ACL.4th` | `0xd781d22148ff171d` | ok |
|
||||
| 4002 | `ACL.4th` | `0xd781d22148ff171d` | ok |
|
||||
| 4003 | `ACL.4th` | `0xd781d22148ff171d` | ok |
|
||||
| 4004 | `ACL.4th` | `0xd781d22148ff171d` | ok |
|
||||
| 4005 | `ACL.4th` | `0xd781d22148ff171d` | ok |
|
||||
| 4006 | `ACL.4th` | `0xd781d22148ff171d` | ok |
|
||||
| 4007 | `ACL.4th` | `0xd781d22148ff171d` | ok |
|
||||
| 4015 | `ACL.4th` | `0xd781d22148ff171d` | ok |
|
||||
| 4016 | `zuse.4th` | `0x12f38ec782434a77` | ok |
|
||||
| 4017 | `zuse.4th` | `0x12f38ec782434a77` | ok |
|
||||
| 4018 | `zuse.4th` | `0x12f38ec782434a77` | ok |
|
||||
| 4050 | `lib.4th` | `0x20625ebf1276c239` | ok |
|
||||
| 4055 | `common:msg.4th` | `0xa99c5bcd3877f80e` | ok |
|
||||
| 4060 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
|
||||
| 4061 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
|
||||
| 4062 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
|
||||
| 4063 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
|
||||
| 4064 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
|
||||
| 4065 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
|
||||
| 4100 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4101 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4102 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4103 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4104 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4105 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4106 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4107 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4108 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4109 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4110 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4111 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4112 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4113 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4114 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4115 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4116 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4117 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4118 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4119 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4120 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4121 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4122 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4123 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4124 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4125 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4126 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4127 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4128 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4129 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4130 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4131 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4132 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4133 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4134 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4135 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4136 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4137 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4138 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4139 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4140 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4141 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4142 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4143 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4144 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4145 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4146 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4147 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4148 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4149 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4150 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4151 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4152 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4153 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4160 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4161 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4162 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4163 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4164 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4165 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4166 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4167 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4168 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4169 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4170 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4171 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4172 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4173 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4300 | `process.4th` | `0x781afc1dbd0294f7` | ok |
|
||||
| 4301 | `process.4th` | `0x781afc1dbd0294f7` | ok |
|
||||
| 4406 | `init-1.4th` | `0x63e251adb0a03613` | ok |
|
||||
| 4415 | `init-1.4th` | `0x63e251adb0a03613` | ok |
|
||||
| 4425 | `init-1.4th` | `0x63e251adb0a03613` | ok |
|
||||
| 4435 | `init-1.4th` | `0x63e251adb0a03613` | ok |
|
||||
| 4506 | `init-2.4th` | `0xf113b3d0bcccae47` | ok |
|
||||
| 4515 | `init-2.4th` | `0xf113b3d0bcccae47` | ok |
|
||||
| 4525 | `init-2.4th` | `0xf113b3d0bcccae47` | ok |
|
||||
| 4535 | `init-2.4th` | `0xf113b3d0bcccae47` | ok |
|
||||
| 4545 | `init-2.4th` | `0xf113b3d0bcccae47` | ok |
|
||||
| 4606 | `init-3.4th` | `0x62b7a71576ad1041` | ok |
|
||||
| 4615 | `init-3.4th` | `0x62b7a71576ad1041` | ok |
|
||||
| 4625 | `init-3.4th` | `0x62b7a71576ad1041` | ok |
|
||||
| 4635 | `init-3.4th` | `0x62b7a71576ad1041` | ok |
|
||||
| 4645 | `init-3.4th` | `0x62b7a71576ad1041` | ok |
|
||||
| 4655 | `init-3.4th` | `0x62b7a71576ad1041` | ok |
|
||||
| 4665 | `init-3.4th` | `0x62b7a71576ad1041` | ok |
|
||||
| 4706 | `init-9.4th` | `0x3f2bec73142aa424` | ok |
|
||||
| 4715 | `init-9.4th` | `0x3f2bec73142aa424` | ok |
|
||||
| 4725 | `init-9.4th` | `0x3f2bec73142aa424` | ok |
|
||||
| 4735 | `init-9.4th` | `0x3f2bec73142aa424` | ok |
|
||||
| 4745 | `init-9.4th` | `0x3f2bec73142aa424` | ok |
|
||||
| 4806 | `init-l8-stable.4th` | `0xdc3830f189063a9a` | ok |
|
||||
| 4810 | `init-l8-volatile.4th` | `0x98caabbbd92abac4` | ok |
|
||||
| 4811 | `init-l8-volatile.4th` | `0x98caabbbd92abac4` | ok |
|
||||
| 4812 | `init-l8-volatile.4th` | `0x98caabbbd92abac4` | ok |
|
||||
| 4813 | `init-l8-volatile.4th` | `0x98caabbbd92abac4` | ok |
|
||||
| 4820 | `init-l8-diverse.4th` | `0xaa293201a6c91838` | ok |
|
||||
| 4821 | `init-l8-diverse.4th` | `0xaa293201a6c91838` | ok |
|
||||
| 4822 | `init-l8-diverse.4th` | `0xaa293201a6c91838` | ok |
|
||||
| 4830 | `init-l8-temporal.4th` | `0x51abd4c138246651` | ok |
|
||||
| 4831 | `init-l8-temporal.4th` | `0x51abd4c138246651` | ok |
|
||||
| 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` | `0x8f1ba626b4fe297b` | ok |
|
||||
| 4852 | `artemis:init.4th` | `0x8f1ba626b4fe297b` | ok |
|
||||
| LBN | Capsule | xxHash64 | Status |
|
||||
|-----|---------|----------|--------|
|
||||
| 2049 | `init.4th` | `0x2f5b3bfa012e52c4` | ok |
|
||||
| 2050 | `init.4th` | `0x2f5b3bfa012e52c4` | ok |
|
||||
| 2051 | `init.4th` | `0x2f5b3bfa012e52c4` | ok |
|
||||
| 2052 | `init.4th` | `0x2f5b3bfa012e52c4` | ok |
|
||||
| 2053 | `init.4th` | `0x2f5b3bfa012e52c4` | ok |
|
||||
| 2054 | `init.4th` | `0x2f5b3bfa012e52c4` | ok |
|
||||
| 2055 | `init.4th` | `0x2f5b3bfa012e52c4` | ok |
|
||||
| 2056 | `init.4th` | `0x2f5b3bfa012e52c4` | ok |
|
||||
| 2057 | `init.4th` | `0x2f5b3bfa012e52c4` | ok |
|
||||
| 2058 | `init.4th` | `0x2f5b3bfa012e52c4` | ok |
|
||||
| 2059 | `init.4th` | `0x2f5b3bfa012e52c4` | ok |
|
||||
| 2060 | `init.4th` | `0x2f5b3bfa012e52c4` | ok |
|
||||
| 2061 | `init.4th` | `0x2f5b3bfa012e52c4` | ok |
|
||||
| 2062 | `init.4th` | `0x2f5b3bfa012e52c4` | ok |
|
||||
| 2063 | `init.4th` | `0x2f5b3bfa012e52c4` | ok |
|
||||
| 2064 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2065 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2066 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2067 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2068 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2069 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2070 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2071 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2072 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2073 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2074 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2075 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2076 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2077 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2078 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2079 | `init-l8-omni.4th` | `0x5979e314d6452045` | ok |
|
||||
| 2080 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2081 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2082 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2083 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2084 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2085 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2086 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2087 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2088 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2089 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2090 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2091 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2092 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2093 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2094 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2095 | `init-6.4th` | `0x06fc0ce1e369ef5a` | ok |
|
||||
| 2100 | `doe.4th` | `0xb6ecf5374e8ee77c` | ok |
|
||||
| 2101 | `doe.4th` | `0xb6ecf5374e8ee77c` | ok |
|
||||
| 2102 | `doe.4th` | `0xb6ecf5374e8ee77c` | ok |
|
||||
| 2103 | `doe.4th` | `0xb6ecf5374e8ee77c` | ok |
|
||||
| 2104 | `doe.4th` | `0xb6ecf5374e8ee77c` | ok |
|
||||
| 2105 | `doe.4th` | `0xb6ecf5374e8ee77c` | ok |
|
||||
| 2106 | `doe.4th` | `0xb6ecf5374e8ee77c` | ok |
|
||||
| 2107 | `doe.4th` | `0xb6ecf5374e8ee77c` | ok |
|
||||
| 2130 | `init-4.4th` | `0x89e3ef1db5ac0627` | ok |
|
||||
| 2131 | `init-4.4th` | `0x89e3ef1db5ac0627` | ok |
|
||||
| 2132 | `init-4.4th` | `0x89e3ef1db5ac0627` | ok |
|
||||
| 2150 | `init-7.4th` | `0xb88df2efeb753d64` | ok |
|
||||
| 2160 | `init-8.4th` | `0x714746312b72f83d` | ok |
|
||||
| 2200 | `init-0.4th` | `0xd0a9550baf786bb3` | ok |
|
||||
| 2201 | `init-0.4th` | `0xd0a9550baf786bb3` | ok |
|
||||
| 4000 | `ACL.4th` | `0xd781d22148ff171d` | ok |
|
||||
| 4001 | `ACL.4th` | `0xd781d22148ff171d` | ok |
|
||||
| 4002 | `ACL.4th` | `0xd781d22148ff171d` | ok |
|
||||
| 4003 | `ACL.4th` | `0xd781d22148ff171d` | ok |
|
||||
| 4004 | `ACL.4th` | `0xd781d22148ff171d` | ok |
|
||||
| 4005 | `ACL.4th` | `0xd781d22148ff171d` | ok |
|
||||
| 4006 | `ACL.4th` | `0xd781d22148ff171d` | ok |
|
||||
| 4007 | `ACL.4th` | `0xd781d22148ff171d` | ok |
|
||||
| 4015 | `ACL.4th` | `0xd781d22148ff171d` | ok |
|
||||
| 4016 | `zuse.4th` | `0x12f38ec782434a77` | ok |
|
||||
| 4017 | `zuse.4th` | `0x12f38ec782434a77` | ok |
|
||||
| 4018 | `zuse.4th` | `0x12f38ec782434a77` | ok |
|
||||
| 4050 | `lib.4th` | `0x20625ebf1276c239` | ok |
|
||||
| 4055 | `common:msg.4th` | `0xa99c5bcd3877f80e` | ok |
|
||||
| 4060 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
|
||||
| 4061 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
|
||||
| 4062 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
|
||||
| 4063 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
|
||||
| 4064 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
|
||||
| 4065 | `doe-campaign.4th` | `0x3d4549142d91ec20` | ok |
|
||||
| 4100 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4101 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4102 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4103 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4104 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4105 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4106 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4107 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4108 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4109 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4110 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4111 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4112 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4113 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4114 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4115 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4116 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4117 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4118 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4119 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4120 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4121 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4122 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4123 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4124 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4125 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4126 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4127 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4128 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4129 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4130 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4131 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4132 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4133 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4134 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4135 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4136 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4137 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4138 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4139 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4140 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4141 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4142 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4143 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4144 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4145 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4146 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4147 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4148 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4149 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4150 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4151 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4152 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4153 | `hermes:init.4th` | `0xbb77f3ac463f507f` | ok |
|
||||
| 4160 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4161 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4162 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4163 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4164 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4165 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4166 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4167 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4168 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4169 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4170 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4171 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4172 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4173 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4174 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4175 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4176 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
| 4300 | `process.4th` | `0x781afc1dbd0294f7` | ok |
|
||||
| 4301 | `process.4th` | `0x781afc1dbd0294f7` | ok |
|
||||
| 4406 | `init-1.4th` | `0x63e251adb0a03613` | ok |
|
||||
| 4415 | `init-1.4th` | `0x63e251adb0a03613` | ok |
|
||||
| 4425 | `init-1.4th` | `0x63e251adb0a03613` | ok |
|
||||
| 4435 | `init-1.4th` | `0x63e251adb0a03613` | ok |
|
||||
| 4506 | `init-2.4th` | `0xf113b3d0bcccae47` | ok |
|
||||
| 4515 | `init-2.4th` | `0xf113b3d0bcccae47` | ok |
|
||||
| 4525 | `init-2.4th` | `0xf113b3d0bcccae47` | ok |
|
||||
| 4535 | `init-2.4th` | `0xf113b3d0bcccae47` | ok |
|
||||
| 4545 | `init-2.4th` | `0xf113b3d0bcccae47` | ok |
|
||||
| 4606 | `init-3.4th` | `0x62b7a71576ad1041` | ok |
|
||||
| 4615 | `init-3.4th` | `0x62b7a71576ad1041` | ok |
|
||||
| 4625 | `init-3.4th` | `0x62b7a71576ad1041` | ok |
|
||||
| 4635 | `init-3.4th` | `0x62b7a71576ad1041` | ok |
|
||||
| 4645 | `init-3.4th` | `0x62b7a71576ad1041` | ok |
|
||||
| 4655 | `init-3.4th` | `0x62b7a71576ad1041` | ok |
|
||||
| 4665 | `init-3.4th` | `0x62b7a71576ad1041` | ok |
|
||||
| 4706 | `init-9.4th` | `0x3f2bec73142aa424` | ok |
|
||||
| 4715 | `init-9.4th` | `0x3f2bec73142aa424` | ok |
|
||||
| 4725 | `init-9.4th` | `0x3f2bec73142aa424` | ok |
|
||||
| 4735 | `init-9.4th` | `0x3f2bec73142aa424` | ok |
|
||||
| 4745 | `init-9.4th` | `0x3f2bec73142aa424` | ok |
|
||||
| 4806 | `init-l8-stable.4th` | `0xdc3830f189063a9a` | ok |
|
||||
| 4810 | `init-l8-volatile.4th` | `0x98caabbbd92abac4` | ok |
|
||||
| 4811 | `init-l8-volatile.4th` | `0x98caabbbd92abac4` | ok |
|
||||
| 4812 | `init-l8-volatile.4th` | `0x98caabbbd92abac4` | ok |
|
||||
| 4813 | `init-l8-volatile.4th` | `0x98caabbbd92abac4` | ok |
|
||||
| 4820 | `init-l8-diverse.4th` | `0xaa293201a6c91838` | ok |
|
||||
| 4821 | `init-l8-diverse.4th` | `0xaa293201a6c91838` | ok |
|
||||
| 4822 | `init-l8-diverse.4th` | `0xaa293201a6c91838` | ok |
|
||||
| 4830 | `init-l8-temporal.4th` | `0x51abd4c138246651` | ok |
|
||||
| 4831 | `init-l8-temporal.4th` | `0x51abd4c138246651` | ok |
|
||||
| 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` | `0x289044d7bc1de308` | ok |
|
||||
| 4852 | `artemis:init.4th` | `0x289044d7bc1de308` | ok |
|
||||
|
||||
## Conflicts
|
||||
|
||||
|
||||
@@ -263,6 +263,7 @@ VARIABLE S-IDX
|
||||
VARIABLE S-STRIDE
|
||||
VARIABLE S-CUR
|
||||
VARIABLE S-ACTUAL
|
||||
VARIABLE ART-STRESS-REP
|
||||
Block 4161
|
||||
( Trial record accessors )
|
||||
: SLBN@ ( i -- lbn ) CELLS ART-STRESS-LBN + @ ;
|
||||
@@ -274,7 +275,8 @@ Block 4172
|
||||
( so it can be grepped like the DoE CSVs. Every )
|
||||
( trial emits a row, pass or fail -- no silent skips. )
|
||||
: SCSV-HEADER ( n -- )
|
||||
." [ARTSTRESS] HEADER,n=" DUP . CR
|
||||
." [ARTSTRESS] HEADER,rep=" ART-STRESS-REP @ .
|
||||
." ,n=" DUP . CR
|
||||
." [ARTSTRESS] trial,lbn,pat,result" CR ;
|
||||
: SCSV-ROW ( -- )
|
||||
." [ARTSTRESS] "
|
||||
@@ -288,8 +290,8 @@ Block 4173
|
||||
( its absence means the data is incomplete, full )
|
||||
( stop, not "probably fine." )
|
||||
: SCSV-SUMMARY ( -- )
|
||||
." [ARTSTRESS] SUMMARY,"
|
||||
ART-STRESS-N @ . ." ,"
|
||||
." [ARTSTRESS] SUMMARY,rep=" ART-STRESS-REP @ .
|
||||
." ," ART-STRESS-N @ . ." ,"
|
||||
ART-STRESS-PASS @ . ." ,"
|
||||
ART-STRESS-FAIL @ . CR ;
|
||||
Block 4162
|
||||
@@ -396,12 +398,25 @@ Block 4169
|
||||
ART-STRESS-RUN ART-STRESS-REPORT
|
||||
ART-STRESS-CLEANUP ;
|
||||
: ART-STRESS ( -- ) 424242 50 ART-STRESS-TEST ;
|
||||
Block 4174
|
||||
( Campaign driver -- N independent replicate runs, )
|
||||
( each a distinct seed, for statistical power )
|
||||
( (Captain Bob: minimum 30 reps). Emits a CAMPAIGN )
|
||||
( marker so analysis can auto-detect N from the log. )
|
||||
30 CONSTANT ART-STRESS-NREPS
|
||||
: ART-STRESS-SEED ( i -- seed ) 1009 * 424242 + ;
|
||||
: ART-STRESS-CAMPAIGN ( -- )
|
||||
." [ARTSTRESS] CAMPAIGN,nreps=" ART-STRESS-NREPS . CR
|
||||
ART-STRESS-NREPS 0 DO
|
||||
I ART-STRESS-REP !
|
||||
I ART-STRESS-SEED 50 ART-STRESS-TEST
|
||||
LOOP
|
||||
." [ARTSTRESS] CAMPAIGN-DONE" CR ;
|
||||
Block 4170
|
||||
( Disabled by default -- uncomment to run the surface )
|
||||
( stress test automatically at every boot. Normally )
|
||||
( invoked manually instead: ART-STRESS or )
|
||||
( <seed> <reps> ART-STRESS-TEST from the console. )
|
||||
\ ART-STRESS
|
||||
( TEMP: 30-replicate campaign enabled for the )
|
||||
( K-invariant/heartbeat verification run. Revert to )
|
||||
( "\ ART-STRESS" (disabled) once that run is done. )
|
||||
ART-STRESS-CAMPAIGN
|
||||
Block 4851
|
||||
( Cheap touch target for Phase 3 fleet DoE workload -- O(1), )
|
||||
( unlike ART-TICK/ART-STATUS which scan all ART-DATA-BLKS. )
|
||||
|
||||
@@ -0,0 +1,376 @@
|
||||
# Artemis (and Hermes) Compudynamics — Implementation Plan
|
||||
**Date:** 2026-08-02
|
||||
**Branch:** `master`
|
||||
**Status:** Plan approved in shape, **not final and not started.** Captain Bob
|
||||
has more to discuss on the design before implementation begins — this document
|
||||
is expected to change as a result. Do not treat it as settled, and do not
|
||||
start coding from it as written. The six Open Questions are the known gaps;
|
||||
the pending discussion may add or reframe others.
|
||||
**Author:** Captain Bob / Claude Code
|
||||
**Siblings:** `ARTEMIS-BLOCK-PHYSICS-DESIGN-20260708.md` (the decay-rate design
|
||||
this implements), `HERMES-MESSAGE-CHANNEL-PHYSICS-DESIGN-20260708.md`,
|
||||
`ARTEMIS-BAM-ACCEPTANCE-20260703.md` (which tracks the `ART-TICK heartbeat`
|
||||
gap this closes), `VM-PHYSICS-DYNAMIC-FLEET-DESIGN-20260705.md` (pattern source).
|
||||
|
||||
---
|
||||
|
||||
## Preamble: how this plan came to be written
|
||||
|
||||
This plan exists because of a wasted day, and the failure is worth recording
|
||||
so it isn't repeated.
|
||||
|
||||
On 2026-08-02 a 30-replicate Artemis surface-stress campaign was run across
|
||||
all three architectures to confirm the `block_words.c` stale-pointer
|
||||
cache-aliasing fix held at scale. It did: **4500 trials, zero failures,
|
||||
amd64/aarch64/riscv64**. That result is real and stands.
|
||||
|
||||
While reviewing the campaign's heartbeat CSV, the assistant observed the
|
||||
`hera_heat_q48` / `hermes_heat_q48` / `artemis_heat_q48` columns sitting
|
||||
perfectly flat (`65536, 0, 0`) across all 51,092 ticks, concluded this was a
|
||||
defect, and rebuilt the campaign driver to route every stress-test phase
|
||||
through Hera via `VM-EXEC` so that fleet heat would move.
|
||||
|
||||
That was wrong three separate ways:
|
||||
|
||||
1. **Wrong metric.** Those columns are *VM-fleet* heat
|
||||
(`capsule_vm_physics.c`, `vm_physics_heat_of()`). The quantity of interest
|
||||
for Artemis is *block* heat (`BLK-HEAT` / `ART-K-TOTAL`). Different
|
||||
mechanisms, no connection between them.
|
||||
2. **Wrong method.** Manufacturing cross-VM calls to force a physics reading
|
||||
is explicitly prohibited: `TRIPOD.md` — *"No VM manages another VM's
|
||||
internal heartbeat"*, *"There is no 'send to the hottest VM.' That model is
|
||||
wrong and must not be implemented"*; `capsule_vm_physics.h:35-37` — *"a
|
||||
passive observer of VM activity, never a driver of it."*
|
||||
3. **Wrong premise.** Block heat cannot move today under any workload,
|
||||
because nothing ages it (see below). No amount of driving would have
|
||||
produced a signal.
|
||||
|
||||
All three were avoidable by reading `.claude/TRIPOD.md` and `.claude/ARTEMIS.md`
|
||||
completely before touching Tripod code — which both files instruct in their own
|
||||
headers, and which `.claude/CLAUDE.md` also instructs. They were skimmed by
|
||||
keyword instead. Keyword search cannot surface a prohibition, because
|
||||
prohibitions do not contain the term you are searching for.
|
||||
|
||||
The capsule changes from that detour have been reverted. **Standing rule
|
||||
going forward: read the governing documents in full before starting any major
|
||||
piece of work in this repo.**
|
||||
|
||||
---
|
||||
|
||||
## The actual defect
|
||||
|
||||
Block heat and message heat do not decay. Not "decay incorrectly" — **do not
|
||||
decay at all**, unless something manually calls a sweep word.
|
||||
|
||||
- `ART-TICK` (`ART-COOL ART-REAP`, `capsules/artemis/init.4th` block 4140) has
|
||||
**zero call sites** anywhere in the tree — no C, no FORTH, no capsule.
|
||||
- `HERMES-TICK` (`capsules/hermes/init.4th` block 4116) has **zero C call
|
||||
sites**. Every caller is Hera poking it manually via `VM-EXEC`
|
||||
(`capsules/init.4th` lines 31, 47, 66, 83, 130).
|
||||
|
||||
`BLK-HEAT@` and `MSG-HEAT@` read a stored number that nothing ages. Heat is
|
||||
frozen between manual pokes — neither lazy nor scheduled, simply absent.
|
||||
|
||||
Consequences:
|
||||
- Blocks never reap by cooling. `ART-REAP` frees blocks at heat exactly 0;
|
||||
nothing ever brings a block to 0 except an explicit `BLK-FREE`.
|
||||
- Message TTL never expires on its own, contradicting `HERMES.md`'s stated
|
||||
model (*"A message that nobody answers simply cools to death"*).
|
||||
- `Q-DECAY` (65208) is hardcoded and hand-copied into three separate capsules
|
||||
(`artemis/init.4th`, `hermes/init.4th`, and the now-deleted
|
||||
`compudynamics.4th`) with no shared derivation — flagged in the block
|
||||
physics design doc as the "before" picture.
|
||||
|
||||
`ARTEMIS-BAM-ACCEPTANCE-20260703.md` already tracks this as a named deferred
|
||||
item ("ART-TICK heartbeat — wire into compudynamic tick loop"). This plan
|
||||
closes it.
|
||||
|
||||
---
|
||||
|
||||
## The governing model: mirror how words work
|
||||
|
||||
Per Captain Bob's direction: **word-level execution physics is the reference
|
||||
implementation.** Messages decay on **TTL**; blocks decay on **access
|
||||
frequency**. Two distinct behaviours, one shared mechanism shape.
|
||||
|
||||
The word model, verified in source, has four parts:
|
||||
|
||||
**1. Storage.** `DictPhysics` (`include/vm.h:257-268`) carries
|
||||
`last_decay_tick`, commented in-source as *"the only clock Loop #3 decay
|
||||
reads."* The two `*_ns` fields beside it are explicitly marked **diagnostics
|
||||
only, never read for decay** — the residue of the wall-clock bug fixed in
|
||||
`VM-FLEET-ATTRACTOR-DESIGN-20260705.md` rev t.
|
||||
|
||||
**2. Lazy decay at every access point.** `physics_pre_execute()`
|
||||
(`src/physics_execution_hooks.c:85-89`), `physics_on_lookup()` (`:203-215`),
|
||||
and the kernel's inline duplicates (`src/starkernel/vm/vm_core.c:676, 870,
|
||||
880`) all do exactly this:
|
||||
|
||||
```c
|
||||
uint64_t elapsed_ticks = vm->heartbeat.tick_count - word->physics.last_decay_tick;
|
||||
physics_metadata_apply_linear_decay(word, elapsed_ticks, vm);
|
||||
word->physics.last_decay_tick = vm->heartbeat.tick_count;
|
||||
/* then accumulate: */
|
||||
physics_execution_heat_increment(word);
|
||||
```
|
||||
|
||||
**3. Bounded background sweep with a resumable cursor.**
|
||||
`vm_tick_apply_background_decay()` (`src/starkernel/vm/vm_runtime.c:357-388`)
|
||||
processes at most `HEARTBEAT_DECAY_BATCH` dictionary entries per tick and
|
||||
stores `vm->heartbeat_decay_cursor_id` to resume on the next tick.
|
||||
|
||||
**This is the answer to "sweeping 22,998 blocks per tick is too expensive."**
|
||||
An earlier fleet-DoE attempt stalled outright on exactly that cost. The word
|
||||
engine never sweeps its whole space in one tick — it amortizes. Artemis must
|
||||
do the same.
|
||||
|
||||
**4. Decay math.** `physics_metadata_apply_linear_decay()`
|
||||
(`src/physics_metadata.c:320-386`): `decay = (elapsed_ticks * slope_q48) >> 16`,
|
||||
subtractive, clamped at zero. The slope is adaptive (`vm->decay_slope_q48`,
|
||||
tuned by Loop #6), and the whole path is gated by
|
||||
`ssm_config->L3_linear_decay` so L8 can switch it off.
|
||||
|
||||
### Two model differences to resolve, not assume
|
||||
|
||||
| | Words today | Artemis today | Consequence |
|
||||
|---|---|---|---|
|
||||
| Decay shape | **linear** subtract | **multiplicative** (`heat * 65208/65536`) | Multiplicative approaches zero asymptotically but may never reach exactly 0 in Q48.16; `ART-REAP` fires only at exactly 0. |
|
||||
| On access | **increments** heat | `BLK-FETCH` **resets** to `Q.1` | Reset is recency-only; increment is frequency-sensitive. Bob named *frequency* as the block signal. |
|
||||
|
||||
Recommendation: match the word model on both counts. Confirm first (O2, O4) —
|
||||
this changes when blocks reap.
|
||||
|
||||
---
|
||||
|
||||
## Design decisions
|
||||
|
||||
### D1. Block heat becomes C-side state
|
||||
|
||||
Today `BLK-HEAT` is a FORTH `CREATE ... ALLOT` array (block 4137, marked
|
||||
immutable in `MANIFEST.md`). Word heat by contrast lives in C
|
||||
(`DictEntry.execution_heat` + `DictPhysics`), with FORTH words reading it.
|
||||
|
||||
Mirror that. Block heat plus `last_decay_tick` move into
|
||||
`src/starkernel/capsule/artemis_heat_physics.c`, with FORTH primitives for the
|
||||
observational surface.
|
||||
|
||||
This is the decision that makes everything else fall out: the background sweep
|
||||
becomes plain C called from `vm_tick()`, and **no C→FORTH bridge is required.**
|
||||
|
||||
That matters more than it might appear. **A mechanism for C to invoke a named
|
||||
FORTH word on a tick does not exist in this codebase** — there is no
|
||||
`vm_execute_word_by_name`, and `capsule_vm_hooks.c` carries only birth-time
|
||||
hooks (exec, dict-hash, vm-alloc). Building one would be a substantial new
|
||||
mechanism with its own risks. This design avoids needing it.
|
||||
|
||||
Per the ruling recorded in `VM-FLEET-ATTRACTOR-DESIGN-20260705.md` rev s —
|
||||
*"TRIPOD.md's/ARTEMIS.md's 'StarForth dialect ONLY' applies to a thin
|
||||
administrative/observational word surface; the underlying mechanics are meant
|
||||
to be C99"* — this is in bounds. **Confirm the ruling still holds (O5);** D1
|
||||
depends entirely on it.
|
||||
|
||||
### D2. Each VM's own heartbeat tick is the clock
|
||||
|
||||
`HeartbeatState` is embedded per-VM (`include/vm.h:280-298`). `tick_count`
|
||||
advances only from `vm_tick()`, driven by that VM's own word executions
|
||||
(`src/physics_execution_hooks.c:172-177`). Artemis's blocks therefore age on
|
||||
Artemis's own tick. No cross-VM coupling, nothing injected, nothing to drive.
|
||||
One clock, as the standing rule requires.
|
||||
|
||||
**Known consequence:** an idle VM does not tick, so its blocks and messages do
|
||||
not age. For words this is explicitly intentional and documented as such. For
|
||||
**messages it is a genuine problem** — a TTL that stops while Hermes is idle
|
||||
is not a TTL. See O3.
|
||||
|
||||
### D3. The insertion point already exists
|
||||
|
||||
`vm_tick()` (`src/starkernel/vm/vm_runtime.c:145-149`) carries two
|
||||
commented-out "future plugin" slots. That is the natural home for
|
||||
`artemis_heat_tick()` and later `hermes_heat_tick()`.
|
||||
|
||||
---
|
||||
|
||||
## Phase 1 — Artemis block heat
|
||||
|
||||
**Goal:** block heat ages against Artemis's heartbeat, accumulates on access,
|
||||
and reaps at zero, with an inferred slope replacing the hardcoded constant.
|
||||
|
||||
1. **New kernel-only files** (`#ifdef __STARKERNEL__`), following
|
||||
`capsule_vm_physics.c`'s established shape:
|
||||
- `include/starkernel/artemis_heat_physics.h`
|
||||
- `src/starkernel/capsule/artemis_heat_physics.c`
|
||||
|
||||
State: per-block `{ heat_q48, last_decay_tick }` across `ART-DATA-BLKS`
|
||||
(22,998 entries), plus the `ArtemisHeatWindow` the design doc specifies —
|
||||
`ArtemisHeatSample { uint32_t live_count; uint32_t reaped_since_last; }`,
|
||||
`ARTEMIS_HEAT_WINDOW_DEPTH` proposed 64.
|
||||
|
||||
2. **Lazy decay on access** — resolve heat at `BLK-FETCH` / `BLK-HEAT@` with
|
||||
the exact `elapsed_ticks` pattern above, then apply the accumulation term.
|
||||
|
||||
3. **Bounded sweep** — `artemis_heat_tick()`, called from `vm_tick()`, gated
|
||||
to Artemis's VM, processing a fixed batch per tick with a resumable cursor.
|
||||
Mirror `vm_tick_apply_background_decay()` directly. This is what allows
|
||||
reap to happen at all without an O(n) stall.
|
||||
|
||||
4. **Adaptive slope** — `blk_decay_slope_q48` fit from the window; when the
|
||||
window is unwarmed, **skip the update rather than substituting a default**
|
||||
(the discipline both existing engines use, and the specific trap that
|
||||
froze VM-fleet physics at zero twice — see rev l and rev m of the fleet
|
||||
doc).
|
||||
|
||||
5. **New FORTH primitives** — `BLK-DECAY-SLOPE@`, plus a status word
|
||||
mirroring `VM-PHYSICS-STATUS`. Registration pattern is
|
||||
`void (*)(VM *vm)` + `register_word(vm, "NAME", fn)`; see
|
||||
`src/word_source/q48_words.c:76,204` for the minimal example and
|
||||
`mama_forth_words.c:1091` for the kernel/MAMA variant (note it registers
|
||||
into both the FORTH and MAMA vocabularies — follow that duplication).
|
||||
|
||||
6. **Capsule changes** — `ART-COOL` (block 4139) stops being a full sweep;
|
||||
`ART-TICK` (block 4140) is retained for manual diagnostics. Both blocks are
|
||||
editable — the hard-locked set is 4110–4113 plus 4128 and 4137. Any new
|
||||
blocks belong in **4200–4299** (genuinely unclaimed; 4175–4199 is nominally
|
||||
Hermes extension space).
|
||||
|
||||
### Available Q48.16 vocabulary
|
||||
|
||||
`Q.+ Q.- Q.* Q./ Q.ABS Q.NEG Q.LOG Q.EXP Q.SQRT Q.FROM-INT Q.TO-INT Q.1 Q.0
|
||||
Q.SCALE Q.= Q.< Q.> Q.0= Q.MAX Q.MIN Q.PRINT` — all registered from
|
||||
`src/word_source/q48_words.c:200-223`. There is **no** `Q.MOD` or remainder
|
||||
word; if decay must be exactly conservative, that arithmetic has to come from
|
||||
C. (Note `src/word_source/q48_16_words.c` exists but has no register function
|
||||
and is not referenced by `word_registry.c` — dead code, do not follow it.)
|
||||
|
||||
---
|
||||
|
||||
## Phase 2 — Hermes message and channel heat
|
||||
|
||||
Same mechanism, after Artemis is proven. Per
|
||||
`HERMES-MESSAGE-CHANNEL-PHYSICS-DESIGN-20260708.md`: `hermes_heat_physics.c`,
|
||||
primitives `MSG-DECAY-SLOPE@` / `CH-DECAY-SLOPE@`, sampling hooked at
|
||||
`MSG-COOL-ALL` (block 4108) and `CH-COOL-ALL` (block 4114).
|
||||
|
||||
**Behavioural difference from blocks:** messages are pure TTL — born hot,
|
||||
decay only, never refreshed on access. No accumulation term. That is the whole
|
||||
distinction Bob drew between the two.
|
||||
|
||||
**Correct that design doc before implementing it.** It proposes calling
|
||||
`hermes_heat_tick()` from *"`HERMES-TICK`'s existing heartbeat path"* and
|
||||
contrasts this against Artemis as having the harder problem for lacking one.
|
||||
**That premise is false** — verified 2026-08-02: `HERMES-TICK` has no
|
||||
heartbeat path either. Both VMs are in identical positions, and the doc's
|
||||
sizing of the two efforts is wrong as written.
|
||||
|
||||
Message nodes are 8 cells (`HERMES.md:305-313`) with heat at cell 5. A
|
||||
`last_decay_tick` needs either a 9th cell or C-side storage — C-side, per D1.
|
||||
|
||||
---
|
||||
|
||||
## Phase 3 — K participation (deferred; needs design, not wiring)
|
||||
|
||||
`.claude/ARTEMIS.md` requires that blocks participate in K≡1.0: *"Every
|
||||
logical block's heat contributes to Artemis's K total. Reap must credit K
|
||||
back. Alloc must charge K correctly."* Today nothing does, and closing it is
|
||||
not a small job:
|
||||
|
||||
- **The current model is not conservative by construction.** `BLK-ALLOC` and
|
||||
`BLK-FETCH` mint `Q.1` from nothing, `ART-COOL` destroys heat, `BLK-FREE`
|
||||
zeroes it. 22,998 blocks at `Q.1` sums to 22,998.0, not 1.0.
|
||||
- **`K-FLEET`, `K-LOCAL@`, and `K-CONSERVED?` no longer exist** — deleted in
|
||||
commit `9323f776` along with `fleet-k.4th` and `compudynamics.4th`. The BAM
|
||||
acceptance doc's "wire `ART-K-TOTAL` into `K-FLEET`" item refers to words
|
||||
that are gone. Fleet conservation today is C-side only
|
||||
(`vm_physics_conserved()`, 5% tolerance, `capsule_vm_physics.c:456`).
|
||||
- Proper normalization is the **Logical BAM**, which is `FUTURE MATERIAL` in
|
||||
`ARTEMIS.md` and gated behind Captain Bob explicitly reopening it.
|
||||
|
||||
Contrast with VM-fleet physics, which *is* conservative by construction via a
|
||||
single balanced primitive `vm_physics_transfer(from, to, amount)` — the sum
|
||||
invariant holds by induction rather than by enforcement. Blocks have no
|
||||
equivalent primitive. Designing one is real work.
|
||||
|
||||
**Stale text to fix:** `VM-PHYSICS-DYNAMIC-FLEET-DESIGN-20260705.md`'s
|
||||
"Fold-in question" section states that conservation does *not* generalize to
|
||||
messages or blocks. The 2026-07-09 corrections on both sibling docs overturn
|
||||
this, citing `.claude/ARTEMIS.md` and `.claude/HERMES.md` as authoritative.
|
||||
The corrections win; the stale passage should be amended so it stops
|
||||
contradicting them.
|
||||
|
||||
---
|
||||
|
||||
## Open questions — answer before writing code
|
||||
|
||||
**O1.** `Q-DECAY` lives in block **4110, marked ★ HARD LOCKED** in
|
||||
`MANIFEST.md`. The block physics design doc says delete it. The manifest says
|
||||
don't touch that block. Which wins — delete, or leave it and shadow it?
|
||||
|
||||
**O2.** Linear-subtractive or multiplicative decay for blocks? The word model
|
||||
is linear; Artemis is currently multiplicative. This determines whether reap
|
||||
ever fires.
|
||||
|
||||
**O3.** Idle-VM TTL. If Hermes executes no words it accrues no ticks, so
|
||||
messages never expire. Accept this (TTL means "ticks of that VM's own
|
||||
execution"), or does message aging need a different clock source? Note that
|
||||
any answer involving a second clock conflicts with the one-clock rule.
|
||||
|
||||
**O4.** `BLK-FETCH` currently *resets* heat to `Q.1`. Change to increment
|
||||
(frequency-sensitive, matches words, matches "how frequently" as the stated
|
||||
signal) or keep reset (recency-only)?
|
||||
|
||||
**O5.** Confirm the C99-mechanics / FORTH-surface split still holds. D1 —
|
||||
and therefore the whole no-bridge-needed argument — depends on it.
|
||||
|
||||
**O6.** `ARTEMIS_HEAT_WINDOW_DEPTH` (proposed 64) and the concrete slope-fit
|
||||
function are both explicitly unresolved in the design docs. Start with the
|
||||
proposed values and instrument, or settle them up front?
|
||||
|
||||
---
|
||||
|
||||
## Known risk
|
||||
|
||||
`ARTEMIS-BAM-ACCEPTANCE-20260703.md` records an **unfixed riscv64
|
||||
heartbeat/compile race**: identical binaries alternately pass and fail
|
||||
`TRIPOD-TEST` with `execute_colon_word: NULL cell in 'K-PUSH' after
|
||||
'(start)'`, discriminated by boot-time heartbeat tick alignment (DoE row 59
|
||||
reading `...,107,10,33,...` passing versus `...,107,9,32,...` failing).
|
||||
|
||||
This plan adds work inside `vm_tick()`, which shifts tick alignment. **Expect
|
||||
to encounter this race.** It was reported and never fixed — "awaiting Captain
|
||||
Bob's direction."
|
||||
|
||||
---
|
||||
|
||||
## Verification
|
||||
|
||||
1. `build/tools/mkcapsule --lint capsules` → 26 files, 0 violations.
|
||||
2. Hosted build clean, zero warnings under `-Wall -Werror`.
|
||||
3. Three-arch QEMU acceptance — `make -f Makefile.starkernel ARCH=<arch> clean
|
||||
qemu` for amd64, aarch64, riscv64, one at a time, foreground. This is the
|
||||
only acceptance authority for kernel changes.
|
||||
4. **Behavioural proof that decay is live:** allocate blocks, execute
|
||||
unrelated Artemis words to advance Artemis's own tick count *without ever
|
||||
calling `ART-TICK` manually*, then confirm heat has dropped and cold blocks
|
||||
have reaped. This is impossible today — nothing ages — so it is a genuine
|
||||
discriminator.
|
||||
5. **Slope responds to real churn** (the design doc's own test): drive block
|
||||
churn at two different rates across separate boots and confirm
|
||||
`blk_decay_slope_q48` converges to different values rather than sitting at
|
||||
its seed.
|
||||
6. **`dict_hash` must stay byte-identical across all three architectures.**
|
||||
Established baseline: Hera `0x83c2c109100e2ed6`, Artemis
|
||||
`0x5284ea5cd0f9983c`, Hermes `0x4159dcb326d79759`, Mama
|
||||
`0xc88c3c1db6ef601b`. Any divergence means a wall-clock dependency has
|
||||
crept in — precisely the bug class rev t of the fleet doc fixed.
|
||||
|
||||
## Not in scope
|
||||
|
||||
- Logical BAM / Physical BAM split, thermal zones (Phase 3 blocker,
|
||||
`FUTURE MATERIAL`, requires explicit reopening)
|
||||
- ACL Phase 8 / PKI — standing instruction is **STOP before starting**
|
||||
- Any commit without Captain Bob asking for one
|
||||
|
||||
---
|
||||
|
||||
*Governing documents for this work, to be read completely before starting:*
|
||||
`.claude/ARTEMIS.md`, `.claude/TRIPOD.md`, `.claude/HERMES.md`,
|
||||
`.claude/CLAUDE.md`, and the four sibling design docs named in the header.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
+51884
-2496
File diff suppressed because it is too large
Load Diff
+51936
-2541
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