Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
530 commits
Select commit Hold shift + click to select a range
d7b7316
fix(mcp): preserve questions and choice descriptions in input request…
mldangelo-oai Oct 7, 2026
c828742
fix(workbench): preserve sealed CSV artifacts during export (#1047)
mldangelo-oai Oct 7, 2026
ff95e67
fix(sdk): report worker sessions without model progress markers (#962)
mldangelo-oai Oct 7, 2026
3b5557e
test(workbench): share saved-workspace setup across scan tests (#1370)
mldangelo-oai Oct 7, 2026
ce013bc
refactor(sdk): simplify scan usage and cost accounting (#1377)
mldangelo-oai Oct 7, 2026
2b75967
refactor(sdk): share finding-group logic across scan comparisons (#1364)
mldangelo-oai Oct 7, 2026
081f74d
refactor(ci): share repeated workflow steps with YAML aliases (#1361)
mldangelo-oai Oct 7, 2026
13fa310
refactor(packaging): simplify inventory checks and build fixtures (#1…
mldangelo-oai Oct 7, 2026
4c231da
refactor(workbench): simplify command preparation and transactions (#…
mldangelo-oai Oct 7, 2026
4208ebe
refactor(release): share published version history and remove duplica…
mldangelo-oai Oct 7, 2026
79b19ce
chore(release): align Action version with CLI 0.2.0 (#1339)
mldangelo-oai Oct 7, 2026
9e39bea
test(sdk): use named options in publication fixtures (#1393)
mldangelo-oai Oct 7, 2026
ba28297
test(workbench): reuse triage helper in frozen export test (#1372)
mldangelo-oai Oct 7, 2026
0e57e12
fix: preserve per-scan runtime and worker settings (#1281)
mldangelo-oai Oct 7, 2026
d8ccbb4
fix(cli): unify structured scan failure responses (#1080)
mldangelo-oai Oct 7, 2026
3848edc
test(workbench): share scan budget cost fixture (#1382)
mldangelo-oai Oct 7, 2026
5c46a39
test(sdk): share temporary directory and subprocess fixtures (#1388)
mldangelo-oai Oct 7, 2026
09ee36f
feat: support custom scan names (#1180)
ianw-oai Oct 7, 2026
985a6dc
refactor(mcp): simplify artifact schemas and saved-finding handling (…
mldangelo-oai Oct 7, 2026
e0bbdad
refactor(reports): share finding formatting and finalization helpers …
mldangelo-oai Oct 7, 2026
f2c2124
refactor(sdk): simplify scan event callback dispatch (#1354)
mldangelo-oai Oct 7, 2026
96583fc
refactor(ranking): reuse validated inputs and simplify preview sizing…
mldangelo-oai Oct 7, 2026
3a1a51e
test(workbench): share historical database setup (#1383)
mldangelo-oai Oct 7, 2026
3e96bca
refactor(release): share note generation and test setup (#1373)
mldangelo-oai Oct 7, 2026
edff3cd
test(sdk): share setup for scan and follow-up scenarios (#1375)
mldangelo-oai Oct 7, 2026
8c67135
test(sdk): share setup for scan budgets and cleanup (#1376)
mldangelo-oai Oct 7, 2026
e50d616
test(sdk): share setup for login and credential scenarios (#1380)
mldangelo-oai Oct 7, 2026
3e76b89
test(sdk): share client setup for validation and prompts (#1378)
mldangelo-oai Oct 7, 2026
07429cf
test(sdk): reuse API and resumed-scan fixtures (#1394)
mldangelo-oai Oct 7, 2026
08de987
chore(deps): update Codex CLI and SDK to 0.162.0-alpha.18 (#1420)
dependabot[bot] Oct 7, 2026
a1b84ec
refactor(mcp): simplify internal Deep Scan state and finding caches (…
mldangelo-oai Oct 7, 2026
2fe3ccd
refactor(publish): simplify evidence grouping and parsing (#1368)
mldangelo-oai Oct 7, 2026
50dc2d3
refactor(ci): reuse repeated workflow steps (#1385)
mldangelo-oai Oct 7, 2026
5eca33d
refactor(sdk): simplify CLI completion and display state (#1384)
mldangelo-oai Oct 7, 2026
0837899
refactor(sdk): reuse client construction and scan data (#1374)
mldangelo-oai Oct 7, 2026
168552e
refactor(workbench): simplify report formatting and scan completion (…
mldangelo-oai Oct 7, 2026
2379b18
refactor(tooling): remove duplicate benchmark checks and line collect…
mldangelo-oai Oct 7, 2026
f5b725f
fix(config): inherit null overrides and preserve literal paths (#1290)
mldangelo-oai Oct 7, 2026
2ec54a0
fix: resolve path aliases consistently across scan workflows (#1267)
mldangelo-oai Oct 7, 2026
7ac5a8b
fix(plugin): include text files in scans regardless of extension (#1347)
mldangelo-oai Oct 7, 2026
eb73cc0
refactor(plugin): replace language parsers with source previews (#1391)
mldangelo-oai Oct 7, 2026
89d56ae
fix(plugin): include build and test files in scan inputs (#1414)
mldangelo-oai Oct 7, 2026
ff45018
fix(plugin): load saved feedback and align scan completion instructio…
mldangelo-oai Oct 7, 2026
c0c4fec
refactor(plugin): share workbench migration SQL (#1333)
mldangelo-oai Oct 7, 2026
a44eda3
refactor(plugin): initialize workbench databases with Node SQLite (#1…
mldangelo-oai Oct 7, 2026
77ea91e
refactor(plugin)!: move findings and dashboard helpers to Node (#1408)
mldangelo-oai Oct 7, 2026
8efb424
fix(ci): avoid saving interrupted pnpm caches (#1419)
mldangelo-oai Oct 7, 2026
acb8eac
fix: preserve Deep Scan worker context limits (#1417)
mldangelo-oai Oct 7, 2026
2528ca6
fix(cli): show file scope until scan review progress begins (#464)
mldangelo-oai Oct 8, 2026
e884fc1
fix: preserve per-scan endpoints in Deep Scan workers (#1326)
mldangelo-oai Oct 8, 2026
6c8ab22
fix(evals): hide expected answers and test the checkout's skill (#1054)
mldangelo-oai Oct 8, 2026
587a357
fix(scans): preserve saved results when scans stop or restart (#1269)
mldangelo-oai Oct 8, 2026
5e02aba
test(workbench): share setup for completing scans and exporting findi…
mldangelo-oai Oct 8, 2026
7eba900
fix(build): keep usable bundles after failures and preserve release l…
mldangelo-oai Oct 8, 2026
e9aceb4
fix(reports): preserve distinct fixes from merged findings (#905)
mldangelo-oai Oct 8, 2026
0c4bf04
fix(plugin): read source excerpts from the scanned target (#1063)
mldangelo-oai Oct 8, 2026
7347d18
fix(sdk): exclude inherited parent events from saved worker logs (#1060)
mldangelo-oai Oct 8, 2026
8eb6b9d
fix(plugin): report worker capacity from merged Codex settings (#1055)
mldangelo-oai Oct 8, 2026
f82ae5b
fix: simplify action cleanup and stabilize provider isolation tests (…
mldangelo-oai Oct 8, 2026
69e9bfa
fix(auth): preserve logout across credential imports (#759)
mldangelo-oai Oct 8, 2026
75438fc
fix: preserve severity assessments for each scan (#1058)
mldangelo-oai Oct 8, 2026
1163374
fix(cli): show active reviews and result consolidation during Deep Sc…
mldangelo-oai Oct 8, 2026
00a3f1c
fix(sdk): keep bulk-scan knowledge and settings stable on resume (#1059)
mldangelo-oai Oct 8, 2026
9ffa99e
test(workbench): derive migration expectations from shared history (#…
mldangelo-oai Oct 8, 2026
4c1dcbb
fix(auth): reject plaintext remote login URLs (#1331)
anirudhnshandilya Oct 8, 2026
8cf4070
fix: keep unusable DOCX numeric references as literal text (#123)
mldangelo Oct 8, 2026
ffc3bca
fix(deep-scan): finish cancellation when preflight ignores terminatio…
mldangelo-oai Oct 8, 2026
2ca151b
test(sdk): cover reused scan settings and worker credentials (#1062)
mldangelo-oai Oct 8, 2026
d30d075
docs(examples): install MCP dependencies before plugin build (#1285)
mldangelo-oai Oct 8, 2026
0f2ba8f
fix(plugin): preserve closed stdin when launching helpers (#1329)
mldangelo-oai Oct 8, 2026
bfdc0e9
fix(publish): retain recovery guidance on canceled uploads (#680)
mldangelo-oai Oct 8, 2026
2323bfd
fix(release): retry container releases without replacing a newer late…
mldangelo-oai Oct 8, 2026
cdd1fd1
fix(sdk): read compressed Codex session logs (#1428)
LittleYier Oct 8, 2026
2094e1d
feat: deduplicate saved scans with local SQLite (#1338)
kmbroai Oct 8, 2026
931ddca
fix(docx): preserve manual line breaks (#186)
dipeshbabu Oct 8, 2026
7e396e7
fix(reports): preserve saved diff snapshot provenance (#1286)
mldangelo-oai Oct 8, 2026
5ebe48d
fix(auth): cancel inherited pipes after the login process exits (#1068)
dipeshbabu Oct 8, 2026
698ecae
Merge current main into saved comparison decisions
mldangelo-oai Oct 8, 2026
0690297
test: distinguish boolean cases in quality reports
mldangelo-oai Oct 8, 2026
f6b2c6a
chore(deps): bump napi-derive from 3.6.9 to 3.6.10 in /plugins/codex-…
dependabot[bot] Oct 8, 2026
b29189d
chore(deps): update Docker-in-Docker and Node devcontainer features (…
dependabot[bot] Oct 8, 2026
142cf6e
chore(deps): bump napi-build from 2.5.0 to 2.6.0 in /plugins/codex-se…
dependabot[bot] Oct 8, 2026
e2b9e1b
Merge current main into saved comparison decisions
mldangelo-oai Oct 8, 2026
63d5b56
chore(deps): bump the codex group across 3 directories with 2 updates…
dependabot[bot] Oct 8, 2026
0ebcc2b
Merge current main into saved comparison decisions
mldangelo-oai Oct 8, 2026
d4e3c70
chore(deps): bump the third-party group across 2 directories with 3 u…
dependabot[bot] Oct 8, 2026
a7e5db0
Merge current main into saved comparison decisions
mldangelo-oai Oct 8, 2026
981c928
chore(deps): restore devcontainer pins during cooldown (#1515)
mldangelo-oai Oct 8, 2026
a5967b8
Merge current main into saved comparison decisions
mldangelo-oai Oct 8, 2026
8ff5b39
feat(action): support optional Cyber access program selection (#1516)
dans-oai Oct 8, 2026
c9455f0
fix(cli): identify local plugin and knowledge-base failures (#463)
mldangelo-oai Oct 8, 2026
9cfdc33
fix(deep-scan): resume scans when old worker prompts are missing (#900)
mldangelo-oai Oct 8, 2026
22ebd75
Merge current main into saved comparison decisions
mldangelo-oai Oct 8, 2026
4eb8863
fix(artifacts): protect saved history when archiving scan output (#1271)
mldangelo-oai Oct 8, 2026
4912824
fix(findings): preserve scan history and publication outcomes (#1270)
mldangelo-oai Oct 8, 2026
826c556
fix(deep-scan): match user context before reusing discovery (#1048)
mldangelo-oai Oct 8, 2026
3547e76
fix(scan): report incomplete results as errors and deduplicate log wa…
mldangelo-oai Oct 8, 2026
fb41bcb
fix(telemetry): preserve request attribution across CLI, SDK, and Dee…
mldangelo-oai Oct 8, 2026
89f0c5d
Merge current main into saved comparison decisions
mldangelo-oai Oct 8, 2026
30fd5cb
test: distinguish cost retry cases in reports
mldangelo-oai Oct 8, 2026
b47df21
chore(ona): manage the findings service lifecycle (#700)
kylos101 Oct 8, 2026
94c7510
Merge current main into saved comparison decisions
mldangelo-oai Oct 8, 2026
e111362
fix(contract): reject control characters in remote targets during fin…
Mihir-Rabari Oct 8, 2026
442ecd3
fix(plugin): validate canonical code-evidence and deferred paths (#1522)
peter-research Oct 8, 2026
c423dae
fix(sdk): reject special filesystem path targets before scanning (#1524)
peter-research Oct 8, 2026
2465285
Merge current main into saved comparison decisions
mldangelo-oai Oct 8, 2026
73abb73
fix(sdk): honor cancellation during PDF knowledge-base extraction (#1…
peter-research Oct 8, 2026
128695d
fix(sdk): ignore status markers inside Markdown fences (#1525)
peter-research Oct 8, 2026
5f5a14c
Merge current main into saved comparison decisions
mldangelo-oai Oct 8, 2026
f5da341
chore: simplify pull request labels (#1518)
mldangelo-oai Oct 8, 2026
f95a3f7
docs: explain pull request labels in agent instructions (#1521)
mldangelo-oai Oct 8, 2026
c5278d0
test: share submodule gitlink setup (#1471)
mldangelo-oai Oct 8, 2026
ec8e799
test: share remediation patch fixtures (#1470)
mldangelo-oai Oct 8, 2026
26d9da6
test: reuse finding workflow and JSON fixtures (#1453)
mldangelo-oai Oct 8, 2026
7d9452a
test: reuse policy Git fixtures (#1469)
mldangelo-oai Oct 8, 2026
a157e23
test: reuse CLI scan dependency setup (#1460)
mldangelo-oai Oct 8, 2026
46585a3
test: reuse rank command fixtures (#1463)
mldangelo-oai Oct 8, 2026
f939d19
test(runtime): reuse the isolated Python probe helper (#1472)
mldangelo-oai Oct 8, 2026
f2821cf
test: reuse Python scan and workbench fixtures (#1491)
mldangelo-oai Oct 8, 2026
1aecf2e
test: reuse release workflow fixtures (#1449)
mldangelo-oai Oct 8, 2026
47f9f85
test: reuse SDK API runtime and repository fixtures (#1446)
mldangelo-oai Oct 8, 2026
6574ca1
Merge current main into saved comparison decisions
mldangelo-oai Oct 8, 2026
d27e0e8
refactor: filter model schema composition while parsing (#1461)
mldangelo-oai Oct 8, 2026
983bb2a
refactor: compare Deep Scan progress fields directly (#1458)
mldangelo-oai Oct 8, 2026
cc228d9
refactor(sdk): load scan contract documents in one sequence (#1481)
mldangelo-oai Oct 8, 2026
5f4b5ca
refactor: reuse native equality for contract lists (#1457)
mldangelo-oai Oct 8, 2026
aadd2de
refactor: simplify artifact export metadata transport (#1462)
mldangelo-oai Oct 8, 2026
2e1736d
refactor: simplify scan result construction (#1445)
mldangelo-oai Oct 8, 2026
4dc8e99
refactor: reuse artifact JSON schema definitions (#1443)
mldangelo-oai Oct 8, 2026
a31898d
fix(artifacts): reject standalone collections inside the target (#1430)
mldangelo-oai Oct 8, 2026
6a8231e
fix(findings): preserve structured findings API errors (#1081)
mldangelo-oai Oct 8, 2026
474a8c2
Merge current main into saved comparison decisions
mldangelo-oai Oct 8, 2026
3270582
refactor: reuse object validation primitives (#1452)
mldangelo-oai Oct 8, 2026
39a7ffc
refactor: share MCP response and annotation construction (#1444)
mldangelo-oai Oct 8, 2026
bfac450
chore(deps): use Codex 0.162.0 stable (#1533)
dependabot[bot] Oct 8, 2026
3690459
chore(deps): update incur and KaTeX (#1534)
dependabot[bot] Oct 8, 2026
2d51ca6
refactor(mcp): reuse SDK validation and protocol test helpers (#1498)
mldangelo-oai Oct 8, 2026
50ddf9c
chore(deps): bump napi from 3.13.0 to 3.14.0 in /plugins/codex-securi…
dependabot[bot] Oct 8, 2026
6be9e20
fix(history): wrap text by terminal display width (#1513)
WenJing95 Oct 8, 2026
cd4086b
refactor: group deduplication pairs by existing roots (#1468)
mldangelo-oai Oct 8, 2026
ae1d9b2
refactor(cli): simplify export and progress delegation (#1478)
mldangelo-oai Oct 8, 2026
2a1275b
chore(deps-dev): bump ruff from 0.16.9 to 0.16.10 in /plugins/codex-s…
dependabot[bot] Oct 8, 2026
e4f2f3d
refactor: share workbench migration repair instructions (#1496)
mldangelo-oai Oct 8, 2026
ee8e69f
Merge current main into saved comparison decisions
mldangelo-oai Oct 8, 2026
7f0d909
test: share scan fixtures and stabilize recovery ordering (#1467)
mldangelo-oai Oct 9, 2026
5ee9471
Merge current main into saved comparison decisions
mldangelo-oai Oct 9, 2026
a7dfc3c
ci(tests): use Bun native sharding (#1479)
mldangelo-oai Oct 9, 2026
0d78ef9
refactor: reuse scan contract readers and projection helpers (#1480)
mldangelo-oai Oct 9, 2026
af2befa
refactor(cli): derive value options from command schemas (#1477)
mldangelo-oai Oct 9, 2026
6ce7f47
feat(onboarding): add cs alias and clarify onboarding (#1415)
mldangelo-oai Oct 9, 2026
5731ce1
Merge current main into saved comparison decisions
mldangelo-oai Oct 9, 2026
0d7fefa
test: reuse SDK runtime and repository fixtures (#1448)
mldangelo-oai Oct 9, 2026
2c4718a
Merge current main into saved comparison decisions
mldangelo-oai Oct 9, 2026
894c253
ci(deps): enforce devcontainer cooldown before merge (#1517)
mldangelo-oai Oct 9, 2026
99424a1
Merge current main into saved comparison decisions
mldangelo-oai Oct 9, 2026
093856c
test: reuse workbench scan fixtures (#1450)
mldangelo-oai Oct 9, 2026
e6c70d3
Merge current main into saved comparison decisions
mldangelo-oai Oct 9, 2026
c7b028c
test: reuse MCP descriptor and worker fixtures (#1447)
mldangelo-oai Oct 9, 2026
f40d259
Merge current main into saved comparison decisions
mldangelo-oai Oct 9, 2026
3fcdcc6
test(release): share label and proposal fixtures (#1473)
mldangelo-oai Oct 9, 2026
364203e
Merge main to update release test fixtures
mldangelo-oai Oct 9, 2026
f9ef782
fix(workbench): preserve argument text and typed state failures (#1500)
mldangelo-oai Oct 9, 2026
58593e5
Merge main to update workbench process handling
mldangelo-oai Oct 9, 2026
fed9fa0
refactor(mcp): share tool registration and annotations (#1485)
mldangelo-oai Oct 9, 2026
d521e1a
test(sdk): reuse client setup and usage fixtures (#1475)
mldangelo-oai Oct 9, 2026
92b9046
refactor: consolidate workbench command handling (#1494)
mldangelo-oai Oct 9, 2026
8dc3614
refactor: reuse workbench finding projection metadata (#1442)
mldangelo-oai Oct 9, 2026
22e3751
test(sdk): reuse existing subprocess fixtures (#1476)
mldangelo-oai Oct 9, 2026
f51059f
refactor(mcp): use native promise and array primitives (#1488)
mldangelo-oai Oct 9, 2026
7f7f307
refactor: simplify validated artifact reconciliation (#1454)
mldangelo-oai Oct 9, 2026
8419ed5
test(mcp): reuse scan fixture configuration (#1486)
mldangelo-oai Oct 9, 2026
a052bde
refactor(mcp): remove unused artifact declarations (#1483)
mldangelo-oai Oct 9, 2026
59bb435
refactor: share workflow GitHub API calls (#1466)
mldangelo-oai Oct 9, 2026
07c3783
refactor: simplify session cost tracking (#1456)
mldangelo-oai Oct 9, 2026
0e3460c
refactor: simplify publication reconciliation (#1455)
mldangelo-oai Oct 9, 2026
7a1f596
refactor: share final scan schema definitions (#1493)
mldangelo-oai Oct 9, 2026
7d9f216
refactor: share Deep Scan retry archiving (#1465)
mldangelo-oai Oct 9, 2026
bc666ed
ci: reuse repeated workflow configuration (#1464)
mldangelo-oai Oct 9, 2026
98f80ba
refactor: remove redundant dashboard copies (#1451)
mldangelo-oai Oct 9, 2026
d5b3ed6
refactor: consolidate Deep Scan preflight compatibility coverage (#1482)
mldangelo-oai Oct 9, 2026
95b7f65
refactor(mcp): use workbench for parent draft publication (#1487)
mldangelo-oai Oct 9, 2026
97d27e4
refactor: simplify workbench history and usage readers (#1495)
mldangelo-oai Oct 9, 2026
78ce74d
Merge main to update scan and workbench validation
mldangelo-oai Oct 9, 2026
32ceaff
refactor(release): consolidate GitHub release publication (#1474)
mldangelo-oai Oct 9, 2026
d4a4eaf
refactor: simplify scan configuration processing (#1459)
mldangelo-oai Oct 9, 2026
c8c64b5
fix(findings): adapt comparison query to JSON ID parameters
mldangelo-oai Oct 9, 2026
dbbd804
Merge commit 'd4a4eaf315371c85088e1c9b0b05e5d206ef518a' into mdangelo…
mldangelo-oai Oct 9, 2026
ab2df5b
fix(runtime): preserve worker settings and executable selection (#1501)
mldangelo-oai Oct 9, 2026
8c70d4c
Merge commit 'ab2df5b318173510983d117f9fae7cc6953af665' into mdangelo…
mldangelo-oai Oct 9, 2026
bdb9a77
fix(discovery): normalize candidates against selected sources (#1502)
mldangelo-oai Oct 9, 2026
8ea9763
fix(deep-scan): preserve coordinator ownership and source novelty (#1…
mldangelo-oai Oct 9, 2026
db2d05b
Merge commit '8ea9763a6e446399969d88f1bff233fe8c2a6dc1' into mdangelo…
mldangelo-oai Oct 9, 2026
04bec6a
fix(diagnostics): retain underlying artifact and process failures (#1…
mldangelo-oai Oct 9, 2026
c0c7f12
fix(workbench): preserve finding queries and timestamp order (#1505)
mldangelo-oai Oct 9, 2026
45b3efb
fix(scans): preserve archived workflows and saved scan replay (#1506)
mldangelo-oai Oct 9, 2026
642a55a
Merge commit '45b3efb04d70d033097705ec443f365f02a61c1e' into mdangelo…
mldangelo-oai Oct 9, 2026
8c4931d
fix(publication): pass payloads in memory and preserve failures (#1507)
mldangelo-oai Oct 9, 2026
6f64587
fix(processes): preserve cancellation and child diagnostics (#1508)
mldangelo-oai Oct 9, 2026
ec4b5b5
fix(inventory): preserve filename bytes and Unicode owner evidence (#…
mldangelo-oai Oct 9, 2026
4a19f9a
Merge main
mldangelo-oai Oct 9, 2026
b8f53ad
refactor(mcp): validate artifact requests at tool boundaries (#1489)
mldangelo-oai Oct 9, 2026
eaed287
feat(release): align Action publication with CLI releases (#1418)
mldangelo-oai Oct 9, 2026
9efca34
fix(evals): keep expected answers hidden and preserve each case’s set…
mldangelo-oai Oct 9, 2026
c26ae34
refactor(findings)!: remove the local findings serve command (#1340)
kmbroai Oct 9, 2026
c9afae8
Merge main
mldangelo-oai Oct 9, 2026
553714f
chore(deps): update Node types and string-width (#1545)
dependabot[bot] Oct 9, 2026
5a15097
Merge main
mldangelo-oai Oct 9, 2026
2ded063
fix(artifacts): preserve import and export representations (#1510)
mldangelo-oai Oct 9, 2026
767b819
Merge main
mldangelo-oai Oct 9, 2026
a894386
fix(dashboard): frame terminal input and skip unused activity (#1511)
mldangelo-oai Oct 9, 2026
6f4c628
fix(evals): parse complete triage JSON before fenced content (#1512)
mldangelo-oai Oct 9, 2026
e4b34f7
Merge main
mldangelo-oai Oct 9, 2026
1d54bd7
refactor!: remove legacy message and plugin compatibility (#1548)
mldangelo-oai Oct 9, 2026
fc4cc3b
Merge main
mldangelo-oai Oct 9, 2026
d549f60
refactor(mcp): share candidate ledger updates (#1490)
mldangelo-oai Oct 9, 2026
b6cd53d
Merge main
mldangelo-oai Oct 9, 2026
944fb86
refactor(runtime): share Codex response handling across scan modes (#…
mldangelo-oai Oct 10, 2026
bbb64bd
fix(targets): preserve scoped Git inventories and directory snapshots…
mldangelo-oai Oct 10, 2026
a2917ca
fix(cli): keep scan identity visible in results and failures (#1554)
mldangelo-oai Oct 10, 2026
2b68f47
docs(scans): explain connected repository review workflows (#1553)
mldangelo-oai Oct 10, 2026
bf9a5bc
refactor(severity)!: move severity persistence to Node (#1543)
mldangelo-oai Oct 10, 2026
c2dfedb
refactor(scan): run API-key and Bedrock Deep Scans directly (#1555)
mldangelo-oai Oct 10, 2026
9613a6a
fix(scans)!: preserve original knowledge context when resuming (#1556)
mldangelo-oai Oct 10, 2026
8276955
Merge main
mldangelo-oai Oct 10, 2026
e99c948
chore(deps): update Codex CLI and SDK to 0.162.1
dependabot[bot] Oct 10, 2026
d2348b4
chore(deps): update native libc to 0.2.190
dependabot[bot] Oct 10, 2026
5b3b259
chore(deps): update MCP SDK to 1.32.0
dependabot[bot] Oct 10, 2026
7135912
ci: bump taiki-e/install-action from 2.87.22 to 2.87.23 (#1562)
dependabot[bot] Oct 10, 2026
14c706b
fix(onboarding): improve policy onboarding for global installs (#1416)
mldangelo-oai Oct 11, 2026
5bd62db
fix(sdk): restore GPT-6 Sol cost estimates and budgets (#1585)
mldangelo-oai Oct 11, 2026
8341432
ci: bump taiki-e/install-action from 2.87.23 to 2.87.24
dependabot[bot] Oct 11, 2026
e196912
chore(deps): update PDF.js to 6.4.299
dependabot[bot] Oct 11, 2026
47188ae
chore(deps): update Ink to 8.0.0
dependabot[bot] Oct 11, 2026
55cc887
test(ci): record reproducible Windows shard seeds (#1600)
mldangelo-oai Oct 11, 2026
8969684
docs(docker): clarify persistent state and credential paths (#1586)
mldangelo-oai Oct 11, 2026
825e7fd
test: simplify shared fixtures and message helpers (#1582)
mldangelo-oai Oct 11, 2026
5a7788b
fix(scan): enforce Deep Scan scope across execution adapters (#1557)
mldangelo-oai Oct 11, 2026
702fc2d
test: cover MCP fixture loading from spaced checkout paths (#1061)
mldangelo-oai Oct 11, 2026
d0c92d5
docs(providers): clarify API-key model and access-program selection (…
mldangelo-oai Oct 11, 2026
cfc8eec
test(evals): choose GitHub REST when no connector is requested (#1051)
mldangelo-oai Oct 11, 2026
91a8271
fix(findings): retain requested repository paths in output (#1045)
mldangelo-oai Oct 11, 2026
3ede902
fix(dashboard): keep dashboards responsive and show observed usage (#…
mldangelo-oai Oct 11, 2026
c45fd59
refactor(artifacts): share scan result validation across scan modes (…
mldangelo-oai Oct 11, 2026
1c409ce
refactor(native): preserve process paths and environment values (#1429)
mldangelo-oai Oct 11, 2026
a255734
fix(validation): mark source review complete before custom validation…
mldangelo-oai Oct 11, 2026
e1adad1
fix(targets): preserve Git checkout formats and raw POSIX inventory p…
mldangelo-oai Oct 11, 2026
5efc3d9
fix(package): inspect unpacked files for internal references (#618)
mldangelo-oai Oct 11, 2026
fa0b403
Merge main into saved comparison precedence
mldangelo-oai Oct 12, 2026
da8c245
fix(findings): preserve historical related decisions through aliases
mldangelo-oai Oct 12, 2026
853a30e
fix(workbench): validate archive output after writer admission
mldangelo-oai Oct 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
12 changes: 6 additions & 6 deletions .devcontainer/devcontainer-lock.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
{
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:4": {
"version": "4.1.0",
"resolved": "ghcr.io/devcontainers/features/docker-in-docker@sha256:7d979c4a36d595eb4ab79909caa3f396daf3b6152dcf38e8328ea4eff42206c7",
"integrity": "sha256:7d979c4a36d595eb4ab79909caa3f396daf3b6152dcf38e8328ea4eff42206c7"
"version": "4.1.2",
"resolved": "ghcr.io/devcontainers/features/docker-in-docker@sha256:ad3d6d36d95ee7f880f61f98862257f3e70253d3faef09f86af42fb87ee60429",
"integrity": "sha256:ad3d6d36d95ee7f880f61f98862257f3e70253d3faef09f86af42fb87ee60429"
},
"ghcr.io/devcontainers/features/github-cli:1": {
"version": "1.1.2",
"resolved": "ghcr.io/devcontainers/features/github-cli@sha256:7c409bf6316ffd85f04fd92fba85a744282639e603417dd4796409866bdb6805",
"integrity": "sha256:7c409bf6316ffd85f04fd92fba85a744282639e603417dd4796409866bdb6805"
"version": "1.1.3",
"resolved": "ghcr.io/devcontainers/features/github-cli@sha256:bd7ab48a832228f633239277552c30b353867fef2e5b037e064b4e64f0b843f2",
"integrity": "sha256:bd7ab48a832228f633239277552c30b353867fef2e5b037e064b4e64f0b843f2"
},
"ghcr.io/devcontainers/features/node:2": {
"version": "2.1.0",
Expand Down
6 changes: 0 additions & 6 deletions .env.example

This file was deleted.

3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,6 @@
*.tsx text eol=lf
*.yaml text eol=lf
*.yml text eol=lf

# Bundled dependencies contain intentional whitespace in strings and comments.
github-action/dist/*.cjs linguist-generated=true -whitespace
11 changes: 11 additions & 0 deletions .github/actionlint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
paths:
.github/workflows/{node-github-release,node-release-cut,node-release}.yml:
ignore:
# actionlint 1.7.12 predates GitHub's queue: max support. Keep release queuing.
# https://docs.github.com/en/actions/how-tos/write-workflows/choose-when-workflows-run/control-workflow-concurrency
- '^unexpected key "queue" for "concurrency" section\.'
.github/workflows/invoice-desk-scan.yml:
ignore:
# actionlint 1.7.12 predates GitHub's job-level cache permissions.
# https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idcache-mode
- '^unexpected key "cache-mode" for "job" section\.'
27 changes: 27 additions & 0 deletions .github/actions/check-action-candidate/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Check Action against release candidate
description: Exercise the Action adapter against the packed CLI without model calls.
runs:
using: composite
steps:
- name: Set up Action Node.js runtime
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: "24"
package-manager-cache: false
- name: Set up the Ubuntu sandbox
shell: bash
run: |
sudo apt-get update
sudo apt-get install --yes bubblewrap apparmor-profiles
sudo apparmor_parser -r /usr/share/apparmor/extra-profiles/bwrap-userns-restrict
- name: Test Action compatibility with the packed CLI
shell: bash
run: |
set -euo pipefail
npm --prefix github-action ci --ignore-scripts --no-audit --no-fund
consumer="$(mktemp -d)"
trap 'rm -rf "$consumer"' EXIT
printf '%s\n' '{"name":"action-candidate-check","private":true,"type":"module"}' > "$consumer/package.json"
npm install --prefix "$consumer" --ignore-scripts --include=optional --no-audit --no-fund ./dist/*.tgz
version="$(node -p 'require("./sdk/typescript/package.json").version')"
npm --prefix github-action run test:cli -- "$consumer/node_modules/@openai/codex-security" "$version"
36 changes: 36 additions & 0 deletions .github/actions/setup-tools/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Set up TypeScript tools
description: Install the pinned package manager and Node.js runtime for repository tools.
inputs:
setup-node:
description: Install the pinned Node.js runtime; false keeps an earlier setup step.
default: "true"
cache-dependency-path:
description: Lockfiles used for the pnpm store cache.
default: "sdk/typescript/pnpm-lock.yaml"
architecture:
description: Node.js architecture; empty selects the runner architecture.
compile:
description: Compile TypeScript tools after setup.
runs:
using: composite
steps:
- name: Set up pnpm
uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0
with:
package_json_file: package.json
# setup-node saves its cache only after a successful job.
- name: Set up Node.js and pnpm cache
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: ${{ inputs.setup-node == 'true' && '22.13.0' || '' }}
architecture: ${{ inputs.architecture }}
cache: pnpm
cache-dependency-path: ${{ inputs.cache-dependency-path }}
- name: Compile TypeScript tools
if: inputs.compile == 'true'
shell: ${{ runner.os == 'Windows' && 'pwsh' || 'bash' }}
working-directory: .
run: |
pnpm --dir sdk/typescript install --frozen-lockfile
${{ runner.os == 'Windows' && 'if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }' || '' }}
pnpm --dir sdk/typescript run build:ci
42 changes: 41 additions & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
version: 2
updates:
- package-ecosystem: npm
labels: [dependencies]
directories:
- /github-action
- /sdk/typescript
- /plugins/codex-security/mcp-app
- /plugins/codex-security/skills/triage-finding/evals
- /evals/triage-finding
schedule:
interval: cron
cronjob: "0 9 * * *"
Expand Down Expand Up @@ -38,6 +40,7 @@ updates:
include: scope

- package-ecosystem: pip
labels: [dependencies]
directory: /plugins/codex-security
schedule:
interval: cron
Expand All @@ -51,6 +54,7 @@ updates:
include: scope

- package-ecosystem: github-actions
labels: [dependencies]
directory: /
schedule:
interval: cron
Expand All @@ -61,3 +65,39 @@ updates:
- "openai/*"
commit-message:
prefix: ci

- package-ecosystem: docker
labels: [dependencies]
directory: /
schedule:
interval: cron
cronjob: "0 9 * * *"
cooldown:
default-days: 7
commit-message:
prefix: chore
include: scope

- package-ecosystem: cargo
labels: [dependencies]
directory: /plugins/codex-security/native
schedule:
interval: cron
cronjob: "0 9 * * *"
cooldown:
default-days: 7
commit-message:
prefix: chore
include: scope

- package-ecosystem: devcontainers
labels: [dependencies]
directory: /
schedule:
interval: cron
cronjob: "0 9 * * *"
cooldown:
default-days: 7
commit-message:
prefix: chore
include: scope
95 changes: 64 additions & 31 deletions .github/release-notes.md
Original file line number Diff line number Diff line change
@@ -1,41 +1,74 @@
<!-- release-version: 0.1.27 -->
<!-- release-version: 0.2.0 -->

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

## Highlights

- port source and test report checks to TypeScript ([#768](https://github.com/openai/codex-security/pull/768))
- port custom validation to TypeScript ([#792](https://github.com/openai/codex-security/pull/792))
- add Python-free Unix OS primitives ([#794](https://github.com/openai/codex-security/pull/794))
- add Python-free Windows OS primitives ([#795](https://github.com/openai/codex-security/pull/795))
- add Python-free musl native artifacts ([#796](https://github.com/openai/codex-security/pull/796))
- bundle verified native runtime artifacts ([#797](https://github.com/openai/codex-security/pull/797))
- preserve Windows filenames in native helpers ([#798](https://github.com/openai/codex-security/pull/798))
- port security policy resolution to TypeScript ([#799](https://github.com/openai/codex-security/pull/799))
- budget package installation and verification ([#834](https://github.com/openai/codex-security/pull/834))
- open ready pull requests ([#833](https://github.com/openai/codex-security/pull/833))
- draft SECURITY.md for owner review ([#536](https://github.com/openai/codex-security/pull/536))
- resolve Windows Node to an absolute executable ([#788](https://github.com/openai/codex-security/pull/788))
- shard automatic component planning for large repositories ([#845](https://github.com/openai/codex-security/pull/845))
- import CSV and JSON findings as saved scans ([#850](https://github.com/openai/codex-security/pull/850))
- add a feedback command ([#854](https://github.com/openai/codex-security/pull/854))
- improve scan usage and cost reports ([#853](https://github.com/openai/codex-security/pull/853))
- recover interrupted Deep Scans and bulk campaigns ([#835](https://github.com/openai/codex-security/pull/835))
- reject owned plugin keys inside Codex profiles ([#861](https://github.com/openai/codex-security/pull/861))
- include CommonJS and TypeScript module extensions in scan inventories ([#859](https://github.com/openai/codex-security/pull/859))
- include workflow files in diff inventories ([#820](https://github.com/openai/codex-security/pull/820))
- accept a UTF-8 byte order mark in imported findings JSON ([#856](https://github.com/openai/codex-security/pull/856))
- authenticate deep workers with OpenAI API keys ([#870](https://github.com/openai/codex-security/pull/870))
- drop canonical document size limits that do not exist ([#868](https://github.com/openai/codex-security/pull/868))
- pin native Rust formatting edition ([#863](https://github.com/openai/codex-security/pull/863))
- detect a Linear URL contradiction over plain HTTP ([#867](https://github.com/openai/codex-security/pull/867))
- pipeline dedupe with configurable concurrency ([#852](https://github.com/openai/codex-security/pull/852))
- disable reasoning summaries by default for Bedrock ([#869](https://github.com/openai/codex-security/pull/869))
- reuse scan authentication for patch and validation ([#871](https://github.com/openai/codex-security/pull/871))
- bump smol-toml from 1.6.1 to 1.7.1 in /sdk/typescript ([#873](https://github.com/openai/codex-security/pull/873))
- Threat models are now saved with Standard, Deep, and Diff scan results and
generated security policies. Export a saved model without another model call
using `codex-security export --artifact threat-model` or the SDK's
`exportArtifact` helper.
([#1133](https://github.com/openai/codex-security/pull/1133))
- Scans now check for exposed credentials in source code, including unused code
and tests, and distinguish suspected exposures from placeholders. This check
runs offline, without trying discovered credentials against a service.
([#1134](https://github.com/openai/codex-security/pull/1134))
- Use `--model` and `--effort` when generating patches, validating findings,
verifying fixes, or matching and comparing saved scans. Deep Scan workers and
patches generated during a scan also respect your selected service tier.
([#1143](https://github.com/openai/codex-security/pull/1143),
[#1238](https://github.com/openai/codex-security/pull/1238),
[#1274](https://github.com/openai/codex-security/pull/1274))
- Patch, validation, and fix-verification commands now respect custom model
providers and their authentication settings. Amazon Bedrock users get clearer
authentication errors and cost estimates for Daybreak Blue and Red. Eligible
OpenAI API-key users can select a Cyber access program for each scan.
([#1131](https://github.com/openai/codex-security/pull/1131),
[#1187](https://github.com/openai/codex-security/pull/1187),
[#1188](https://github.com/openai/codex-security/pull/1188),
[#1185](https://github.com/openai/codex-security/pull/1185))
- Scans include previously overlooked C++ headers (`.hh` and `.hxx`),
server-rendered templates (EJS, ERB, and PHTML), and Vyper source files when
selecting code to review.
([#1079](https://github.com/openai/codex-security/pull/1079),
[#1197](https://github.com/openai/codex-security/pull/1197),
[#1306](https://github.com/openai/codex-security/pull/1306))
- On Unix, scans check that the sandbox works before starting paid model calls.
Completed results are kept if you cancel follow-up work. CSV exports can now be
reimported without rejecting multiple occurrences of a finding or losing
leading apostrophes.
([#1084](https://github.com/openai/codex-security/pull/1084),
[#1057](https://github.com/openai/codex-security/pull/1057),
[#1247](https://github.com/openai/codex-security/pull/1247))

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

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

## Upgrade notes

Review compatibility and document any required migration steps before releasing.
- If your integration reads threat models, check `SecurityPolicyDraft.threatModelPath`
for `null` before opening the file. Policy generation now writes `threatmodel.md`
instead of `THREAT_MODEL.md`; use the returned path. Saved models can contain
Markdown (`format: "markdown"`, `content`) or the previous structured format, so
readers must handle both. Existing models remain readable and exportable
without migration.
([#1133](https://github.com/openai/codex-security/pull/1133))
- Findings service clients must send `Content-Type: application/json` to
`POST /v1/bulk/findings` and `POST /v1/dedupe-groups`. Missing or other content
types return HTTP 400 `invalid_request`. A charset parameter is accepted.
([#1277](https://github.com/openai/codex-security/pull/1277))
- Codex Security no longer masks diagnostic text that looks like credentials.
CLI output and saved error, publication, and patch-risk summaries can contain
sensitive values. Review them before sharing.
([#1179](https://github.com/openai/codex-security/pull/1179))
- SDK types and CLI schemas now accept any nonempty string for reasoning effort.
Update integrations that assume a fixed list. The chosen value must still be
supported by Codex and your model provider.
([#1237](https://github.com/openai/codex-security/pull/1237))
- Older CSV exports may have ambiguous leading apostrophes that cannot be
recovered from the CSV alone. Export the original saved results as JSON if you
need those exact values.
([#1247](https://github.com/openai/codex-security/pull/1247))

<!-- release-section: upgrades:end -->
12 changes: 6 additions & 6 deletions .github/release-pr-state.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
{
"baseVersion": "0.1.26",
"baseCommit": "2536d104deef9bca8ced84c6f6263b915418253b",
"baseVersion": "0.1.32",
"baseCommit": "7c19cce7224af29628cd10c218444d5c0e8fdd1c",
"sections": {
"highlights": {
"generatedHash": "488ce0a2eadd5a3718a22b68227f42dbba6f3f57b1ad9259cc850c397318a977",
"humanOwned": false
"generatedHash": "f65d8fae76964a512b64091b27881c1618ccb0399e3438d6396c0090a5564fbe",
"humanOwned": true
},
"upgrades": {
"generatedHash": "68d4c3318e7ef9c9bc7e5f85be654e3c5ffc027eed6f48b6e3607d091bdbbfb4",
"humanOwned": false
"generatedHash": "e4d70417d0224b264a39eb96709c1e22c5ee1b95d30ad4aafb3f531e077791a7",
"humanOwned": true
}
}
}
6 changes: 2 additions & 4 deletions .github/scripts/check_plugin_source_compatibility.mts
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,10 @@ function lineEndsNaturally(line: string): boolean {
);
}

function hardWrappedLines(content: string): number[] {
function* hardWrappedLines(content: string): Generator<number> {
const lines = content.split(
/\r\n|[\n\r\v\f\u001c-\u001e\u0085\u2028\u2029]/u,
);
const offenders: number[] = [];
let inFence = false;
let inFrontmatter = content.startsWith("---\n");
for (let index = 0; index < lines.length - 1; index++) {
Expand All @@ -85,9 +84,8 @@ function hardWrappedLines(content: string): number[] {
if (LIST_ITEM.test(followingLine) || lineEndsNaturally(line)) continue;
if (!/[A-Za-z0-9`]$/u.test(stripped)) continue;
if (!/^[A-Za-z0-9`(]/u.test(followingLine.trim())) continue;
offenders.push(index + 1);
yield index + 1;
}
return offenders;
}

function sourceCompatibilityErrors(pluginRoot: string): string[] {
Expand Down
53 changes: 53 additions & 0 deletions .github/scripts/invoice-desk-source.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import { execFileSync } from "node:child_process";
import { closeSync, mkdirSync, openSync } from "node:fs";
import { dirname, resolve, sep } from "node:path";
import { isMain } from "../../sdk/typescript/scripts/is-main.mjs";

export function extractApplication(repository, sha, destination) {
const git = (args) =>
execFileSync("git", args, { cwd: repository, maxBuffer: Infinity });
// Read committed blobs directly: export-ignore and export-subst must not alter scan input.
const entries = new TextDecoder("utf-8", { fatal: true })
.decode(git(["ls-tree", "-rz", `${sha}:examples/invoice-desk/app`]))
.split("\0")
.filter(Boolean)
.map((entry) => {
const tab = entry.indexOf("\t");
const [mode, type, oid] = entry.slice(0, tab).split(" ");
const path = entry.slice(tab + 1);
const output = resolve(destination, path);
if (!["100644", "100755"].includes(mode) || type !== "blob") {
throw new Error(
"The application source must contain only regular files.",
);
}
if (!output.startsWith(resolve(destination) + sep)) {
throw new Error("The application source contains an unsafe path.");
}
return { oid, output };
});
if (entries.length === 0) throw new Error("The application source is empty.");
mkdirSync(destination);
for (const { oid, output } of entries) {
mkdirSync(dirname(output), { recursive: true });
const descriptor = openSync(output, "w");
try {
execFileSync("git", ["cat-file", "blob", oid], {
cwd: repository,
stdio: ["ignore", descriptor, "pipe"],
});
} finally {
closeSync(descriptor);
}
}
return entries.length;
}

if (isMain(import.meta.url)) {
const count = extractApplication(
process.env.SOURCE_REPOSITORY,
process.env.SOURCE_SHA,
process.env.SCAN_SOURCE,
);
console.log(`Extracted ${count} committed application files.`);
}
Loading
Loading