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:
Robert Allan James
2026-08-02 21:49:16 -04:00
co-authored by Claude Opus 5
parent 1cb68502fb
commit 7597a9ccd4
11 changed files with 210228 additions and 5264 deletions
+3 -3
View File
@@ -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; \