Repository navigation
Keep recoverable connection errors quiet in the Timeline header - #118
Conversation
…-integrity-diagnostics into codex/journal-recoverable-error-indicator-20261024
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 95166a0067
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| ; manager_attention = None | ||
| ; sync_error = None |
There was a problem hiding this comment.
Preserve attention already received for the replacement graph
When a new graph's manager snapshot arrives before its Graph_state_changed push, apply_manager_state can already have populated manager_attention with that new scope's failure. The later graph push calls observe_graph_state → Graph_replaced → replace_graph, which unconditionally clears that attention and its notice, although state.manager.last_error still contains the unresolved failure. Consequently, the Error info control disappears until another manager publication happens, potentially indefinitely for a terminal failure. This is inferred from the two push handlers and the explicitly supported either-order delivery in apply_manager_transition; clear only attention belonging to the retired scope, preserving or rederiving attention from an already-current manager snapshot.
Useful? React with 👍 / 👎.
Ordinary disconnects repeatedly light the top-right error icon and replace serious sync notices, including after recovery. Carry a producer-owned presentation classification from typed transport failures through the scoped sync snapshot into the App. Known EOF, timeout, reset/refused/unreachable cases stay quiet; TLS/security, authentication needing action, integrity/storage and unknown failures retain attention.
Diagnostics keeps the existing detailed reasons and bounded history. Transient events preserve outstanding serious evidence, matching recovery clears attention, and account/graph retirement clears stale scope. Retry eligibility, reconnect/backoff and persistence behavior remain unchanged. The explicitly approved Core spec change adds presentation metadata only. The separate Timeline/integrity investigation and diagnostic instrumentation are outside this PR.
Validation on the final main-reconciled source: @ALL build; existing App 149, Sync 333, Worker runner 50, Worker reducer 20, startup and LUI service checks pass. The full Sync suite uses localhost fixture servers; it passes with the required local-network test access after a sandboxed attempt failed to bind. Existing tests cover quiet transient errors, retained TLS/unknown/integrity attention, repeated transient events, recovery and scope retirement. No Dune or CI route change.
An earlier graph-free A135 fixture exercised the same indicator path and Diagnostics for transient, TLS, unknown, integrity, repeated-reset, recovery and new-scope states. It used five documented fixture adapters and an experimental cross-ABI-unvalidated package; this is isolated presentation validation, not final-head live-account/network E2E. No additional GUI/App installation was done during main reconciliation. The five historical agent-document validation failures are unchanged from main; the edited decision validates.
Review follow-up: preserve manager attention already admitted for the replacement graph when its manager snapshot arrives before the Worker graph-state notification. Retire only attention owned by the previous scope, keeping any matching notice's original identity/expiry. The existing mounted chrome test now independently gates those publications: original-head regression RED, then manager-first/graph-first/healthy-retirement controls and App149/startup/@ALL GREEN. This is presentation ownership only; no Feed/sync repair or additional spec change.