Repository navigation
Highlights
Codex Security 0.4.0 adds hosted Standard scan execution and improves token
accounting, bulk-scan recovery, and report formatting. The minor version marks
the removal of obsolete ranking helpers; direct helper users should follow the
migration guidance below.
- Hosts can run Standard repository or path scans through the TypeScript
runHostedScan(input, { executor, signal, onEvent })API or the
codex-security scan --hostJSON-RPC adapter. Hosted execution is opt-in and
requires a host-provided executor, frozen checkout, and explicit model and
storage settings. Hosts own authorization, cancellation, and durable execution
state. See the hosted scan guide.
(#1559) - Scan token totals include recorded usage from earlier Deep Scan worker
attempts and context compaction without counting resumed history twice.
The SDK and compatible hosts can finish accounting for the final response
after report generation. Missing records remain marked incomplete or
unavailable rather than being presented as an exact total.
(#1657) - Bulk scans preserve successful results and original scan failures when
temporary-checkout cleanup fails. Cleanup errors are reported separately, and
reusing a completed scan can retry its recorded cleanup without another scan.
(#1433) - Reports render malformed evidence ranges as a valid single line or just the
path. Finding text beginning with tilde fences or parenthesized list markers
no longer changes the formatting of surrounding report sections. These fixes
preserve the underlying findings.
(#1656,
#1604) - The package includes Codex CLI/SDK 0.163.0 and restores the Codex Security
display name in plugin listings, prompts, and tool labels. The npm package
remains@openai/codex-security, with thecsandcodex-securitycommands.
(#1670,
#1681)
Upgrade notes
Scripts and custom workflows that invoke ranking helpers
The following plugin helper commands are removed:
make-repo-rank-inputandselect-deep-review-inputmake-rank-shards,validate-rank-shard, andmerge-rank-outputsmake-rank-pool-plan,validate-rank-worker, andvalidate-rank-pool
Remove the ranking, shard/pool scheduling, and ranked-selection stages from
custom workflows. Generate the scoped inventory and review every selected file:
- For explicit repository scopes, use
scripts/generate_rank_input.py make-repo-scope-input --repo <repo_root> --scopes-file <scopes_json> --out <output_jsonl>
with your Python interpreter and the script from the installed plugin.
The scopes file is a JSON array, such as["src", "tests"]; use["."]
for the whole repository instead of the old default--scope ..
Output rows contain onlypath, for example{"path":"src/example.ts"}.
Update your consumer to resolve each path against the repository root and
read that file directly. If it requires apath/areareview worklist,
convert every row to{"path":"src/example.ts","area":"repository"}.
This inventory contains noareaorpreviewfields and cannot be passed
directly tocopy-deep-review-input. - For Git diffs, retain
make-diff-rank-inputwith its existing revision or
local-patch arguments. Copy all candidate rows into the review worklist with
scripts/launch_codex_security_mcp --helper copy-deep-review-input --rank-input <input_jsonl> --out <review_jsonl>.
On Windows, use the.cmdlauncher. - Review the entire resulting worklist instead of selecting a ranked subset.
bind-repo-scopesand the retained diff helpers keep their existing
arguments and worklist formats.
See the scoped review reference
for commands, scope inputs, and Windows invocation details.
(#1607)
Normal CLI and SDK scans do not need this helper migration. Hosted execution is
opt-in; existing local scans continue to use their current execution path.
What's Changed
Breaking changes
- refactor(plugin)!: retire obsolete ranking helpers by @mldangelo-oai in #1607
- feat(publish)!: share issue receipts with finding tracking by @mldangelo-oai in #1426
Features
- feat(scans): support hosted Standard scan execution by @mluck-openai in #1559
Fixes
- fix(ci): reuse npm downloads across lockfile updates by @mldangelo-oai in #1659
- fix: correct underreported token totals in Codex Security scans by @mldangelo-oai in #1657
- fix(reports): normalize invalid code evidence line ranges by @WenJing95 in #1656
- fix(reports): prefix tilde fences and parenthesized list markers by @WenJing95 in #1604
- fix(bulk-scan): preserve outcomes when checkout cleanup fails by @bharathvemula in #1433
- fix(plugin): restore Codex Security display name by @mldangelo-oai in #1681
- fix(sdk): propagate component scan environment to scan clients by @LittleYier in #1550
Other changes
- chore(deps): update @linear/sdk to 97.1.0 by @dependabot[bot] in #1653
- refactor(runtime): share executable and process helpers by @mldangelo-oai in #1581
- chore(deps): update Codex CLI and SDK to 0.163.0 by @dependabot[bot] in #1670
- chore(deps): update triage evaluations to promptfoo 0.124.1 by @mldangelo-oai in #1666
- ci: bump taiki-e/install-action from 2.87.26 to 2.87.27 by @dependabot[bot] in #1669
- refactor(mcp): remove obsolete JSON Schema loading path by @mldangelo-oai in #1663
- refactor(targets): share DiffTarget state validation by @mldangelo-oai in #1667
- refactor(sdk): import Zod directly for schema consumers by @mldangelo-oai in #1664
- refactor(evals): remove Promptfoo patch and generated calibration YAML by @mldangelo-oai in #1678
- refactor(mcp): derive Deep Scan contracts from existing schemas by @mldangelo-oai in #1584
- refactor(schemas): generate canonical artifact schemas from Zod by @mldangelo-oai in #1578
New Contributors
- @bharathvemula made their first contribution in #1433
Full Changelog: npm-v0.3.0...npm-v0.4.0