Skip to content

(cleanup) add link to https://cookbook.openai.com for apply_patch and minor tidy up#2

Merged
ibigio merged 1 commit into
mainfrom
tibo/codex/1
Apr 16, 2025
Merged

(cleanup) add link to https://cookbook.openai.com for apply_patch and minor tidy up#2
ibigio merged 1 commit into
mainfrom
tibo/codex/1

Conversation

@tibo-openai

Copy link
Copy Markdown
Collaborator

No description provided.

@tibo-openai tibo-openai changed the title (cleanup) add link to https://cookbook.openai.com and minor tidy up (cleanup) add link to https://cookbook.openai.com for apply_patch and minor tidy up Apr 16, 2025
@ibigio ibigio merged commit 1c26c27 into main Apr 16, 2025
@ibigio ibigio deleted the tibo/codex/1 branch April 16, 2025 17:15
rumple pushed a commit to rumple/codex that referenced this pull request Apr 24, 2025
avalanchexia pushed a commit to avalanchexia/codex that referenced this pull request Jun 7, 2025
mazdak pushed a commit to mazdak/codex that referenced this pull request Sep 3, 2025
shepting pushed a commit to shepting/codex that referenced this pull request Sep 16, 2025
DioNanos referenced this pull request in DioNanos/codex-termux Nov 15, 2025
Critical bugfix - auto-update detection now working

Fixes:
- Version parser now handles -termux suffix correctly
- Tag parser accepts both rust-v* and v*-termux formats
- Added test coverage for Termux tag validation

Technical details:
- v0.58.0 upstream merge overwrote -termux suffix support
- New upstream code rejected v*-termux tag format
- Prevented version.json creation and update notifications

Affected versions: v0.58.0 through v0.58.3

Termux patches (4 total):
- Patch #1: Browser login fix (termux-open-url)
- Patch #2: RAM optimizations (lto=false, codegen-units=16)
- Patch #3: Auto-update URL (@mmmbuto/codex-cli-termux)
- Patch #4: Auto-update detection (this release)
DioNanos referenced this pull request in DioNanos/codex-termux Nov 21, 2025
Upstream changes (40+ commits):
- New: codex-shell-tool-mcp MCP server
- New: execpolicycheck CLI command
- New: TUI animations toggle feature
- New: Shell timeout increased to 1 hour
- Refactor: execpolicy migration (execpolicy2 -> execpolicy)
- Removed: tiktoken-rs, shell_command feature
- Improved: FreeBSD portability, fuzzy search (8->20 results)

Termux patches verified compatible:
- #1 Browser login (termux-open-url) ✅
- #2 RAM optimizations (lto=false, codegen-units=16) ✅
- #8 Bash execution (sandbox, LD_*, shell detection) ✅
- #9 Auto-update execution ✅

Stats: 195 files changed, +5915 insertions, -2293 deletions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
DioNanos referenced this pull request in DioNanos/codex-termux Nov 27, 2025
- 8 new tests to validate Termux patches after upstream merge
- Critical tests for Patch #1, #2, #4, #9 (conflicting patches)
- Test auto-update execution, browser login, RAM optimization
- Essential for post-merge validation before npm publish

Test suite v1.2 → v1.3 (90 total tests)
DioNanos referenced this pull request in DioNanos/codex-termux Nov 27, 2025
Merged 61 commits from openai/codex upstream (Nov 21-27, 2025).

✅ ALL TERMUX PATCHES PRESERVED:
- Patch #1: Browser login (termux-open-url) - VERIFIED ✅
- Patch #2: RAM optimization (lto=false) - VERIFIED ✅
- Patch #4: Auto-update URL (DioNanos/codex-termux) - VERIFIED ✅
- Patch #5: Version parser (-termux suffix) - VERIFIED ✅
- Patch #6: NPM package name (@mmmbuto/codex-cli-termux) - VERIFIED ✅
- Patch #9: Auto-update execution (npm install) - VERIFIED ✅

NEW UPSTREAM FEATURES:
- Enterprise skip upgrade config (check_for_update_on_startup)
- Unified exec pruning strategy
- Custom env for unified exec process
- Compaction events
- Thread/turn ID in notifications
- Config management app-server
- Cargo audit workflow + cargo-deny
- NetBSD build fixes
- Windows sandbox enhancements
- Documentation improvements

UPSTREAM CHANGES:
- 232 files changed
- +11247 insertions, -7808 deletions
- New codex-api/ and codex-client/ crates
- Rollout session error improvements
- Apply patch parsing fixes

CONFLICTS RESOLVED:
- README.md: Merged Testing section (Termux) + Documentation links (upstream)

NEXT: Compilation + Category 13 test suite validation
DioNanos referenced this pull request in DioNanos/codex-termux Jan 10, 2026
- Updated workspace version to 0.80.0-termux
- Termux patch #2 (compilation) preserved: lto=false, codegen-units=16
- Termux patch #9 (auto-update execution) preserved in main.rs
- Process hardening removal upstream improves bash execution (patch #8)

Upstream changes (77 commits from rust-v0.79.0):
- Metrics capabilities (otel/metrics modules)
- Requirements/list API
- Thread fork endpoints
- Elevated sandbox onboarding
- Skills explicit invocation via V2 API
- Updated dependencies: lru 0.16.3, zstd added
- Removed codex-process-hardening from Codex CLI
- Updated models.json
DioNanos referenced this pull request in DioNanos/codex-termux Feb 4, 2026
- Set version = "0.95.0"
- Applied Patch #2: lto = false, codegen-units = 16
- Preserved all upstream v0.95.0 workspace members and dependencies
- All Termux patches (#1-#6, #9) verified present
- Next step: Build ARM64 binaries
DioNanos referenced this pull request in DioNanos/codex-termux Feb 18, 2026
Patches applied:
- Patch #1: Browser login fix (termux-open-url)
- Patch #2: Compilation optimizations (lto=false, codegen-units=16)
- Patch #3: Version alignment (0.104.0)
- Patch #4: Auto-update URL (DioNanos/codex-termux)
- Patch #5: Version parser (-termux suffix)
- Patch #6: NPM package name (@mmmbuto/codex-cli-termux)
- Patch #9: Auto-update execution (tui/src/main.rs)

Updated files:
- codex-rs/Cargo.toml: version 0.104.0
- codex-rs/tui/src/main.rs: add update_action execution
- npm-package/package.json: 0.104.0-termux
- patches/README.md: update validated version
Oreoxp pushed a commit to Oreoxp/codex-cli that referenced this pull request May 7, 2026
…i#21190)

## Why

We found this while reviewing openai#21091, but confirmed it is not introduced
by that PR: the order-sensitive `current_text_with_pending()`
replacement loop already existed, and `main` already allowed active
same-size large pastes to use prefix-overlapping labels such as `[Pasted
Content N chars]` and `[Pasted Content N chars] openai#2`.

openai#21091 fixes placeholder numbering after a draft is cleared, so a fresh
same-size paste can reuse the base label. This PR fixes a different
path: when a draft already contains multiple active same-size large
pastes, the placeholders can overlap by prefix, for example `[Pasted
Content N chars]` and `[Pasted Content N chars] openai#2`.

That overlap breaks `current_text_with_pending()` when the composer
materializes the draft text for the external editor. Replacing the base
placeholder first can partially rewrite the `openai#2` placeholder, leaving
the external editor seeded with corrupted text instead of both paste
payloads.

| Before | After |
|---|---|
| <img width="1230" height="1008" alt="CleanShot 2026-05-05 at 10 18 09"
src="https://github.com/user-attachments/assets/88a2936c-cf00-4adc-8567-8fd8f398b4a8"
/> | <img width="1230" height="1008" alt="CleanShot 2026-05-05 at 10 20
31"
src="https://github.com/user-attachments/assets/119cff52-43c8-432a-9367-418d82f4ed82"
/> |
| <img width="1230" height="1008" alt="CleanShot 2026-05-05 at 10 18 57"
src="https://github.com/user-attachments/assets/026031bb-839b-4252-a0fd-9ba9616435fe"
/> | <img width="1230" height="1008" alt="CleanShot 2026-05-05 at 10 21
31"
src="https://github.com/user-attachments/assets/8cb6f2c8-3a5d-411b-8623-dca666ee3c08"
/> |

## What Changed

- Changed `current_text_with_pending()` to expand pending pastes through
the existing element-range based `expand_pending_pastes()` helper
instead of global string replacement.
- Added a regression test with two different same-length large pastes to
ensure both overlapping placeholders expand to their original payloads.

## How to Test

1. Start Codex TUI.
2. Paste a large string, for example 1004 `A` characters.
```shell
perl -e 'print "A" x 1004' | pbcopy
```
3. Paste a second large string with the same length, for example 1004
`B` characters.
```shell
perl -e 'print "B" x 1004' | pbcopy
```
4. Open the external editor from the composer.
5. Confirm the editor is seeded with the full `A...` payload followed by
the full `B...` payload, with no literal `openai#2` left behind.

Targeted tests:
- `cargo test -p codex-tui
current_text_with_pending_expands_overlapping_placeholders`
- `just argument-comment-lint-from-source -p codex-tui`

I also ran `cargo test -p codex-tui`; it reached the full crate suite
but failed two unrelated local status tests because this machine's
`/etc/codex/requirements.toml` rejects `DangerFullAccess`.
ehrvs referenced this pull request in PixelatedMountainStream/codex May 7, 2026
…ub catalog

Closes the test-coverage Blocking findings from QA-002 (rust-qa-agent), test-auditor, rust-code-reviewer Important #2, and simplification F6:

- core/src/session/tests.rs: integration test exercising swap_model_provider end-to-end. Asserts both halves of the model_provider_id <-> model_provider invariant move together (services.model_client provider id flips, state.session_configuration.provider flips, original_config_do_not_use.model_provider_id flips, auth_manager Arc unchanged). This is the test that would have caught the Critical bug fixed in 04cc95d.

- core/src/config/edit_tests.rs: SetModelAndProvider TOML round-trip at profile scope, mirroring existing SetModel test shape. Plus a None-effort test that asserts a pre-existing effort value is preserved.

- tui/src/model_catalog.rs: two unit tests for the try_list_models conditional stub — one with ollama in configured_provider_ids, one without — proving the code-reviewer Important #3 guard works.

Drive-by cleanups (within Milestone-1 scope; bigger ones deferred per simplification F2/F3/F5):

- tui/src/chatwidget.rs: deleted the model_selection_actions one-line shim (simplification F4 + rust-code-reviewer Important #4) and updated its single call site to pass preset.provider_id.clone() through directly. Eliminates a latent bug where a future local preset satisfying is_auto_model() would silently drop its provider id.
- tui/src/app_command.rs: removed spurious #[allow(clippy::too_many_arguments)] from a 4-arg fn (QA-003).
- core/src/session/mod.rs: added SAFETY doc on swap_model_provider explaining the available_during_task() == false invariant that makes the two-phase lock pattern safe (QA-004 documentation requirement).
- core/src/session/session.rs: TODO(milestone-1-followup) at SessionSettingsUpdate.model_provider_id field to track the simplification F2 dead-field cleanup (high-churn, deferred).
Nubaeon referenced this pull request in EmpiricaAI/ecodex May 17, 2026
Pulls in three CC improvements ecodex was missing:

1. Praxic phase emoji ⚙ → 🔨 — east-asian-width fix. ⚙ (U+2699)
   renders narrow on some terminals + ambiguous on others, causing
   digit overlap or clipping next to the phase indicator. 🔨 (U+1F528)
   is unambiguously wide, matches CLAUDE_CODE_SETUP.md docs.

2. Threshold info no longer rendered in live statusline — it's
   Sentinel-scoped (set/dynamically-adjusted at session level, not
   per-action) and not actionable for the AI mid-tool-call. Keeping
   it cluttered the line without informing decisions. Helpers
   (get_dynamic_threshold, format_threshold) remain for
   `empirica sentinel-status` and debug surfaces.

3. Caller-side threshold fetch removed (paired with #2) — saves a
   DB round trip per statusline render tick.

Verbatim copy of CC's version (1461 lines vs ecodex's prior 1455 —
the +6 is the threshold-removal comment block). No ecodex-specific
patches to preserve in the diff. Also synced to
~/.codex/plugins/cache/nubaeon/empirica/0.1.0/ so next session picks it up.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
AIALRA-0 pushed a commit to AIALRA-0/codex-turn-engine that referenced this pull request Jun 10, 2026
- Remove numeric prefixes for disabled rows in shared list rendering.
These numbers are shortcuts, Ex: Pressing "2" selects option `openai#2`.
Disabled items can not be selected, so keeping numbers on these items is
misleading.
- Apply the same behavior in both tui and tui_app_server.
- Update affected snapshots for apps/plugins loading and plugin detail
rows.

_**This is a global change.**_

Before:
<img width="1680" height="488" alt="image"
src="https://github.com/user-attachments/assets/4bcf94ad-285f-48d3-a235-a85b58ee58e2"
/>

After:
<img width="1706" height="484" alt="image"
src="https://github.com/user-attachments/assets/76bb6107-a562-42fe-ae94-29440447ca77"
/>
AIALRA-0 pushed a commit to AIALRA-0/codex-turn-engine that referenced this pull request Jun 10, 2026
…i#21190)

## Why

We found this while reviewing openai#21091, but confirmed it is not introduced
by that PR: the order-sensitive `current_text_with_pending()`
replacement loop already existed, and `main` already allowed active
same-size large pastes to use prefix-overlapping labels such as `[Pasted
Content N chars]` and `[Pasted Content N chars] openai#2`.

openai#21091 fixes placeholder numbering after a draft is cleared, so a fresh
same-size paste can reuse the base label. This PR fixes a different
path: when a draft already contains multiple active same-size large
pastes, the placeholders can overlap by prefix, for example `[Pasted
Content N chars]` and `[Pasted Content N chars] openai#2`.

That overlap breaks `current_text_with_pending()` when the composer
materializes the draft text for the external editor. Replacing the base
placeholder first can partially rewrite the `openai#2` placeholder, leaving
the external editor seeded with corrupted text instead of both paste
payloads.

| Before | After |
|---|---|
| <img width="1230" height="1008" alt="CleanShot 2026-05-05 at 10 18 09"
src="https://github.com/user-attachments/assets/88a2936c-cf00-4adc-8567-8fd8f398b4a8"
/> | <img width="1230" height="1008" alt="CleanShot 2026-05-05 at 10 20
31"
src="https://github.com/user-attachments/assets/119cff52-43c8-432a-9367-418d82f4ed82"
/> |
| <img width="1230" height="1008" alt="CleanShot 2026-05-05 at 10 18 57"
src="https://github.com/user-attachments/assets/026031bb-839b-4252-a0fd-9ba9616435fe"
/> | <img width="1230" height="1008" alt="CleanShot 2026-05-05 at 10 21
31"
src="https://github.com/user-attachments/assets/8cb6f2c8-3a5d-411b-8623-dca666ee3c08"
/> |

## What Changed

- Changed `current_text_with_pending()` to expand pending pastes through
the existing element-range based `expand_pending_pastes()` helper
instead of global string replacement.
- Added a regression test with two different same-length large pastes to
ensure both overlapping placeholders expand to their original payloads.

## How to Test

1. Start Codex TUI.
2. Paste a large string, for example 1004 `A` characters.
```shell
perl -e 'print "A" x 1004' | pbcopy
```
3. Paste a second large string with the same length, for example 1004
`B` characters.
```shell
perl -e 'print "B" x 1004' | pbcopy
```
4. Open the external editor from the composer.
5. Confirm the editor is seeded with the full `A...` payload followed by
the full `B...` payload, with no literal `openai#2` left behind.

Targeted tests:
- `cargo test -p codex-tui
current_text_with_pending_expands_overlapping_placeholders`
- `just argument-comment-lint-from-source -p codex-tui`

I also ran `cargo test -p codex-tui`; it reached the full crate suite
but failed two unrelated local status tests because this machine's
`/etc/codex/requirements.toml` rejects `DangerFullAccess`.
SSFSKIM referenced this pull request in SSFSKIM/codex_somersault Jun 19, 2026
…e spec

Probes 17/17b/17c/17d (ran keyed, SDK 0.3.178) establish the canUseTool
contract for the chat REPL and flip two premises:
- auto is NOT a no-prompt mode: it routes mutations (Edit) through the
  broker (2/2), identical to default; only bypassPermissions is silent (2/2).
- canUseTool UI hints (title/displayName) are absent headlessly → dialog
  reconstructs from toolName+input.
deny verified safe (denied Edit left file ORIGINAL, turn completed); allow
{updatedInput} works; Read-gating is non-deterministic. Spec decision #2
corrected: REPL default = default mode (broker-live), bypassPermissions = the
silence toggle.
wangjiecloud pushed a commit to wangjiecloud/codex that referenced this pull request Jun 27, 2026
- Remove numeric prefixes for disabled rows in shared list rendering.
These numbers are shortcuts, Ex: Pressing "2" selects option `openai#2`.
Disabled items can not be selected, so keeping numbers on these items is
misleading.
- Apply the same behavior in both tui and tui_app_server.
- Update affected snapshots for apps/plugins loading and plugin detail
rows.

_**This is a global change.**_

Before:
<img width="1680" height="488" alt="image"
src="https://github.com/user-attachments/assets/4bcf94ad-285f-48d3-a235-a85b58ee58e2"
/>

After:
<img width="1706" height="484" alt="image"
src="https://github.com/user-attachments/assets/76bb6107-a562-42fe-ae94-29440447ca77"
/>
wangjiecloud pushed a commit to wangjiecloud/codex that referenced this pull request Jun 27, 2026
…i#21190)

## Why

We found this while reviewing openai#21091, but confirmed it is not introduced
by that PR: the order-sensitive `current_text_with_pending()`
replacement loop already existed, and `main` already allowed active
same-size large pastes to use prefix-overlapping labels such as `[Pasted
Content N chars]` and `[Pasted Content N chars] openai#2`.

openai#21091 fixes placeholder numbering after a draft is cleared, so a fresh
same-size paste can reuse the base label. This PR fixes a different
path: when a draft already contains multiple active same-size large
pastes, the placeholders can overlap by prefix, for example `[Pasted
Content N chars]` and `[Pasted Content N chars] openai#2`.

That overlap breaks `current_text_with_pending()` when the composer
materializes the draft text for the external editor. Replacing the base
placeholder first can partially rewrite the `openai#2` placeholder, leaving
the external editor seeded with corrupted text instead of both paste
payloads.

| Before | After |
|---|---|
| <img width="1230" height="1008" alt="CleanShot 2026-05-05 at 10 18 09"
src="https://github.com/user-attachments/assets/88a2936c-cf00-4adc-8567-8fd8f398b4a8"
/> | <img width="1230" height="1008" alt="CleanShot 2026-05-05 at 10 20
31"
src="https://github.com/user-attachments/assets/119cff52-43c8-432a-9367-418d82f4ed82"
/> |
| <img width="1230" height="1008" alt="CleanShot 2026-05-05 at 10 18 57"
src="https://github.com/user-attachments/assets/026031bb-839b-4252-a0fd-9ba9616435fe"
/> | <img width="1230" height="1008" alt="CleanShot 2026-05-05 at 10 21
31"
src="https://github.com/user-attachments/assets/8cb6f2c8-3a5d-411b-8623-dca666ee3c08"
/> |

## What Changed

- Changed `current_text_with_pending()` to expand pending pastes through
the existing element-range based `expand_pending_pastes()` helper
instead of global string replacement.
- Added a regression test with two different same-length large pastes to
ensure both overlapping placeholders expand to their original payloads.

## How to Test

1. Start Codex TUI.
2. Paste a large string, for example 1004 `A` characters.
```shell
perl -e 'print "A" x 1004' | pbcopy
```
3. Paste a second large string with the same length, for example 1004
`B` characters.
```shell
perl -e 'print "B" x 1004' | pbcopy
```
4. Open the external editor from the composer.
5. Confirm the editor is seeded with the full `A...` payload followed by
the full `B...` payload, with no literal `openai#2` left behind.

Targeted tests:
- `cargo test -p codex-tui
current_text_with_pending_expands_overlapping_placeholders`
- `just argument-comment-lint-from-source -p codex-tui`

I also ran `cargo test -p codex-tui`; it reached the full crate suite
but failed two unrelated local status tests because this machine's
`/etc/codex/requirements.toml` rejects `DangerFullAccess`.
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