Skip to content

[WRONG BRANCH] fix(codex): preserve user-owned openai_base_url on fallback restore - #307

Draft
luvs01 wants to merge 1 commit into
mainfrom
codex/propose-fix-for-openai_base_url-deletion
Draft

[WRONG BRANCH] fix(codex): preserve user-owned openai_base_url on fallback restore#307
luvs01 wants to merge 1 commit into
mainfrom
codex/propose-fix-for-openai_base_url-deletion

Conversation

@luvs01

@luvs01 luvs01 commented Aug 17, 2026

Copy link
Copy Markdown
Owner

Motivation

  • Prevent a regression where the journal recorded whatever config.toml contained and a later fallback restore could remove a user-owned openai_base_url that OpenCodex never wrote.

Description

  • Stop deriving the journaled injected URL from the final config bytes by changing markJournalInjectedState to accept an explicit injectedOpenaiBaseUrl parameter and persist that value instead of calling rootTomlString(config, "openai_base_url").
  • Pass null for the journaled URL when the injector detected and preserved a user-owned root openai_base_url (keptUserBaseUrl), and pass the injected URL only when OpenCodex actually wrote it (src/codex/inject.ts).
  • Update the owning comment in src/codex/journal.ts to explain why the caller must supply the URL and adjust the codex tests to the new API usage (tests/codex-journal.test.ts).
  • Strengthen the regression test by forcing a byte-level mismatch on the simulated app rewrite so exact-byte journal restore cannot mask the fallback behavior, ensuring the fix is exercised (tests/codex-restore-app-rewrite.test.ts).

Testing

  • Ran the focused restore regression tests with bun test tests/codex-restore-app-rewrite.test.ts --test-name-pattern 'openai_base_url' and the two openai_base_url cases passed.
  • Ran the focused journal test with bun test tests/codex-journal.test.ts --test-name-pattern 'hashless journal' and the relevant hashless-journal case passed.
  • Ran type checking with bun run typecheck which succeeded.
  • Ran git diff --check which reported no whitespace errors.
  • Note: running the full codex-journal suite together without test filtering surfaced unrelated environment/seeding failures (missing seeded models_cache.json in one rewrite case); the targeted tests for the change passed and the failures are not caused by these edits.

Codex Task

@github-actions

Copy link
Copy Markdown

Deterministic PR hygiene checks passed.

@coderabbitai

coderabbitai Bot commented Aug 17, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@luvs01, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 24 minutes

Limit details: You’ve used all 3 included reviews currently available under your plan.

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 2b03ce3e-33b9-4410-87a6-18a42546e673

📥 Commits

Reviewing files that changed from the base of the PR and between 2bd271f and 74a2c1c.

📒 Files selected for processing (4)
  • src/codex/inject.ts
  • src/codex/journal.ts
  • tests/codex-journal.test.ts
  • tests/codex-restore-app-rewrite.test.ts

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added the bug Something isn't working label Aug 17, 2026
@github-actions github-actions Bot changed the title fix(codex): preserve user-owned openai_base_url on fallback restore [WRONG BRANCH] fix(codex): preserve user-owned openai_base_url on fallback restore Aug 17, 2026
@github-actions

github-actions Bot commented Aug 17, 2026

Copy link
Copy Markdown

⏳ DRAFT

  • wrong target branch (main); retarget to dev.

What to do

  • Retarget this PR to dev — all contributions go to dev.

Its title has been prefixed with [WRONG BRANCH].
This pull request was already a draft. Its draft status will be preserved after every issue above is resolved.

@github-actions
github-actions Bot marked this pull request as draft August 17, 2026 05:29

@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: 74a2c1c2e2

ℹ️ 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 src/codex/inject.ts
markJournalInjectedState(
content,
profileContent,
keptUserBaseUrl ? null : rootTomlString(content, "openai_base_url"),

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Retain injected URL evidence across marker-dropping reinjection

When the Codex app drops the ownership comment and another sync runs before restore, setRootOpenaiBaseUrl reports keptUserBaseUrl even though the unmarked value is the URL from the previous injection. Passing null here then replaces the journal without that ownership evidence; if the app subsequently changes the file again so exact-hash restoration cannot run, fallback restoration leaves openai_base_url pointing at the stopped proxy. Preserve the previous journaled URL when it matches the retained value, and cover the inject → rewrite → reinject → rewrite → restore sequence.

Useful? React with 👍 / 👎.

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

Labels

aardvark bug Something isn't working codex

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant