From f99d26fc7cfe46a50b0a88c89113fb17a3339326 Mon Sep 17 00:00:00 2001 From: Jan Petykiewicz Date: Sat, 18 Apr 2026 17:21:57 -0700 Subject: [PATCH] Distinguish region class-0 raster rebuild from latch restore --- crates/rrt-runtime/src/smp.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/crates/rrt-runtime/src/smp.rs b/crates/rrt-runtime/src/smp.rs index 5536952..e47f9b3 100644 --- a/crates/rrt-runtime/src/smp.rs +++ b/crates/rrt-runtime/src/smp.rs @@ -4253,10 +4253,11 @@ fn build_region_service_trace_report( "the first caller-side checkpoint above 0x00421510 is now grounded too: 0x00444887 invokes the region collection refresh inside a broader restore sequence and then immediately advances to territory_collection_refresh_records_from_tagged_bundle 0x00487c20 and support_collection_refresh_records_from_tagged_bundle 0x0040b5d0, which makes the missing latches look like a later global rebuild seam rather than hidden work inside 0x00421510 itself".to_string(), "that broader restore strip now also has one grounded later region-local sweep: at 0x00444b08 it re-enters the live region collection through 0x00421ce0, which walks live records via 0x518380/0x518140 and dispatches 0x0041fb00 per record".to_string(), "the checked-in atlas already grounds 0x0041fb00 as the class-0-only default-region helper under the same family, and 0x00421730 as the later raster finalizer that repopulates [world+0x212d] from class-0 region ids".to_string(), + "direct disassembly now tightens that later sweep too: 0x0041fb00 exits immediately for nonzero [region+0x23e], while 0x00421730 clears the per-cell region word at [world+0x212d]+cell*4+1, seeds cached bounds-like fields [region+0x242/+0x246/+0x24a/+0x24e/+0x252], and only then enters the class-0 path that consumes [region+0x256] and the coordinate helpers 0x00455800/0x00455810".to_string(), ], blockers: vec![ "which later restore or rebuild owner rehydrates [region+0x276/+0x302/+0x316] after the 0x00421510 -> 0x0041f5c0 -> 0x00455fc0 path completes".to_string(), - "whether [region+0x25e] severity/source and any stable region id/class discriminator are serialized elsewhere in the tagged region body or recomputed later by the 0x00421ce0 -> 0x0041fb00 -> 0x00421730 post-load sweep".to_string(), + "whether [region+0x25e] severity/source and any stable region id/class discriminator are serialized elsewhere in the tagged region body or recomputed later by the 0x00421ce0 -> 0x0041fb00 -> 0x00421730 post-load sweep, which now looks like a class-0 raster/id rebuild rather than the pending/completion latch owner".to_string(), ], }, SmpServiceConsumerHypothesis { @@ -25575,6 +25576,13 @@ mod tests { .iter() .any(|line| line.contains("0x00421ce0") && line.contains("0x0041fb00")) ); + assert!( + trace.candidate_consumer_hypotheses[1] + .evidence + .iter() + .any(|line| line.contains("0x00421730") + && line.contains("[region+0x242/+0x246/+0x24a/+0x24e/+0x252]")) + ); assert_eq!(trace.entries.len(), 1); assert_eq!( trace.entries[0].branches[0].status,