Skip to content

Codex Security 0.9.1

Latest

Choose a tag to compare

@github-actions github-actions released this 10 Nov 01:09
· 101 commits to main since this release
Immutable release. Only release title and notes can be modified.
fe1089a

Highlights

  • The npm package includes Developer ID-signed native addons for Apple Silicon and Intel Macs. This lets Codex Desktop load the addon when preparing review items.
  • Deep Scan runs independent Standard reviews in batches. Workers can share leads and verify each other's evidence. The final report groups observations that have the same fix and retains the source locations from each review. Deep Scan guide
  • External scanner imports are enabled by default in the CLI, SDK, and plugin. You can preview supported reports, save findings locally, and publish supported findings to Cloud. The scanner guides list the accepted formats and which inputs are local-only. Scanner import guides
  • scans logs finds sessions faster in large compressed histories. The GitHub Action also includes scan scope limitations in its job summary, including when a scan returns zero findings.

Upgrade notes

  • Deep Scan budgets. --stop-after-no-new now counts consecutive completed Standard reviews that add no findings. If you depend on a particular run length, review this threshold alongside --max-discovery-runs and --max-time. Deep Scan settings
  • Scanner imports. Remove CODEX_SECURITY_ENABLE_EXTERNAL_IMPORTS from launch scripts. A legacy value of 0 no longer disables imports. Scanner import guides
  • Linux Compose deployments. The bundled seccomp profile restricts direct socket families and blocks ptrace, process_vm_readv, and process_vm_writev. If a custom tool needs one of these operations, test it against your deployment's profile before upgrading. Container guide
  • Source builds. Sparse SDK checkouts must include plugins/codex-security/mcp-app/src/deep-scan-settings.ts. Upgrade or roll back the bundled plugin as a unit. Source build change
  • Package verification. The source package checker rejects sparse tar entries. If an unsigned candidate was built with a sparse-aware archiver, recreate it with pnpm pack from sdk/typescript. Use the original published archive for release recovery. Package verification change
All changes

What's Changed

Breaking changes

Features

Fixes

  • fix(action): use the singular for one additional finding in the job summary by @WenJing95 in #2252
  • fix(dashboard): keep scrolled history in place at the history cap by @LittleYier in #2266
  • fix(knowledge-base): skip macOS metadata files in knowledge-base folders by @Shizoqua in #2270
  • fix(knowledge-base): keep non-breaking hyphens in DOCX text by @Shizoqua in #2272
  • fix(imports): honor bounded Retry-After on hosted scanner reads by @mldangelo-oai in #2086
  • fix(runtime): handle disconnected child stdin on macOS by @mldangelo-oai in #2275
  • fix(deep-scan): stop workers when the plan does not include Codex by @Shizoqua in #1843
  • fix(knowledge-base): skip LibreOffice lock files in knowledge-base folders by @Shizoqua in #2291
  • fix(sdk): pass severity record efforts through to the host by @Shizoqua in #1842
  • fix(knowledge-base): ignore DOCX tab stop definitions when extracting text by @Shizoqua in #2284
  • fix(deep-scan): recognize usage limits reported during compaction by @Shizoqua in #1844
  • fix(knowledge-base): omit DOCX drawing positions and sizes from extracted text by @Shizoqua in #2051
  • fix(targets): report a failed ignored-but-tracked file listing by @kevin9327 in #864
  • fix(targets): check resolved path types before scan registration by @sylvesterkaczmarek in #549
  • fix(cost): preserve worker activity when a session log is unreadable by @feiiiiii5 in #970
  • fix(activity): preserve shell-escaped whitespace in repository paths by @RakamakadoN in #2163
  • fix(runtime): protect HF_TOKEN and defer the Hugging Face scan preset by @NielsRogge in #277
  • fix(findings): align severity badges in finding tables by @mldangelo in #122
  • fix(hooks): use trusted Git when installing hooks by @GautamSharma99 in #92
  • fix(deep-scan): preserve distinct findings and bound duplicate comparisons by @mldangelo-oai in #2313
  • fix(bulk-scan): reject invalid saved attempt numbers by @mldangelo-oai in #2292
  • fix(cli): explain the cost limit in scan dry runs by @mldangelo-oai in #2295
  • fix(windows): inspect long credential-home descendant paths by @mldangelo-oai in #2294
  • fix(knowledge-base): preserve documents with AppleDouble-style names by @mldangelo-oai in #2312
  • fix(sdk): persist canceled scans with their measured cost by @mldangelo-oai in #2307
  • fix(imports): preserve Guardian repository identity during replay by @mldangelo-oai in #2308
  • fix(deep-scan): recover the latest public findings on interruption by @mldangelo-oai in #2310
  • fix(sdk): forward component scan lifecycle and deep progress by @mldangelo-oai in #2317
  • fix(deep-scan): align worker artifact validation with publication by @mldangelo-oai in #2315
  • fix(imports): bound remote error bodies and retain HTTP failure context by @mldangelo-oai in #2320
  • fix(deep-scan): checkpoint accepted reviews before honoring stop conditions by @mldangelo-oai in #2318
  • fix(dashboard): keep the viewport anchored during worker updates by @mldangelo-oai in #2298
  • fix(deep-scan): attribute comparison sessions to usage and logs by @mldangelo-oai in #2299
  • fix(deep-scan): require consistent evidence before merging reports by @mldangelo-oai in #2301
  • fix(deep-scan): preserve inherited MCP transports and native profile server names by @mldangelo-oai in #2303
  • fix(deep-scan): stop on known policy refusal messages by @SammyTourani in #1035
  • fix(cost): preserve healthy worker updates on rollout I/O errors by @dipeshbabu in #2178
  • fix(findings): guide cross-mode matching with saved evidence by @IvanCaceres in #832
  • fix(findings): preserve valid evidence during stopped scan recovery by @Haiduongcable in #171
  • fix(reports): explain omitted informational findings by @mldangelo in #155
  • fix(deep-scan): avoid worker dispatch for empty targets by @Muzzy5150 in #2054
  • fix(auth): honor native provider API-key settings for scans by @Alessio2405 in #139
  • fix(imports): preserve Guardian attribution and Snyk evidence on replay by @mldangelo-oai in #2316
  • fix(scans): preserve inference endpoints on rerun and resume by @mldangelo-oai in #2286
  • fix(deep-scan): reserve worker directories across coordinator handoffs by @mldangelo-oai in #2322
  • fix(history): preserve native turn failures observed before cancellation by @Hughhhhcoder in #735
  • fix(workbench): preserve archived deep scans and streamline progress reads by @mldangelo-oai in #2314
  • fix(deep-scan): show direct coordinator events in verbose CLI scans by @mldangelo-oai in #2323
  • fix(deep-scan): report completed audits and batch consolidation by @mldangelo-oai in #2305
  • fix(deep-scan): reject unpublishable worker report metadata by @mldangelo-oai in #2319
  • fix(imports): distinguish empty reports from failed scanners and exclusions by @mldangelo-oai in #2082
  • fix(deep-scan): preserve worker configuration, retry and failure diagnostics by @mldangelo-oai in #2309
  • fix(deep-scan): run report comparisons without interactive tools by @mldangelo-oai in #2304
  • fix(deep-scan): pin Deep Scan worker executable by @soyeon-oai in #764
  • fix(cli): guide recovery when a refresh token was already used by @mldangelo-oai in #2289
  • fix(cost): enforce scan budgets from verified usage by @mldangelo-oai in #465
  • fix(deep-scan): preserve differing threat models and use primary repair sites by @mldangelo-oai in #2306
  • fix(deep-scan): preserve independently fixable findings across batches and resumes by @mldangelo-oai in #2311
  • fix: read oversized findings from temporary files by @ianw-oai in #2342
  • fix(deep-scan): preserve disputed comparisons across context retries by @mldangelo-oai in #2321
  • fix(telemetry): preserve usage coverage and operation outcomes by @mldangelo-oai in #1841
  • fix(diagnostics): preserve saved-scan errors and recovery advice by @mldangelo-oai in #1266
  • fix(imports): preserve AWS code scanning evidence and retries by @mldangelo-oai in #2347
  • fix(deep-scan): reject directory trees emptied before dispatch by @dipeshbabu in #2181
  • fix(workbench): restore usage accounting on preview databases by @mldangelo-oai in #2352
  • fix(scans): count historical files for unreviewable local renames by @mldangelo-oai in #2101
  • fix(sdk): privately create Windows multiscan campaign output by @cjc0013 in #2344
  • fix(sdk): pass validation record efforts through to the host by @Shizoqua in #2355
  • fix(runtime): batch Windows credential ACL inspection by @dipeshbabu in #2349
  • fix(cli): use the singular for one finding in import prompts by @WenJing95 in #2345
  • fix(imports): verify scanner evidence and route workspace findings by @mldangelo-oai in #2353
  • fix(deep-scan): recheck empty targets before a resumed scan's first dispatch by @0xABCD01 in #2346
  • fix(cli): respect the dedicated sign-in in the authentication prompt by @dipeshbabu in #2348
  • fix(auth): preserve verified hard-linked credentials during logout by @erantianantha in #2354
  • fix(sdk): add GPT-6-Cyber cost estimates by @ianw-oai in #2359
  • fix(sdk): price OpenAI models by Bedrock region and inference route by @mldangelo-oai in #2362
  • fix(cli): preserve line breaks in oversized finding files by @mldangelo-oai in #2361
  • fix(sdk): use published Vertex AI prices for managed OpenAI models by @mldangelo-oai in #2363
  • fix: preserve repaired Deep Scan coverage on Windows by @mldangelo-oai in #2366
  • fix(plugin): normalize missing artifact errors on Windows by @mldangelo-oai in #2368
  • fix(build): retry Windows plugin bundle renames by @mldangelo-oai in #2370
  • fix: retry Windows artifact replacement while readers close by @mldangelo-oai in #2373
  • fix: allow bundled helpers to start on Windows UNC shares by @mldangelo-oai in #2376
  • fix: recognize OWNER RIGHTS on trusted Windows credential ancestors by @mldangelo-oai in #2379
  • fix: retry Windows native wrapper publication by @mldangelo-oai in #2381
  • fix(workbench): preserve large SQLite row IDs during migration by @mldangelo-oai in #2382
  • fix(windows): preserve unrelated credential deny rules on local volumes by @mldangelo-oai in #2388
  • fix(plugin): create private Windows scan output directories by @mldangelo-oai in #2390
  • fix(workbench): preserve Windows directory symlinks in snapshot copies by @mldangelo-oai in #2391
  • fix(workbench): recover long Windows root inventories with an exact Git marker by @mldangelo-oai in #2404
  • fix(windows): explain unreadable plugin installation receipts by @mldangelo-oai in #2403
  • fix(windows): open long state paths in JavaScript SQLite connections by @mldangelo-oai in #2380
  • fix(activity): preserve quoted POSIX filenames by @JayYarlagadda in #2418
  • fix: clear Deep Scan consolidation progress when a scan stops by @mldangelo-oai in #2433
  • fix: report when Deep Scan times out before completing a review by @mldangelo-oai in #2434
  • fix: avoid overlapping Deep Scan worker sandbox denies by @mldangelo-oai in #2416
  • fix(example): bound Invoice Desk JSON request bodies by @mldangelo-oai in #2423
  • fix(sdk): generate project schemas before bundling MCP by @mldangelo-oai in #2473
  • fix(imports): match equivalent Python package names in Dependabot alerts by @mldangelo-oai in #2453
  • fix(imports): validate Tenable repository URLs and CSV line numbers at capture by @mldangelo-oai in #2454
  • fix(evals): fetch calibration revisions as source refs by @mldangelo-oai in #2425
  • fix(action): show scan scope limitations in the job summary by @mldangelo-oai in #2435
  • fix: show deferred validation in cost-limited Deep Scan reports by @mldangelo-oai in #2436
  • fix(windows): pin directories during scan artifact operations by @mldangelo-oai in #2427
  • fix(patches): publish verified saved-finding changes by @mldangelo-oai in #2429
  • fix(cli): escape component names in terminal output by @mldangelo-oai in #2424
  • fix(cli): hide session log hints for mock scans by @mldangelo-oai in #2488
  • fix(logs): speed up compressed scan session discovery by @mldangelo-oai in #2489
  • fix(release): sign macOS addons for packaged review items by @mldangelo-oai in #2331
  • fix(findings): keep redirects within the configured service origin by @mldangelo-oai in #2426
  • fix: keep workbench lifecycle results scoped to the selected scan by @mldangelo-oai in #2421
  • fix(windows): verify scan output directory ownership and ancestry by @mldangelo-oai in #2432
  • fix(release): bind Darwin signing to builds from protected main by @mldangelo-oai in #2495
  • fix(windows): stage the bundled plugin for scan sandbox reads by @mldangelo-oai in #2494
  • fix(history): escape severity labels in scan summaries by @mldangelo in #121
  • fix(sdk): read millisecond retry delays in rate limit reconnects by @Shizoqua in #2441
  • fix(sdk): preserve leading backslashes in POSIX home-relative scan paths by @mldangelo-oai in #2497
  • fix(package): preserve LF in the POSIX MCP launcher on Windows by @mldangelo-oai in #2500
  • fix(sdk): defer home lookup for explicitly configured Linux runtimes by @mldangelo-oai in #2501
  • fix(sdk): identify the state directory in protected-root errors by @ilaigold in #1537
  • fix(logs): persist terminal scan boundaries by @peter-research in #1527
  • fix(scans): warn when repository HEAD changes during a scan by @Mr-Neutr0n in #360
  • fix(bulk-scan): recover expired locks with null owners by @GautamSharma99 in #98
  • fix(windows): retry publishing validated plugin ZIPs by @mldangelo-oai in #2498
  • fix(sdk): finish plugin builds while old Windows addons are loaded by @mldangelo-oai in #2502
  • fix(activity): preserve literal backslashes in POSIX file reads by @mldangelo-oai in #2503
  • fix(bulk-scan): preserve occupied and replaced checkouts by @mldangelo-oai in #2438

Documentation

Other changes

New Contributors

Full Changelog: npm-v0.8.3...npm-v0.9.1