Expose bridge fields in higher-layer traces
This commit is contained in:
parent
4d98967c41
commit
286e4915c6
1 changed files with 40 additions and 0 deletions
|
|
@ -2953,6 +2953,10 @@ pub struct SmpRegionServiceTraceReport {
|
|||
#[serde(default)]
|
||||
pub atlas_candidate_consumers: Vec<String>,
|
||||
#[serde(default)]
|
||||
pub known_owner_bridge_fields: Vec<String>,
|
||||
#[serde(default)]
|
||||
pub next_owner_questions: Vec<String>,
|
||||
#[serde(default)]
|
||||
pub candidate_consumer_hypotheses: Vec<SmpServiceConsumerHypothesis>,
|
||||
#[serde(default)]
|
||||
pub entries: Vec<SmpRegionServiceTraceEntry>,
|
||||
|
|
@ -2984,6 +2988,10 @@ pub struct SmpInfrastructureAssetTraceReport {
|
|||
#[serde(default)]
|
||||
pub atlas_candidate_consumers: Vec<String>,
|
||||
#[serde(default)]
|
||||
pub known_owner_bridge_fields: Vec<String>,
|
||||
#[serde(default)]
|
||||
pub next_owner_questions: Vec<String>,
|
||||
#[serde(default)]
|
||||
pub candidate_consumer_hypotheses: Vec<SmpServiceConsumerHypothesis>,
|
||||
#[serde(default)]
|
||||
pub branches: Vec<SmpServiceTraceBranchStatus>,
|
||||
|
|
@ -3620,6 +3628,19 @@ fn build_region_service_trace_report(
|
|||
"0x00420030 / 0x00420280 city-connection peer probes".to_string(),
|
||||
"0x0047efe0 placed-structure linked-company resolver".to_string(),
|
||||
];
|
||||
let known_owner_bridge_fields = vec![
|
||||
"[region+0x25e] pending-bonus severity/source lane".to_string(),
|
||||
"[region+0x276] pending bonus amount".to_string(),
|
||||
"[region+0x302] completion latch".to_string(),
|
||||
"[region+0x316] one-shot fallback notice latch".to_string(),
|
||||
"[region+0x356] localized region name".to_string(),
|
||||
"[region+0x23a] world-scalar-backed region lane used in notices".to_string(),
|
||||
];
|
||||
let next_owner_questions = vec![
|
||||
"Which persisted owner seam rebuilds or restores [region+0x25e/+0x276/+0x302/+0x316]?".to_string(),
|
||||
"Which stable region id or class discriminator survives save/load strongly enough to drive 0x004358d0?".to_string(),
|
||||
"How far can 0x00420030/0x00420280 plus 0x0047efe0 be reused directly before the transient queued-notice family matters again?".to_string(),
|
||||
];
|
||||
let candidate_consumer_hypotheses = vec![
|
||||
SmpServiceConsumerHypothesis {
|
||||
label: "pending region bonus service path".to_string(),
|
||||
|
|
@ -3746,6 +3767,8 @@ fn build_region_service_trace_report(
|
|||
.map(|probe| probe.entries.len())
|
||||
.unwrap_or_default(),
|
||||
atlas_candidate_consumers,
|
||||
known_owner_bridge_fields,
|
||||
next_owner_questions,
|
||||
candidate_consumer_hypotheses,
|
||||
entries,
|
||||
notes,
|
||||
|
|
@ -3784,6 +3807,17 @@ fn build_infrastructure_asset_trace_report(
|
|||
"0x00448a70 / 0x00493660 / 0x0048b660 route and world follow-on family".to_string(),
|
||||
"0x004133b0 placed-structure local-runtime refresh outer owner".to_string(),
|
||||
];
|
||||
let known_owner_bridge_fields = vec![
|
||||
"[this+0x248] cached primary-child slot".to_string(),
|
||||
"[this+0x206/+0x20a/+0x20e] route-entry resolver fields".to_string(),
|
||||
"[this+0x1e2/+0x1e6/+0x1ea] published anchor triplet".to_string(),
|
||||
"child list [this+0x75] under the Infrastructure owner".to_string(),
|
||||
];
|
||||
let next_owner_questions = vec![
|
||||
"Do the 0x38a5 compact-prefix/name-pair groups feed the first-child triplet clone lane, the caller-supplied payload-stem lane, or only later route/local-runtime refresh?".to_string(),
|
||||
"Is cached primary-child slot [this+0x248] the first owner-visible bridge from the side-buffer seam into route-entry rebuild?".to_string(),
|
||||
"Which child fields or grouped rows absorb the side-buffer payload before 0x00448a70/0x00493660/0x0048b660 become relevant?".to_string(),
|
||||
];
|
||||
let candidate_consumer_hypotheses = vec![
|
||||
SmpServiceConsumerHypothesis {
|
||||
label: "infrastructure child attach/rebuild path".to_string(),
|
||||
|
|
@ -3949,6 +3983,8 @@ fn build_infrastructure_asset_trace_report(
|
|||
.map(|probe| probe.overlapping_name_pair_count)
|
||||
.unwrap_or_default(),
|
||||
atlas_candidate_consumers,
|
||||
known_owner_bridge_fields,
|
||||
next_owner_questions,
|
||||
candidate_consumer_hypotheses,
|
||||
branches,
|
||||
notes,
|
||||
|
|
@ -21765,6 +21801,8 @@ mod tests {
|
|||
assert_eq!(trace.region_record_triplet_count, 1);
|
||||
assert_eq!(trace.queued_notice_record_count, 0);
|
||||
assert!(!trace.atlas_candidate_consumers.is_empty());
|
||||
assert_eq!(trace.known_owner_bridge_fields.len(), 6);
|
||||
assert_eq!(trace.next_owner_questions.len(), 3);
|
||||
assert_eq!(trace.candidate_consumer_hypotheses.len(), 3);
|
||||
assert_eq!(
|
||||
trace.candidate_consumer_hypotheses[0].status,
|
||||
|
|
@ -21859,6 +21897,8 @@ mod tests {
|
|||
let trace = build_infrastructure_asset_trace_report(&analysis);
|
||||
assert!(trace.side_buffer_present);
|
||||
assert_eq!(trace.triplet_alignment_overlap_count, 0);
|
||||
assert_eq!(trace.known_owner_bridge_fields.len(), 4);
|
||||
assert_eq!(trace.next_owner_questions.len(), 3);
|
||||
assert_eq!(trace.candidate_consumer_hypotheses.len(), 3);
|
||||
assert_eq!(
|
||||
trace.candidate_consumer_hypotheses[0].status,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue