Skip to content

Preserve saved preferences when settings reads fail - #42

Merged
aaron-seq merged 2 commits into
mainfrom
codex/issue-38-settings-failures
Oct 24, 2026
Merged

aaron-seq merged 2 commits into
mainfrom
codex/issue-38-settings-failures

Conversation

@aaron-seq

@aaron-seq aaron-seq commented Oct 23, 2026 •

Copy link
Copy Markdown
Owner

A failed settings read previously substituted enabled defaults, allowing optional notifications/history or replacement settings writes despite saved opt-outs. This change returns SETTINGS_UNAVAILABLE, requires readable preferences for optional effects, and preserves generated output with a save warning. Settings startup, reset, and first-install menu setup now handle failures and recovery.

Closes #38 · milestone · private dashboard.

Validation performed in this Codex session on Windows / Node 22.18.0:

  • Lint with zero warnings, typecheck, and coverage: 311 tests passed.
  • Actual unpacked-extension browser suite: 20 passed, providers intercepted.
  • Two new browser failure cases repeated ten times: 20/20 passed.
  • Shuffled affected suite, seed 3810: 118 passed after fixing a leaking test mock.
  • New regressions failed before the corresponding fixes. The old default-on-read-error assertion encoded the defect and was replaced.
  • Fresh read-only agent review found a missed installation consumer; parent reproduction and an agent retest of both installation cases verified the correction. This is not independent human approval.

Assessment, requirement/test map and evidence · continuation checkpoint.
CI must be checked against the current head; final run links are maintained on #38.

No new dependency, permission, schema, provider, backend, or CI/security setting change. No migration; reverting the fix restores the prior failure behavior. Native menu/shortcut/OS-notification verification remains #40, scanner setup #41, CI modernization #32. No live-provider, minimum-Chrome/macOS, or combined UI-draft testing was performed; #39 remains separate. Draft for review; no merge, release or deployment.

Treat an unavailable settings record separately from first-run defaults. Fail closed for notifications and optional history, preserve generated output, prevent replacement writes, and recover options and installation paths. Replace the old default-on-read-error test because that contract caused the reported failure. Reset the local write mock between tests after shuffled execution exposed leakage.
@aaron-seq aaron-seq added bug Something isn't working testing labels Oct 23, 2026
@aaron-seq
aaron-seq marked this pull request as ready for review October 24, 2026 09:10
@aaron-seq
aaron-seq merged commit f0c71db into main Oct 24, 2026
12 checks passed
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-24T09:11:10.952873Z 8f0bdde Draft marked ready
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working testing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Keep notification opt-out when the final preference read fails

1 participant