Repository navigation
·
24 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Highlights
Codex Security 0.7.0 adds optional post-scan validation and improves Deep Scan recovery, usage reporting, and saved results. Review the upgrade notes for changes to external imports, hosted verification, and direct helper integrations.
- Post-scan validation. Add
--validateto run a supplemental validation pass after a scan and save a separatevalidation.mdreport. This pass makes additional model calls, leaves the saved findings and--fail-on-severitydecision unchanged, and cannot be combined with--max-cost, a configured cost cap,--dry-run, or--mock. See validation options. - Deep Scan recovery. Deadline recovery retains unfinished checkpoints and worker coverage, retries keep selected results stable, and the CLI waits for the coordinator to finish before returning. Scan finalization preserves findings and honors project budgets.
- Clearer usage and progress. Scan output distinguishes file inventory from review progress and reports usage timestamps and account allowance. Large usage receipts, policy files, checkpoints, failure diagnostics, and reviewed feedback are retained.
- Owner reports and saved results. Scan owner reports are finalized without an extra model call. Saved findings remain consistent through recovery, SARIF exports retain run warnings, and report rendering preserves literal source paths and text.
Upgrade notes
- External imports require opt-in. Set
CODEX_SECURITY_ENABLE_EXTERNAL_IMPORTS=1before usingpublish findings,findings imported,import github-advisories, or the corresponding SDK operations. Only the literal value1enables these features. SDK callers that supplydependencies.environmentmust include the flag there. Previously imported records are retained. See external import setup. - Hosted verification uses the CLI verdict contract. Remove imports of
FindingVerificationCheckand replace reads ofverification.checkswithverification.statusandverification.evidence. The original executor report, when supplied, remains available inexecution.finalResponse. Update custom executors to return the matching findingid, a status offixed,still_vulnerable, orinconclusive, and nonempty evidence. See the hosted remediation contract. - Direct inventory helper calls move to Node. Integrations that invoke the removed Python inventory and ranking scripts must use the bundled launcher and its
--helpercommands below. SDK and MCP callers use the new implementation automatically; the inventory and ranking artifact formats are unchanged. - Committed-diff scans require a clean, full checkout. Check out the requested head revision and commit or stash local changes before running a committed-diff scan, including with
--validate. A mismatched checkout or local changes now fail before scanning. See scan options.
Direct helper migration
Use launch_codex_security_mcp from the bundled plugin's scripts directory, or launch_codex_security_mcp.cmd on Windows, with the existing arguments after the helper name:
| Removed Python invocation | Launcher arguments |
|---|---|
generate_in_scope_files.py |
--helper generate-in-scope-files |
generate_rank_input.py make-repo-scope-input |
--helper make-repo-scope-input |
generate_rank_input.py make-diff-rank-input |
--helper make-diff-rank-input |
The removed rank_preview.py implementation is incorporated into these helpers. See diff helper examples and Windows quoting.
All changes
What's Changed
Breaking changes
- fix(remediation)!: use the CLI verdict contract for hosted verification by @mluck-openai in #1951
- refactor(targets)!: run inventory and ranking helpers in Node by @mldangelo-oai in #1432
- feat(imports)!: require opt-in for external import workflows by @mldangelo-oai in #1863
Features
- feat(scan): build owner reports without extra model calls by @jameshiester-oai in #1845
- feat(action): report usage and extend integration attribution by @mldangelo-oai in #1703
- feat(validation): validate findings after a scan by @mldangelo-oai in #1007
Fixes
- fix(container): verify Codex before caching installation by @mldangelo-oai in #1855
- fix(ci): isolate audits and retain exact file identities by @mldangelo-oai in #1859
- fix(container): update Node to security release 26.12.1 by @khai-oai in #1870
- fix(container): preserve large Git configuration environments by @mldangelo-oai in #1882
- fix: accept large security policy files by @mldangelo-oai in #1883
- fix: preserve complete scan failure diagnostics by @mldangelo-oai in #1884
- fix: preserve all reviewed scan feedback by @mldangelo-oai in #1885
- fix(import): preserve complete local vendor evidence by @mldangelo-oai in #1886
- fix(plugin): preserve MCP connections for large scan checkpoints by @mldangelo-oai in #1873
- fix(plugin): persist large scan usage at completion and failure by @mldangelo-oai in #1874
- fix(sdk): skip work cancelled before it starts by @mldangelo-oai in #1733
- fix: preserve scan directory identities and isolate Git fixtures by @mldangelo-oai in #1833
- fix(action): isolate artifact upload failures by @mldangelo-oai in #1719
- fix(deep-scan): recover publication after a lost reply by @mldangelo-oai in #938
- fix(deep-scan): recover checkpoints at discovery deadlines by @mldangelo-oai in #1594
- fix(plugin): keep saved-results source within import limit by @mldangelo-oai in #1891
- fix(skill): allow readable interactive verification results by @dipeshbabu in #1836
- fix(deps): upgrade Codex and preserve oversized MCP recovery by @dependabot[bot] in #1879
- fix(sarif): normalize location paths before deduplicating by @WenJing95 in #1867
- fix(cli): report verification failures in structured output by @dipeshbabu in #1835
- fix(deep-scan): retain unfinished deadline checkpoints by @mldangelo-oai in #1710
- fix(coverage): clarify requested scope and deferred work by @mldangelo-oai in #586
- fix(threat-model): preserve literal scope paths across renderers by @WenJing95 in #1850
- fix(contract): preserve Unicode colon source paths by @sylvesterkaczmarek in #542
- fix: simplify security skill instructions by @mldangelo-oai in #1676
- fix(deps): update the GitHub Action runtime to 0.6.0 by @dependabot[bot] in #1906
- fix(reports): persist run warnings in SARIF exports by @mldangelo-oai in #1893
- fix(reports): keep HTML entities literal in report text by @WenJing95 in #1851
- fix(artifacts): keep saved findings consistent through recovery by @mldangelo-oai in #1310
- fix(wiz): preserve unrated vulnerability severity on import by @WenJing95 in #1898
- fix(owners): match scan owner hints across email case variants by @WenJing95 in #1900
- fix(deep-scan): preserve worker coverage during recovery by @mldangelo-oai in #1064
- fix(deps): update bundled undici to 6.29.1 by @dependabot[bot] in #1915
- fix(action): validate generated files before rebuilding them by @mldangelo-oai in #1934
- fix(deep-scan): let reducers page inputs without code mode by @mldangelo-oai in #1910
- fix(cli): show scan usage timestamps and account allowance by @mldangelo-oai in #1911
- fix(cli): distinguish file inventory from review progress by @mldangelo-oai in #1960
- fix(reports): omit excerpts for unknown diff target kinds by @sylvesterkaczmarek in #515
- fix(deep-scan): finalize runs, preserve findings, and honor project budgets by @mldangelo-oai in #1912
- fix(deep-scan): keep selected results stable during retries by @mldangelo-oai in #915
- fix(index): include unscanned repository targets by @sylvesterkaczmarek in #547
- fix(contract): constrain deferred coverage paths by @sylvesterkaczmarek in #558
- fix(build): compile evals with separate Ajv installations by @mldangelo-oai in #2009
- fix(deep-scan): wait for the coordinator before ending CLI scans by @mldangelo-oai in #2007
- fix(knowledge): honor cancellation during PDF extraction by @sylvesterkaczmarek in #532
Documentation
- docs: simplify user guides and correct setup instructions by @mldangelo-oai in #1857
- docs(ci): trace failures to the original job attempt by @mldangelo-oai in #1922
- docs(evals): document the deterministic triage CI checks by @mldangelo-oai in #1932
- docs(release): require Marketplace publication for Action releases by @mldangelo-oai in #2008
Other changes
- chore(deps): update incur to 0.7.1 and react to 19.3.1 by @dependabot[bot] in #1862
- chore(deps): update OpenCode SDK to 1.19.2 by @dependabot[bot] in #1880
- refactor: render MCP threat models in TypeScript by @mldangelo-oai in #1839
- chore(deps): bump ruff from 0.17.0 to 0.17.1 in /plugins/codex-security by @dependabot[bot] in #1878
- chore(deps): bump @linear/sdk from 97.2.0 to 98.0.0 in /sdk/typescript by @dependabot[bot] in #1881
- chore(deps): bump ip-address from 10.7.2 to 10.7.4 in /plugins/codex-security/mcp-app by @dependabot[bot] in #1876
- ci: bump taiki-e/install-action from 2.87.28 to 2.87.29 by @dependabot[bot] in #1877
- refactor(imports): separate report readers from source providers by @mldangelo-oai in #1871
- chore(deps): bump @opencode-ai/sdk from 1.19.2 to 1.19.3 in /evals/triage-finding in the third-party group across 1 directory by @dependabot[bot] in #1919
- chore(deps): bump libc from 0.2.190 to 0.2.191 in /plugins/codex-security/native by @dependabot[bot] in #1918
- ci: verify merge parents after a pull request retarget by @mldangelo-oai in #1948
- ci: wait for static checks before validating container images by @mldangelo-oai in #1949
- ci: consolidate required check forwarding into one matrix by @mldangelo-oai in #1938
- chore(deps): refresh triage eval transport dependencies by @mldangelo-oai in #1935
- ci: preserve required checks after pull request edits by @mldangelo-oai in #1944
- ci: keep local action dependencies up to date by @mldangelo-oai in #1961
- ci: select the mutation test runtime in one setup step by @mldangelo-oai in #1985
- ci(release): request review when the updated PR head becomes visible by @mldangelo-oai in #1989
- ci: remove redundant required check jobs by @mldangelo-oai in #2001
- ci: skip independent jobs for edits to existing Python tests by @mldangelo-oai in #2002
- ci: skip SDK shards when PR static checks fail by @mldangelo-oai in #2006
- ci: share the exact npm setup for release workflows by @mldangelo-oai in #1998
- ci: omit GitHub event data from container validation provenance by @mldangelo-oai in #2010
New Contributors
Full Changelog: npm-v0.6.0...npm-v0.7.0