Skip to content

fix(codex): refuse known storage relocation across native config layers - #311

Merged
abruption merged 18 commits into
mainfrom
fix/268-effective-storage-contract
Oct 16, 2026
Merged

abruption merged 18 commits into
mainfrom
fix/268-effective-storage-contract

Conversation

@abruption

@abruption abruption commented Oct 15, 2026 •

Copy link
Copy Markdown
Owner

Summary

Latest head: 1272b80ca2c8df096ec9e890a10e55d60cee5f1d.

Refs #268 — remains open for authoritative effective-storage and native platform acceptance. No runtime version bump or publication.

Bounded storage hardening with the owner's compatibility policy 3: daemon socket presence/connectivity does not block submission and session-peer adds no probe, forced embedded mode, strict flag or storage-authority JSON. Existing override refusal, stable-writer checks, inactive-home opt-in and unknown/no-resend boundaries remain.

Current owner-approved metadata-only discovery policy

The owner selected option1: standalone list must not execute Codex or query native versions. At ba884e6/1272b80, macOS public collection and direct discovery conservatively inspect ordinary plus forced preferences before SQLite access, even with --codex-bin. The documented tradeoff is conservative refusal of values a newer0.162.1 loader may ignore; precise version-aware listing is deferred, not implemented implicitly.

Errors remain failures rather than empty-success or alternate-DB fallback. Existing partial healthy home/agent rows and JSON/exit shapes remain intact. The diagnostic distinguishes a preference sqlite_home override from an unclassifiable known configuration layer (not necessarily CF), preserves the original reason and gives safe operator guidance without values, auto-deletion or DB switching. Internal send dry-run reuses its selected policy without another version query; public collection does not accept a private override.

Fifteen synthetic listing tests cover legacy stale DB refusal, intentional newer-version refusal, malformed HOME/CF configuration, explicit --codex-bin/no native calls, zero SQL before refusal, JSON/text error, partial results and internal policy reuse. Coordinator exact combined1.2 rehearsal5e536883567d9453b619acd18394a3533e055b3f:1256 tests pass/19skips; reproducible wheel/sdist builds, distribution41 pass/3PowerShellskips and isolated artifact installs pass. No new native/CF/MDM/model acceptance.

Independent static review: Claude Code2.1.300 requested/actual claude-opus-5-5 and isolated Codex CLI0.162.1 default (actual model unexposed), parallel stdin-only, no tools/network/tests/writes. Frozen ba884e6 input ba9aeecbd5b3fd1790b477ae52a8fb431c06bedb1ee8809f4963f145b5097b38 and exact1272b80 follow-up input4ea98ed1e54f012226bd167b1d0864480be01c7f93d7b8f2a11d2e4162cd39ea: all four processes exit0 with complete valid results. No confirmed mandatory defect. Coordinator checked conditional facts against all actual discover callers and reason-producing helpers: the managed reason is raised only by the preference classifier, with root key sqlite_home; generic file/parser failures retain the non-attributed diagnostic. Exact1272b80 GitHub CI28/28, Code Review and Security Review are complete with no new findings; all threads resolved. The six acceptance issues remain open and owner approval plus final-main/release-asset gates remain separate.

GitHub review corrections

  • Project boundary (P2): default marker discovery stops at the nearest native-style .git marker, including non-directory metadata-only markers; a directory requires HEAD. Without a marker, inspect cwd only. Do not open FIFO/device markers. Symlink or unreadable markers remain conservative refusals. Known custom project_root_markers settings retain a documented ancestor superset. The earlier candidate's <cwd>/config.toml assumption came from a stale loader comment; the pinned project-layer construction loads .codex/config.toml, not that extra cwd file.
  • Windows system directory (P1): use SHGetKnownFolderPath(FOLDERID_ProgramData) rather than ProgramData environment values. Bound UTF-16 reads and free the allocation. Match the native fixed fallback on lookup failure; invalid/unbounded successful results refuse instead of silently checking another directory. Preserve native UTF-16 path representation.
  • macOS preferences (P1, partially corrected example): use CoreFoundation sync and effective preference lookup, with forced status checked before/after copying, type/bounds validation and owned-value releases. This forced-only rule matches the pinned 0.162.1 path. The separately validated 0.154.0 wake path reads ordinary effective preferences too; the new wake-only mode classifies those values at preflight, budget and queue/wake effect boundaries without broadening version-validated 0.162.1 queue/internal-dry-run/handoff behavior. Standalone listing now follows the separate owner-approved conservative metadata-only policy below. This fixes the raw-plist approximation without claiming the original unforced-user-preference example changes native storage.
  • Handoff execution plan (P1): reuse ordinary queue storage preflight before the version child/attempted intent; preserve the original selected home and private queue cwd. Repeat checks immediately before queueing, propagate cwd through the owned child primitive, and preserve deadline/fence/no-resend behavior. Prepared ledger records may already exist before preflight; this is not a claim that refusal leaves no ledger history. Source-streamed SSH derives its plan at the receiver.

CI corrections

  • Use platform-absolute temporary fixture directories instead of POSIX-only /project values on Windows; keep malformed real metadata refusal.
  • Rename the non-sensitive relocated-path sentinel rather than suppress/dismiss CodeQL alerts. Reanalysis must confirm clearance.
  • Separate this one cleanup fixture's hard-bounded readiness phase from its unchanged .2s execution/.5s cleanup interval; model .3s startup. Production clocks/budgets are unchanged. This does not establish the historical macOS failure's cause.

Type

  • fix
  • docs
  • chore / refactor / test / perf
  • feat

Validation

  • macOS arm64, isolated Python 3.13.7 extras environment, -X dev -W error::ResourceWarning: integrated f1b3ad6 full suite 1154 OK, 19 skipped. The final narrow drive-bound validation/doc recommendation followed this full run; its focused Python 3.9 platform/handoff suite 52 OK, 1 skipped and documentation 61 PASS were rerun on the final tree. Exact-head distributed CI remains required.
  • Python 3.9.6 Codex suite: 177 OK, 4 skipped. Documentation 61 PASS, standalone generator/diff PASS.
  • Platform APIs, forced/unforced/type/failure/ownership handling, project markers, queue/handoff mutation/refusal/cwd, translated Windows drive/UNC compatibility, and receiver-side source-streaming are covered by offline fixtures. These are not actual native storage/MDM/relocated-folder/live SSH tests.
  • Earlier integrated snapshot: 1150 OK/19 skipped. Parent worker focused results are not substituted for final integrated validation.
  • First revised-head CI exposed three Linux/Windows inventory fixture failures (mocked Darwin layout tried loading actual CoreFoundation) and one Windows fixture without an explicit selected home after environment clearing. Corrected test-only isolation, asserted platform libraries cannot load in inventory fixtures, and passed the selected fixture root explicitly. Python 3.9 inventory13/Codex177 tests and final storage+inventory38 tests PASS locally; these CI-driven fixture edits were checked by the coordinator, not externally rerun. New exact-head CI is pending; earlier failures are not claimed fixed on all platforms until it completes.
  • Exact head1272b80: CI28/28 successful; Code Review and Security Review completed with no new findings, and unresolved review threads0. These are pre-merge PR checks, not final-main validation or owner merge/publication authorization.

Independent CLI review

Claude Code 2.1.300, requested/response-confirmed claude-opus-5-5; tools disabled, safe non-interactive mode, no session persistence. Codex CLI 0.162.1, default model with user configuration ignored, read-only sandbox and ephemeral execution; actual model name not exposed in captured response metadata. Separate parallel processes read identical immutable stdin, without sharing the other reviewer's conclusions. Reviewers ran no tests or repository/operational writes.

Initial exact snapshot 7074e3efaab703e632be32620af0dcf7346d9c1e, input SHA256 e44698340c4ce3be442c409dbfc88114f84f3c601d2e1d4ee2f0330ee4a93d39: addressed the metadata-only non-directory marker case and provided complete pinned project-layer construction evidence. Also strengthened native-directory anomaly handling and FFI ownership fixtures.

Follow-up exact snapshot f1b3ad6a692fcacfe2f170b5518e4952b98935d2, input SHA256 5542e035812230e034d56a5b0ee07d2b6cee3084a6407315ad558c7a1b249a09: both reviewers reported no confirmed new mandatory defect. Claude's conditional marker-evidence question was checked by the coordinator against the complete pinned discover_project_root and project-root fallback: headless .git directories are skipped, non-directory entries are recognized. The coordinator then addressed the shared optional drive-unbound Windows-path case and polished four-language wording, with focused tests; these final small feedback-driven edits were not externally rerun. All four CLI processes completed exit 0 with valid final responses and immutable input hashes. Static review is not native/platform acceptance.

Remaining boundaries

  • Pinned native source: Codex rust-v0.162.1 / 092d3acd6bec3e3a14bdc7e7a2810ab628ab759d.
  • A running daemon/writer's startup SQLite identity is not attested. Current config lookup, thread UUID equality and stable PID are not atomic expected-storage predicates.
  • Package/cloud settings, existing writer overrides/profile/environment, custom-marker exact semantics and post-check changes remain limited/unverified.
  • Translated WSL-to-native-Windows routes remain compatible but storage-unverified; no Windows consumer attestation or new wake capability is added.
  • Real forced MDM, relocated Known Folders, platform native queue and live SSH handoff acceptance remain unperformed.
  • PR test(codex): preserve unsupported generation against weak native evidence #310 is not integrated into this base. Its generation fixtures must mock the new effective-preference helper when combining both branches; recompute the shared CLI-reference manifest hash. A separate local integration rehearsal combining the six scoped PRs and version preparation passed 1,219 tests (19 skips); this is not final merged-main or live native evidence.
  • No merge/tag/release/package publication/global installation/settings or operations changes. Current-head re-reviews were explicitly requested after the fix.

Earlier wake-specific review and validation

At f812a0f, Codex187 tests (4 skips), core565 (3 skips), documentation61 and Python3.9 focused71 (1 skip) pass. Synthetic tests distinguish ordinary/forced CF reads, unsupported versions, active writer, custom markers, refusal before reservation and child effects, and preservation of a known queued result after a later wake refusal. No live CF/MDM/native test or effective-storage attestation is claimed.

Independent static review input SHA25687f1f2cb4e218a29d1e1cb0426e5099f992e1caca0d13aa75be0338fd3dc79db, exact f812a0f: parallel Claude Code2.1.300 requested/actual claude-opus-5-5 and isolated Codex CLI0.162.1 default (actual model not exposed), both exit0 with complete final responses and no mandatory defect found. No reviewer tools/network/tests/writes. Coordinator checked the conditional exception-inheritance question: CcPeerError inherits Exception, not ValueError. Optional synthetic test-strengthening suggestions are not live acceptance. Latest GitHub CI/code/security review remains pending until its exact-head results complete.

Earlier follow-up: ordinary-version policy and physical cwd

Code-review threads4279676944/4279676951 are addressed by09efcc2 and fixture/documentation follow-up cca3808. Ordinary macOS send/dry-run uses a single bounded version query (3s query +2s cleanup, existing owned-process output caps). Only the exact reviewed0.162.1 chooses forced-only preferences; old/unreviewed/unavailable/malformed evidence conservatively includes ordinary values, not blanket version rejection. Cleanup uncertainty refuses before queueing; interruption propagates after the cleanup attempt. Handoff reuses the existing query and deadline, preserving policy until submission. No new non-macOS query/cache/wake support is added.

Owned execution plans use physical cwd consistently for project scans, child cwd/PWD and wake resume; consumers additionally inspect distinct lexical spellings with the same marker boundary. Alias configurations can be conservatively refused, and wake.cwd now uses the physical spelling. Missing-directory/translated-native-home limits and daemon compatibility remain explicit; no storage attestation or TOCTOU elimination.

Independent reviewers read identical frozen09efcc2 input SHA2566ac56afc35a6ee9366e46fd152f17a65479086a10b307feef7f56dbb306ba2fb. Claude Code2.1.300 requested/actual Opus5.5 and isolated Codex CLI0.162.1 default (model not exposed) both exited0 with complete final responses and no mandatory product defect. Feedback-driven follow-up cca3808 improves fixture isolation/non-vacuous assertions and four-language wording; the coordinator proved executable AST unchanged from09efcc2, excluding comments/docstrings. Reviewers ran no tools/tests/network or writes.

Validation: Codex206/core567/docs61 and Python3.9focused90 passed at09efcc2. Follow-up focused126/Python3.9focused42/docs61/generator/diff pass. A local combined rehearsal at e3dbd13 passed1240 tests/19skips plus reproducible builds and isolated installs; stderr contained a separately tracked asyncio shutdown diagnostic, so this is not a warning-free claim. A subsequent Relay-only diagnostic passed236 without that warning. Final combined revalidation after the test/docs follow-up is ongoing; exact-current-head GitHub CI and Code/Security Reviews are required.

Relay CI exit139 and the separate local shutdown diagnostics are tracked in #316, cause/relationship unresolved. The diagnostic-only faulthandler addition is not a fix. No suppressed test, relaxed gate/dependency, public main merge/tag/release or deployment.

Extend the pre-effect storage boundary to the native Codex 0.162.1 layers
that can select SQLite storage: system config and requirements files
(including the legacy Unix managed_config.toml), macOS managed-profile
values, and the project layers of the native process directory. Dry-run
and queue pin the native process to the inspected home, refuse while the
home's app-server control socket exists (its startup storage cannot be
observed), and inspect the saved thread directory where the consuming
writer starts. Wake inspects the thread directory before starting its
app-server. Package defaults and enterprise cloud bundles remain
uninspected and documented as limits; no relocated-storage support.
Run the queue storage preflight before a wake reserves its per-target
budget, so storage refusals never consume a reservation. Refuse
unreadable or malformed saved-thread metadata as
consumer_directory_unverifiable instead of skipping the consumer check.
Isolate Codex dispatch, wake, home and storage fixtures from machine-wide
and ancestor configuration through a shared helper, and align the PWD
expectation with the platform branch. Correct the documentation: dry-run
starts no process, native TUIs auto-start a shared daemon by default,
the control-socket refusal is a compatibility change, and the reviewed
APIs do not attest daemon startup storage; list the uninspected layers.
Per the owner's compatibility policy, remove the refusal based on the
presence of an app-server daemon control socket: native TUIs start such
a daemon by default, and `codex queue` already selects a connectable
daemon or an embedded server. session-peer neither probes the socket nor
claims storage authority. Known relocation in system, managed, project,
user and environment layers still refuses before any effect, and wake
still runs these checks before reserving its budget. Document that the
reviewed initialize, config/read and queue APIs offer no stable startup
SQLite attestation, that dry-run and send checks do not remove the time
gap, and that translated native homes do not support storage
verification.
@abruption abruption added this to the v1.2.0 milestone Oct 15, 2026
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 15, 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-16T00:02:46.857570Z f01f23e Manual request
🔒 Security Review ✅ Completed 2026-10-16T00:04:45.151420Z f01f23e Manual request
ℹ️ 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.

Comment thread tests/codex/test_storage_layers.py Fixed
Comment thread tests/codex/test_storage_layers.py Fixed
Comment thread tests/codex/test_storage_layers.py Fixed
Comment thread tests/codex/test_storage_layers.py Fixed
Comment thread tests/codex/test_storage_layers.py Fixed
Comment thread tests/codex/test_storage_layers.py Fixed
Comment thread tests/codex/test_storage_layers.py Fixed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: bc3655882f

ℹ️ 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".

Comment thread session_peer_core/codex.py Outdated
Comment thread session_peer_core/codex.py Outdated
Comment thread session_peer_core/codex.py Outdated
Comment thread session_peer_core/codex.py Outdated
@abruption

Copy link
Copy Markdown
Owner Author

@codex review

Please review the latest HEAD 7f109fb, including the fixes for all four prior findings and the subsequent cross-platform fixture corrections. Existing findings have implementation replies and are marked resolved; this is a request for a fresh review, not a claim of approval. Current-head CI: 28 checks successful.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Already looking forward to the next diff.

Reviewed commit: 7f109fb367

ℹ️ 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".

@abruption

Copy link
Copy Markdown
Owner Author

@codex security review

Please review exact latest head 7f109fb before merge readiness. Existing security summary is for an earlier candidate; code review and CI are green at this head. Do not run live agent/model inputs or change settings/operations/publication.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7f109fb367

ℹ️ 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".

Comment thread session_peer_core/codex.py
Comment thread session_peer_core/codex.py Outdated
@abruption

Copy link
Copy Markdown
Owner Author

@codex security review

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review

Security review completed. No security issues were found in this pull request.

Reviewed commit: 7f109fb367

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@abruption

Copy link
Copy Markdown
Owner Author

@codex review

@abruption

Copy link
Copy Markdown
Owner Author

@codex security review

@abruption

Copy link
Copy Markdown
Owner Author

Current-head CI attempt1 (run38690059740, head f812a0f) hit a native process crash: optional Relay Ubuntu/Python3.13 job116273649374 exited139 during test_lost_pair_commit_response_reconciles_without_reusing_secret, without a Python traceback. Three Relay matrix cells were fail-fast cancelled. Previous head was green and local combined tests pass, but neither proves this crash unrelated. Python/dependency versions matched the preceding green run; runner image differed, which is an observation, not a cause. Preserving the first failure and requesting one bounded same-SHA rerun of failed jobs. A pass means non-reproduction only, not root-cause resolution; repeated139 requires diagnostic stack collection and keeps the release gate blocked. No test/guard/dependency bypass or runtime workaround applied.

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review

Security review completed. No security issues were found in this pull request.

Reviewed commit: f812a0f18f

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@abruption

Copy link
Copy Markdown
Owner Author

Bounded same-SHA CI rerun completed successfully: run38690059740 attempt2, head f812a0f, all four Relay matrix cells pass and the aggregate release gate passes; latest checks28/28 success. Attempt1 exit139 remains an unexplained native-process crash and was not fixed by a source change; passing retry is non-reproduction only. No additional reruns or dependency/test/guard relaxation were used. Current-head Security Review found no security issues; Code Review is still running.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f812a0f18f

ℹ️ 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".

Comment thread session_peer_core/codex.py Outdated
Comment thread session_peer_core/codex.py Outdated
@abruption

Copy link
Copy Markdown
Owner Author

@codex review

@abruption

Copy link
Copy Markdown
Owner Author

@codex security review

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review

Security review completed. No security issues were found in this pull request.

Reviewed commit: cca38080d5

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cca38080d5

ℹ️ 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".

Comment thread session_peer_core/codex.py
@abruption

Copy link
Copy Markdown
Owner Author

@codex review

@abruption

Copy link
Copy Markdown
Owner Author

@codex security review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep it up!

Reviewed commit: 1272b80ca2

ℹ️ 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".

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review

Security review completed. No security issues were found in this pull request.

Reviewed commit: 1272b80ca2

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@abruption

Copy link
Copy Markdown
Owner Author

@codex review

@abruption

Copy link
Copy Markdown
Owner Author

@codex security review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 👍

Reviewed commit: f01f23e9c0

ℹ️ 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".

@abruption

Copy link
Copy Markdown
Owner Author

Sequential merge stage: updated integration head f01f23e includes current main3392c561 (#305 already merged). Feature diff patch-id is unchanged from reviewed1272b80 (stable patch-id0a85507013e8ed7ef086166e3afdfb2311167f0d). Current f01f23e CI28 successful; Code Review completed without new findings; Security Review still running. Waiting before normal protected-main squash merge; no bypass or native acceptance/issue completion claim.

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review

Security review completed. No security issues were found in this pull request.

Reviewed commit: f01f23e9c0

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@abruption
abruption merged commit 57c42d4 into main Oct 16, 2026
28 checks passed
@abruption
abruption deleted the fix/268-effective-storage-contract branch October 16, 2026 00:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants