Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified sdk/typescript/_bundled_plugin/mcp/mcp-app.html.br
Binary file not shown.
Binary file modified sdk/typescript/_bundled_plugin/mcp/server.mjs.br.part-000
Binary file not shown.
Binary file modified sdk/typescript/_bundled_plugin/mcp/server.mjs.br.part-001
Binary file not shown.
57 changes: 0 additions & 57 deletions sdk/typescript/_bundled_plugin/preflight/capability-profiles.toml
Original file line number Diff line number Diff line change
@@ -1,16 +1,5 @@
version = 1

[capabilities.deep_scan_phase_skills]
kind = "plugin_skills"
plugin = "codex-security"
required = [
"attack-path-analysis",
"finding-discovery",
"security-scan",
"threat-model",
"validation",
]

[capabilities.delegated_workers]
kind = "runtime"
check = "delegation_available"
Expand Down Expand Up @@ -45,15 +34,6 @@ op = "=="
value = true
default = true

[capabilities.native_multi_agent_v2]
kind = "multi_agent_mode"
owner = "native"
version = "v2"

[capabilities.sdk_v2_child_config_compatible]
kind = "config_absent"
path = "agents.max_threads"

[profiles.security_diff_scan]
description = "Capabilities for Git-backed Codex Security diff scans."

Expand Down Expand Up @@ -98,21 +78,6 @@ reason = "Enabling goals makes long scans easier to resume and audit."
[profiles.deep_security_scan]
description = "Capabilities for deep repository-wide Codex Security scans."

[[profiles.deep_security_scan.requirements]]
capability = "deep_scan_phase_skills"
severity = "block"
reason = "Deep scan depends on Codex Security phase skills loaded in the current runtime."

[[profiles.deep_security_scan.requirements]]
capability = "native_multi_agent_v2"
severity = "block"
reason = "Deep scan launches SDK discovery workers with native Subagents v2; legacy V1 and bridge-owned parent configurations are incompatible with that worker runtime."

[[profiles.deep_security_scan.requirements]]
capability = "sdk_v2_child_config_compatible"
severity = "block"
reason = "Deep scan child sessions inherit Codex configuration while enabling Subagents v2, so the legacy agents.max_threads setting must be removed before those sessions can start."

[[profiles.deep_security_scan.requirements]]
capability = "goal_tools"
severity = "suggest"
Expand Down Expand Up @@ -144,28 +109,6 @@ summary = "Recommended Codex setup for deep repository-wide scans."
path = "features.goals"
value = true

[[profiles.deep_security_scan.remediation.variants]]
mode = "v1"

[[profiles.deep_security_scan.remediation.variants.patches]]
kind = "remove"
path = "agents.max_threads"

[[profiles.deep_security_scan.remediation.variants.patches]]
path = "features.multi_agent_v2.enabled"
value = true

[[profiles.deep_security_scan.remediation.variants.patches]]
path = "features.multi_agent_v2.max_concurrent_threads_per_session"
value = 4

[[profiles.deep_security_scan.remediation.variants]]
mode = "v2"

[[profiles.deep_security_scan.remediation.variants.patches]]
kind = "remove"
path = "agents.max_threads"

[[routes]]
skill = "security-diff-scan"
profile = "security_diff_scan"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ When the profile includes remediation patches, present the concrete config delta

Some remediation patches have `kind = "host_setting"`. Present those as host-level setup guidance, not as edits to persistent Codex config.

Deep Security Scan uses MCP-owned SDK sessions rather than the parent thread's worker pool. Its preflight requires native V2 but does not derive outer worker concurrency from the parent session cap or require parent delegation depth. When migrating a legacy V1 configuration for Deep Security Scan, remediation removes `agents.max_threads`, sets `features.multi_agent_v2.enabled = true`, and sets `features.multi_agent_v2.max_concurrent_threads_per_session = 4`. The coordinator overrides each child session's cap from the per-user deep-scan configuration. Codex rejects the legacy V1 thread setting and explicit V2 mode together.
Deep Security Scan uses MCP-owned SDK sessions rather than the parent thread's worker pool. Its preflight does not require a particular parent delegation runtime, ownership, capacity, or depth. Discovery workers inherit the scan's model and run under the verified read-only worker sandbox.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Retain the V1 compatibility gate for child sessions

When the active CODEX_HOME contains legacy agents.max_threads, this profile now returns ready, but the bundled CodexSdkWorkerExecutor.run still inherits that environment and explicitly passes features.multi_agent_v2.enabled=true to every discovery child. Codex rejects that V1/V2 combination, as the unchanged preflight documentation itself notes, so the newly admitted V1 configuration fails only after start_codex_security_deep_scan launches. Keep the config_absent check/remediation, or isolate the child configuration before declaring this parent setup compatible.

Useful? React with 👍 / 👎.


Do not warn merely because a user's value differs from the profile's suggested patch. Warn or block only when the evaluated capability requirement is unmet.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ Confirm these plugin skills are available in the active runtime:
- `$codex-security:validation`
- `$codex-security:attack-path-analysis`

The discovery tool launches Codex workers that may use Subagents v2. The active configuration must satisfy the deep profile's native-v2 requirement. The worker count is configured separately from this thread's subagent allowance.
The discovery tool manages its own workers independently of this thread's delegation runtime and subagent allowance.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep required phase skills in the deep preflight

Worker-pool independence does not remove the parent workflow's phase-skill dependencies: this same section still requires security-scan, threat-model, finding-discovery, validation, and attack-path-analysis, and the parent invokes them after discovery. In a runtime that exposes the Deep Scan entry skill but omits any of those selectively loaded skills, removing deep_scan_phase_skills lets preflight report ready; the expensive discovery can then finish before the mandatory centralized tail becomes impossible. Restore this skill-availability requirement independently of the delegation-runtime checks.

Useful? React with 👍 / 👎.


Continue after a `ready` result, explaining material warn or suggest limitations. For `blocked` or `incomplete` results with actionable remediation, first classify the session using `../../references/config-preflight.md`. In an interactive session, present the exact reasons, helper-reported config file path, and config changes, then use that reference's native `request_user_input` → `request_codex_security_user_input` → plain-chat fallback sequence before editing persistent configuration. Stop for the answer without creating a goal or starting discovery. In `codex exec`, headless, automation, or another non-interactive session, do not ask or wait; apply only helper-provided ordinary config patches to the helper's `user_config_path`, rerun preflight once, and continue only if it becomes `ready`. Never guess which Codex home is active or hide a higher-precedence conflict with a lower-precedence edit. If an interactive user declines required remediation, ask whether to cancel the durable desktop scan with `cancel_codex_security_scan` or leave it running for a later retry.

Expand Down
Loading