Skip to content

Keep deferred Browser input with its owning page - #421

Draft
SashaMIT wants to merge 16 commits into
developfrom
fix/review-browser-input-ownership
Draft

SashaMIT wants to merge 16 commits into
developfrom
fix/review-browser-input-ownership

Conversation

@SashaMIT

@SashaMIT SashaMIT commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Deferred wheel and touch input stays with its owning page. Runtime retains authority over input effects.

Capture loss or owner retirement releases touch state. Delayed touch/pen releases preserve a replacement page; fresh gestures and mouse input remain usable. Uncertain input returns HTTP 503 instead of 500 and preserves operator_outcome_uncertain. #439 owns adapter error classification.

At prior head cdfa93ea, both required local gates passed input ownership and uncertainty regressions:

node --test capsules/browser/browser/browser-input-surface.test.mjs scripts/browser-operator-input.test.mjs scripts/browser-input-ordering.test.mjs

Earlier separate removals of retirement cleanup, capture-loss handling, synthetic-click guards and uncertainty reporting caused assertion failures. Restored tests passed; these controls remain historical evidence.

Depends on #420; #424 depends on this PR. Preserve their ancestry and inherited Library Home-link fixture.

Candidate: bf519a7f824579b1fef1460f9e15555cdd83ef0c; merged #420: 8c27d0e6d4449e9a662df25c808b91b6a2a51ce9, including develop c97c549e20e0851b417447af9509b25a30c23f06. Required local checks: manual just ci-local-prepush recheck and actual unchanged push hook PASS. Hosted CI: completed cancelled; Linux x86-64 model retry timed out after controller restart passed. Exact cause remains under #433 investigation.

Prior-head Claude review records PASS at cdfa93ea. Independent source-continuity review passed: the reviewed parent and all 15 owned path contents are preserved. The current-head Claude re-review records PASS at bf519a7f; the linked earlier verdict remains historical evidence. Installed input/media acceptance remains pending.

An earlier manual run failed the base-stability check; the unchanged candidate passed the full recheck. The push hook checked compatibility with later develop 3a043849.

Prior-head CI passed substantive jobs; watcher cancellation left the overall workflow cancelled.

Review order: #420 → #421 → #424 → #416 → #411 → #412 → #428. #417 owns ZIP remediation. Draft; target develop.

Review package extracted from preserved candidate b0fa431d. The original eighteen commits remain on fix/runtime-performance-080. Validation of this recomposed head is recorded separately from historical candidate evidence.
Review package extracted from preserved candidate b0fa431d. The original eighteen commits remain on fix/runtime-performance-080. Validation of this recomposed head is recorded separately from historical candidate evidence.
@SashaMIT

Copy link
Copy Markdown
Contributor Author

Independent review (Claude) of 7659a27: PASS after one fix. Owner binding holds; without it, page A's wheel input reaches page B.
Fix: a tracked touch blocks new pointers on the replacement page. Clear it on lostpointercapture and owner retirement, and add a test.

Copy link
Copy Markdown
Contributor Author

Head 21e7f849782464fa54636522ec0ec68f22a5547e. Ready for Sasha’s Claude review of this head.
Retired touch ownership on capture loss or page replacement, blocked delayed old-owner clicks and preserved operator_outcome_uncertain; proof: browser-input-surface.test.mjs, browser-operator-input.test.mjs and their seven reverted-line checks.
CI started: https://github.com/Elacity/elastos-runtime/actions/runs/39053691069. Cargo audit passed; other checks remain pending.

@SashaMIT

Copy link
Copy Markdown
Contributor Author

Review at 21e7f84: PASS (A-). Touch lock fixed; 5 tampers caught; CI green.
Body: mention the 500 -> 503 change for uncertain input.

Preserve the existing review history and include current develop 8ea4aac. Refresh through the reviewed parent branch where that dependency applies.

Co-authored-by: Codex
Apply the test-only System fixture from 619c096 to the refreshed develop base. Preserve the existing authority assertions and production behavior.

Co-authored-by: Codex
Preserve the existing review history and include current develop 8ea4aac. Refresh through the reviewed parent branch where that dependency applies.

Co-authored-by: Codex
Preserve the reviewed task changes and integrate the current development base through a normal merge.

Co-authored-by: Codex
Preserve the reviewed task changes and integrate the current development base through a normal merge.

Co-authored-by: Codex
Use the upstream Library fixture and preserve the branch feature changes.

Co-authored-by: Codex
Use the upstream Library fixture and preserve the branch feature changes.

Co-authored-by: Codex

Copy link
Copy Markdown
Contributor Author

Ready for Claude review at cdfa93ea390e9a8e8a0d5dc83f7b8bf346a72267.
Merged current develop with the Library Home-link fixture; deferred wheel never reaches replacement page and current-owner uncertainty is reported once and fresh input can proceed passed in both required local checks.
CI has started: https://github.com/Elacity/elastos-runtime/actions/runs/39098315075

@SashaMIT

Copy link
Copy Markdown
Contributor Author

Round 6 at cdfa93e: PASS (A). 503 body fix and #439 verified; 8/8 tampers caught.
Remaining: queued CI jobs.

Preserve the reviewed input behavior and include current develop through the Browser lifecycle parent.

Co-authored-by: Codex

Copy link
Copy Markdown
Contributor Author

Updated head: bf519a7f824579b1fef1460f9e15555cdd83ef0c.
Manual just ci-local-prepush recheck and the actual unchanged push hook: PASS on this head.
CI has started: https://github.com/Elacity/elastos-runtime/actions/runs/39228234743. Source-continuity review: PASS; Claude PASS remains at prior head cdfa93ea.

@SashaMIT

Copy link
Copy Markdown
Contributor Author

Re-review (Claude) at bf519a7: PASS (A carried). One clean merge of #420; empty remerge-diff, own patch unchanged.
x86 installed journey hits the same #433 timeout; macOS was cancelled by the watcher, not failed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants