Structure region restore handoff hypothesis

This commit is contained in:
Jan Petykiewicz 2026-04-18 20:36:30 -07:00
commit 957f251057

View file

@ -4942,6 +4942,7 @@ fn build_region_service_trace_report(
let next_owner_questions = vec![
"Which restore seam re-seeds [region+0x25e] and clears [region+0x302/+0x316] before the grounded 0x00422100 -> 0x004358d0 producer/consumer cycle runs again?".to_string(),
"Which stable region id or class discriminator survives save/load strongly enough to drive 0x004358d0 after the class-0 raster/id rebuilds are ruled out?".to_string(),
"Which later global restore continuation after 0x00444887 rehydrates [region+0x2a4] and [region+0x310/+0x338/+0x360] once the 0x00421510 -> 0x0041f5c0 -> 0x00455fc0 path and the 0x00444b90 -> 0x00420560 per-region follow-on are both ruled down?".to_string(),
"How far can the grounded 0x00420030/0x00420280 plus 0x0047efe0 connection chain be rehosted directly before the transient queued-notice family matters again?".to_string(),
];
let candidate_consumer_hypotheses = vec![
@ -5025,6 +5026,27 @@ fn build_region_service_trace_report(
"needs the upstream restore seam for [region+0x25e/+0x302/+0x316] rather than more queue-side probing".to_string(),
],
},
SmpServiceConsumerHypothesis {
label: "later global restore continuation".to_string(),
status: "next_global_restore_handoff_target".to_string(),
candidate_consumers: vec![
"0x00444887 broader restore continuation after region refresh".to_string(),
"0x00487c20 territory_collection_refresh_records_from_tagged_bundle".to_string(),
"0x0040b5d0 support_collection_refresh_records_from_tagged_bundle".to_string(),
"0x00444b90 later per-region restore follow-on loop".to_string(),
"0x00420560 region profile-derived scalar refresh helper".to_string(),
],
evidence: vec![
"the checked-in region trace already grounds 0x00444887 as the first caller-side checkpoint above 0x00421510: it refreshes the region collection and then immediately advances into the territory and support collection refresh owners".to_string(),
"the same grounded evidence already narrows the later per-region follow-on too: 0x00444b90 dispatches 0x00420560 over each live region after the broader restore continuation has already advanced".to_string(),
"direct disassembly already rules that per-region follow-on down as a latch owner: 0x00420560 only zeroes and recomputes [region+0x312] from the embedded profile collection [region+0x37f]/[region+0x383] and lazily seeds the year-driven [region+0x317/+0x31b] band through 0x00420350, not [region+0x276/+0x302/+0x316]".to_string(),
"that leaves the broader 0x00444887 continuation as the next structured restore seam above the ruled-down 0x00421510 -> 0x0041f5c0 -> 0x00455fc0 path when chasing acquisition-side lanes [region+0x2a4] and [region+0x310/+0x338/+0x360]".to_string(),
],
blockers: vec![
"the concrete later-global restore owner that rehydrates [region+0x2a4] and [region+0x310/+0x338/+0x360] is still not grounded below the 0x00444887 continuation".to_string(),
"territory and support collection refresh owners are adjacent in the same continuation and may still carry shared prerequisites before the region-side rebuild resumes".to_string(),
],
},
SmpServiceConsumerHypothesis {
label: "queued kind-7 modal dispatch path".to_string(),
status: "shell_adjacent_reference_only".to_string(),
@ -27386,8 +27408,8 @@ mod tests {
assert!(!trace.atlas_candidate_consumers.is_empty());
assert_eq!(trace.known_owner_bridge_fields.len(), 6);
assert_eq!(trace.known_bridge_helpers.len(), 14);
assert_eq!(trace.next_owner_questions.len(), 3);
assert_eq!(trace.candidate_consumer_hypotheses.len(), 4);
assert_eq!(trace.next_owner_questions.len(), 4);
assert_eq!(trace.candidate_consumer_hypotheses.len(), 5);
assert_eq!(
trace.candidate_consumer_hypotheses[0].status,
"highest_priority_static_mapping_target"
@ -27396,6 +27418,10 @@ mod tests {
trace.candidate_consumer_hypotheses[2].status,
"secondary_candidate_after_pending_service"
);
assert_eq!(
trace.candidate_consumer_hypotheses[3].status,
"next_global_restore_handoff_target"
);
assert_eq!(
trace.candidate_consumer_hypotheses[1].status,
"parallel_static_mapping_target"
@ -27462,6 +27488,38 @@ mod tests {
&& line.contains("0x00455f60")
&& line.contains("bit 0x10"))
);
assert!(
trace.candidate_consumer_hypotheses[3]
.candidate_consumers
.iter()
.any(|line| line.contains("0x00444887"))
);
assert!(
trace.candidate_consumer_hypotheses[3]
.candidate_consumers
.iter()
.any(|line| line.contains("0x00487c20"))
);
assert!(
trace.candidate_consumer_hypotheses[3]
.candidate_consumers
.iter()
.any(|line| line.contains("0x0040b5d0"))
);
assert!(
trace.candidate_consumer_hypotheses[3]
.evidence
.iter()
.any(|line| line.contains("0x00444887")
&& line.contains("0x00421510"))
);
assert!(
trace.candidate_consumer_hypotheses[3]
.evidence
.iter()
.any(|line| line.contains("0x00444b90")
&& line.contains("0x00420560"))
);
assert!(
trace.candidate_consumer_hypotheses[1]
.evidence