fix(recorder): retain native frames before readiness - #100
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.
What changed
A native capture can't report ready until it has stored its first frame and its configured evidence carriers.
This change also keeps each sampled desktop frame and active-window event once. That preserves the source journal's exact ordinals, including the frame before an action and the first frame after it.
Startup now stops with an error after a bounded wait. It cancels pending frame and terminal coordination, and it won't publish a completed producer boundary while a journal producer is still alive.
Why
The hosted Windows run exposed a no-input failure. The recorder announced startup, dropped the first desktop frame, and then rejected its own capture during finalization because no frame remained.
The same retention rule closes ordinal gaps for active-window events and later actions. It doesn't weaken seal verification or accept empty evidence.
Test evidence
git diff --checkpassed