mirror of
https://github.com/openai/codex.git
synced 2026-10-27 18:48:37 +00:00
## Why A conversation classifier waiting for preparation or full response completion can block newer classifications. Concurrent reviews also need to prevent a later action's evidence or low-risk score from being reused for an earlier action. ## What changed - Run conversation classifications independently, forking the latest compatible completed history from an earlier action. Only a valid completion with a newer action index can replace retained history. - Keep admission and observation ordering atomic, and hold capacity permits through full response completion. - Reject cached low-risk scores from later actions for tool-linked approvals, including initial approval checks. - Track originating tool-call IDs separately from approval display IDs, preserving stdin write provenance and excluding synthetic MCP elicitation IDs from tool ordering. ## Testing Add regression coverage for delayed preparation, capacity admission, out-of-order completion, cancellation, invalid retained output, and history snapshots. Exercise pending approval ordering in both `snapshot` and `conversation` modes, and verify linked and unlinked MCP elicitation provenance. GitOrigin-RevId: 097476ccb3b8718369a69f55c3c39132f7f1a4c1
51 lines
1.5 KiB
TOML
51 lines
1.5 KiB
TOML
[package]
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
name = "codex-guardian-v2"
|
|
version.workspace = true
|
|
|
|
[lib]
|
|
name = "codex_guardian_v2"
|
|
path = "src/lib.rs"
|
|
doctest = false
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
anyhow = { workspace = true }
|
|
codex-analytics = { workspace = true }
|
|
codex-api = { workspace = true }
|
|
codex-config = { workspace = true }
|
|
codex-context-fragments = { workspace = true }
|
|
codex-core = { workspace = true }
|
|
codex-extension-api = { workspace = true }
|
|
codex-features = { workspace = true }
|
|
codex-guardian-context = { workspace = true }
|
|
codex-guardian-reviewer = { workspace = true }
|
|
codex-history = { workspace = true }
|
|
codex-http-client = { workspace = true }
|
|
codex-login = { workspace = true }
|
|
codex-model-provider = { workspace = true }
|
|
codex-protocol = { workspace = true }
|
|
codex-prompts = { workspace = true }
|
|
codex-websocket-client = { workspace = true }
|
|
dirs = { workspace = true }
|
|
http = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
tokio = { workspace = true, features = ["time"] }
|
|
tracing = { workspace = true }
|
|
uuid = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
codex-model-provider-info = { workspace = true }
|
|
codex-utils-cargo-bin = { workspace = true }
|
|
core_test_support = { workspace = true }
|
|
insta = { workspace = true }
|
|
pretty_assertions = { workspace = true }
|
|
tempfile = { workspace = true }
|
|
tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }
|
|
wiremock = { workspace = true }
|
|
zstd = { workspace = true }
|