From 43660cb93ba30e45617df8af67fbbc7dd3356622 Mon Sep 17 00:00:00 2001 From: Jan Petykiewicz Date: Tue, 21 Apr 2026 18:49:18 -0700 Subject: [PATCH] Preserve periodic trigger-kind gate details --- .../runtime-effect-kind8-late-bringup-note.md | 37 +++++++++++++++++++ ...eriodic-company-control-lane-2026-04-21.md | 37 +++++++++++++++++++ 2 files changed, 74 insertions(+) diff --git a/artifacts/exports/rt3-1.06/runtime-effect-kind8-late-bringup-note.md b/artifacts/exports/rt3-1.06/runtime-effect-kind8-late-bringup-note.md index 0278c5f..95cdf41 100644 --- a/artifacts/exports/rt3-1.06/runtime-effect-kind8-late-bringup-note.md +++ b/artifacts/exports/rt3-1.06/runtime-effect-kind8-late-bringup-note.md @@ -62,6 +62,43 @@ queue, the large function map note, and the broader subgraph artifacts. - but the missing trigger-kind lane is still the blocker above the already-grounded descriptor bridge +## Direct Trigger-Kind Gate + +Fresh direct disassembly now keeps that control lane explicit rather than inferred: + +- `0x00444d92` + - calls `0x00432f40` with trigger kind `8` + - then clears shell-profile latch `[0x006cec7c+0x97]` +- `0x00432f40` + - iterates the live runtime-effect collection + - calls `0x004323a0` for each row with the requested trigger kind + - records whether any row fired + - if collection flag `[this+0x88]` is raised, reruns the same service loop with trigger kind + `0x0a` +- `0x004323a0` + - returns immediately unless `[event+0x81f] == 0` + - returns immediately unless `[event+0x7ef] == trigger_kind` + - only after that exact compare does it continue into the compact dispatch body + +So the active question is no longer whether the trigger kind is a direct row gate. It is where the +ordinary loaded rows get a nonzero `[event+0x7ef]` that matches the later kind-`8` or follow-on +kind-`0x0a` service. + +## Reload-Side Boundary + +The ordinary reload strip is bounded in the same negative way now: + +- `0x00433130` + - restores tagged record families `0x4e99`, `0x4e9a`, and `0x4e9b` + - reads one fixed `4`-byte scalar block through `0x00531150` + - loops live rows through per-record restore helper `0x0042db20` + - clears collection flag `[this+0x88] = 0` before returning +- that reload path does not pass any trigger-kind argument analogous to the later + `0x00432f40(kind)` service + +So the remaining late-bringup/control-lane frontier stays between reload and service rather than +inside the already-bounded restore loop itself. + ## Post-Load Scenario Fixup - `shell_apply_scenario_name_specific_post_load_world_and_object_fixups` `0x00442c30` diff --git a/docs/rehost-queue/periodic-company-control-lane-2026-04-21.md b/docs/rehost-queue/periodic-company-control-lane-2026-04-21.md index caad2c8..1ff11e9 100644 --- a/docs/rehost-queue/periodic-company-control-lane-2026-04-21.md +++ b/docs/rehost-queue/periodic-company-control-lane-2026-04-21.md @@ -115,3 +115,40 @@ So the next non-hook question stays above those already-known title or scenario- - which late bringup branch between ordinary reload `0x00433130` and final kind-`8` service `0x00432f40` materializes the live mutation-capable ordinary rows + +## Direct Trigger-Kind Gate + +Fresh `objdump` over the control-lane strip now keeps the missing trigger-kind boundary concrete: + +- `0x00444d92` + - calls `0x00432f40` with trigger kind `8` + - then clears shell-profile latch `[0x006cec7c+0x97]` +- `0x00432f40` + - iterates the live runtime-effect collection + - calls `0x004323a0` once per row with the requested trigger kind + - records whether any row fired + - if collection flag `[this+0x88]` is raised, reruns the same service loop with trigger kind + `0x0a` +- `0x004323a0` + - returns immediately unless `[event+0x81f] == 0` + - returns immediately unless `[event+0x7ef] == trigger_kind` + - only after that exact trigger-kind compare does it continue toward the compact dispatch body + +So the current blocker is no longer “is trigger kind really a direct gate?” It is: where ordinary +loaded rows get a nonzero `[event+0x7ef]` that matches the later `0x00432f40(kind 8)` or follow-on +`kind 0x0a` service. + +## Reload-Side Boundary + +The ordinary reload path is narrower in the same negative way now too: + +- `0x00433130` + - restores tagged record families `0x4e99`, `0x4e9a`, and `0x4e9b` + - reads one fixed `4`-byte scalar block through `0x00531150` + - loops live rows through per-record restore helper `0x0042db20` + - clears collection flag `[this+0x88] = 0` before returning +- that reload path does not pass any trigger-kind argument analogous to the later `0x00432f40` + service call + +So the remaining periodic-company question stays between reload and service: the checked restore +path repopulates the rows, but the later trigger-kind gate lives only in the service strip.