Codex Security: adopt completed Deep Scan manifest without repeating discovery
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- rust
- Domain
- backend-api-design, security
Research direction
Start by tracing start_codex_security_deep_scan and complete_codex_security_scan, then inspect how the discovery manifest and native deep_scan_runs state are validated and persisted. Compare the terminal manifest, worker receipts, candidate and coverage ledgers, and artifact digests against the app-backed scan. Done means a validated owner-capped manifest can be adopted idempotently and the existing bundle can be completed without repeating discovery.
Written by the indexing model from the issue text.
Description
What version of the Codex App are you using?
ChatGPT desktop app 26.721.41059 (build 5848), bundled codex-cli 0.146.0-alpha.3.1.
Codex Security plugin: 0.1.13.
What platform is your computer?
macOS 26.5.2 (25F84), arm64.
What issue are you seeing?
An app-backed Deep Security Scan has complete, internally consistent discovery artifacts and a terminal owner-capped discovery manifest, but it cannot be finalized because the native Deep Scan orchestration receipt was never persisted.
The completed discovery evidence is substantial:
- immutable Git revision
- seven complete discovery rounds
- 42 completed workers
- 6,300 review receipts
- 69 canonical candidates
- terminal reason
capped - cap type
owner - strict saturation explicitly
false - discovery-manifest SHA-256
bd47682e1278d93c0afaf8784e57029308270671758932cbb9aa26f8b0d69cba
Centralized validation, attack-path analysis, detailed finding write-ups, hardening output, and the canonical scan-manifest.json, findings.json, and coverage.json were subsequently completed. A finalization run against an isolated copy validates and seals the complete bundle successfully.
However, app-backed completion returns:
Codex Security scan completion failed.
Deep Scan discovery orchestration must finish and persist its manifest before the parent scan can be completed.
The public MCP surface has no operation that can validate and adopt an existing terminal discovery manifest. Calling start_codex_security_deep_scan at this point initializes native orchestration from setup and would repeat already completed discovery, consuming substantial additional usage.
The scan has therefore been left running. The plugin database was not edited and discovery was not repeated.
How can the issue be reproduced?
- Create an app-backed scan in Deep mode.
- Complete repeated discovery and write a terminal discovery manifest through a parent/legacy continuation that does not establish native
deep_scan_runsworker and reducer state. - Complete centralized validation, attack-path analysis, write-ups, hardening, and canonical JSON assembly.
- Call
complete_codex_security_scan. - Completion rejects the otherwise valid bundle because the native orchestration receipt is absent.
What is the expected behavior?
Please add a supported, idempotent recovery/adoption operation that can:
- Validate an existing terminal Deep Scan discovery manifest against the app-backed scan ID, immutable target revision or snapshot digest, configured scope, worker receipts, canonical candidate ledgers, coverage/work ledgers, and artifact digests.
- Accept an explicit owner-capped terminal state without claiming saturation.
- Persist the equivalent native terminal orchestration receipt only after those checks pass.
- Allow ordinary parent completion to seal and index the already-completed downstream artifacts.
- Refuse adoption when the target, manifest, artifact digests, or candidate/coverage inventories do not match.
This would provide a lossless recovery path without silently trusting arbitrary files or repeating expensive completed discovery.
Additional information
The official plugin documentation describes resuming interrupted scans, but the currently installed tool surface does not expose manifest adoption for this state mismatch. A private scan/session identifier can be supplied through an appropriate non-public support channel if required.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.5k
- Avg merge
- 1m
- Merged PRs (30d)
- 1k
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from openai/codex
-
enhancement remote
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
bug CLI windows-os
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
macOS sandbox blocks hw.optional.arm64 sysctl, causing Flutter to misdetect Apple Silicon as x64 Openbug CLI sandbox
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug CLI TUI
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
CLI config enhancement skills
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
kwakseongjae/auto-hwp#319 ·
-
area:cli bug filter-quality good first issue priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
bevyengine/bevy#25861 ·
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
A-linter
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
oxc-project/oxc#26863 ·