Prototype portable UI preferences contract#1817
Conversation
|
Codex review: needs maintainer review before merge. Reviewed July 1, 2026, 6:38 AM ET / 10:38 UTC. Summary Reproducibility: not applicable. this is a feature/product-contract prototype rather than a bug report. Source inspection shows the branch adds schema/store/tests/docs but no live runtime path to reproduce. Review metrics: 2 noteworthy metrics.
Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Keep the draft open until maintainers approve the storage contract, then either merge this schema/docs as the agreed contract or follow it with tested Do we have a high-confidence way to reproduce the issue? Not applicable: this is a feature/product-contract prototype rather than a bug report. Source inspection shows the branch adds schema/store/tests/docs but no live runtime path to reproduce. Is this the best way to solve the issue? Yes for a prototype: separating portable UI preferences from secret-bearing provider config is the safer maintainable direction. Final runtime wiring still needs the owner/product decision documented in the PR body and docs. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 306cf96787f0. Label changesLabel changes:
Label justifications:
Evidence reviewedWhat I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
Summary
preferences.jsonbeside the resolved config, with aCODEXBAR_PREFERENCESoverrideSettingsStoreruntime wiring out until the product choice is approvedProduct decision
Recommended contract:
UserDefaultsvalue > code defaultUserDefaultsThe existing config can contain API keys, cookie headers, and other credentials. Putting UI preferences there would encourage users to sync or commit a secret-bearing file. The alternatives are a preference block inside that config (simpler, unsafe sharing affordance) or export/import only (safer, but not continuous sync).
Scope
The prototype includes presentation and behavior preferences that can safely follow a user between Macs. It excludes credentials, account routing, login items, terminal paths, window state, discovery/debug state, privacy toggles, histories, notifications, and storage policy.
Proof
swift test --filter CodexBarPortablePreferencesTests(8 tests)make checkmake test(44 shards)./Scripts/package_app.shNo screenshot: this decision branch deliberately adds no live UI or runtime behavior.
Refs #1282