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
+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;
}
}
}