Repository navigation
fix(observability): preserve native evidence through log and storage failures - #99
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.
Native incident windows previously lost later control/recovery reasons, and a failed file write discarded the completed window. Snapshot/log success also gave no independent view of telemetry loss. The recorder now merges later reasons, captures control silence/repair and evidence-loss transitions, and includes weak non-owning log health plus storage success/error/backlog counters.
Four bounded incident payloads survive failed persistence and retry once per diagnostic tick. Complete private publication prevents a partially written JSON file from looking like a completed incident, preserves existing files and cleans its own temporary inode. Queue overflow and unavailable observations remain explicit. Wire, input replay, path defaults, bitrate and server lifecycle are unchanged; this is not a lossless audit guarantee.
Validation: 22 CLI library and 30 observation library tests pass, including synthetic ENOSPC/recovery, bounded overflow, partial-publication cleanup, existing-file preservation, reason merging through cooldown and weak-counter lifetime/sink failure. Strict expanded native workspace clippy and formatting pass. Full both-OS CI and installed qualification remain separate evidence. Generic research/contract/receipt updated; private runtime facts remain in the estate.