Skip to content

Observe storage errors before journal and timer decisions - #206

Merged
PLN merged 2 commits into
mainfrom
fix/journal-error-observation
Sep 13, 2026
Merged

PLN merged 2 commits into
mainfrom
fix/journal-error-observation

Conversation

@PLN

@PLN PLN commented Sep 13, 2026

Copy link
Copy Markdown
Owner

Storage-error formatting held shared journal or timer decision locks. A delayed retirement error could block capture/diagnostic admission and retention metadata, while timer load/save errors could block disarm, rearm and status. Both stores now observe error messages before taking their admission/decision mutex, then validate current ownership and publish the same diagnostics.

The journal regression fails on the prior implementation and now preserves independent capture, diagnostics, retained-error reporting and cleanup retry. Both timer load/save regressions also fail before the fix; delayed errors no longer block independent arm decisions or publish into a different arm. Twenty combined journal/timer observation repetitions passed.

Final validation: full uncached race suite passed (manager 59.973s, journal 42.594s, timers 3.305s), plus vet, Windows/Linux staticcheck, complete diff/privacy review and local documentation links. Exact source c4f6341b55176940358736b462d624db0acc1828 passed CI 34768748133 and the consolidated 57-case matrix: 50 manager, four journal and three timer cases, three repetitions per SYSTEM/headless standard-user identity (8.680s/6.613s). No cases skipped; process, linger and profile cleanup passed. All three binary hashes and source identity were verified in retained evidence. Full R2 acceptance remains open, including notification-reader admission.

The initial candidate's broader lab run stopped when the PowerShell wrapper treated expected native stderr as a terminating script error (three completed cases passed, no test failures observed). Its partial evidence is retained; it is not qualification. The corrected wrapper retains stderr and checks every test-process exit code explicitly. A local three-run stderr rehearsal passed before the fresh final-source fixture was staged.

@PLN PLN changed the title Observe storage errors outside journal admission Observe storage errors before journal and timer decisions Sep 13, 2026
@PLN
PLN merged commit ca3c357 into main Sep 13, 2026
3 checks passed
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.

1 participant