Jedi renderer input: independent acceptance and integration
Accepted 53ab864327c8d00fb5783dbee6354e68650d325b against current main
71a60db4004e5df74cfa232f7a59edc109ffc660. The production delta is exactly
the candidate's seven added lines in lib/renderer-input.js. Distinct
top-level trees follow their painted z-order; the existing smaller embedded
dialog preference applies within one tree. WS_CHILD ancestry must not treat
popup ownership as parentage. No other candidate source ancestry is included:
the reviewed paths are applied to current main, then committed for a normal
fast-forward push. The previously accepted report from
01a46a6d54e65ea5b056b42c54ab83b9087d209b is included byte-for-byte.
Independent tests
The exact current-main renderer equals the candidate's pre-fix renderer.
Replayed ordinary DOWN/UP through the actual renderer and compiled production
wnd_top_level, dialog_route_mouse_screen, dialog_route_mouse and
ctrl_style_disabled. The 1,119-byte routing module SHA-256 is
f24f3533441957d52c465350428aa0654d47e8d1e35525d1a4809c4c802c1ddc.
All five original cases pass. Seven additional cases pass: a child with a
higher local z value cannot escape its tree; a raised owner tree wins over
a lower popup; nested child ancestry; same-tree sibling area preference;
active modal precedence; outside-modal rejection; and disabled-top-dialog
rejection without activating the surface underneath.
Baseline, owner-as-parent and reversed-z mutations each fail at the first
actual DOWN target assertion, choosing 0x1000f instead of 0x1006b.
Existing modal-release and button-queue tests also pass. No WM_COMMAND is
injected. Reproduce from the integrated checkout:
node test/test-jedi-components-input.js
node test/test-jedi-components-input.js --baseline
node test/test-jedi-components-input.js --mutate-owner-as-parent
node test/test-jedi-components-input.js --mutate-reverse-z
node test/test-renderer-dialog-modal-input.js
node test/test-renderer-dialog-button-queue.js
The three flagged commands are expected to exit 1 at the target assertion. The initial added raised-owner fixture selected the right window but lacked the child enumeration needed to route through a non-dialog parent. The bounded fixture now makes that frame a dialog, keeping delivery rooted at the selected dialog. The initial failure log is retained. This does not claim to test generic non-dialog-parent recursion.
Window metadata, client geometry, activation side effects and final wndproc delivery remain adapters. These tests establish input selection and compiled control delivery, not native button activation, guest continuation, installer advancement, installation, browser behavior or gameplay. No full module was built and no runtime was accessed.
Config reconciliation and preservation
Read-only reconciliation fully explains the earlier report integration block.
Current shared config SHA-256 is
6d4dfc966d3443b7e89d89e03027dd4817c18ead81a9f0fa16ae152e018d4c07,
identical to the input worker's preserved baseline and the report review's
final hash. Inserting exactly this stanza into those current bytes reproduces
the review's initial hash
346aa122d5f0c9d8aaf50ae761116a98786a4ee0c12782acae7602ab737a91c5:
[branch "task/jedi-components-input-fix-oct20"]
remote = origin
merge = refs/heads/main
There is no unexplained remaining byte difference. Config was not written or restored by this review; no credentials are copied into evidence. Automatic upstream configuration is disabled per Git command.
Evidence and recovery scripts are retained under
scratch/runs/20261020-jedi-input-review-integrate-oct20/.
review.js reruns the bounded checks; tested-identities.json pins their
inputs, config-reconciliation.json records the exact hash reconstruction,
and receipt.json records publication and shared-state checks. Prior input
and accepted-report evidence seals are independently verified without editing
their bundles. Exact sparse patterns were installed before materialization.
The task cap is 8 MiB, with floor 2,210,398,208 bytes plus 32 MiB reserve and
24 MiB concurrent reservations. Shared HEAD/index/config and unrelated WIP
are preserved; laptop Heroes II/Warcraft III and all review holds are untouched.