Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
cf46b52
chore(release): 0.6.1
github-actions[bot] Oct 22, 2026
9190b7d
chore(release): 0.6.1
github-actions[bot] Oct 22, 2026
e5e3785
chore(release): 0.6.1
github-actions[bot] Oct 22, 2026
39a98a9
chore(release): 0.6.1
github-actions[bot] Oct 22, 2026
a7111d3
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
a1b8d0d
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
71ff34f
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
e89f2fe
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
931af0d
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
b030aa4
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
ea99f85
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
bf8a2ed
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
2c334dc
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
99a20de
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
9f11d25
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
0274781
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
883ff98
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
fadb8e0
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
4c64dbe
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
151d30e
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
f019bf9
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
3d7150e
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
1790341
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
0727c37
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
b0f7fae
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
76963d8
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
2360e03
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
ad33b7d
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
197478d
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
da8e27a
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
c3c21b2
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
2e3b6b0
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
3d99935
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
6d3c529
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
0e64c6f
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
3f71e00
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
8bfe148
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
df9298c
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
a70d35d
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
5f8cfe2
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
1d5ff79
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
77ab92f
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
fbd5572
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
6f620c5
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
27dec9c
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
1ccbf77
chore(release): 0.6.1
github-actions[bot] Oct 23, 2026
333d92e
chore(release): 0.6.1
github-actions[bot] Oct 24, 2026
bb3e72f
chore(release): 0.6.1
github-actions[bot] Oct 24, 2026
2de6db3
chore(release): 0.6.1
github-actions[bot] Oct 24, 2026
12538bf
chore(release): 0.6.1
github-actions[bot] Oct 24, 2026
9486ed8
chore(release): 0.6.1
github-actions[bot] Oct 24, 2026
06e9f94
chore(release): 0.6.1
github-actions[bot] Oct 24, 2026
b9af126
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
5a22789
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
32d5da0
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
20f1a6a
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
76d90ee
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
c489bca
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
50ba2b6
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
26b1952
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
80b8d70
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
498e94e
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
0212052
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
f84e2ee
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
47acf30
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
dcba693
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
cc95196
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
25beae2
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
025add3
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
b3af553
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
7e1b222
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
a20f02b
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
4c48c14
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
ca2b2f0
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
31195c0
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
5424838
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
a0675c8
chore(release): 0.6.1
github-actions[bot] Oct 25, 2026
a8b0fb6
chore(release): 0.7.0
github-actions[bot] Oct 25, 2026
e79b079
chore(release): 0.7.0
github-actions[bot] Oct 25, 2026
b903e43
chore(release): 0.7.0
github-actions[bot] Oct 25, 2026
e8f8383
chore(release): 0.7.0
github-actions[bot] Oct 25, 2026
5232d03
chore(release): 0.7.0
github-actions[bot] Oct 25, 2026
c1cc177
chore(release): 0.7.0
github-actions[bot] Oct 25, 2026
88ef71c
chore(release): 0.7.0
github-actions[bot] Oct 25, 2026
980344d
chore(release): 0.7.0
github-actions[bot] Oct 25, 2026
6b5b2b5
chore(release): 0.7.0
github-actions[bot] Oct 25, 2026
29ee0c3
chore(release): 0.7.0
github-actions[bot] Oct 25, 2026
db5405e
chore(release): 0.7.0
github-actions[bot] Oct 25, 2026
7e38bb1
chore(release): 0.7.0
github-actions[bot] Oct 25, 2026
fb76da0
chore(release): 0.7.0
github-actions[bot] Oct 25, 2026
21970a0
chore(release): 0.7.0
github-actions[bot] Oct 25, 2026
c1f4208
chore(release): 0.7.0
github-actions[bot] Oct 26, 2026
de58228
chore(release): 0.7.0
github-actions[bot] Oct 26, 2026
9f8f8d7
docs(release): review 0.7.0 highlights and migration guidance
mluck-openai Oct 26, 2026
c672563
chore(release): 0.7.0
github-actions[bot] Oct 26, 2026
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
46 changes: 20 additions & 26 deletions .github/release-notes.md
Original file line number Diff line number Diff line change
@@ -1,46 +1,40 @@
<!-- release-version: 0.6.0 -->
<!-- release-version: 0.7.0 -->

<!-- release-section: highlights:start -->

## Highlights

Codex Security 0.6.0 adds vendor report imports, optional owner suggestions, and hosted remediation commands. Severity classification now uses a built-in rubric and three independent reviews by default; review the model-access and cost changes below before upgrading.
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.

- **Import vendor findings.** Import supported Wiz, Snyk Open Source, Semgrep Code, and Endor Labs reports with `publish findings --to local`, or publish them with `--to cloud`. Read local evidence with `findings imported`. Local imports require no Cloud login or model call and remain separate from assessed scan findings. See the [Wiz](https://github.com/openai/codex-security/blob/npm-v0.6.0/sdk/typescript/docs/cli.md#import-wiz-findings), [Snyk](https://github.com/openai/codex-security/blob/npm-v0.6.0/docs/scanner-imports/snyk.md), [Semgrep](https://github.com/openai/codex-security/blob/npm-v0.6.0/docs/scanner-imports/semgrep.md), and [Endor](https://github.com/openai/codex-security/blob/npm-v0.6.0/docs/scanner-imports/endor.md) format guides.
- **Configurable severity reviews.** `classify-severity` uses a bundled rubric when no custom rubric is supplied. `--runs N` selects 1–10 independent reviews, with three by default. The most common severity wins, with the highest severity breaking ties. ([#1765](https://github.com/openai/codex-security/pull/1765))
- **Optional owner suggestions.** `scan --owner-suggestions` writes a separate owner-suggestion report after supported committed Git scans. Suggestions preserve the completed scan and do not assign users. Owner enrichment is skipped when a scan cost limit is set. ([#1760](https://github.com/openai/codex-security/pull/1760))
- **Hosted patching and source-only verification.** `patch --host` and `verify-fix --host` expose the hosted remediation protocol through the CLI. Ordinary patch and verification commands accept `--verification-mode static` to assess source evidence; omitting it preserves standard verification. Static mode sets the assessment scope and does not enforce a command-execution boundary. See the [hosted remediation guide](https://github.com/openai/codex-security/blob/npm-v0.6.0/sdk/typescript/docs/hosted-remediation.md). ([#1854](https://github.com/openai/codex-security/pull/1854))
- **Policy previews without Python.** Policy diffs now run in Node while preserving diff formatting, cancellation, and source freshness checks. ([#1837](https://github.com/openai/codex-security/pull/1837))

<details>
<summary>Other improvements</summary>

- Patch project-trust overrides are serialized correctly for Codex. ([#1861](https://github.com/openai/codex-security/pull/1861))
- Update Hono and the Linear SDK dependencies. ([#1831](https://github.com/openai/codex-security/pull/1831), [#1852](https://github.com/openai/codex-security/pull/1852))
- Release verification runs test shards in parallel and reports publication progress on the release PR. ([#1798](https://github.com/openai/codex-security/pull/1798))

</details>
- **Post-scan validation.** Add `--validate` to run a supplemental validation pass after a scan and save a separate `validation.md` report. This pass makes additional model calls, leaves the saved findings and `--fail-on-severity` decision unchanged, and cannot be combined with `--max-cost`, a configured cost cap, `--dry-run`, or `--mock`. See [validation options](https://github.com/openai/codex-security/blob/npm-v0.7.0/sdk/typescript/docs/cli.md#follow-up-finding-validation).
- **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.

<!-- release-section: highlights:end -->

<!-- release-section: upgrades:start -->

## Upgrade notes

### Severity classification requires model access
- **External imports require opt-in.** Set `CODEX_SECURITY_ENABLE_EXTERNAL_IMPORTS=1` before using `publish findings`, `findings imported`, `import github-advisories`, or the corresponding SDK operations. Only the literal value `1` enables these features. SDK callers that supply `dependencies.environment` must include the flag there. Previously imported records are retained. See [external import setup](https://github.com/openai/codex-security/blob/npm-v0.7.0/sdk/typescript/docs/cli.md#import-vendor-findings-locally).
- **Hosted verification uses the CLI verdict contract.** Remove imports of `FindingVerificationCheck` and replace reads of `verification.checks` with `verification.status` and `verification.evidence`. The original executor report, when supplied, remains available in `execution.finalResponse`. Update custom executors to return the matching finding `id`, a status of `fixed`, `still_vulnerable`, or `inconclusive`, and nonempty evidence. See [the hosted remediation contract](https://github.com/openai/codex-security/blob/npm-v0.7.0/sdk/typescript/docs/hosted-remediation.md).
- **Direct inventory helper calls move to Node.** Integrations that invoke the removed Python inventory and ranking scripts must use the bundled launcher and its `--helper` commands 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](https://github.com/openai/codex-security/blob/npm-v0.7.0/sdk/typescript/docs/cli.md#scan-options-and-output).

Classification without `--rubric` previously inherited the scanner's severity without model work. It now requires Codex authentication and model access, using three model calls per uncached finding by default. Set `--runs 1` (SDK: `classificationRuns: 1`) for a single review. All requested reviews must succeed; failures do not fall back to the scanner's severity or save a partial vote.

Older classification checkpoints without a recorded review count, and former inherited assessments without a rubric hash, are reclassified on the next classification request. Changing the review count or rubric also invalidates matching checkpoints. Existing results remain readable, and publication does not silently classify findings. Use `--reprocess` when changing only the model or reasoning effort. See the [classification guide](https://github.com/openai/codex-security/blob/npm-v0.6.0/sdk/typescript/docs/cli.md#classify-finding-severity).

### Policy preview interpreter selection is deprecated
<details>
<summary>Direct helper migration</summary>

`securityPolicyDiff(draft, python, signal)` retains its call shape, but interpreter strings and paths returned by resolver callbacks no longer select or validate an executable. `previewPolicy()` no longer resolves Python, and `pythonPath` and `PYTHON` do not affect previews. Update integrations that relied on an invalid interpreter failing or a custom executable producing the diff. Explicit resolver callbacks still run for changed drafts and propagate their errors. Omit the second argument in new code, or pass `undefined` when supplying a cancellation signal. Python-dependent generation and other operations are unchanged.
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:

### Import identity and earlier upgrades
| 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` |

Keep a stable source key and acquisition format across vendor imports. Switching formats can create separate records or replace richer evidence with less detail; omitted findings remain stored. Review each provider's format guide before changing inputs.
The removed `rank_preview.py` implementation is incorporated into these helpers. See [diff helper examples and Windows quoting](https://github.com/openai/codex-security/blob/npm-v0.7.0/plugins/codex-security/skills/security-scan/references/scan-artifacts-and-ledger.md).

If upgrading from before 0.5.1, also review the [0.5.1 upgrade notes](https://github.com/openai/codex-security/releases/tag/npm-v0.5.1) and their guidance for earlier versions. Use `openai/codex-security@action-v0.6.0` for the matching GitHub Action, or pin the distribution commit in its companion release after publication.
</details>

<!-- release-section: upgrades:end -->
8 changes: 4 additions & 4 deletions .github/release-pr-state.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
{
"baseVersion": "0.5.1",
"baseCommit": "b2fa51576d81cda5e311e7eb89131ffb13daad8b",
"baseVersion": "0.6.0",
"baseCommit": "13dcc6fec00aaf4c23a6fa7e375ccc1726b22836",
"sections": {
"highlights": {
"generatedHash": "9c17957f706150b5ebfb2effc42159606c808ed05bc44f80320bd0fb1518c5fc",
"generatedHash": "633ebab121430c0d4a78f5efcaf5c6b52f03a09b7ad0da880c6db84cc147c7bd",
"humanOwned": true
},
"upgrades": {
"generatedHash": "cdbfb62364372edf0e5202f7db41239aa0301d69187e022b9e9a9c9b0fcab298",
"generatedHash": "f6f5552982b8aa1de02ec69316fa9bf4c68fa2d858087a31e5e8f21311cec57a",
"humanOwned": true
}
}
Expand Down
2 changes: 1 addition & 1 deletion examples/github-actions/codex-security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
security-events: write
actions: read
env:
CODEX_SECURITY_VERSION: "0.6.0"
CODEX_SECURITY_VERSION: "0.7.0"
BEDROCK_MODEL_ID: ${{ vars.BEDROCK_MODEL_ID }}
# Report-only by default. Set to "high" to fail on high/critical findings.
FAIL_ON_SEVERITY: ""
Expand Down
4 changes: 2 additions & 2 deletions github-action/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion github-action/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "codex-security-action",
"version": "0.6.0",
"version": "0.7.0",
"private": true,
"type": "module",
"description": "Run Codex Security in GitHub Actions with explicit scope, budgets, and scan health reporting",
Expand Down
2 changes: 1 addition & 1 deletion sdk/typescript/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@openai/codex-security",
"version": "0.6.0",
"version": "0.7.0",
"description": "TypeScript SDK and CLI for Codex Security",
"license": "Apache-2.0",
"author": "OpenAI",
Expand Down
Loading