Commit Graph

3108 Commits

Author SHA1 Message Date
Michael Bolin
f63f05f8a6 windows-sandbox: accept permission profiles from callers 2026-04-30 09:26:53 -07:00
Michael Bolin
6a9db12adb exec: localize legacy windows sandbox projection 2026-04-30 09:14:47 -07:00
Michael Bolin
2cbb225a49 session: stop exposing legacy sandbox policy 2026-04-30 08:58:19 -07:00
Michael Bolin
d507eb9ce0 protocol: remove legacy sandbox turn-context overrides 2026-04-30 08:58:19 -07:00
Michael Bolin
dd07fb5a2a protocol: drop legacy sandbox from user turns 2026-04-30 08:35:50 -07:00
Michael Bolin
b42ea0a808 protocol: require permission profiles for user turns 2026-04-30 08:22:28 -07:00
Michael Bolin
9c17b2dc03 protocol: canonicalize turn context permissions 2026-04-30 08:02:30 -07:00
Michael Bolin
71f7d562cd session: localize legacy sandbox turn fallback 2026-04-30 07:48:32 -07:00
Michael Bolin
976d8bc18a rollout-trace: record permission profiles 2026-04-30 07:42:42 -07:00
Michael Bolin
0259075ce6 protocol: make user-turn sandbox policy optional 2026-04-30 07:41:11 -07:00
Michael Bolin
2e8a66d44c session: tag turns with permission profiles 2026-04-30 07:26:46 -07:00
Michael Bolin
33ad223149 core tests: submit turns with permission profiles 2026-04-30 07:20:55 -07:00
Michael Bolin
7a367c3db7 turn-context: stop writing legacy sandbox policy 2026-04-30 07:15:36 -07:00
Michael Bolin
3cbcb18aef app-server: validate turn sandbox overrides as profiles 2026-04-30 06:53:29 -07:00
Michael Bolin
2bc3c954e3 session: convert legacy sandbox updates before settings apply 2026-04-30 06:45:12 -07:00
Michael Bolin
6058961865 app-server: compare resume sandbox from permission profile 2026-04-30 06:26:47 -07:00
Michael Bolin
4a90f76298 mcp: send sandbox metadata as permission profile only 2026-04-30 06:20:52 -07:00
Michael Bolin
513a439b8f thread-store: stop exposing legacy sandbox policy 2026-04-30 06:16:53 -07:00
Michael Bolin
5d82aeefcc test support: derive turn sandbox from permission profiles 2026-04-30 05:32:17 -07:00
Michael Bolin
0d0d3d8d12 windows setup: derive sandbox from permission profile 2026-04-30 05:26:50 -07:00
Michael Bolin
df12b83033 windows read grants: accept permission profiles 2026-04-30 05:21:34 -07:00
Michael Bolin
53f8983bf5 session tests: configure permissions with profiles 2026-04-30 05:21:34 -07:00
Michael Bolin
3a0e5391bb approval tests: configure scenarios with permission profiles 2026-04-30 04:54:18 -07:00
Michael Bolin
fa4fad57f0 otel: report conversation permissions from profiles 2026-04-30 04:05:23 -07:00
Michael Bolin
37aa2f8157 protocol: drop cwd-less legacy profile constructor 2026-04-30 04:00:16 -07:00
Michael Bolin
3c5890a1ce session tests: configure runtime permissions directly 2026-04-30 03:47:14 -07:00
Michael Bolin
7364013fe0 tests: mutate spawn-agent permission profile directly 2026-04-30 03:43:57 -07:00
Michael Bolin
2876493bae tests: use disabled profile in exec capture check 2026-04-30 03:28:48 -07:00
Michael Bolin
e894ac76f7 tests: use profile constructors in config checks 2026-04-30 03:26:51 -07:00
Michael Bolin
4cf7855a99 tests: use permission profiles in multi-agent config checks 2026-04-30 03:23:18 -07:00
Michael Bolin
c48043f4e4 tests: use permission profiles in session network checks 2026-04-30 03:18:22 -07:00
Michael Bolin
8a2144d700 tests: use permission profiles in config loader checks 2026-04-30 03:18:22 -07:00
Michael Bolin
0fc2a7b068 tests: submit websocket turns with permission profiles 2026-04-30 03:08:22 -07:00
Michael Bolin
4f646e0aca tests: use permission profiles in exec policy checks 2026-04-30 03:04:35 -07:00
Michael Bolin
e28bb5c396 tests: use permission profiles in request permission suite 2026-04-30 03:01:06 -07:00
Michael Bolin
521cf5bdd4 tests: use permission profiles in unified exec suite 2026-04-30 03:01:06 -07:00
Michael Bolin
57094ee86d core: use permission profiles in small read-only contexts 2026-04-30 03:01:06 -07:00
Michael Bolin
200c83f7d7 tests: use permission profiles in suite turn submits 2026-04-30 02:36:30 -07:00
Michael Bolin
cfeaa5aab1 guardian: configure review session permissions directly 2026-04-30 02:36:30 -07:00
Michael Bolin
75c9c98aed tests: use permission profiles in small core fixtures 2026-04-30 02:36:30 -07:00
Michael Bolin
05d341f0d4 tests: use permission profiles in guardian config checks 2026-04-30 02:36:30 -07:00
Michael Bolin
d53c86e0da tests: use permission profiles in unix escalation checks 2026-04-30 02:36:30 -07:00
Michael Bolin
44ec706a44 tests: use permission profiles in patch safety checks 2026-04-30 02:36:30 -07:00
Michael Bolin
a3880e937b tests: use permission profiles in tool sandbox tests 2026-04-30 02:36:30 -07:00
Michael Bolin
ee05c896f7 tests: use permission profile fixtures in config checks 2026-04-30 02:36:30 -07:00
Michael Bolin
ada7881352 core: build permission instructions from profiles only 2026-04-30 02:36:30 -07:00
Michael Bolin
97aaf4cea4 tests: copy plugin stdio server before launch 2026-04-30 02:36:21 -07:00
jif-oai
c37f7434ba Gate multi-agent v2 tools independently of collab (#20246)
## Why

`multi_agents_v2` is meant to be independently gated from the older
`collab` feature. The tool registry still treated the
collaboration-style agent tools as `collab`-only, so enabling
`multi_agents_v2` without `collab` omitted the v2 agent tools. Review
and guardian sub-sessions also need to keep agent spawning disabled even
when the outer session has `multi_agents_v2` enabled.

## What changed

- Include the collab-backed agent tools when either `multi_agents_v2` or
`collab` is enabled.
- Explicitly disable `multi_agents_v2` for review and guardian review
sub-sessions, matching the existing `spawn_csv` and `collab`
restrictions.
- Add a registry test that enables `multi_agents_v2`, disables `collab`,
and verifies the v2 agent tools are present while legacy `send_input`
and `resume_agent` remain hidden.

## Testing

- Added
`test_build_specs_multi_agent_v2_does_not_require_collab_feature`.
2026-04-30 10:23:31 +02:00
Abhinav
8f3c06cc97 Add persisted hook enablement state (#19840)
## Why

After `hooks/list` exposes the hook inventory, clients need a way to
persist user hook preferences, make those changes effective in
already-open sessions, and distinguish user-controllable hooks from
managed requirements without adding another bespoke app-server write
API.

## What

- Extends `hooks/list` entries with effective `enabled` state.
- Persists user-level hook state under `hooks.state.<hook-id>` so the
model can grow beyond a single boolean over time.
- Uses the existing `config/batchWrite` path for hook state updates
instead of introducing a dedicated hook write RPC.
- Refreshes live session hook engines after config writes so
already-open threads observe updated enablement without a restart.

## Stack

1. openai/codex#19705
2. openai/codex#19778
3. This PR - openai/codex#19840
4. openai/codex#19882

## Reviewer Notes

The generated schema files account for much of the raw diff. The core
behavior is in:

- `hooks/src/config_rules.rs`, which resolves per-hook user state from
the config layer stack.
- `hooks/src/engine/discovery.rs`, which projects effective enablement
into `hooks/list` from source-derived managedness.
- `config/src/hook_config.rs`, which defines the new `hooks.state`
representation.
- `core/src/session/mod.rs`, which rebuilds live hook state after user
config reloads.

---------

Co-authored-by: Codex <noreply@openai.com>
2026-04-30 04:46:32 +00:00
Michael Bolin
ac4332c05b permissions: expose active profile metadata (#20095) 2026-04-29 20:54:59 -07:00