Repository navigation
fix(web): bound camera bitmap capture waits - #329
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A camera or procedural sample could keep stale output visible forever while createImageBitmap never completed. Each bitmap request now owns a five-second application wait deadline and the session's abort signal. Timeout stops capture/worker ownership, clears output and offers explicit restart. Stop rejects the wait promptly; eventual late bitmaps close without submission and late native failures are consumed, protecting replacement capture state.
Validation: reproduce both parent failures with actual browser bitmap completions held; 66 JS tests, 6 asset tests and 69 full browser checks pass with the existing Rust WASM and pinned AI model. Exact timer boundaries, cleanup, listener removal, late completion/rejection, restart and explicit Stop are covered. All seven owned commands are terminal. Preserve 517 prior camera files, 493 scientific JSON and 42 frozen native artifacts; reuse the WASM and 41,087,603 shared vendor bytes with zero compiler-cache growth or new model/sensor acquisition.
The browser-native bitmap operation itself has no cancellation API. This bounds application waiting, not unfinished native work or physical memory across repeated restarts. Physical phone/Safari and the original operational 80% gates remain open.
Contract:
benchmarks/camera-capture-plan.json(146AO). Evidence:docs/receipts/2026-10-21_camera_capture.json.The first Ubuntu Visual conformance attempt terminated in the unchanged native rendering tests with SIGSEGV. The raw log and failed merge-guard records are preserved. The individual crashing test and root cause are unknown; a same-source retry and all 131 required checks are required before merge.