Repository navigation
fix(codex): guard inherited and configured SQLite relocation - #284
Merged
Merged
Conversation
abruption
marked this pull request as ready for review
October 9, 2026 00:06
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. |
8 of 9 tasks
Open
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Investigates #268 against fixed native Codex sources and adds bounded pre-effect storage guards. The investigation in #268 remains open: effective storage of a running shared server and native managed/project configuration remains an evidence gate.
CODEX_SQLITE_HOMEand rootsqlite_homeconfiguration before discovery, dry-run, queue and wake preflight. Refusal is structured and does not reflect configuration contents or environment values.Type
Fixed source findings
6b9826e3aa83b1a5947db50f4332cb9c65f1b340and 0.159.0 peeled commit687a119f0fcaace47e1f1abcc77cec6c813fd6da:codex-rs/core/src/config/mod.rsresolves configuredsqlite_home, then trimmed nonemptyCODEX_SQLITE_HOMEresolved against native working directory, then the Codex home.-calone is not a universal selected-storage fence; requirements can replace it with warnings.These are source findings, not a fresh native routing experiment or proof of an actual wrong-target submission/security exploit. No live accounts, transcripts, native message submissions or operational services were inspected or modified.
Checklist
Verified against
Local macOS 27.0 arm64, Python 3.14.8. Native Codex versions were reviewed from immutable upstream source only; they were not executed. The live wake support matrix remains unchanged.
Local checks:
python3 -X dev -W error::ResourceWarning -m unittest tests.codex.test_storage -q: 13 PASS.python3 -m unittest discover -s tests/codex -t . -q: 120 tests PASS, 1 Windows-only skip.python3 -m unittest discover -s tests/core -t . -q: 345 tests PASS, 2 skips.python3 -m unittest discover -s tests/docs -t . -q: 32 PASS.git diff --check: PASS.packaging) and 29 skips. This environment failure is not hidden; a private test venv with the repository-pinnedpackaging==26.3is used for the final rerun.python -X dev -W error::ResourceWarning -m unittest discover -s tests -t . -q: 615 tests PASS, 29 explicit skips. This is default discovery, not a claim that all optional Relay/Control integrations ran.os.environnormalized the lowercase fixture key even while the test simulated POSIX. The follow-up uses a plain mocked mapping for cross-platform simulation; runtime behavior is unchanged. Current-head CI remains a required gate.Notes and remaining gates
This guard checks inherited overrides and each inspected home's configuration, not the complete native configuration stack. Unselected nested configuration is not treated as a root storage setting, but a profile/project/system/managed layer or an already-running daemon can still determine effective storage. Configuration can also change after the last check. Passing this guard is not storage attestation, and fake-child fixtures cannot prove real routing or consumption.
Before #268 can be closed, establish an authoritative body-free effective-storage contract for supported native versions and daemon/layer cases, then verify it on the relevant platforms. This PR adds no relocated-storage support, does not relax writer ownership/inactive opt-in, and does not expand the wake version matrix. Native full TOML/schema validation remains native Codex's responsibility; lexically unclassifiable input fails closed here.
No merge, tag, package publication, fleet installation or operational changes are part of this work.