Split peer-site restore and runtime inputs

This commit is contained in:
Jan Petykiewicz 2026-04-18 19:07:20 -07:00
commit 1d6eed09ab
2 changed files with 29 additions and 5 deletions

View file

@ -3475,6 +3475,10 @@ pub struct SmpPeriodicCompanyServiceTraceReport {
#[serde(default)] #[serde(default)]
pub peer_site_selector_candidate_helper_linkage: Vec<String>, pub peer_site_selector_candidate_helper_linkage: Vec<String>,
#[serde(default)] #[serde(default)]
pub peer_site_restore_input_fields: Vec<String>,
#[serde(default)]
pub peer_site_runtime_input_fields: Vec<String>,
#[serde(default)]
pub atlas_candidate_consumers: Vec<String>, pub atlas_candidate_consumers: Vec<String>,
#[serde(default)] #[serde(default)]
pub known_bridge_helpers: Vec<String>, pub known_bridge_helpers: Vec<String>,
@ -4074,6 +4078,17 @@ fn build_periodic_company_service_trace_report(
"0x0040d1e1 -> 0x0045c3c0 consumes the same owner family's [site+0x246] child lane" "0x0040d1e1 -> 0x0045c3c0 consumes the same owner family's [site+0x246] child lane"
.to_string(), .to_string(),
]; ];
let peer_site_restore_input_fields = vec![
"[site+0x3cc] saved placed-structure id feeding 0x62b2fc".to_string(),
"[site+0x3d0] saved companion-region id from [placed+0x173] feeding 0x62b268".to_string(),
"0x5dc1 payload lane [owner+0x23e] feeding 0x0045c36e selector arg 1".to_string(),
"0x5dc1 payload lane [owner+0x242] companion lane paired with [owner+0x23e]".to_string(),
];
let peer_site_runtime_input_fields = vec![
"[site+0x04] live backing-record selector consumed by 0x0047efe0 / 0x0047fd50".to_string(),
"[site+0x2a8] linked peer-site id consumed by 0x0040d1f0".to_string(),
"[peer+0x08] route-entry anchor id consumed by 0x0047dda0".to_string(),
];
let atlas_candidate_consumers = vec![ let atlas_candidate_consumers = vec![
"0x004019e0 periodic company outer service owner".to_string(), "0x004019e0 periodic company outer service owner".to_string(),
"0x00406050 city-connection bonus/news owner".to_string(), "0x00406050 city-connection bonus/news owner".to_string(),
@ -4144,7 +4159,7 @@ fn build_periodic_company_service_trace_report(
"0x00409950 linked-transit roster sibling owner".to_string(), "0x00409950 linked-transit roster sibling owner".to_string(),
]; ];
let next_owner_questions = vec![ let next_owner_questions = vec![
"Which minimum persisted site and peer fields behind the now-grounded local helper strip are sufficient to rehost 0x004014b0 shelllessly: [site+0x3cc/+0x3d0], the 0x5dc1-backed [owner+0x23e/+0x242] selector lanes, [site+0x2a8], [peer+0x08], or some smaller subset?".to_string(), "Which minimum persisted fields are actually needed to rehost 0x004014b0 shelllessly once the selector seam is grounded: only the restore subset [site+0x3cc/+0x3d0] plus the 0x5dc1-backed [owner+0x23e/+0x242] lanes, or must the live runtime subset [site+0x04], [site+0x2a8], and [peer+0x08] also be materialized explicitly in the headless state contract?".to_string(),
"How much of the linked-peer refresh path is strictly post-load versus recurring runtime maintenance now that 0x004133b0 reaches 0x0040ee10 -> 0x0040edf6 -> 0x00480710 during bring-up and 0x004160aa also re-enters 0x0040ee10 later?".to_string(), "How much of the linked-peer refresh path is strictly post-load versus recurring runtime maintenance now that 0x004133b0 reaches 0x0040ee10 -> 0x0040edf6 -> 0x00480710 during bring-up and 0x004160aa also re-enters 0x0040ee10 later?".to_string(),
"Which persisted linkage fields behind 0x0047efe0, [region+0x2a4], and [region+0x276] are sufficient to rehost the 0x004014b0 proximity-and-news branch without shell state?".to_string(), "Which persisted linkage fields behind 0x0047efe0, [region+0x2a4], and [region+0x276] are sufficient to rehost the 0x004014b0 proximity-and-news branch without shell state?".to_string(),
"Which infrastructure consumer above the grounded 0x38a5 seam actually drives the linked-transit branch that 0x00409950 follows?".to_string(), "Which infrastructure consumer above the grounded 0x38a5 seam actually drives the linked-transit branch that 0x00409950 follows?".to_string(),
@ -4325,6 +4340,8 @@ fn build_periodic_company_service_trace_report(
peer_site_selector_candidate_selector_lane, peer_site_selector_candidate_selector_lane,
peer_site_selector_candidate_class_identity_status, peer_site_selector_candidate_class_identity_status,
peer_site_selector_candidate_helper_linkage, peer_site_selector_candidate_helper_linkage,
peer_site_restore_input_fields,
peer_site_runtime_input_fields,
atlas_candidate_consumers, atlas_candidate_consumers,
known_bridge_helpers, known_bridge_helpers,
next_owner_questions, next_owner_questions,
@ -25995,6 +26012,8 @@ mod tests {
"grounded_direct_local_helper_strip" "grounded_direct_local_helper_strip"
); );
assert_eq!(trace.peer_site_selector_candidate_helper_linkage.len(), 4); assert_eq!(trace.peer_site_selector_candidate_helper_linkage.len(), 4);
assert_eq!(trace.peer_site_restore_input_fields.len(), 4);
assert_eq!(trace.peer_site_runtime_input_fields.len(), 3);
assert!(trace.atlas_candidate_consumers.iter().any(|line| { assert!(trace.atlas_candidate_consumers.iter().any(|line| {
line.contains("0x00420030 / 0x00420280") line.contains("0x00420030 / 0x00420280")
&& line.contains("0x006cec20") && line.contains("0x006cec20")
@ -26003,7 +26022,7 @@ mod tests {
assert!(trace.next_owner_questions.iter().any(|line| { assert!(trace.next_owner_questions.iter().any(|line| {
line.contains("[site+0x3cc/+0x3d0]") line.contains("[site+0x3cc/+0x3d0]")
&& line.contains("[owner+0x23e/+0x242]") && line.contains("[owner+0x23e/+0x242]")
&& line.contains("[peer+0x08]") && line.contains("[site+0x04]")
})); }));
assert!(trace.next_owner_questions.iter().any(|line| { assert!(trace.next_owner_questions.iter().any(|line| {
line.contains("0x004160aa") line.contains("0x004160aa")

View file

@ -114,10 +114,15 @@ Working rule:
`0x0040ceab -> 0x0045c150` / `0x0040d1a1 -> 0x0045c310` / `0x0040ceab -> 0x0045c150` / `0x0040d1a1 -> 0x0045c310` /
`0x0040cd70 seeds [site+0x3cc/+0x3d0] from 0x62b2fc / 0x62b268` `0x0040cd70 seeds [site+0x3cc/+0x3d0] from 0x62b2fc / 0x62b268`
- treat the peer-site selector seam itself as grounded enough for planning purposes - treat the peer-site selector seam itself as grounded enough for planning purposes
- use the new structured restore/runtime field split in the same trace:
restore subset
`[site+0x3cc/+0x3d0]` plus `0x5dc1`-backed `[owner+0x23e/+0x242]`,
and runtime subset
`[site+0x04]`, `[site+0x2a8]`, `[peer+0x08]`
- make the next periodic-company slice about the smaller shellless-simulation question instead: - make the next periodic-company slice about the smaller shellless-simulation question instead:
which subset of persisted site/peer fields (`[site+0x3cc/+0x3d0]`, whether `0x004014b0` and the city-connection sibling only need that restore subset to
`0x5dc1`-backed `[owner+0x23e/+0x242]`, `[site+0x2a8]`, `[peer+0x08]`) is actually reconstruct the runtime subset deterministically, or whether the runtime subset has to become
sufficient to run `0x004014b0` and the city-connection sibling without shell state an explicit headless-state contract
- Use the higher-layer probes as the standard entry point for the current blocked frontier instead - Use the higher-layer probes as the standard entry point for the current blocked frontier instead
of generic save scans: of generic save scans:
`runtime inspect-periodic-company-service-trace <save.gms>`, `runtime inspect-periodic-company-service-trace <save.gms>`,