Repository navigation
Bound camera model startup failures and qualify emulator recovery - #343
Merged
TheCryptoDonkey merged 1 commit intoOct 27, 2026
Merged
Conversation
TheCryptoDonkey
marked this pull request as ready for review
October 27, 2026 02:35
TheCryptoDonkey
deleted the
fix/camera-startup-retry-and-emulator-soak-20261027
branch
October 27, 2026 02:38
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.
When native segmentation model construction fails, every camera frame previously tried to create another graph. An API35 emulator graphics failure produced 221 attempts before Android killed the process under memory pressure. Cache the unavailable model until a camera/effect session reset, retaining the selected synthetic background and fish throughout.
Add a regression that sends 60 frames through a failing factory, verifies one construction attempt and covered output, and permits one fresh attempt after reset. The minified signing-lineage gate now requires all six model tests.
Add opt-in emulator camera lifecycle/profiling and native-to-browser endurance checks. The endurance check keeps the same connection through camera mute/resume, browser camera replacements and ICE restarts; browser RTP counters now accumulate across stats-object resets. The explicit emulator runner rejects physical devices, crashes, skipped tests and incomplete reports.
Validation: all 23 model, camera lifecycle, background, reef, privacy and native-load checks passed on the API35 M1 software-graphics emulator with Play services and Store disabled. Raw and sea/fish capture both measured about 11.2 fps; detached 640x360 composition averaged 28.75 ms, including 10.59 ms inference. The 125-second preliminary call passed all recovery actions. The full media soak passed in 45m26.5s: all 89 windows made audio-packet and decoded-video progress in both directions, including 22 native video mute/resume cycles, 22 browser camera replacements and 22 ICE restarts. Native heap ranged 41.5–52.1 MB and Java heap 7.8–15.1 MB; these are sampled values, not a proof of leak-free operation. All 17 jobs passed in CI run40433876640, including both API33/35 minified model/signing-lineage gates, both recovery suites, all five cold-refusal shards and all six recording jobs. CI reports confirm 594 protocol, 2,895 debug app and 2,884 release app tests passed, with no failures or skips. The Apple M4 emulator's upstream SME illegal-instruction failure is documented separately. No physical camera quality, thermal, battery, acoustic or real-network acceptance is claimed.