Codex Security: adopt completed Deep Scan manifest without repeating discovery

Open
#35,533 0 comments 0 reactions 0 assignees View on GitHub

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

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

app enhancement mcp skills
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?
  1. Create an app-backed scan in Deep mode.
  2. Complete repeated discovery and write a terminal discovery manifest through a parent/legacy continuation that does not establish native deep_scan_runs worker and reducer state.
  3. Complete centralized validation, attack-path analysis, write-ups, hardening, and canonical JSON assembly.
  4. Call complete_codex_security_scan.
  5. 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:

  1. 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.
  2. Accept an explicit owner-capped terminal state without claiming saturation.
  3. Persist the equivalent native terminal orchestration receipt only after those checks pass.
  4. Allow ordinary parent completion to seal and index the already-completed downstream artifacts.
  5. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from openai/codex

All issues in openai/codex

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.