Commit Graph
6363 Commits
Author SHA1 Message Date
James Peter 9bb090bbb6 test(tui): refresh settings overlay snapshots 2025-12-22 21:04:22 +10:00
James Peter b813d8a04e docs(slash-commands): clarify /push workflow checks 2025-12-22 20:18:33 +10:00
James Peter 4e4dd6ff6c Merge branch 'main' of https://github.com/just-every/code 2025-12-22 20:12:02 +10:00
James Peter 1c24f09890 fix(tui/auto-drive): adjust ansi16 title contrast 2025-12-22 19:57:25 +10:00
James Peter 8977ce0a4d fix(tui/auto-drive): tweak ansi16 card colors 2025-12-22 19:43:35 +10:00
James Peter f106d8630c fix(core/mcp): make rmcp client default 2025-12-22 19:25:02 +10:00
James Peter 1b573c493f Merge upstream/main: sync mirror updates 2025-12-22 17:01:37 +10:00
James Peter d9b7f6c13e Refresh codex-rs mirror to upstream/main 2025-12-22 17:00:43 +10:00
James Peter f411d86802 fix(tui): align ansi16 auto drive styling 2025-12-22 16:19:44 +10:00
James Peter 1b2caeffd6 Merge branch 'code-branch-20251222-032946' 2025-12-22 15:18:24 +10:00
James Peter 9ed0a9eb4f fix(tui): delay ghost snapshot notice 2025-12-22 15:18:00 +10:00
James Peter b8ea3d3f03 feat(tui/core): add account switching and skills settings 2025-12-22 15:17:35 +10:00
Ahmed IbrahimandGitHub 51dd60d5da fix: do not panic on alphas (#8406)
alphas are used sometimes as stable release
2025-12-22 00:20:53 +00:00
Eric TrautandGitHub 9a74de2323 Point skills docs to developer documentation site (#8407) 2025-12-21 16:18:58 -08:00
James Peter 095c8401cc fix(auto-drive): respect retry budget and loop hints 2025-12-22 07:11:45 +10:00
Gav VermaandGitHub 4ec099c359 Remove plan from system skills (#8374)
Removes plan from system skills. It has been rewritten into
`create-plan` for evaluation and feedback:
https://github.com/openai/skills/pull/22
2025-12-20 19:42:53 -08:00
Shijie RaoandGitHub a09586792e Chore: remove rmcp feature and exp flag usages (#8087)
### Summary
With codesigning on Mac, Windows and Linux, we should be able to safely
remove `features.rmcp_client` and `use_experimental_use_rmcp_client`
check from the codebase now.
2025-12-20 14:18:00 -08:00
Josh McKinneyandGitHub a41f4e1730 feat(tui2): tune scrolling inpu based on (#8357)
## TUI2: Normalize Mouse Scroll Input Across Terminals (Wheel +
Trackpad)

This changes TUI2 scrolling to a stream-based model that normalizes
terminal scroll event density into consistent wheel behavior (default:
~3 transcript lines per physical wheel notch) while keeping trackpad
input higher fidelity via fractional accumulation.

Primary code: `codex-rs/tui2/src/tui/scrolling/mouse.rs`

Doc of record (model + probe-derived data):
`codex-rs/tui2/docs/scroll_input_model.md`

### Why

Terminals encode both mouse wheels and trackpads as discrete scroll
up/down events with direction but no magnitude, and they vary widely in
how many raw events they emit per physical wheel notch (commonly 1, 3,
or 9+). Timing alone doesn’t reliably distinguish wheel vs trackpad, so
cadence-based heuristics are unstable across terminals/hardware.

This PR treats scroll input as short *streams* separated by silence or
direction flips, normalizes raw event density into tick-equivalents,
coalesces redraws for dense streams, and exposes explicit config
overrides.

### What Changed

#### Scroll Model (TUI2)

- Stream detection
  - Start a stream on the first scroll event.
  - End a stream on an idle gap (`STREAM_GAP_MS`) or a direction flip.
- Normalization
- Convert raw events into tick-equivalents using per-terminal
`tui.scroll_events_per_tick`.
- Wheel-like vs trackpad-like behavior
- Wheel-like: fixed “classic” lines per wheel notch; flush immediately
for responsiveness.
- Trackpad-like: fractional accumulation + carry across stream
boundaries; coalesce flushes to ~60Hz to avoid floods and reduce “stop
lag / overshoot”.
- Trackpad divisor is intentionally capped: `min(scroll_events_per_tick,
3)` so terminals with dense wheel ticks (e.g. 9 events per notch) don’t
make trackpads feel artificially slow.
- Auto mode (default)
  - Start conservatively as trackpad-like (avoid overshoot).
- Promote to wheel-like if the first tick-worth of events arrives
quickly.
- Fallback for 1-event-per-tick terminals (no tick-completion timing
signal).

#### Trackpad Acceleration

Some terminals produce relatively low vertical event density for
trackpad gestures, which makes large/faster swipes feel sluggish even
when small motions feel correct. To address that, trackpad-like streams
apply a bounded multiplier based on event count:

- `multiplier = clamp(1 + abs(events) / scroll_trackpad_accel_events,
1..scroll_trackpad_accel_max)`

The multiplier is applied to the trackpad stream’s computed line delta
(including carried fractional remainder). Defaults are conservative and
bounded.

#### Config Knobs (TUI2)

All keys live under `[tui]`:

- `scroll_wheel_lines`: lines per physical wheel notch (default: 3).
- `scroll_events_per_tick`: raw vertical scroll events per physical
wheel notch (terminal-specific default; fallback: 3).
- Wheel-like per-event contribution: `scroll_wheel_lines /
scroll_events_per_tick`.
- `scroll_trackpad_lines`: baseline trackpad sensitivity (default: 1).
- Trackpad-like per-event contribution: `scroll_trackpad_lines /
min(scroll_events_per_tick, 3)`.
- `scroll_trackpad_accel_events` / `scroll_trackpad_accel_max`: bounded
trackpad acceleration (defaults: 30 / 3).
- `scroll_mode = auto|wheel|trackpad`: force behavior or use the
heuristic (default: `auto`).
- `scroll_wheel_tick_detect_max_ms`: auto-mode promotion threshold (ms).
- `scroll_wheel_like_max_duration_ms`: auto-mode fallback for
1-event-per-tick terminals (ms).
- `scroll_invert`: invert scroll direction (applies to wheel +
trackpad).

Config docs: `docs/config.md` and field docs in
`codex-rs/core/src/config/types.rs`.

#### App Integration

- The app schedules follow-up ticks to close idle streams (via
`ScrollUpdate::next_tick_in` and `schedule_frame_in`) and finalizes
streams on draw ticks.
  - `codex-rs/tui2/src/app.rs`

#### Docs

- Single doc of record describing the model + preserved probe
findings/spec:
  - `codex-rs/tui2/docs/scroll_input_model.md`

#### Other (jj-only friendliness)

- `codex-rs/tui2/src/diff_render.rs`: prefer stable cwd-relative paths
when the file is under the cwd even if there’s no `.git`.

### Terminal Defaults

Per-terminal defaults are derived from scroll-probe logs (see doc).
Notable:

- Ghostty currently defaults to `scroll_events_per_tick = 3` even though
logs measured ~9 in one setup. This is a deliberate stopgap; if your
Ghostty build emits ~9 events per wheel notch, set:

  ```toml
  [tui]
  scroll_events_per_tick = 9
  ```

### Testing

- `just fmt`
- `just fix -p codex-core --allow-no-vcs`
- `cargo test -p codex-core --lib` (pass)
- `cargo test -p codex-tui2` (scroll tests pass; remaining failures are
known flaky VT100 color tests in `insert_history`)

### Review Focus

- Stream finalization + frame scheduling in `codex-rs/tui2/src/app.rs`.
- Auto-mode promotion thresholds and the 1-event-per-tick fallback
behavior.
- Trackpad divisor cap (`min(events_per_tick, 3)`) and acceleration
defaults.
- Ghostty default tradeoff (3 vs ~9) and whether we should change it.
2025-12-20 12:48:12 -08:00
GitHub Action 4dc6bfd675 docs(changelog): update for v0.6.12 [skip ci] 2025-12-20 12:30:12 +00:00
GitHub Action f312b764f0 chore(release): 0.6.12 [skip ci] 2025-12-20 12:28:44 +00:00
James Peter b5647fd003 fix(tests): update browser/agent snapshots 2025-12-20 22:00:19 +10:00
James Peter 63e0864108 fix(tests): clean snapshot headers and imports 2025-12-20 21:56:11 +10:00
James Peter d093a9a635 fix(tests): use cargo_bin_cmd for apply_patch 2025-12-20 21:52:22 +10:00
James Peter ade8970a46 fix(tests): update apply_patch bins and snapshots 2025-12-20 21:48:56 +10:00
James Peter 389c5a3a46 Merge origin/main: adopt release notes/version bumps 2025-12-20 21:37:36 +10:00
James Peter 5d18ea0358 feat(sync): align models, exec schema, skills defaults 2025-12-20 21:36:06 +10:00
James Peter 3745f95e50 Merge upstream/main: refresh mirror and align configs 2025-12-20 17:04:03 +10:00
James Peter 9334dc7ca5 Refresh codex-rs mirror to upstream/main 2025-12-20 17:03:19 +10:00
James Peter 460d6c7caa Merge branch 'code-branch-20251218-193144' 2025-12-20 16:58:05 +10:00
James Peter 639a021041 fix(tui/status): shorten directory label when tight 2025-12-20 16:56:55 +10:00
Michael BolinandGitHub 5606ca6e08 chore: enusre the logic that creates ConfigLayerStack has access to cwd (#8353)
`load_config_layers_state()` should load config from a
`.codex/config.toml` in any folder between the `cwd` for a thread and
the project root. Though in order to do that,
`load_config_layers_state()` needs to know what the `cwd` is, so this PR
does the work to thread the `cwd` through for existing callsites.

A notable exception is the `/config` endpoint in app server for which a
`cwd` is not guaranteed to be associated with the query, so the `cwd`
param is `Option<AbsolutePathBuf>` to account for this case.

The logic to make use of the `cwd` will be done in a follow-up PR.
2025-12-19 20:11:27 -08:00
Ahmed IbrahimandGitHub f86665affb Rename OpenAI models to models manager (#8346)
# External (non-OpenAI) Pull Request Requirements

Before opening this Pull Request, please read the dedicated
"Contributing" markdown file or your PR may be closed:
https://github.com/openai/codex/blob/main/docs/contributing.md

If your PR conforms to our contribution guidelines, replace this text
with a detailed and high quality description of your changes.

Include a link to a bug report or enhancement request.
2025-12-19 16:20:05 -08:00
sayan-oaiandGitHub 0a10256b6b bump cargo-deny-action ver (#8345) 2025-12-19 15:23:02 -08:00
Michael BolinandGitHub 95b7a8cfbc feat: support allowed_sandbox_modes in requirements.toml (#8298)
This adds support for `allowed_sandbox_modes` in `requirements.toml` and
provides legacy support for constraining sandbox modes in
`managed_config.toml`. This is converted to `Constrained<SandboxPolicy>`
in `ConfigRequirements` and applied to `Config` such that constraints
are enforced throughout the harness.

Note that, because `managed_config.toml` is deprecated, we do not add
support for the new `external-sandbox` variant recently introduced in
https://github.com/openai/codex/pull/8290. As noted, that variant is not
supported in `config.toml` today, but can be configured programmatically
via app server.
2025-12-19 21:09:20 +00:00
RQfreeflyandGitHub 97faaf65f3 feat: move file name derivation into codex-file-search (#8334)
## Summary

  - centralize file name derivation in codex-file-search
  - reuse the helper in app-server fuzzy search to avoid duplicate logic
  - add unit tests for file_name_from_path

  ## Testing

  - cargo test -p codex-file-search
  - cargo test -p codex-app-server
2025-12-19 12:50:55 -08:00
Josh McKinneyandGitHub e6c9b7326d feat(tui2): coalesce transcript scroll redraws (#8295)
Problem
- Mouse wheel events were scheduling a redraw on every event, which
could backlog and create lag during fast scrolling.

Solution
- Schedule transcript scroll redraws with a short delay (16ms) so the
frame requester coalesces bursts into fewer draws.

Why
- Smooths rapid wheel scrolling while keeping the UI responsive.

Testing
- Manual: Scrolled in iTerm and Ghostty; no lag observed.
- `cargo clippy --fix --all-features --tests --allow-dirty
--allow-no-vcs -p codex-tui2`
2025-12-19 12:19:01 -08:00
f55e550ea8 Update models.json (#8168)
Automated update of models.json.

Co-authored-by: aibrahim-oai <[email protected]>
2025-12-19 12:06:34 -08:00
Michael BolinandGitHub 357ead8417 fix: enable resume_warning that was missing from mod.rs (#8333)
This test was introduced in https://github.com/openai/codex/pull/6507,
but was not included in `mod.rs`. It does not appear that it was getting
compiled?
2025-12-19 19:21:47 +00:00
Michael BolinandGitHub 5498c2432d feat: make ConstraintError an enum (#8330)
This will make it easier to test for expected errors in unit tests since
we can compare based on the field values rather than the message (which
might change over time). See https://github.com/openai/codex/pull/8298
for an example.

It also ensures more consistency in the way a `ConstraintError` is
constructed.
2025-12-19 19:03:50 +00:00
GalaxyDetectiveandGitHub 4ad9bf457a Fix: /undo destructively interacts with git staging (#8214) (#8303)
Fixes #8214 by removing the '--staged' flag from the undo git restore
command. This ensures that while the working tree is reverted to the
snapshot state, the user's staged changes (index) are preserved,
preventing data loss. Also adds a regression test.
2025-12-19 10:07:41 -08:00
jdijk-deventitandGitHub 09bc45b568 Fix link to contributing.md in experimental.md (#8311)
# External (non-OpenAI) Pull Request Requirements

Before opening this Pull Request, please read the dedicated
"Contributing" markdown file or your PR may be closed:
https://github.com/openai/codex/blob/main/docs/contributing.md

If your PR conforms to our contribution guidelines, replace this text
with a detailed and high quality description of your changes.

Include a link to a bug report or enhancement request.
2025-12-19 09:42:56 -08:00
Gav VermaandGitHub 1f76dc5b42 Update system skills from OSS repo (#8328)
https://github.com/openai/skills/tree/main/skills/.system
2025-12-19 09:31:04 -08:00
xl-openaiandGitHub 2e754599f6 Revert "Keep skills feature flag default OFF for windows." (#8325)
Reverts openai/codex#8308
2025-12-19 16:22:14 +00:00
xl-openaiandGitHub c4d82a7ba2 Keep skills feature flag default OFF for windows. (#8308)
Keep windows OFF first.
2025-12-18 21:57:15 -08:00
James Peter ded01c8bdf Merge branch 'code-branch-20251218-193110' 2025-12-19 15:42:58 +10:00
James Peter b1960478e9 fix(perf): reduce long-session stalls (exec + history) 2025-12-19 15:07:24 +10:00
xl-openaiandGitHub 845223f012 Fix admin skills. (#8305)
We were assembling the skill roots in two different places, and the
admin root was missing in one of them. This change centralizes root
selection into a helper so both paths stay in sync.
2025-12-19 04:10:19 +00:00
Gav VermaandGitHub 12a9394571 Add short descriptions to system skills (#8301) 2025-12-19 02:44:53 +00:00
xl-openaiandGitHub e9eb9c8ec2 Support admin scope skills. (#8296)
a new scope reads from /etc/codex
2025-12-19 02:28:56 +00:00
xl-openaiandGitHub 27ffbb92cb skills feature default on. (#8297)
skills default on.
2025-12-18 18:26:46 -08:00