Description
Cursor-store vs evidence-store divergence (internal/app/app.go:1194-1275, checkpointReason/evidenceReason) requires correlating two parallel status fields; diagnosing degraded durability means source-diving. Add one “durable state” status panel/section that explains both stores, their modes and the reason for any degradation in operator terms.
Acceptance Criteria
- #1 One status-page section presents both stores with mode and degradation reason
- #2 The JSON status API exposes the same consolidated view
Definition of Done
- #1 just check passes (the full gate; it is what CI enforces)
- #2 just gen leaves no diff (only if a generated artifact’s inputs changed)
- #3 just –fmt –check passes and every new recipe has a # doc comment and a [group(…)]
Implementation Plan
Lane G adds one consolidated durable-state DTO and status-page section covering cursor and evidence stores, with JSON/HTML tests; it consumes the existing store status rather than introducing another durability model.
Implementation Notes
Lane G added one durable_state DTO/API/HTML section covering configured/effective cursor and evidence store modes, path, health state and divergence reason while retaining legacy config fields. Status schema regenerated; JSON/HTML negative guards passed.
Final Summary
Added one consolidated durable-state view for both checkpoint stores, including configured and effective mode, path, state and degradation reason in HTML and JSON. Implementation SHA 6d9c23c. Final integrated just check passed at 5b55617; exact-head CI run 33354208183 completed success.