Bind event-detail trigger and builder lanes

This commit is contained in:
Jan Petykiewicz 2026-04-19 00:11:26 -07:00
commit a3c4d4e032
2 changed files with 21 additions and 2 deletions

View file

@ -4780,6 +4780,7 @@ fn build_periodic_company_service_trace_report(
"0x0042fc90 itself iterates the live placed-structure collection 0x0062b26c, filters rows through 0x0040c990 plus optional company match [site+0x276], and then dispatches row vtable slot +0x70, which keeps that branch on the live application side rather than replay".to_string(),
"the trigger-kind field itself is now bounded as an ordinary loaded per-event lane rather than a startup-only special class: restore-side loader 0x00433130 repopulates live event collection 0x0062be18 from packed chunk family 0x4e21/0x4e22, and the event-detail editor strip 0x004d90ba..0x004d91ed writes [event+0x7ef] across the full 0x00..0x0a range through controls 0x4e98..0x4ea2, including kind 8 at 0x004d91b3".to_string(),
"that keeps 0x00444d92 -> 0x00432f40(kind 8) on the ordinary loaded runtime-effect pipeline too: world bring-up is servicing pre-existing rows from 0x0062be18 rather than a one-off startup-only record class synthesized outside the collection".to_string(),
"the event-detail editor family now ties that trigger-kind field to the ordinary runtime-effect builders too: selected-event control family 0x004db02a / 0x004db1b8..0x004db309 mirrors current [event+0x7ef] back into controls 0x4e98..0x4ea2 under root control 0x4e84, while editor-side builder 0x004db9e5..0x004db9f1 allocates a runtime-effect row from compact payload into 0x0062be18 through 0x00432ea0 before rebinding the selected event id".to_string(),
],
blockers: vec![
"current atlas evidence now grounds one tuple-backed owner path too: loader tuple field [+0x0c] reaches [site+0x276] through 0x0046f073 / 0x004707ff -> 0x0040ef10, but the classified 0x004707ff caller belongs to multiplayer transport selector-0x13 rather than ordinary save-load restore, so a non-transport persisted source family is still needed for shellless acquisition".to_string(),
@ -4787,7 +4788,7 @@ fn build_periodic_company_service_trace_report(
"the paired collection-side triplet serializer 0x00413440 is ruled down too, so the missing ordinary restored-row owner seam likely sits outside the currently bounded direct allocator/finalize/store families and the tagged 0x36b1/0x36b2/0x36b3 load-save strip".to_string(),
"the load-side stream owner 0x00413280 is ruled down to cached-source/candidate replay through vtable slot +0x40 and 0x0040ce60, so the missing ordinary restored-row owner seam still sits beyond the current stream-load bridge too".to_string(),
"the checked ordinary restore ordering is ruled down too: 0x00413280 stream load, 0x00481210 dynamic side-buffer refresh, and 0x004133b0 local-runtime replay all sit on the bring-up strip without re-entering 0x004134d0 / 0x0040f6d0 / 0x0040ef10 for already-restored rows".to_string(),
"the grouped opcode dispatcher 0x00431b20 is still not a tagged restore owner, but the remaining uncertainty is narrower now than 'is kind 8 synthetic': restore-side 0x00433130 reloads ordinary live event rows into 0x0062be18 and the event-detail editor exposes [event+0x7ef] across 0x00..0x0a including kind 8, so the open question is which loaded kind-8 rows can actually reach the placed-structure mutation opcodes under 0x00431b20 rather than whether kind 8 is a special startup-only class".to_string(),
"the grouped opcode dispatcher 0x00431b20 is still not a tagged restore owner, but the remaining uncertainty is narrower now than 'is kind 8 synthetic' or 'does kind 8 live on a separate editor/build class': restore-side 0x00433130 reloads ordinary live event rows into 0x0062be18, the event-detail editor exposes [event+0x7ef] across 0x00..0x0a including kind 8, and the same editor family reaches ordinary runtime-effect allocator 0x00432ea0, so the open question is which loaded kind-8 rows can actually reach the placed-structure mutation opcodes under 0x00431b20".to_string(),
],
},
SmpServiceConsumerHypothesis {
@ -28770,7 +28771,8 @@ mod tests {
&& line.contains("0x0062be18")
&& line.contains("[event+0x7ef]")
&& line.contains("kind 8")
&& line.contains("special startup-only class"))
&& line.contains("separate editor/build class")
&& line.contains("0x00432ea0"))
);
assert!(
trace.near_city_acquisition_projection_hypotheses[0]
@ -28783,6 +28785,16 @@ mod tests {
&& line.contains("0x4e98..0x4ea2")
&& line.contains("0x004d91b3"))
);
assert!(
trace.near_city_acquisition_projection_hypotheses[0]
.evidence
.iter()
.any(|line| line.contains("0x004db02a")
&& line.contains("0x004db1b8..0x004db309")
&& line.contains("0x4e84")
&& line.contains("0x004db9e5..0x004db9f1")
&& line.contains("0x00432ea0"))
);
assert_eq!(
trace
.near_city_acquisition_runtime_backed_input_families