Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
222 commits
Select commit Hold shift + click to select a range
06ec553
Merge pull request #3678 from lidge-jun/codex/promote-main-243-01a07240
lidge-jun Sep 5, 2026
116c2ac
Merge commit '44ea9576e27c6be8be7f13a86e32bb349368c54d' into codex/re…
invalid-email-address Sep 6, 2026
07b48da
Merge pull request #3785 from lidge-jun/codex/release-244-main-07c0
lidge-jun Sep 6, 2026
bcdf559
chore(release): promote validated 2.45.0 to main [skip ci]
invalid-email-address Sep 6, 2026
b0900e5
chore(release): promote 2.45.0 to main (#3813)
lidge-jun Sep 6, 2026
3970601
chore(release): prepare 2.46.0 stable promotion
invalid-email-address Sep 7, 2026
bba6322
Merge pull request #3851 from lidge-jun/codex/release-246-main
lidge-jun Sep 7, 2026
3d53e5f
release: prepare 2.47.0 from audited regression candidate
invalid-email-address Sep 7, 2026
eda8754
Merge commit '48ab3e1e66cfa6e0c873de2fafa4540ac61d6c7d' into codex/re…
invalid-email-address Sep 7, 2026
f9e3515
Merge commit '57252193b' into codex/release-247-main
invalid-email-address Sep 7, 2026
6f71931
release: promote 2.47.0 to main (#3929)
lidge-jun Sep 7, 2026
9a60256
Merge commit 'd0737cff3' into codex/release-247-main-final
invalid-email-address Sep 7, 2026
9e9b1d3
Merge commit 'f48c322c0' into codex/release-247-main-final
invalid-email-address Sep 7, 2026
947bae9
Merge commit '0d7652ad1' into codex/release-247-main-final
invalid-email-address Sep 7, 2026
f7f890f
release: apply final roster correction to main (#3933)
lidge-jun Sep 7, 2026
544ebee
release: promote 2.48.0 to main
invalid-email-address Sep 8, 2026
d24ff57
release: set main channel version 2.48.0
invalid-email-address Sep 8, 2026
9a27e86
Merge pull request #4011 from lidge-jun/codex/release-248-main
lidge-jun Sep 8, 2026
62849df
release: promote verified 2.49.0 product tree to main
lidge-jun Sep 9, 2026
2f3f736
Merge pull request #4117 from lidge-jun/codex/release-249-main-01a08498
lidge-jun Sep 9, 2026
3a3de88
release: promote verified 2.50.0 product tree to main
lidge-jun Sep 10, 2026
2d4d7a2
Merge pull request #4195 from lidge-jun/codex/release-250-main-01a08a81
lidge-jun Sep 10, 2026
cf456e8
release: promote verified 2.51.0 product tree to main
lidge-jun Sep 11, 2026
c155cc7
Merge pull request #4271 from lidge-jun/codex/release-251-main
lidge-jun Sep 11, 2026
95c4875
release: promote verified 2.52.0 product tree to main
lidge-jun Sep 12, 2026
4d37c35
Merge pull request #4407 from lidge-jun/codex/release-2520-main
lidge-jun Sep 12, 2026
641b05a
release: promote verified 2.53.0 product tree to main
lidge-jun Sep 13, 2026
aa05b3e
Merge pull request #4507 from lidge-jun/codex/release-2530-main
lidge-jun Sep 13, 2026
8e532c5
release: promote verified 2.54.0 product tree to main
lidge-jun Sep 13, 2026
9f7397e
Merge pull request #4540 from lidge-jun/codex/release-2540-main
lidge-jun Sep 13, 2026
b157f78
fix(codex): bound the reset-credit consume response like every other …
luvs01 Sep 14, 2026
a532591
fix(codex): preserve provider references on late history migration
luvs01 Sep 14, 2026
a039fdb
fix(codex): report a deferred Windows CLI inspection instead of an ab…
luvs01 Sep 10, 2026
9894045
test(codex): describe unobserved candidate evidence precisely
luvs01 Sep 10, 2026
fd6a2ed
docs(codex): document deferred Windows inspection in all CLI references
luvs01 Sep 12, 2026
b897324
docs(codex): distinguish missing captured candidates from unusable paths
luvs01 Sep 13, 2026
bc62253
docs(codex): link inspection contract from every source owner
luvs01 Sep 13, 2026
f79c147
fix(codex): repair desktop restart membership and POSIX-only cases on…
luvs01 Sep 14, 2026
a70c3d2
fix(codex): scope refresh lock acquisition and release to file identity
luvs01 Sep 14, 2026
79d5792
fix(codex): preserve refresh locks when owner identity is unknown
luvs01 Sep 14, 2026
3880e74
docs(codex): clarify default cache affinity
luvs01 Sep 14, 2026
c79ad6d
docs(codex): qualify paginated apply success
luvs01 Sep 14, 2026
00f4330
fix(cli): describe the full Codex desktop restart scope
luvs01 Sep 14, 2026
6f4e222
test(cli): verify restart confirmation and result boundaries
luvs01 Sep 14, 2026
39dfcf2
fix(catalog): reject loopback HTTP routed through Bun proxies
luvs01 Sep 14, 2026
58c15b8
chore(release): promote the verified 2.55.0 product tree to main
lidge-jun Sep 14, 2026
f978400
release: promote the verified 2.55.0 product tree to main
lidge-jun Sep 14, 2026
1cc89cf
Merge pull request #4619 from lidge-jun/codex/260914-main-2550
lidge-jun Sep 14, 2026
24cc758
test(catalog): disable dotenv loading in transport fixtures
luvs01 Sep 14, 2026
fc260e9
fix(cursor): normalize localized native-shell routing claims
luvs01 Sep 14, 2026
588c333
fix(cursor): bound Korean shell aliases at token boundaries
luvs01 Sep 14, 2026
876dc25
fix(codex): normalize both Windows membership separators
luvs01 Sep 15, 2026
ff25a01
Merge dev into agent/refresh-lock-ownership-20260914; preserve PR beh…
luvs01 Sep 15, 2026
11e343e
fix(google): allow structured output for Gemini models on Cloud Code …
agentHits Sep 15, 2026
aa3afb5
docs: synchronize refresh-lock source owners
luvs01 Sep 15, 2026
52779ef
fix(codex): preserve refresh result when lock identity probe fails
luvs01 Sep 15, 2026
8e14d34
fix(codex): serialize refresh lock metadata and clean failed acquisition
luvs01 Sep 15, 2026
5b8b070
fix(codex): keep refresh lock descriptor alive through release
luvs01 Sep 15, 2026
5dfea72
chore(release): open dev at 2.57.0 before releasing 2.56.0 (#4686)
github-actions[bot] Sep 15, 2026
e4a8539
Merge pull request #4694 from lidge-jun/codex/260915-main-2560-v2
lidge-jun Sep 15, 2026
6428a8e
test(codex): compare the injected catalog path as a decoded TOML valu…
luvs01 Sep 15, 2026
a6cc5e2
fix(providers): Baseten routed rows must not advertise `text.verbosit…
abhisheksharma2411 Sep 15, 2026
cc182a4
fix(cli): keep no-wait reauth JSON parseable (#4603)
luvs01 Sep 15, 2026
64beb3d
fix(responses): finalize adopted WebSocket stage records (#4607)
luvs01 Sep 15, 2026
51d577c
docs(devlog): record the 2.56.0 release evidence (#4700)
lidge-jun Sep 15, 2026
4931e85
fix(kiro): send native reasoning effort for the GPT-5.6 family and re…
wentao-ma2 Sep 15, 2026
c68682d
docs(kiro): spell the full claude-opus-5 effort field in translated p…
wentao-ma2 Sep 15, 2026
6c8f5d1
fix(google): allow structured output for Gemini models on Cloud Code …
agentHits Sep 15, 2026
ed9f0b9
fix(providers): declare Anthropic image input capabilities
TykanN Sep 15, 2026
2a23c7d
Merge commit 'aa91958e3b050084e1edc07dcd66b05ef6eac604' into agent/co…
luvs01 Sep 15, 2026
42e35b0
Merge commit 'aa91958e3b050084e1edc07dcd66b05ef6eac604' into agent/de…
luvs01 Sep 15, 2026
179aa98
fix(claude): forward done-only tool arguments
RHODIZSECURITY Sep 14, 2026
1a2b415
fix(claude-desktop): expand synthetic date alias slots from 365 to 3652
Sep 10, 2026
d7128a5
fix(codex): retain provider definitions across background history mig…
luvs01 Sep 15, 2026
6dcb690
docs: describe desktop regression coverage precisely
luvs01 Sep 15, 2026
537e32b
Merge commit 'aa91958e3b050084e1edc07dcd66b05ef6eac604' into agent/cu…
luvs01 Sep 15, 2026
f444e41
Merge commit 'aa91958e3b050084e1edc07dcd66b05ef6eac604' into agent/ca…
luvs01 Sep 15, 2026
dabe8f3
Merge commit 'aa91958e3b050084e1edc07dcd66b05ef6eac604' into agent/re…
luvs01 Sep 15, 2026
64b10ca
Merge dev module extraction and preserve refresh-lock contracts
luvs01 Sep 15, 2026
f04973c
Merge commit 'aa91958e3b050084e1edc07dcd66b05ef6eac604' into agent/41…
luvs01 Sep 15, 2026
24adf12
fix(clients): propagate image capabilities across integrations
TykanN Sep 15, 2026
1b9bffb
Merge dev into agent/reset-credit-consume-bound-20260914; preserve PR…
luvs01 Sep 15, 2026
b5c313e
refactor: split changed contracts to respect the file-size ratchet
luvs01 Sep 15, 2026
22965dc
test(google): pin CCA image refusal and typed schema envelope
lidge-jun Sep 15, 2026
7b88d00
fix(catalog): hide custom models when provider is disabled
githubxwork Sep 10, 2026
46e5f55
fix(kiro): keep unverified luna and terra effort rungs emulated
lidge-jun Sep 15, 2026
36356a6
fix(codex): avoid reauthentication advice for rate-limited warmup
remorser58 Sep 9, 2026
18ce1eb
docs(codex): tighten provider-retention contract comment within facad…
lidge-jun Sep 15, 2026
53ceeec
fix(codex): fence bulk refresh resets (#4695)
Ingwannu Sep 15, 2026
384df7c
fix(catalog): apply custom-model capabilities before combo derivation…
Ingwannu Sep 15, 2026
45cfb04
fix(responses): preserve caller user agent (#4702)
Ingwannu Sep 15, 2026
4392029
merge pr #4199 into lane L2
lidge-jun Sep 15, 2026
fcadf17
merge pr #4615 into lane L2
lidge-jun Sep 15, 2026
7ee1bde
merge pr #4576 into lane L2
lidge-jun Sep 15, 2026
1997163
merge pr #4569 into lane L2
lidge-jun Sep 15, 2026
d5f7da4
merge pr #4144 into lane L2
lidge-jun Sep 15, 2026
76e1916
merge pr #4571 into lane L2
lidge-jun Sep 15, 2026
204d714
merge pr #4178 into lane L2
lidge-jun Sep 15, 2026
fa8a0f9
merge pr #4564 into lane L2
lidge-jun Sep 15, 2026
3c66aed
merge pr #4610 into lane L2
lidge-jun Sep 15, 2026
ed5ba2c
merge pr #4682 into lane L3
lidge-jun Sep 15, 2026
e23534e
merge pr #4670 into lane L3
lidge-jun Sep 15, 2026
4a3d39a
merge pr #4668 into lane L3
lidge-jun Sep 15, 2026
3c9700d
merge pr #4622 into lane L3
lidge-jun Sep 15, 2026
0553eb5
merge pr #4224 into lane L3
lidge-jun Sep 15, 2026
75bdb1a
merge pr #4652 into lane L3
lidge-jun Sep 15, 2026
3169dfe
Merge branch 'fix/cca-gemini-structured-output' of https://github.com…
agentHits Sep 15, 2026
08c90de
docs: clarify the logical request cost description
luvs01 Sep 15, 2026
7ac626d
feat(gui): carry usage chart accessibility from archived PR #3982 (#4…
lidge-jun Sep 16, 2026
3070d64
feat(combos): carry forced default effort from PR #4054 (#4714)
lidge-jun Sep 16, 2026
834e86a
fix(combos): hop on a definite zero-output context overflow (#4659) […
lidge-jun Sep 16, 2026
5c7ee45
fix(responses): settle a credential hop where the replay is dispatche…
lidge-jun Sep 16, 2026
fb2ce7d
fix(update): keep a history-preflight refusal from aborting the updat…
lidge-jun Sep 16, 2026
dc6bcda
fix(tests): refuse removals that reach a protected home (#4705) [skip…
lidge-jun Sep 16, 2026
af708f4
test(combos): pin the upstream context_length_exceeded terminal shape…
lidge-jun Sep 16, 2026
52ec0a5
fix(service): decode schtasks output with the Windows text decoder (#…
lidge-jun Sep 16, 2026
bc648a2
fix(combos): reserve output headroom before a combo fallback (#4664) …
lidge-jun Sep 16, 2026
9bf30f3
fix(vision): fail closed on truncated sidecar captions (#4727) [skip ci]
lidge-jun Sep 16, 2026
21a3f18
fix(tests): walk the Lab activation chain instead of its first hop (#…
lidge-jun Sep 16, 2026
a6b9eca
feat(responses): give the durable spend ledger a production caller (#…
lidge-jun Sep 16, 2026
2ace217
fix(scripts): name the size exemptions after the reason they exist (#…
lidge-jun Sep 16, 2026
01a2b1f
fix(responses): report a spent send budget as this proxy refusing (#4…
lidge-jun Sep 16, 2026
ac87703
fix(service): stage elevated Task Scheduler XML instead of inlining i…
lidge-jun Sep 16, 2026
bf07b72
docs(lanes): correct the Kiro reasoning-text claim and the Desktop al…
lidge-jun Sep 16, 2026
4353ddb
merge pr #4670 current head into lane L3
lidge-jun Sep 16, 2026
3640e05
test(codex): return stderr from the inject harness so failures stay d…
lidge-jun Sep 16, 2026
c49d960
merge pr #4564 current head into lane L2
lidge-jun Sep 16, 2026
06a3b55
fix(usage): attribute retries to the dispatched API-key account
thisisjun786 Sep 15, 2026
d3ca552
test(usage): isolate key accounting regressions within size limits
thisisjun786 Sep 15, 2026
04e064c
fix(usage): retain recovery metadata on every refetch send
thisisjun786 Sep 15, 2026
02b9391
fix(codex): stop rotating accounts inside an organization-scoped quot…
lidge-jun Sep 16, 2026
06a117c
test(usage): pin the attempts-or-total boundary the carry depends on …
lidge-jun Sep 16, 2026
5ee7f63
docs(routing): cite what the prompt-caching guide actually says (#4546)
lidge-jun Sep 16, 2026
cf85113
docs(architecture): name the modules that own the code after the faca…
lidge-jun Sep 16, 2026
861988e
fix(responses): read the native Codex catalog key for generated windo…
lidge-jun Sep 16, 2026
e90d0ae
fix(routing): give a withheld recovery a retry time that is actually …
lidge-jun Sep 16, 2026
6317c41
test(responses): pin the #4546 incident as one system, not five fixes…
lidge-jun Sep 16, 2026
94db101
test(responses): pin the account-change half of the incident (#4546)
lidge-jun Sep 16, 2026
b3035fe
Merge pull request #4720 from lidge-jun/codex/260915-lane-L2
lidge-jun Sep 16, 2026
f88191d
fix(service): report an unreadable staged payload with its cause (#4692)
lidge-jun Sep 16, 2026
f92312a
merge dev into lane L3 after the Codex account and catalog lane landed
lidge-jun Sep 16, 2026
e187d2e
fix(responses): refuse an account move that carries an uploaded file …
lidge-jun Sep 16, 2026
4f61edc
docs(cursor): record why the localized native-shell match has no righ…
lidge-jun Sep 16, 2026
3ae8ca7
fix(responses): refuse the uploaded-file move on the alternate-accoun…
lidge-jun Sep 16, 2026
74a23c4
test(responses): stop an explicit undefined from taking the default a…
lidge-jun Sep 16, 2026
246d703
fix(responses): bound combo recall model retention (#4525)
lidge-jun Sep 16, 2026
413b6b2
fix(live): relay sideband turn metadata and client closes, and stage …
lidge-jun Sep 16, 2026
70129ac
fix(providers): give Kimi the Responses tool-result adjacency repair …
lidge-jun Sep 16, 2026
1eccd0f
fix(responses): refuse a combo failover that cannot replay mandatory …
lidge-jun Sep 16, 2026
78800ec
fix(responses): keep core.ts at its cap and stop a degraded ledger re…
lidge-jun Sep 16, 2026
6a2b148
test(service): move elevated-staging cover out of the ratcheted servi…
lidge-jun Sep 16, 2026
44392b5
Merge pull request #4777 from lidge-jun/codex/cx3-account-change-file…
lidge-jun Sep 16, 2026
8b504f9
Merge pull request #4765 from lidge-jun/codex/cx2-identity-domain-doc…
lidge-jun Sep 16, 2026
9fc7e9b
Merge pull request #4764 from lidge-jun/codex/cx1-upstream-spend-limi…
lidge-jun Sep 16, 2026
d48e3d2
fix(lib): keep an exhausted ceiling exhausted across a restart (#4546)
lidge-jun Sep 16, 2026
f6843be
Merge pull request #4719 from lidge-jun/codex/260915-lane-L3
lidge-jun Sep 16, 2026
e3b9913
Merge pull request #4755 from lidge-jun/codex/cf3-combo-recall-retention
lidge-jun Sep 16, 2026
99749e1
Merge pull request #4750 from lidge-jun/codex/cf2-output-headroom
lidge-jun Sep 16, 2026
5e3029e
Merge pull request #4744 from lidge-jun/codex/cf1-definite-context-ov…
lidge-jun Sep 16, 2026
c086fda
Merge remote-tracking branch 'origin/dev' into codex/rg4-ownership-docs
lidge-jun Sep 16, 2026
858e15e
Merge dev into the win1 layer for the Windows desktop-restart fix [sk…
lidge-jun Sep 16, 2026
c31b440
Merge the win1 layer into win2 to carry the dev absorption [skip ci]
lidge-jun Sep 16, 2026
8a1b010
Merge the win2 layer into win3 to carry the dev absorption
lidge-jun Sep 16, 2026
655e5d6
Merge dev into the destructive-home guard layer (#4705) [skip ci]
lidge-jun Sep 16, 2026
965f25a
Merge the layer below into the Lab activation guard layer (#4704) [sk…
lidge-jun Sep 16, 2026
baaf691
Merge branch 'codex/rg3-ratchet-generated-exemptions' into codex/rg4-…
lidge-jun Sep 16, 2026
77c60ad
Merge the layer below into the ratchet exemption layer (#4706) [skip ci]
lidge-jun Sep 16, 2026
da1d293
Merge dev into the hop-permit layer [skip ci]
lidge-jun Sep 16, 2026
526144a
Merge the hop-permit layer into the durable-ledger layer [skip ci]
lidge-jun Sep 16, 2026
da146b6
Merge the durable-ledger layer into the refusal-semantics layer [skip…
lidge-jun Sep 16, 2026
f336cc8
Merge the refusal-semantics layer into the key-attribution layer [ski…
lidge-jun Sep 16, 2026
002d46d
Merge the key-attribution layer into the recovery-limiter layer [skip…
lidge-jun Sep 16, 2026
d9e5b28
Merge the recovery-limiter layer into the integration-regression tip …
lidge-jun Sep 16, 2026
ba16750
Merge pull request #4772 from lidge-jun/codex/bl7-4546-integration-re…
lidge-jun Sep 16, 2026
bf68be4
Merge pull request #4771 from lidge-jun/codex/bl5-recovery-limiter-di…
lidge-jun Sep 16, 2026
b0cceec
Merge pull request #4760 from lidge-jun/codex/bl4-key-usage-attribution
lidge-jun Sep 16, 2026
6e254f3
Merge pull request #4758 from lidge-jun/codex/bl3-budget-refusal-sema…
lidge-jun Sep 16, 2026
ea1e3ee
Merge pull request #4756 from lidge-jun/codex/bl2-durable-ledger-wiring
lidge-jun Sep 16, 2026
cbc4c10
Merge pull request #4745 from lidge-jun/codex/bl1-hop-permit-charge
lidge-jun Sep 16, 2026
217fe01
fix(catalog): normalize the custom-provider model-discovery join (#47…
lidge-jun Sep 16, 2026
915af60
fix(codebuddy): refuse leaked vendor tool-call scaffolding (#4596)
lidge-jun Sep 16, 2026
99c977d
fix(openai-chat): bound flattened tool wire names for strict gateways…
lidge-jun Sep 16, 2026
17d5c5e
Merge pull request #4759 from lidge-jun/codex/win3-elevated-registrat…
lidge-jun Sep 16, 2026
c7924b8
Merge pull request #4749 from lidge-jun/codex/win2-schtasks-gbk
lidge-jun Sep 16, 2026
1b135bc
Merge pull request #4746 from lidge-jun/codex/win1-update-teardown
lidge-jun Sep 16, 2026
3b52c0a
Merge pull request #4766 from lidge-jun/codex/rg4-ownership-docs
lidge-jun Sep 16, 2026
9af2b0c
Merge pull request #4757 from lidge-jun/codex/rg3-ratchet-generated-e…
lidge-jun Sep 16, 2026
13f7573
Merge pull request #4754 from lidge-jun/codex/rg2-lab-sync-activation…
lidge-jun Sep 16, 2026
0c4d63a
Merge pull request #4747 from lidge-jun/codex/rg1-destructive-home-guard
lidge-jun Sep 16, 2026
fb282bd
fix(combos): preserve declared targets under the send budget (#4656) …
lidge-jun Sep 16, 2026
cf6e939
fix(routing): wire the pool recovery limiter into production dispatch…
lidge-jun Sep 16, 2026
eff021e
chore: absorb dev into the vision sidecar layer [skip ci]
lidge-jun Sep 16, 2026
628a182
chore: absorb dev into the kimi adjacency layer [skip ci]
lidge-jun Sep 16, 2026
08cb9bb
chore: absorb dev into the reasoning replay layer [skip ci]
lidge-jun Sep 16, 2026
50017dd
chore: absorb dev into the model-discovery join layer [skip ci]
lidge-jun Sep 16, 2026
49f815d
chore: absorb dev into the codebuddy scaffold guard layer
lidge-jun Sep 16, 2026
261f17b
chore: absorb dev into the bounded tool wire name layer [skip ci]
lidge-jun Sep 16, 2026
2e590fe
Merge pull request #4776 from lidge-jun/codex/pw6-codebuddy-scaffold-…
lidge-jun Sep 16, 2026
6151ff4
Merge pull request #4774 from lidge-jun/codex/pw5-bounded-tool-wire-n…
lidge-jun Sep 16, 2026
6a8f754
Merge pull request #4773 from lidge-jun/codex/pw4-custom-baseurl-join
lidge-jun Sep 16, 2026
aa31ed4
Merge pull request #4770 from lidge-jun/codex/pw3-kimi-tool-adjacency
lidge-jun Sep 16, 2026
53455e0
Merge pull request #4769 from lidge-jun/codex/pw2-deepseek-reasoning-…
lidge-jun Sep 16, 2026
112d2ea
Merge pull request #4752 from lidge-jun/codex/pw1-vision-sidecar-trun…
lidge-jun Sep 16, 2026
b6d9d0c
fix(codex): handle nested error object in token refresh and classify …
rrmlima Sep 16, 2026
ada3a9b
fix(responses): carry bare tool-name echo acceptance (#4729) (#4792)
lidge-jun Sep 16, 2026
0ae7e91
fix(gui): keep sidebar version badges fully readable (#4738)
luvs01 Sep 16, 2026
7849b77
fix(responses): bound terminal guard content retention (#4739)
luvs01 Sep 16, 2026
0f8f2f5
fix(retry): refuse ambiguous reset replay without inviting a client r…
lidge-jun Sep 16, 2026
fab7e42
fix(catalog,bridge): write every slug once and scope declared-tool me…
lidge-jun Sep 16, 2026
c272309
fix(logs,web-search): bound response inspection and withheld search e…
lidge-jun Sep 16, 2026
f35fbe8
fix(codex): stop selecting accounts that cannot serve the request (#4…
lidge-jun Sep 16, 2026
dc9d1fa
fix(test): contain and reclaim Windows temporary roots (#4785, #4789)…
lidge-jun Sep 16, 2026
2203277
fix(responses,chat): keep a replay refusal out of retries, quota evid…
lidge-jun Sep 16, 2026
89bdf5f
fix(codex): carry uploaded-file retention through compact and keep th…
lidge-jun Sep 16, 2026
8a63bc0
fix(responses): close the helper-alias and preview read-fence gaps (#…
lidge-jun Sep 16, 2026
d210c46
fix(codex): classify refresh failures on the structured code and stop…
lidge-jun Sep 16, 2026
d2808c0
fix(responses): fence helper spellings from every manufactured bare a…
lidge-jun Sep 16, 2026
2b19983
fix(ci,runtime): stop hiding the Bun runtime crash and pin back to 1.…
lidge-jun Sep 16, 2026
d78be30
docs(devlog): record the 2.57.0 release train (#4828)
lidge-jun Sep 16, 2026
1831193
test(budget): give a Windows child spawn the cold-start headroom it m…
lidge-jun Sep 16, 2026
44de45d
Merge pull request #4829 from lidge-jun/release/2.57.0
lidge-jun Sep 16, 2026
1965552
release: bring preview onto the verified 2.57.0 product tree
lidge-jun Sep 16, 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
  •  
  •  
  •  
25 changes: 16 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -535,9 +535,10 @@ jobs:
# (`is_bun_runtime_crash`). The unsharded macOS control had no equivalent,
# so the same crash that Linux absorbs failed the whole promotion here.
#
# Keep the signature list in sync with `is_bun_runtime_crash` in
# scripts/ci/run-bun-test-batches.sh. An assertion failure still fails on
# the first attempt — only the crash signature is retried, exactly once.
# The classifier is `is_bun_runtime_crash` from scripts/ci/bun-crash-signatures.sh, which
# this leg, the Windows leg, the macOS control and the Linux batch runner all source. It used
# to be four inline copies kept in sync by a test; one definition cannot drift. An assertion
# failure still fails on the first attempt — only a crash is retried, exactly once.
- name: Test
env:
MACOS_TEST_SHARD: ${{ matrix.shard }}
Expand All @@ -546,6 +547,8 @@ jobs:
# errexit so a Bun crash reaches PIPESTATUS and the bounded retry.
set +e
set -uo pipefail
# One shared classifier for every lane; see scripts/ci/bun-crash-signatures.sh.
source scripts/ci/bun-crash-signatures.sh

run_macos_suite() {
local suite_log suite_status attempt
Expand All @@ -559,7 +562,7 @@ jobs:
rm -f "$suite_log"
return 0
fi
if ! grep -Eqi 'oh no: Bun has crashed|Internal assertion failure|Segmentation fault at address|Illegal instruction|Bus error|Aborted \(core dumped\)' "$suite_log"; then
if ! is_bun_runtime_crash "$suite_status" "$suite_log"; then
echo "::error::macOS suite failed on attempt ${attempt} (exit ${suite_status}); assertion failures are not retried."
rm -f "$suite_log"
return "$suite_status"
Expand Down Expand Up @@ -685,15 +688,17 @@ jobs:
# (`is_bun_runtime_crash`). The unsharded macOS control had no equivalent,
# so the same crash that Linux absorbs failed the whole promotion here.
#
# Keep the signature list in sync with `is_bun_runtime_crash` in
# scripts/ci/run-bun-test-batches.sh. An assertion failure still fails on
# the first attempt — only the crash signature is retried, exactly once.
# The classifier is `is_bun_runtime_crash` from scripts/ci/bun-crash-signatures.sh, shared
# with every other lane. An assertion failure still fails on the first attempt — only a
# crash is retried, exactly once.
- name: Test
run: |
# GitHub Actions starts bash `run:` blocks with `-e`. Disable
# errexit so a Bun crash reaches PIPESTATUS and the bounded retry.
set +e
set -uo pipefail
# One shared classifier for every lane; see scripts/ci/bun-crash-signatures.sh.
source scripts/ci/bun-crash-signatures.sh
suite_log="$(mktemp -t ocx-macos-suite.XXXXXX)"
for attempt in 1 2; do
# --timeout: Bun's default 5s per-test ceiling is the recurring flake
Expand All @@ -708,7 +713,7 @@ jobs:
if [ "$suite_status" -eq 0 ]; then
exit 0
fi
if ! grep -Eqi 'oh no: Bun has crashed|Internal assertion failure|Segmentation fault at address|Illegal instruction|Bus error|Aborted \(core dumped\)' "$suite_log"; then
if ! is_bun_runtime_crash "$suite_status" "$suite_log"; then
echo "::error::macOS suite failed on attempt ${attempt} (exit ${suite_status}); assertion failures are not retried."
exit "$suite_status"
fi
Expand Down Expand Up @@ -834,14 +839,16 @@ jobs:
run: |
set +e
set -uo pipefail
# One shared classifier for every lane; see scripts/ci/bun-crash-signatures.sh.
source scripts/ci/bun-crash-signatures.sh
suite_log="$(mktemp -t ocx-windows-suite.XXXXXX)"
for attempt in 1 2; do
bun test --isolate --timeout 60000 tests --shard=${{ matrix.shard }}/6 2>&1 | tee "$suite_log"
suite_status="${PIPESTATUS[0]}"
if [ "$suite_status" -eq 0 ]; then
exit 0
fi
if ! grep -Eqi 'oh no: Bun has crashed|Internal assertion failure|Segmentation fault at address|Illegal instruction|Bus error|Aborted \(core dumped\)' "$suite_log"; then
if ! is_bun_runtime_crash "$suite_status" "$suite_log"; then
echo "::error::Windows shard ${{ matrix.shard }}/6 failed on attempt ${attempt} (exit ${suite_status}); assertion failures are not retried."
exit "$suite_status"
fi
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# syntax=docker/dockerfile:1

# Keep the runtime aligned with package.json and pin the multi-platform image index.
ARG BUN_IMAGE=oven/bun:1.4.2@sha256:9114c058aeae42162ee16dd5084b95fe9473970bb6bcb5b232ab1630f0546895
ARG BUN_IMAGE=oven/bun:1.4.0@sha256:5ff609364c049b54eb0ff560ec96319729a972078ef2c755d758f0c6ef89c2d6

FROM ${BUN_IMAGE} AS build
WORKDIR /home/bun/app
Expand Down
Binary file added assets/pr-screenshots/usage-chart-review.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions bin/ocx.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -522,6 +522,16 @@ function runPackageManagerSelfUpdate(manager) {
" After the update: close the Codex app, run 'ocx doctor', then run 'ocx stop' once to retry.",
);
}
if (decision.reason === "history-deferred") {
// The reported #4718 path is this lane. Nothing was restored, so this is a different
// sentence from the manifest warning above: an operator told "history metadata is
// incomplete" would assume config and catalog already came back.
console.warn(
"opencodex: WARNING — the shared teardown was refused by the Codex history preflight and restored nothing.\n" +
" Config, catalog, history and provenance were preserved, and the teardown receipt was kept.\n" +
" The proxy is down, so the update continues; close the Codex app and run 'ocx stop' once afterwards to finish the restore.",
);
}
}

// npm keeps the existing stage -> verify -> swap -> rollback flow. pnpm owns a
Expand Down
34 changes: 17 additions & 17 deletions bun.lock

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

26 changes: 26 additions & 0 deletions devlog/_plan/260915_2560_release_train/040_release_decision.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,29 @@ What the decision rests on, and what it does not:
Recorded as each step completes.

- #4690 head `0026b14e83`, the post-fix candidate.

## What actually happened

- Candidate: `386303af1c` on `dev` — the squash of #4690, which carried the two regression fixes.
Its pre-merge head `26b3ff244434846149b560e28f7441afae529564` passed Cross-platform CI as run
`34945255301`.
- `dev` moved to 2.57.0 through #4686 before any promotion, so `assert-ahead` could pass.
- `main`: #4694 merged as `e4a8539b957b7ae7cd278666f0364eb0f82d4ac3`, carrying 2.56.0. Its push
runs at that exact SHA: Cross-platform CI `34947608073` success, Service lifecycle `34947608122`
success. #4687, cut from the pre-fix `2702911708`, was closed as superseded.
- `preview`: #4698 merged as `b552b1db59`. The head was an `ours`-strategy merge, so its tree is
byte-identical to the candidate and to what `main` received; the merge exists to record the old
preview tip as a parent, which is the shape every earlier promotion onto that branch used.
- Release: `release.yml` run `34951392978`, dispatched from `main` with
`expected-sha=e4a8539b95…`, `version=2.56.0`, `tag=latest`, `dry-run=false`. Both jobs succeeded.
The publish step reported `+ @bitkyc08/opencodex@2.56.0` with a provenance statement written to
the sigstore transparency log, and tag `v2.56.0` plus the GitHub release exist.
- Registry metadata still read 2.55.0 immediately afterwards. The workflow says so itself and
instructs against republishing; a lagging read is not a failed publish.

## What shipped that the audit did not clear

Nothing. The two regressions it found were fixed before promotion, and the fix itself went through
three review rounds: the first only released in the `catch`, the second confirmed before a rebuild
that can fail without sending, and only the third confirms at the two points that reach the wire.
The accepted risks are listed in `020_regression_audit.md` and are unchanged by this release.
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Planned split: structure/providers/openai-tiers.md

## Why there is a grace entry

`openai-tiers.md` sat at 597 lines on `dev` against a 600-line budget, so it had
room for three lines. Any real contract addition fails the gate, which is what
happened when the account-selection work recorded the uploaded-file retention
invariant and the flagship roster polarity. The doc is now 638 lines and carries
a `grace.oversizeDocs` entry, which `structure/AGENTS.md` reserves for a split
that is already planned. This is that plan.

## The topic boundary

The file has held two subjects for a while. One is account identity and wire
shape: Pool and Direct modes, API-key separation, the ChatGPT wire identity, and
the entitlement rosters. The other is selection and quota behaviour: eligibility
guards, priority tiers, cache affinity, reset-first ordering, observed capacity,
and now uploaded-file retention. The split runs on that line, leaving
`providers/openai-tiers.md` with identity and wire shape and moving selection and
quota behaviour into a sibling doc with its own manifest entry.

## Why it is not done in this release

Splitting an invariant doc renumbers nothing but does move every anchor other
documents link to, and `structure:check` resolves those references. Doing that
while five behaviour changes are landing would mix a documentation refactor into
the release candidate for no user benefit. The grace entry states the debt
honestly and the gate drops it again once the doc is back under budget.
Loading
Loading