Fix COOL's misleading (stub) label too

Same fix as DELIVER, on request. COOL is real and live for both words
(item 4.1) and VMs (this session) -- stadium_evict()'s own universal
reservoir credit is the whole of what "cooling off the floor" means
for both, no extra payload action needed. stadium_dispatch()'s COOL
case now prints the departing patron's identity (word_id for a word,
0 -- the patron-zero convention -- for a VM) instead of "(stub)".

Verified live: both shapes fired correctly on the same boot --
"COOL identity=0" at Hermes's/Artemis's own explicit channel-eviction
self-test and again at their VM-patron eviction at PARITY:KILL,
"COOL identity=1" at a second channel eviction -- conservation intact
throughout. Clean zero-warning compile and clean boot with
conservation intact on all three architectures.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CXjAPTEKrgY2Mrk25KoLDn
This commit is contained in:
Robert Allan James
2026-08-26 03:13:50 -04:00
co-authored by Claude Sonnet 5
parent 89723793fe
commit 329677b077
9 changed files with 27143 additions and 14 deletions
+8 -4
View File
@@ -404,10 +404,14 @@ other three become honest, explicit punch-list items instead of being touched sp
`DELIVER` case now prints the departing message's real identity (`DELIVER msg_idx=N`, same
shape as `MIGRATE`'s `lbn=` print) instead of a misleading `(stub)` label — confirmed live
via a forced `MSG-SEND`/`MSG-DELIVER-ALL`/`MSG-ACK-LAST` sequence from Hermes's own REPL
context (`Stadium: dispatch cell=73653 behaviour=DELIVER msg_idx=1`). `COOL`'s case is in
the identical situation (real for both words and VMs, no extra action needed) but was left
printing `(stub)` — out of scope for this pass, noted in `stadium.c`'s own comment. Clean
zero-warning compile and clean boot with conservation intact on all three architectures.
context (`Stadium: dispatch cell=73653 behaviour=DELIVER msg_idx=1`). `COOL`'s case was in
the identical situation (real for both words and VMs, no extra action needed) and, on
request, got the same fix (2026-08-26): now prints `COOL identity=N` (word_id for a word, 0
— the patron-zero convention — for a VM) instead of `(stub)`. Confirmed live: both shapes
fired correctly on the same boot — `COOL identity=0` at Hermes's/Artemis's own explicit
channel-eviction self-test and again at their VM-patron eviction at `PARITY:KILL`,
`COOL identity=1` at a second channel eviction — conservation intact throughout. Clean
zero-warning compile and clean boot on all three architectures for both fixes.
- [ ] `EXPIRE` (ACL) — confirmed genuinely unscoped (2026-08-26), not a case of stale
documentation like `DELIVER` turned out to be. Two findings, then four open questions that
need a real decision before any code:
BIN
View File
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
+16 -10
View File
@@ -272,10 +272,16 @@ uint8_t *stadium_header_bitmap(void) {
* message's identity, same shape as MIGRATE's lbn print, instead of
* claiming to be unimplemented.
*
* EXPIRE (ACL) and COOL (VMs, item 3.5) print "(stub)"/status text for
* their own separate reasons -- EXPIRE has no ACL-Stadium integration of
* any kind yet (FABRIC-3.md §B, genuinely unscoped); COOL's own status is
* documented at its own case below.
* COOL (words, item 4.1; VMs, FABRIC-3.md §B) needs no extra payload action
* here either, same reasoning as DELIVER: stadium_evict()'s own universal
* reservoir credit is the whole of what "cooling off the floor" means for
* both patron kinds -- real and live for both since item 4.1 and this
* session respectively. Fixed the same way, to print the departing
* patron's identity (word_id for a word, 0 -- the patron-zero convention --
* for a VM) instead of a misleading "(stub)" label.
*
* EXPIRE (ACL) alone remains genuinely unbuilt -- no ACL-Stadium
* integration of any kind exists yet (FABRIC-3.md §B).
*/
void stadium_dispatch(size_t cell_index, StadiumBehaviour behaviour) {
console_puts("Stadium: dispatch cell=");
@@ -300,13 +306,13 @@ void stadium_dispatch(size_t cell_index, StadiumBehaviour behaviour) {
case STADIUM_BEHAVIOUR_EXPIRE:
console_println("EXPIRE (stub)");
break;
case STADIUM_BEHAVIOUR_COOL:
/* Real for words (item 4.1) and VMs (FABRIC-3.md SS B) -- both
* confirmed to need no extra payload action here either, same
* reasoning as DELIVER above. Left printing "(stub)" for now:
* only DELIVER's label was in scope for this fix. */
console_println("COOL (stub)");
case STADIUM_BEHAVIOUR_COOL: {
uint64_t identity = stadium_cell_array[cell_index].header.identity;
console_puts("COOL identity=");
console_put_u64(identity);
console_println("");
break;
}
}
}