Separate linked-transit identity from rebuilt caches

This commit is contained in:
Jan Petykiewicz 2026-04-18 23:41:57 -07:00
commit b0c089a340
2 changed files with 97 additions and 10 deletions

View file

@ -3708,6 +3708,10 @@ pub struct SmpPeriodicCompanyServiceTraceReport {
pub next_owner_questions: Vec<String>, pub next_owner_questions: Vec<String>,
pub linked_transit_shellless_readiness_status: String, pub linked_transit_shellless_readiness_status: String,
#[serde(default)] #[serde(default)]
pub linked_transit_minimum_persisted_identity_inputs: Vec<String>,
#[serde(default)]
pub linked_transit_live_rebuilt_cache_lanes: Vec<String>,
#[serde(default)]
pub linked_transit_runtime_backed_input_families: Vec<String>, pub linked_transit_runtime_backed_input_families: Vec<String>,
#[serde(default)] #[serde(default)]
pub linked_transit_remaining_owner_gaps: Vec<String>, pub linked_transit_remaining_owner_gaps: Vec<String>,
@ -4982,6 +4986,20 @@ fn build_periodic_company_service_trace_report(
]; ];
let linked_transit_shellless_readiness_status = let linked_transit_shellless_readiness_status =
"timed_cache_and_train_side_followons_grounded_site_cache_input_owners_missing".to_string(); "timed_cache_and_train_side_followons_grounded_site_cache_input_owners_missing".to_string();
let linked_transit_minimum_persisted_identity_inputs = vec![
"save-backed company identity, current company id, and linked-transit latch [company+0x0d56] selecting one per-company cache cell root beneath [site+0x5bd][company_id]".to_string(),
"save-backed linked-transit route-anchor tuple [company+0x0d35] and fallback count lanes [company+0x7664/+0x7668/+0x766c] feeding the reachable-site strip above 0x00401860 / 0x004801a0".to_string(),
"save-backed placed-structure owner and class identity lanes [site+0x276] and [site+0x04] consumed by 0x0047efe0 / 0x0047fd50 before any linked-transit site is marked eligible".to_string(),
"save-backed placed-structure and peer identity lanes [site+0x2a4], [site+0x2a8], and [peer+0x04/+0x08] giving the live site and linked-peer ids that the cache rebuilds query".to_string(),
"save-backed world calendar lanes [world+0x15] and [world+0x0d] driving refresh cadence, age stamping, and the year-banded policy table used by 0x00408380".to_string(),
];
let linked_transit_live_rebuilt_cache_lanes = vec![
"0x004093d0 stamps [company+0x0d3e], clears each selected [site+0x5bd][company_id] cell, frees and reallocates its peer table at +0x06, repopulates +0x02/+0x06/+0x0a, and marks bytes +0x00/+0x01 from the live site filter".to_string(),
"0x004093d0 fills each 0x0d-stride peer row from 0x004a6630, so peer-table dword +0x05 step count and float +0x09 normalized continuity share are rebuilt scratch from live route-entry tracker results".to_string(),
"0x00407bd0 clears [site+0x0e/+0x12/+0x16] before folding the rebuilt peer rows plus candidate tables back into weighted/raw/final per-site score lanes".to_string(),
"0x00481910 and 0x004819b0 rebuild the local occupancy/count lane [site+0x5c1] from current-site-id resolver 0x004a9340 rather than from any serialized cache blob".to_string(),
"0x004aee2b rewrites [site+0x5c5] from world counter [world+0x15], making the chooser age bonus a live rebuilt lane rather than persisted cache state".to_string(),
];
let linked_transit_runtime_backed_input_families = vec![ let linked_transit_runtime_backed_input_families = vec![
"company linked-transit route-anchor tuple [company+0x0d35] and fallback count lanes [company+0x7664/+0x7668/+0x766c] through 0x00401860".to_string(), "company linked-transit route-anchor tuple [company+0x0d35] and fallback count lanes [company+0x7664/+0x7668/+0x766c] through 0x00401860".to_string(),
"company linked-transit peer-cache refresh absolute counter [company+0x0d3e] driving the shorter 0x00409720 -> 0x004093d0 cadence".to_string(), "company linked-transit peer-cache refresh absolute counter [company+0x0d3e] driving the shorter 0x00409720 -> 0x004093d0 cadence".to_string(),
@ -4999,8 +5017,8 @@ fn build_periodic_company_service_trace_report(
"linked-transit train-side autoroute append / rotate strip 0x00409770 plus add-train owner 0x00409830 beneath roster balancer 0x00409950".to_string(), "linked-transit train-side autoroute append / rotate strip 0x00409770 plus add-train owner 0x00409830 beneath roster balancer 0x00409950".to_string(),
]; ];
let linked_transit_remaining_owner_gaps = vec![ let linked_transit_remaining_owner_gaps = vec![
"which persisted site-side inputs are sufficient to repopulate the 0x1a-byte per-company cache cells rooted at [site+0x5bd], the local occupancy/age lanes [site+0x5c1/+0x5c5], and the weighted site-score lanes [site+0x0e/+0x12/+0x16] without relying on shell-owned layout or route refresh follow-ons".to_string(), "which placed-structure-side restore or service owner guarantees that the save-backed identity inputs [site+0x276], [site+0x04], [site+0x2a4], [site+0x2a8], and [peer+0x04/+0x08] have already rehydrated the live site and peer tables before 0x004093d0 / 0x00407bd0 rebuild their scratch cache lanes".to_string(),
"which placed-structure-side restore or service owner above 0x00407780 / 0x004077e0 / 0x004093d0 / 0x00407bd0 guarantees those repopulated cache lanes are trustworthy before 0x00408280 / 0x00408380 / 0x00409770 run shelllessly".to_string(), "which higher-layer non-hook owner above 0x00407780 / 0x004077e0 / 0x004093d0 / 0x00407bd0 / 0x004a6630 provides the live route-entry tracker and candidate-table inputs that make those rebuilt lanes trustworthy before 0x00408280 / 0x00408380 / 0x00409770 run shelllessly".to_string(),
]; ];
let companies = analysis let companies = analysis
@ -5311,6 +5329,8 @@ fn build_periodic_company_service_trace_report(
known_bridge_helpers, known_bridge_helpers,
next_owner_questions, next_owner_questions,
linked_transit_shellless_readiness_status, linked_transit_shellless_readiness_status,
linked_transit_minimum_persisted_identity_inputs,
linked_transit_live_rebuilt_cache_lanes,
linked_transit_runtime_backed_input_families, linked_transit_runtime_backed_input_families,
linked_transit_remaining_owner_gaps, linked_transit_remaining_owner_gaps,
companies, companies,
@ -28255,6 +28275,11 @@ mod tests {
trace.linked_transit_shellless_readiness_status, trace.linked_transit_shellless_readiness_status,
"timed_cache_and_train_side_followons_grounded_site_cache_input_owners_missing" "timed_cache_and_train_side_followons_grounded_site_cache_input_owners_missing"
); );
assert_eq!(
trace.linked_transit_minimum_persisted_identity_inputs.len(),
5
);
assert_eq!(trace.linked_transit_live_rebuilt_cache_lanes.len(), 5);
assert_eq!(trace.linked_transit_runtime_backed_input_families.len(), 14); assert_eq!(trace.linked_transit_runtime_backed_input_families.len(), 14);
assert_eq!(trace.linked_transit_remaining_owner_gaps.len(), 2); assert_eq!(trace.linked_transit_remaining_owner_gaps.len(), 2);
assert_eq!(trace.companies.len(), 1); assert_eq!(trace.companies.len(), 1);
@ -28683,6 +28708,53 @@ mod tests {
&& line.contains("0x00412560") && line.contains("0x00412560")
&& line.contains("[site+0x2b4/+0x2b8/+0x2bc]") && line.contains("[site+0x2b4/+0x2b8/+0x2bc]")
})); }));
assert!(
trace
.linked_transit_minimum_persisted_identity_inputs
.iter()
.any(|line| line.contains("[site+0x276]")
&& line.contains("[site+0x04]")
&& line.contains("0x0047efe0 / 0x0047fd50"))
);
assert!(
trace
.linked_transit_minimum_persisted_identity_inputs
.iter()
.any(|line| line.contains("[site+0x2a4]")
&& line.contains("[site+0x2a8]")
&& line.contains("[peer+0x04/+0x08]"))
);
assert!(
trace
.linked_transit_live_rebuilt_cache_lanes
.iter()
.any(|line| line.contains("0x004093d0")
&& line.contains("[company+0x0d3e]")
&& line.contains("+0x02/+0x06/+0x0a"))
);
assert!(
trace
.linked_transit_live_rebuilt_cache_lanes
.iter()
.any(|line| line.contains("0x00407bd0")
&& line.contains("[site+0x0e/+0x12/+0x16]"))
);
assert!(
trace
.linked_transit_live_rebuilt_cache_lanes
.iter()
.any(|line| line.contains("0x00481910")
&& line.contains("0x004819b0")
&& line.contains("0x004a9340"))
);
assert!(
trace
.linked_transit_live_rebuilt_cache_lanes
.iter()
.any(|line| line.contains("0x004aee2b")
&& line.contains("[site+0x5c5]")
&& line.contains("[world+0x15]"))
);
assert!( assert!(
trace trace
.linked_transit_runtime_backed_input_families .linked_transit_runtime_backed_input_families
@ -28744,10 +28816,19 @@ mod tests {
trace trace
.linked_transit_remaining_owner_gaps .linked_transit_remaining_owner_gaps
.iter() .iter()
.any(|line| line.contains("0x1a-byte per-company cache cells") .any(|line| line.contains("[site+0x276]")
&& line.contains("[site+0x5bd]") && line.contains("[site+0x04]")
&& line.contains("[site+0x5c1/+0x5c5]") && line.contains("[site+0x2a4]")
&& line.contains("[site+0x0e/+0x12/+0x16]")) && line.contains("[peer+0x04/+0x08]"))
);
assert!(
trace
.linked_transit_remaining_owner_gaps
.iter()
.any(|line| line.contains("0x00407780")
&& line.contains("0x004093d0")
&& line.contains("0x00407bd0")
&& line.contains("0x004a6630"))
); );
assert!( assert!(
trace trace

View file

@ -40,11 +40,17 @@ Working rule:
bytes `+0x00/+0x01` gate participation, dwords `+0x02/+0x06/+0x0a` hold peer count, peer bytes `+0x00/+0x01` gate participation, dwords `+0x02/+0x06/+0x0a` hold peer count, peer
pointer, and peer-cache refresh stamp, and floats `+0x0e/+0x12/+0x16` are the pointer, and peer-cache refresh stamp, and floats `+0x0e/+0x12/+0x16` are the
weighted/raw/final score lanes weighted/raw/final score lanes
- the persisted-vs-live split is tighter now too:
the minimal save-backed identity set is `[site+0x276]`, `[site+0x04]`, `[site+0x2a4]`,
`[site+0x2a8]`, `[peer+0x04/+0x08]`, `[company+0x0d35/+0x0d56/+0x7664/+0x7668/+0x766c]`,
and world calendar lanes `[world+0x15/+0x0d]`, while the actual cache contents at
`[site+0x5bd]`, `[site+0x5c1/+0x5c5]`, and `[site+0x0e/+0x12/+0x16]` are live rebuilt scratch
lanes under `0x004093d0 / 0x00407bd0 / 0x00481910 / 0x004819b0 / 0x004aee2b`
- that makes the next linked-transit question narrower: - that makes the next linked-transit question narrower:
identify which persisted site-side inputs are sufficient to repopulate the per-company cache identify which restore or service owner guarantees those save-backed site/peer/company identity
cells, occupancy/age lanes, and weighted site-score lanes consumed by lanes have already rebuilt the live placed-structure, peer, route-entry tracker, and candidate
`0x00408280 / 0x00408380`, because the bounded train-side strip tables consumed by `0x004093d0 / 0x00407bd0 / 0x004a6630`, because the bounded train-side strip
`0x00409770 / 0x00409830 / 0x00409950` is no longer the blocker `0x00409770 / 0x00409830 / 0x00409950` and the cache-cell semantics are no longer the blocker
- Make the next static/rehost slice the near-city industry acquisition owner seam under - Make the next static/rehost slice the near-city industry acquisition owner seam under
`0x004014b0`, not another generic infrastructure pass. The concrete questions are: `0x004014b0`, not another generic infrastructure pass. The concrete questions are:
- which minimum persisted peer-site fields on the already-grounded `0x006cec20` placed-structure - which minimum persisted peer-site fields on the already-grounded `0x006cec20` placed-structure