Commit Graph
12121 Commits
Author SHA1 Message Date
Michael Bolin 04de961d22 merge commit for archive created by Sapling 2026-04-20 22:55:03 -07:00
Michael Bolin 0614e9f1ab tests: isolate approval fixtures from host rules 2026-04-20 22:54:43 -07:00
Michael Bolin 5454243057 shell-escalation: carry resolved permission profiles 2026-04-20 22:54:43 -07:00
Michael Bolin df803281cf mcp: include permission profiles in sandbox state 2026-04-20 22:54:43 -07:00
Michael Bolin e0554ee748 tui: carry permission profiles on user turns 2026-04-20 22:54:43 -07:00
Michael Bolin ff5026da6c tui: sync session permission profiles 2026-04-20 22:54:43 -07:00
Michael Bolin 906e02007c app-server: accept command permission profiles 2026-04-20 22:54:43 -07:00
Michael Bolin 0f16cb0995 protocol: report session permission profiles 2026-04-20 22:54:43 -07:00
Michael Bolin 43a0192183 rollout: persist turn permission profiles 2026-04-20 22:54:43 -07:00
Michael Bolin 44c5e27996 clients: send permission profiles to app-server 2026-04-20 22:54:43 -07:00
Michael Bolin 99292055e2 app-server: accept permission profile overrides 2026-04-20 22:54:43 -07:00
Michael Bolin ecfabb04da app-server: expose thread permission profiles 2026-04-20 22:54:43 -07:00
Michael Bolin 70709987b6 core: derive active permission profiles 2026-04-20 22:54:43 -07:00
Michael Bolin 45aa43ad88 exec-server: carry filesystem sandbox profiles 2026-04-20 22:54:43 -07:00
Michael Bolin d4fca7cba9 sandboxing: intersect permission profiles semantically 2026-04-20 22:54:43 -07:00
Michael Bolin 9d5825ab6e merge commit for archive created by Sapling 2026-04-20 22:49:19 -07:00
Michael Bolin dbd8816c89 tests: isolate approval fixtures from host rules 2026-04-20 22:48:44 -07:00
Michael Bolin 6d03ccf820 shell-escalation: carry resolved permission profiles 2026-04-20 22:48:44 -07:00
Michael Bolin d03adc0db3 mcp: include permission profiles in sandbox state 2026-04-20 22:48:44 -07:00
Michael Bolin e924206a98 tui: carry permission profiles on user turns 2026-04-20 22:48:44 -07:00
Michael Bolin ad659e48f4 tui: sync session permission profiles 2026-04-20 22:48:44 -07:00
Michael Bolin 07935bdec0 app-server: accept command permission profiles 2026-04-20 22:48:44 -07:00
Michael Bolin 459a880d78 protocol: report session permission profiles 2026-04-20 22:48:44 -07:00
Michael Bolin 4a4d0877c2 rollout: persist turn permission profiles 2026-04-20 22:48:44 -07:00
Michael Bolin 5401f9676e clients: send permission profiles to app-server 2026-04-20 22:48:44 -07:00
Michael Bolin 6a17b80359 app-server: accept permission profile overrides 2026-04-20 22:48:44 -07:00
Michael Bolin 50a4ca2b72 app-server: expose thread permission profiles 2026-04-20 22:48:44 -07:00
Michael Bolin 734550b79e core: derive active permission profiles 2026-04-20 22:48:44 -07:00
Michael Bolin ac9de3d1ec exec-server: carry filesystem sandbox profiles 2026-04-20 22:48:44 -07:00
Michael Bolin 49a44b5226 sandboxing: intersect permission profiles semantically 2026-04-20 22:48:43 -07:00
Michael Bolin c6c10ddd82 Merge 30bc98760f into sapling-pr-archive-bolinfest 2026-04-20 22:42:52 -07:00
Michael Bolin 30bc98760f chore: enable await-holding clippy lints
Follow-up to https://github.com/openai/codex/pull/18178, where we said the await-holding clippy rule would be enabled separately.

Enable `await_holding_lock` and `await_holding_invalid_type` after the preceding commits fixed or explicitly documented the current offenders.
2026-04-20 22:42:37 -07:00
Michael Bolin d62421d322 chore: document intentional await-holding cases (#18423)
## Why

This PR prepares the stack to enable Clippy await-holding lints that
were left disabled in #18178. The mechanical lock-scope cleanup is
handled separately; this PR is the documentation/configuration layer for
the remaining await-across-guard sites.

Without explicit annotations, reviewers and future maintainers cannot
tell whether an await-holding warning is a real concurrency smell or an
intentional serialization boundary.

## What changed

- Configures `clippy.toml` so `await_holding_invalid_type` also covers
`tokio::sync::{MutexGuard,RwLockReadGuard,RwLockWriteGuard}`.
- Adds targeted `#[expect(clippy::await_holding_invalid_type, reason =
...)]` annotations for intentional async guard lifetimes.
- Documents the main categories of intentional cases: active-turn state
transitions that must remain atomic, session-owned MCP manager accesses,
remote-control websocket serialization, JS REPL kernel/process
serialization, OAuth persistence, external bearer token refresh
serialization, and tests that intentionally serialize shared global or
session-owned state.
- For external bearer token refresh, documents the existing
serialization boundary: holding `cached_token` across the provider
command prevents concurrent cache misses from starting duplicate refresh
commands, and the current behavior is small enough that an explicit
expectation is easier to maintain than adding another synchronization
primitive.

## Verification

- `cargo clippy -p codex-login --all-targets`
- `cargo clippy -p codex-connectors --all-targets`
- `cargo clippy -p codex-core --all-targets`
- The follow-up PR #18698 enables `await_holding_invalid_type` and
`await_holding_lock` as workspace `deny` lints, so any undocumented
remaining offender will fail Clippy.

---
[//]: # (BEGIN SAPLING FOOTER)
Stack created with [Sapling](https://sapling-scm.com). Best reviewed
with [ReviewStack](https://reviewstack.dev/openai/codex/pull/18423).
* #18698
* __->__ #18423
2026-04-20 22:41:54 -07:00
pakrym-oai 4c2e730488 Organize context fragments (#18794)
Organize context fragments under `core/context`. Implement same trait on
all of them.
2026-04-20 22:39:17 -07:00
Michael Bolin 0dfa5f3837 merge commit for archive created by Sapling 2026-04-20 22:31:50 -07:00
Michael Bolin e98daed02e tests: isolate approval fixtures from host rules 2026-04-20 22:31:13 -07:00
Michael Bolin c97200073f shell-escalation: carry resolved permission profiles 2026-04-20 22:31:13 -07:00
Michael Bolin 7ad9903e16 mcp: include permission profiles in sandbox state 2026-04-20 22:31:13 -07:00
Michael Bolin 7a31e19f83 tui: carry permission profiles on user turns 2026-04-20 22:31:13 -07:00
Michael Bolin 566862d0ef tui: sync session permission profiles 2026-04-20 22:31:13 -07:00
Michael Bolin 76a5cf7a83 app-server: accept command permission profiles 2026-04-20 22:31:13 -07:00
Michael Bolin 07798aeb3d protocol: report session permission profiles 2026-04-20 22:31:13 -07:00
Michael Bolin 6de839e33a rollout: persist turn permission profiles 2026-04-20 22:31:13 -07:00
Michael Bolin 05031055c0 clients: send permission profiles to app-server 2026-04-20 22:31:13 -07:00
Michael Bolin e99a496380 app-server: accept permission profile overrides 2026-04-20 22:31:13 -07:00
Michael Bolin 4b6f60054a app-server: expose thread permission profiles 2026-04-20 22:31:13 -07:00
Michael Bolin a2e61d7281 core: derive active permission profiles 2026-04-20 22:31:12 -07:00
Michael Bolin 7561a92856 exec-server: carry filesystem sandbox profiles 2026-04-20 22:31:12 -07:00
Michael Bolin f26a648439 sandboxing: intersect permission profiles semantically 2026-04-20 22:31:12 -07:00
Michael Bolin ae3b4b3aa2 Merge 7b40cacf12 into sapling-pr-archive-bolinfest 2026-04-20 22:15:02 -07:00