Releases: openai/codex-security
Release list
Codex Security 0.1.30
Highlights
- bump the third-party group across 2 directories with 2 updates (#969)
- bump ruff from 0.16.6 to 0.16.7 in /plugins/codex-security (#967)
- bump the codex group across 3 directories with 2 updates (#968)
- build the native runtime without the SDK (#965)
- set up Python for Windows package verification (#966)
- report full-output scan failures as errors (#971)
- add GitHub Actions workflow for Bedrock scans (#901)
- add Azure Pipelines Bedrock scan example (#906)
- run Windows proofs without symlink privileges (#988)
- pin the MCP formatter (#990)
- check formatting across the MCP app (#991)
- review original observation records through a host (#946)
Upgrade notes
Review compatibility and document any required migration steps before releasing.
What's Changed
Features
Fixes
- fix(plugin): build the native runtime without the SDK by @mldangelo-oai in #965
- fix(ci): set up Python for Windows package verification by @mldangelo-oai in #966
- fix(cli): report full-output scan failures as errors by @thegoodengineer in #971
- fix(plugin): run Windows proofs without symlink privileges by @mldangelo-oai in #988
- fix(plugin): pin the MCP formatter by @mldangelo-oai in #990
- fix(ci): check formatting across the MCP app by @mldangelo-oai in #991
Documentation
- docs(examples): add GitHub Actions workflow for Bedrock scans by @mldangelo-oai in #901
- docs(examples): add Azure Pipelines Bedrock scan example by @mldangelo-oai in #906
Other changes
- chore(deps): bump the third-party group across 2 directories with 2 updates by @dependabot[bot] in #969
- chore(deps-dev): bump ruff from 0.16.6 to 0.16.7 in /plugins/codex-security by @dependabot[bot] in #967
- chore(deps): bump the codex group across 3 directories with 2 updates by @dependabot[bot] in #968
New Contributors
- @thegoodengineer made their first contribution in #971
Full Changelog: npm-v0.1.29...npm-v0.1.30
Codex Security 0.1.29
Highlights
- stream large saved scan JSON output (#932)
- prefer complete saved rollout copies (#933)
- support custom patch validation prompts (#940)
- bump @opencode-ai/sdk from 1.18.29 to 1.18.30 in /plugins/codex-security/skills/triage-finding/evals in the third-party group across 1 directory (#936)
- bump @linear/sdk from 93.0.1 to 94.0.0 in /sdk/typescript (#937)
- seal drafts with empty artifact lists (#941)
- include Terraform files in scan inventories (#944)
- run README CLI commands with npx (#945)
- resolve Git metadata outside its config (#935)
- redirect findings service root to dashboard (#948)
- bound source preview reads (#947)
- align filter controls and dropdown carets (#949)
- match filter control borders (#957)
- make dashboard tables sortable (#958)
- bump @linear/sdk from 94.0.0 to 95.0.0 in /sdk/typescript (#955)
- tolerate transient setup failures and slow Windows runners (#953)
- reject line breaks in inventory paths. (#961)
- bump the third-party group across 3 directories with 7 updates (#954)
- keep model-authored runtime status out of finalized reports (#703)
- show progress while patching findings (#931)
- deduplicate string-form openQuestions in merge_saved_results (#951)
- emit structured JSON errors for failed scans (#709)
- preserve undecided findings after model refusals (#960)
Upgrade notes
Review compatibility and document any required migration steps before releasing.
What's Changed
Features
- feat(cli): support custom patch validation prompts by @kmbroai in #940
- feat(serve): make dashboard tables sortable by @mluck-openai in #958
Fixes
- fix(logs): stream large saved scan JSON output by @mldangelo-oai in #932
- fix(logs): prefer complete saved rollout copies by @mldangelo-oai in #933
- fix: seal drafts with empty artifact lists by @ianw-oai in #941
- fix(plugin): include Terraform files in scan inventories by @mluck-openai in #944
- fix(targets): resolve Git metadata outside its config by @mldangelo-oai in #935
- fix: redirect findings service root to dashboard by @mluck-openai in #948
- fix(plugin): bound source preview reads by @mluck-openai in #947
- fix(dashboard): align filter controls and dropdown carets by @mluck-openai in #949
- fix(dashboard): match filter control borders by @mluck-openai in #957
- fix(ci): tolerate transient setup failures and slow Windows runners by @mldangelo-oai in #953
- fix: reject line breaks in inventory paths. by @mluck-openai in #961
- fix(plugin): keep model-authored runtime status out of finalized reports by @russlan23 in #703
- fix(cli): show progress while patching findings by @ianw-oai in #931
- fix(workbench): deduplicate string-form openQuestions in merge_saved_results by @Ultron09 in #951
- fix(cli): emit structured JSON errors for failed scans by @Hughhhhcoder in #709
- fix(dedupe): preserve undecided findings after model refusals by @milan-oai in #960
Documentation
- docs: run README CLI commands with npx by @mluck-openai in #945
Other changes
- chore(deps): bump @opencode-ai/sdk from 1.18.29 to 1.18.30 in /plugins/codex-security/skills/triage-finding/evals in the third-party group across 1 directory by @dependabot[bot] in #936
- chore(deps): bump @linear/sdk from 93.0.1 to 94.0.0 in /sdk/typescript by @dependabot[bot] in #937
- chore(deps): bump @linear/sdk from 94.0.0 to 95.0.0 in /sdk/typescript by @dependabot[bot] in #955
- chore(deps): bump the third-party group across 3 directories with 7 updates by @dependabot[bot] in #954
New Contributors
- @mluck-openai made their first contribution in #944
- @russlan23 made their first contribution in #703
- @milan-oai made their first contribution in #960
Full Changelog: npm-v0.1.28...npm-v0.1.29
Codex Security 0.1.28
Highlights
- use versioned conventional commit titles (#879)
- share scan settings across the CLI and SDK (#742)
- keep parameterized JUnit names unique (#877)
- accept large saved post-scan prompts (#876)
- make cost display optional (#881)
- collect Desktop and worker session logs (#872)
- skip unavailable Daybreak access advisories (#878)
- align Codex 0.154.0 and dependency cooldowns (#755)
- bump docker/setup-buildx-action from 4.2.0 to 4.3.0 (#891)
- bump actions/attest-build-provenance from 4.1.1 to 4.2.2 (#886)
- update setuptools requirement from >=64.0 to >=84.0.0 in /plugins/codex-security (#889)
- bump SocketDev/action from 1.3.0 to 1.3.2 (#884)
- bump ruff from 0.16.1 to 0.16.6 in /plugins/codex-security (#887)
- bump typescript from 6.0.3 to 7.0.2 in /plugins/codex-security/mcp-app (#894)
- bump pytest from 9.0.3 to 9.1.1 in /plugins/codex-security (#885)
- bump typescript from 5.7.3 to 7.0.2 in /sdk/typescript (#898)
- simplify fast-uri dependency and update Ajv resolver (#895)
- bump @linear/sdk from 89.0.0 to 93.0.1 in /sdk/typescript (#896)
- bump actions/checkout from 6.0.2 to 7.0.1 (#890)
- bump actions/setup-node from 6.3.0 to 7.0.0 (#888)
- bump @types/node from 22.19.17 to 26.4.1 in /sdk/typescript (#897)
- bump @types/node from 25.9.1 to 26.4.1 in /plugins/codex-security/mcp-app (#893)
- bump the third-party group across 3 directories with 19 updates (#892)
- report patch failures and changed files (#874)
- persist scan artifacts through MCP (#862)
- advance scan progress when saving drafts (#882)
- simplify scan runtime bookkeeping (#903)
- upgrade json-schema-to-typescript to 16.0.0 (#914)
- upgrade eval OpenCode SDK to 1.18.29 (#911)
- upgrade Ink and use complete Escape input in TUI tests (#913)
- upgrade pnpm setup and align the package-manager pin (#910)
- upgrade actions/setup-python to 7.0.0 (#909)
- upgrade Stryker with compatible mutation tooling (#912)
- limit fix-finding to security vulnerabilities (#923)
- accept text knowledge-base files with any extension (#924)
- declare native release workflow permissions (#925)
- report context-aware estimate ranges (#926)
- update vulnerable image and archive dependencies (#927)
- update Inquirer prompts and Node/Bun types (#929)
Upgrade notes
Review compatibility and document any required migration steps before releasing.
What's Changed
Features
- feat: share scan settings across the CLI and SDK by @mldangelo-oai in #742
- feat(cli): make cost display optional by @ianw-oai in #881
- feat(plugin): persist scan artifacts through MCP by @soyeon-oai in #862
- feat(cli): accept text knowledge-base files with any extension by @kmbroai in #924
Fixes
- fix(release): use versioned conventional commit titles by @mldangelo-oai in #879
- fix(test): keep parameterized JUnit names unique by @mldangelo-oai in #877
- fix(scan): accept large saved post-scan prompts by @mldangelo-oai in #876
- fix(feedback): collect Desktop and worker session logs by @daneschneider-oai in #872
- fix(plugin): skip unavailable Daybreak access advisories by @soyeon-oai in #878
- fix(cli): report patch failures and changed files by @ianw-oai in #874
- fix: advance scan progress when saving drafts by @ianw-oai in #882
- fix(skills): limit fix-finding to security vulnerabilities by @tiffanycitra in #923
- fix(cost): report context-aware estimate ranges by @zcrab-oai in #926
- fix(evals): update vulnerable image and archive dependencies by @mldangelo-oai in #927
Other changes
- chore(deps): align Codex 0.154.0 and dependency cooldowns by @mldangelo-oai in #755
- ci: bump docker/setup-buildx-action from 4.2.0 to 4.3.0 by @dependabot[bot] in #891
- ci: bump actions/attest-build-provenance from 4.1.1 to 4.2.2 by @dependabot[bot] in #886
- chore(deps-dev): update setuptools requirement from >=64.0 to >=84.0.0 in /plugins/codex-security by @dependabot[bot] in #889
- ci: bump SocketDev/action from 1.3.0 to 1.3.2 by @dependabot[bot] in #884
- chore(deps-dev): bump ruff from 0.16.1 to 0.16.6 in /plugins/codex-security by @dependabot[bot] in #887
- chore(deps-dev): bump typescript from 6.0.3 to 7.0.2 in /plugins/codex-security/mcp-app by @dependabot[bot] in #894
- chore(deps-dev): bump pytest from 9.0.3 to 9.1.1 in /plugins/codex-security by @dependabot[bot] in #885
- chore(deps-dev): bump typescript from 5.7.3 to 7.0.2 in /sdk/typescript by @dependabot[bot] in #898
- chore(deps): simplify fast-uri dependency and update Ajv resolver by @dependabot[bot] in #895
- chore(deps): bump @linear/sdk from 89.0.0 to 93.0.1 in /sdk/typescript by @dependabot[bot] in #896
- ci: bump actions/checkout from 6.0.2 to 7.0.1 by @dependabot[bot] in #890
- ci: bump actions/setup-node from 6.3.0 to 7.0.0 by @dependabot[bot] in #888
- chore(deps-dev): bump @types/node from 22.19.17 to 26.4.1 in /sdk/typescript by @dependabot[bot] in #897
- chore(deps-dev): bump @types/node from 25.9.1 to 26.4.1 in /plugins/codex-security/mcp-app by @dependabot[bot] in #893
- chore(deps): bump the third-party group across 3 directories with 19 updates by @dependabot[bot] in #892
- refactor: simplify scan runtime bookkeeping by @mldangelo-oai in #903
- chore(deps-dev): upgrade json-schema-to-typescript to 16.0.0 by @dependabot[bot] in #914
- chore(deps): upgrade eval OpenCode SDK to 1.18.29 by @dependabot[bot] in #911
- chore(deps): upgrade Ink and use complete Escape input in TUI tests by @dependabot[bot] in #913
- ci: upgrade pnpm setup and align the package-manager pin by @dependabot[bot] in #910
- ci: upgrade actions/setup-python to 7.0.0 by @dependabot[bot] in #909
- chore(deps-dev): upgrade Stryker with compatible mutation tooling by @dependabot[bot] in #912
- ci: declare native release workflow permissions by @mldangelo-oai in #925
- chore(deps): update Inquirer prompts and Node/Bun types by @dependabot[bot] in https://github.com/openai/codex-s...
Codex Security 0.1.26
Highlights
- Classify finding severity with custom rubrics and supporting context through
the CLI and SDK. Saved assessments can be reused for Linear publication
without changing the original findings or sealed scan artifacts. See
severity classification. - Match repeated findings across scan history, preserving confirmed identities
and related-finding relationships. Automatic matching restores batching, and
confirmed-finding lookups are faster. - Open draft GitLab merge requests for verified patches with the existing
--create-proption, including self-hosted GitLab. See
patch publication. - Report component scan progress in headless runs and exclude replayed usage
events with identical timestamps from scan budgets. - Preserve analytics settings in finding workflows and allow 120 seconds for
the bundled plugin's MCP server to start. - Require an explicit request before invoking the security fix verification
skill during other work.
Upgrade notes
- GitLab patch publication requires an installed and authenticated
glabCLI.
For self-hosted GitLab, configure the host as described in the patch
publication documentation above. - Severity classification is opt-in. Without a rubric, it inherits the
finding's existing severity without a model call. - With
--max-cost, automatic history matching makes at most one extra model
call. If matching needs more context, the completed scan is retained and a
warning directs you to runscans match --allexplicitly.
The categorized list below contains the individual changes.
What's Changed
Features
- feat: classify finding severity with custom rubrics by @kmbroai in #791
- feat: match repeated findings across scan history by @mldangelo-oai in #575
- feat(cli): create GitLab merge requests for verified patches by @kmbroai in #814
- feat(plugin): add Daybreak access advisory by @soyeon-oai in #826
Fixes
- fix(plugin): allow 120 seconds for MCP startup by @daneschneider-oai in #786
- fix: restore batching for automatic finding matching by @ianw-oai in #782
- fix(release): retry transient GitHub reads by @mldangelo-oai in #800
- fix(deep-scan): remove coverage from aggregation by @daneschneider-oai in #767
- fix(cli): preserve analytics settings in finding workflows by @mldangelo-oai in #801
- fix: exclude same-millisecond replayed usage from scan budgets by @mldangelo-oai in #631
- fix(cli): report component scan progress headlessly by @Hughhhhcoder in #807
- fix: reduce deduplication pair review effort to high by @kmbroai in #813
- fix(release): allow the built-in workflow token by @mldangelo-oai in #809
- fix: require explicit requests for security fix verification by @kmbroai in #815
Other changes
- ci: maintain a rolling draft release PR by @mldangelo-oai in #753
- chore(deps): bump fast-uri from 3.1.5 to 3.1.6 in /sdk/typescript by @dependabot[bot] in #793
- chore(deps): bump fflate from 0.8.2 to 0.8.3 in /sdk/typescript by @dependabot[bot] in #804
- build: run the dev container on arm64 hosts by @h1994st in #787
- perf: speed up confirmed finding matching by @mldangelo-oai in #808
New Contributors
Full Changelog: npm-v0.1.25...npm-v0.1.26
Codex Security 0.1.25
Highlights
- Preserve confirmed finding identities across scans and comparisons, and show
related findings with their reasons while keeping distinct findings separate.
Large comparisons now use bounded batches without truncating finding text;
inputs that cannot fit leave matching explicitly incomplete. - Improve deduplication with separate screening and pair reviews, validated
pair assignments, and groups that respect explicitDISTINCTdecisions.
Invalid submissions receive one corrective turn; blocked reviews fail without
recording a verdict.DeduplicationReviewErrorexposes structured, sanitized
failure details. The SDK also addsdeduplicateScanDirectoryfor complete,
sealed scans outside local history. - Generate synthetic Standard scan results with
scan --mockor the SDK's
mock: true, without authentication or model calls. Mock results support
normal reports, exports, history, and reruns. See
mock scans. - Increase a running scan's total budget from the interactive dashboard when
usage reaches 80% of its limit, or use the SDK'sonBudgetApproaching
callback. The existing limit remains enforced until an increase is saved.
See scan cost limits. - Recognize existing Codex authentication in CLI and SDK login status. SDK
scans, comparisons, and deduplication reviews now honor native command-auth
providers, including renewable tokens. - Configure the findings service's full embeddings endpoint with
CODEX_SECURITY_EMBEDDINGS_URL. The new@openai/codex-security/server
exports support embedding credentials supplied by a callback before each
HTTP batch. See
embeddings and storage. - Include PowerShell module (
.psm1) and data (.psd1) files in scan
inventories, and recognize BOM-marked UTF-16 source files as text. - Preserve scoped scan and component-plan inventories after directory renames
that change only letter casing on case-insensitive filesystems. - Support long Codex executable paths on Windows, including nested Deep Scan
workers, and retry credential snapshots for anotherGet-Aclpath-not-found
race when a descendant disappears during inspection. - Honor case-insensitive Windows environment variable names during finding
deduplication, so configured API credentials and private configuration paths
are used consistently. - Stream tracked binary diffs when hashing repository snapshots, reducing
memory use while preserving the existing digest format. - Include complete OCI metadata in container image labels and multiarchitecture
annotations, with documentation pinned to the source commit and image
verification commands in the release workflow summary. See
container metadata and verification.
Upgrade notes
- Mock mode is opt-in and saves clearly marked synthetic findings in local
history; use a separateCODEX_SECURITY_STATE_DIRfor disposable test data.
It supports Standard scans only and does not audit the repository. - Interactive budget increases are unavailable in CI, JSON/JSONL, headless,
and verbose modes. Existing cost limits continue to apply in those modes. - The embeddings URL defaults to the existing OpenAI endpoint. A configured
endpoint receives finding inputs and the bearer credential and must support
the OpenAI embeddings format. Embeddings credentials remain separate from
Codex ChatGPT sign-in. - Local history applies an automatic database index migration. Completed scan
artifacts remain unchanged. - Source builds now use repository-pinned pnpm 11.19.0, including MCP app
dependencies, whose configuration requires a seven-day minimum release age.
From the repository root, run
pnpm --dir plugins/codex-security/mcp-app install --frozen-lockfile.
See
running without Docker. - Container publication remains separate from npm publication. Existing stable
container tags are not updated in place.
Build and CI updates also improve package verification, portable Python checks,
Windows fixtures, and test scheduling. Documentation clarifies portable
environment-variable guidance and safe examples.
The categorized list below contains the individual changes.
What's Changed
Features
- feat: allow configuring the findings embeddings URL by @kmbroai in #765
- feat(cli): allow interactive scan budget increases by @mldangelo-oai in #724
- feat(sdk): honor command auth and renewable embeddings credentials by @kmbroai in #769
- feat: preserve cross-scan finding relationships by @mldangelo-oai in #574
- feat(sdk): deduplicate sealed scan directories by @kmbroai in #779
- feat(cli): add mock scans with synthetic findings by @kmbroai in #783
- feat(typescript): align deduplication review stages by @kmbroai in #780
Fixes
- fix(sdk): retry Windows Get-Acl path-not-found races by @faizan-oai in #731
- fix(ci): preserve LF Python source checkouts by @faizan-oai in #726
- fix(container): publish metadata on multi-architecture images by @mldangelo-oai in #714
- fix(plugin): include PowerShell module and data files by @faizan-oai in #715
- fix(windows): preserve scoped inventories after case-only renames by @faizan-oai in #633
- fix(windows): honor dedupe environment settings by @faizan-oai in #696
- fix(windows): support long Codex executable paths by @faizan-oai in #704
- fix(plugin): recognize BOM-marked UTF-16 source files by @faizan-oai in #716
- fix(cli): use shell-neutral env-var removal guidance by @mangeshraut712 in #754
- fix(auth): make login status recognize existing Codex authentication by @Ultron09 in #738
- fix: limit finding comparison input size by @ianw-oai in #638
- fix: surface deduplication review failure reasons by @kmbroai in #766
- fix(plugin): stream tracked diffs while hashing by @Hughhhhcoder in #773
- fix(typescript): harden deduplication review validation by @kmbroai in #781
Documentation
- docs: clarify safe documentation examples by @zcrab-oai in #693
Other changes
- ci: run full checks for authored plugin Markdown by @mldangelo-oai in #729
- build(plugin): use pnpm for MCP app dependencies by @mldangelo-oai in #725
- ci: reuse one package and balance test jobs by @mldangelo-oai in #734
- ci: run static checks independently of package builds by @mldangelo-oai in #745
- build: align pnpm toolchain on 11.19 by @soyeon-oai in #760
- ci(plugin): align portable Ruff checks by @soyeon-oai in #770
New Contributors
- @mangeshraut712 made their first contribution in #754
- @Ultron09 made their first contribution in #738
- @zcrab-oai made their first contribution in #693
Full Changelog: npm-v0.1.24...npm-v0.1.25
Codex Security 0.1.24
Highlights
- Start the preview findings service directly with
codex-security serve [--port PORT], without Docker or an internal package
path. The command reuses the existing service, state, and shutdown behavior;
--portoverridesPORT, and port0selects a free port. See
running without Docker. - Observe durable Deep Scan progress from the SDK with the optional
onDeepProgress({ completed, active, maximum })callback. Updates report
changed completed and active independent-review counts without blocking the
scan. See
SDK scan options. - Make stopped-result handling explicit and stable. Read, list, and export
operations no longer publish late retained results as a side effect; the app
reports when recovery is needed and can recover validated results on request.
See
stopped result recovery. - Include changed PowerShell
.ps1files in diff-scan inventories and remove a
conflicting reporting rule so valid internal attack paths remain eligible for
review. Nested Deep Scan workers now also receive an explicitly configured
OpenAI provider credential through the plugin's existing environment boundary. - Improve Windows reliability by preserving case-insensitive
CODEX_HOME
entries and repository paths from ordinary PowerShell activity, and by
retrying credential snapshots when a descendant file disappears during ACL
inspection. Existing path-safety and permission failures remain fatal.
Upgrade notes
- The findings API and dashboard still have no built-in authentication.
codex-security servebinds to loopback by default; keep it local or place it
behind an authenticated TLS proxy before sharing access. Python is still
required, and nonempty imports still require an embeddings API credential. - Stopped-scan recovery is now explicit. App clients should check
resultsRecoveryNeededand request recovery when they want validated late
results republished. Canceled scans remain immutable and cannot use this
recovery path. onDeepProgress.maximumis the configured independent-review cap, not a
percentage denominator. The SDK polls the durable projection only when the
callback is supplied.
The categorized list below contains the individual changes.
What's Changed
Features
- feat(sdk): expose deep scan progress by @akosiakov-oai in #710
- feat(cli): add findings service serve command by @kmbroai in #719
Fixes
- fix(plugin): remove conflicting reporting rule by @ianw-oai in #705
- fix: include PowerShell files in diff inventory by @Hughhhhcoder in #707
- fix(plugin): forward OpenAI provider credentials by @soyeon-oai in #712
- fix(plugin): make stopped result recovery explicit by @soyeon-oai in #713
- fix(windows): preserve PowerShell environment and activity paths by @faizan-oai in #634
- fix(windows): retry credential snapshots when files disappear by @faizan-oai in #708
Other changes
- chore(deps-dev): bump postcss from 8.5.6 to 8.5.23 in /sdk/typescript by @dependabot[bot] in #695
- refactor(plugin): split workbench publication helpers by @soyeon-oai in #721
- ci(plugin): enforce source import compatibility by @soyeon-oai in #722
New Contributors
- @akosiakov-oai made their first contribution in #710
Full Changelog: npm-v0.1.23...npm-v0.1.24
Codex Security 0.1.23
Highlights
- Store complete findings and embeddings in the preview findings service, with
paginated listing, repository-scoped candidate retrieval, and durable duplicate
groups. Publish a completed scan with
publish scan --to custom --scan SCAN_ID --findings-url URL, or preview the
payload with--dry-run. See the
findings service
and custom publication. - Review potential duplicates from the CLI or SDK with
dedupe --scan SCAN_ID --findings-url URL. Reviews run on the calling host and save accepted groups
without replacing original findings. Searches default to the scan's repository;
--all-repositoriesexplicitly broadens the scope. Add--workflow-idto scan,
custom publication, and deduplication to reuse completed stages and checkpointed
reviews after interruption. See
deduplication
and workflow recovery. - Browse stored findings and duplicate groups in the service's read-only
/dashboard, with search, repository filters, sorting, and record details.
The dashboard shows service-owned data, not local scan or workflow history.
See the dashboard guide. - Run the scanner and findings service from the same container image in separate
containers, with a Compose runner for the scanner CLI and separate persistent
state. The image supports Linuxamd64andarm64. See
container releases and the workflow runner. - Preserve sealed scan artifacts when optional follow-up instructions fail,
propagate caller cancellation during cloud publication, respect the exact
POSIXPATHwhen resolving trusted executables, and retain nested attack-path
evidence strings in saved finding previews.
Upgrade notes
- Version 0.1.22 was not published to npm or GitHub Releases. This release includes
its changes and the release-runner fix. - The findings API and dashboard have no built-in authentication. Keep the
service on a trusted local endpoint or behind an authenticated TLS proxy;
Compose publishes only to host loopback. Nonempty imports send complete finding
JSON to the OpenAI embeddings API and require an API key. A ChatGPT login is not
an embedding credential. Duplicate review uses the calling host's Codex
credentials separately, and embedding and review calls can incur usage charges. - Stop the findings service and back up its entire state directory before
upgrading. Startup applies SQLite migrations automatically; rollback requires
the pre-upgrade backup and previous image. Existing findings are not
automatically embedded: import them with their repository ID before using
repository-scoped deduplication. Keep runner state separate from service state.
See backups and upgrades. - Container publication is separate from npm publication. Use a version or digest
only after the selected image release is available; source builds remain
supported. Follow the container setup
before the first registry release. - Source checkouts now generate the SDK's bundled plugin from
plugins/codex-security. Contributors should edit the canonical plugin source
and runpnpm run build:plugin; the published npm package still includes the
runtime payload. See plugin source ownership.
The categorized list below contains the individual changes.
What's Changed
Features
- feat(typescript): add findings service plumbing by @kmbroai in #653
- feat(typescript): persist findings and embeddings through the API by @kmbroai in #660
Fixes
- fix(sdk): prefer exact POSIX PATH for trusted executables by @Hughhhhcoder in #676
- fix(sdk): preserve caller cancellation in cloud publication by @Hughhhhcoder in #677
- fix(ci): guard generated plugin Markdown changes by @soyeon-oai in #683
- fix(sdk): preserve sealed artifacts after post-scan failure by @mldangelo-oai in #626
- fix(plugin): preserve nested attack-path evidence in previews by @soyeon-oai in #691
- fix(publish): explain findings before scan details by @ianw-oai in #689
- fix(ci): install ripgrep for npm release verification by @kmbroai in #698
Documentation
- docs: clarify plugin source ownership by @soyeon-oai in #685
Other changes
- refactor(plugin): generate the bundled runtime from canonical source by @soyeon-oai in #675
- refactor(plugin): colocate runtime payload contract by @soyeon-oai in #686
- chore: configure development environment by @kylos101 in #697
- refactor(container): share one image for scanner and findings service by @kmbroai in #701
New Contributors
Full Changelog: npm-v0.1.21...npm-v0.1.23
Codex Security 0.1.21
Highlights
- Request an advisory assessment of a completed patch with
patch --assess-patch-risk. Add--create-prto include its concise summary
in the draft pull request. The assessment is opt-in and does not approve or
merge changes. See
patching and risk assessment. - Import GitHub code scanning alerts through the CLI or SDK for validation
against a local checkout. Imports are read-only and preserve the upstream
alert context. See
GitHub alert imports. - Publish findings from CSV with
publish scan --to cloud --csv PATH, or
preview the upload without signing in or sending data with--dry-run.
See
Cloud publication. - Improve repeated-scan credential handling on Windows, sign-in recovery
messages, cleanup after interrupted publication, and refreshes of changed
bundled plugins.
Upgrade notes
- Finish operations using older versions before upgrading; credential-home
locks now follow the owning process's lifetime. See
authentication. - The bundled Codex runtime and SDK are now
0.149.1. Custom executables
selected withCODEX_CLI_PATHneed thread-source attribution support for
bothexecandapp-server(Codex0.149.1+). See
runtime configuration. - Existing Windows state with invalid ancestor permissions is not repaired
automatically. Keep the old reports and select a new private state
directory as described in
scan history and recovery.
The categorized list below contains the individual changes.
What's Changed
Features
- feat(publish): upload findings from CSV by @kmbroai in #645
- feat(typescript): attribute Codex Security workloads by @kmbroai in #644
- feat(typescript): import GitHub code scanning alerts by @kmbroai in #646
- feat(plugin): add patch-risk assessment by @mldangelo-oai in #654
- feat(cli): assess patch risk on request by @soyeon-oai in #664
Fixes
- fix(plugin): refresh changed bundled plugin contents by @mldangelo-oai in #527
- fix(release): harden release workflow validation by @mldangelo-oai in #622
- fix: terminate signal-owned publication process trees by @mldangelo-oai in #625
- fix: explain scan sign-in refresh failures by @mldangelo-oai in #571
- fix(runtime): use process-owned credential-home locks by @mldangelo-oai in #613
- fix(windows): stabilize credential inspection and test subprocesses by @mldangelo-oai in #662
- fix(windows): keep credential state reusable across scans by @faizan-oai in #635
- fix(package): preserve bundled MCP launcher permissions by @soyeon-oai in #678
Documentation
- docs(examples): add overview and clarify npm packaging by @kmbroai in #648
- docs(examples): add findings CSV validation guidance by @mldangelo-oai in #649
- docs(sdk): simplify the TypeScript README by @mldangelo-oai in #659
Other changes
- ci: use formatter-only checks for Markdown changes by @mldangelo-oai in #650
Full Changelog: npm-v0.1.20...npm-v0.1.21
Codex Security 0.1.20
Highlights
- Bug fixes and reliability improvements for cloud publication, including
access checks, recovery handling, and skipping findings that were already
recorded.
The categorized list below contains the individual changes.
What's Changed
Features
- feat(publish): check Linear access and skip recorded issues by @mldangelo-oai in #486
Fixes
- fix: reconcile Linear publication recovery identities by @mldangelo-oai in #624
- fix(publish): select scans and reuse credentials by @kmbroai in #640
Documentation
Full Changelog: npm-v0.1.19...npm-v0.1.20
Codex Security 0.1.19
Highlights
- Publish one or more completed scans to Codex Security Cloud with
publish scan --to cloud. Choose saved scans interactively or with
repeatable--scanoptions, or use repeatable--scan-diroptions for
external artifacts.--dry-runvalidates and previews findings without
uploading. Live uploads require a file-backed ChatGPT sign-in and an account
authorized for Cloud publication. See
Cloud publication setup and behavior. - Select a saved scan for Linear publication by scan ID, unique ID prefix, or
latest; omitting the selector opens the interactive picker. See
Linear publication.
The categorized list below contains the individual changes.
What's Changed
Features
- feat: upload to Codex Security Cloud by @wholley-oai in #612
Other changes
New Contributors
- @wholley-oai made their first contribution in #612
Full Changelog: npm-v0.1.18...npm-v0.1.19