v0.12.0
What's Changed
- test(session): hermetic fork/moveTo failure-injection across platforms (#3209) by @Yeachan-Heo in #3219
- fix(tui): prevent duplicate transcript scrollback rows by @minislively in #3213
- fix(sdk): drain MCP stdio handlers so e2e cannot hang after stdin EOF by @Yeachan-Heo in #3221
- fix(coding-agent): hermetic ModelRegistry canonical-equivalence tests by @Yeachan-Heo in #3222
- fix(sdk): accept early WebSocket hello for daemon session query flake by @Yeachan-Heo in #3223
- feat(coding-agent): harden memory-guard checkpoint ownership by @twoimo in #3225
- fix(coding-agent): repair #3225 continue breadcrumb and SDK inventory by @Yeachan-Heo in #3228
- feat(sdk): durable kind-aware reconciliation for #3031 #3032 #3035 by @Yeachan-Heo in #3227
- fix(sdk): unbreak post-#3227 host preflight + operation matrix by @Yeachan-Heo in #3229
- fix(sdk): finish post-#3227 Q28 parity + failure correlation by @Yeachan-Heo in #3230
- fix(sdk): deterministic Telegram root release retain/retry on shutdown by @Yeachan-Heo in #3231
- fix(ask): ignore aborted remote answer failures by @suho-han in #3224
- fix(resume): cut ordinary /resume readiness wait and progress lag by @Yeachan-Heo in #3234
- feat(coding-agent): guard team worker memory by @twoimo in #3226
- fix(resume): fail open progress lease on minimal statusContainer by @Yeachan-Heo in #3237
- feat(ai): add BizRouter as a first-class provider by @Yeachan-Heo in #3220
- fix(tools): accept JSON-string asks and recover NNBSP screenshot paths by @probepark in #3238
- fix(acp): report spec-conformant errors, paths, and sizes by @probepark in #3244
- feat(providers): rank existing and well-known providers first in /model, /login, /provider by @Yeachan-Heo in #3243
- fix(ai): honor documented GJC_OPENAI_CODE_* env names by @10kH in #3245
- fix(utils): honor documented GJC_BASH_NO_CI / GJC_BASH_NO_LOGIN by @10kH in #3248
- test(ci): add a fail-closed CI failure-identity extractor by @Yeachan-Heo in #3255
- test(telegram): widen the /btw e2e waitFor budget for loaded CI shards by @Yeachan-Heo in #3259
- fix(utils): resolve the shell prefix from trusted env only by @10kH in #3252
- fix(ai): align Anthropic subscription attribution by @nolainjin in #3254
- fix(browser): resolve launch overrides from trusted env only by @10kH in #3256
- fix(coding-agent): harden recovered settings controls by @twoimo in #3251
- fix(coding-agent): terminalize no-op overflow recovery by @DevOrca18 in #3257
- fix(coding-agent): repair dev CI 30244279756 after #3257 by @Yeachan-Heo in #3275
- fix(providers): rank BizRouter directly below OpenGateway in /login by @Yeachan-Heo in #3281
- docs: name the Foundry env vars that are actually read by @10kH in #3250
- fix(sdk,harness): resolve spawned command overrides from trusted env only by @10kH in #3260
- chore(sdk): bump @agentclientprotocol/sdk to 1.3.0 by @probepark in #3261
- fix(ai): resolve the Anthropic endpoint from trusted env only by @10kH in #3262
- fix(utils): reject a project-.env agent directory override by @10kH in #3285
- fix(coding-agent): resolve Smithery endpoints and key from trusted env by @10kH in #3286
- fix(utils): reject a project-.env config directory override by @10kH in #3295
- fix(ai): resolve the Kimi usage base URL from trusted env only by @10kH in #3312
- fix(coding-agent): garbage-collect stale session local roots by @10kH in #3313
- test(coding-agent): fix dev CI shard-5 managed-session migration timing flake by @Yeachan-Heo in #3322
- fix(utils): honor the PI_CODING_AGENT_DIR alias in getAgentDir by @10kH in #3328
- fix(coding-agent): redact GitHub tokens in memory consolidation by @10kH in #3330
- fix(ai): name the failed host when a request never reaches the provider by @devswha in #3333
- fix(natives): recover Cargo from rustup homes for addon builds by @suho-han in #3335
- perf(coding-agent): add deterministic Bun memory baseline corpus by @twoimo in #3336
- fix(coding-agent): repair post-merge dev CI shard 2/5 failures from run 30291963270 by @Yeachan-Heo in #3340
- fix(ai): rename Codex reserved tool namespaces on the wire by @probepark in #3339
- feat: add a sticky transcript viewport by @elppaaa in #3343
- fix(coding-agent): fence notification WebSocket fixture startup by @Yeachan-Heo in #3353
- docs(ultragoal): loosen delegation and planning gates by @Yeachan-Heo in #3355
- docs: describe the $env loading order as implemented by @10kH in #3297
- fix(ai): refresh the spoofed Gemini CLI version by @10kH in #3307
- fix(coding-agent): drop an exports entry with no module behind it by @10kH in #3306
- docs(ultragoal): resume same-domain subagents and terminal critic instead of fresh spawns by @Yeachan-Heo in #3359
- fix(coding-agent): clone sticky-viewport fixture instead of recapturing by @Yeachan-Heo in #3358
- feat(read): default truncation to the tail of a file by @Yeachan-Heo in #3348
- fix(tui): redraw once the terminal width settles by @Yeachan-Heo in #3360
- docs: point fs-scan-cache architecture at the real invalidation callsites by @10kH in #3349
- fix(ralplan): stop infinite consensus loops with reviewer ratchet + per-lane review budget by @Yeachan-Heo in #3356
- fix(test): wrap an over-long assertion to satisfy the formatter by @Yeachan-Heo in #3363
- test: make the env trust suites hermetic by @10kH in #3284
- fix(utils): keep the configured config-dir name beneath home by @10kH in #3267
- fix(coding-agent): resolve skill-hook config paths from trusted dirs by @10kH in #3324
- fix(read): scan directional windows for merge conflicts by @Yeachan-Heo in #3365
- feat(ralplan): persisted resume-default Architect/Critic lanes (follow-up to #3356) by @Yeachan-Heo in #3364
- fix(coding-agent): resolve workflow settings under the config root by @10kH in #3327
- fix(ai,agent): resolve OpenAI/Azure endpoints from trusted env only by @10kH in #3268
- fix(coding-agent): resolve registry provider base URLs from trusted env by @10kH in #3270
- fix(ai): resolve Google credential material from trusted env by @10kH in #3283
- fix(ai): resolve the Grok usage token fallback from trusted env by @10kH in #3289
- fix(tui): address width-settle review findings from #3360 by @Yeachan-Heo in #3361
- fix(ultragoal): repair final-aggregate receipts minted without criticReview OKAY by @Yeachan-Heo in #3368
- fix(deep-interview): make draft recovery self-healing by @IYENTeam in #3369
- test(ultragoal): resolve the nudge-budget user setting under home by @Yeachan-Heo in #3370
- fix(deep-interview): harden self-healing draft recovery by @Yeachan-Heo in #3374
- fix(deep-interview): inherit session and unblock read-only bash by @Yeachan-Heo in #3377
- fix(deep-interview): close final contract gaps by @Yeachan-Heo in #3378
- fix(deep-interview): close terminal guard gaps by @Yeachan-Heo in #3379
- fix(deep-interview): relax round scoring and name setup conflicts by @Yeachan-Heo in #3381
- fix(deep-interview): make setup-conflict recovery runnable for required fields by @Yeachan-Heo in #3382
- revert(coding-agent): replace typed deep-interview repair CLI with staged JSON transitions by @Yeachan-Heo in #3380
- fix(guard): block only explicit filesystem mutations during planning phases by @Yeachan-Heo in #3385
- fix(deep-interview): typed session errors, runtime-owned ambiguity, incremental staging by @Yeachan-Heo in #3386
- feat(deep-interview): unified gjc deep-interview surface with runtime-owned state by @Yeachan-Heo in #3387
- feat(deep-interview): unified gjc deep-interview surface with runtime-owned state by @Yeachan-Heo in #3393
- fix(deep-interview): intent-key guard, null-prose init, HUD sync, full help by @Yeachan-Heo in #3395
- fix(deep-interview): null-prose first-try init and HUD sync after write/apply by @Yeachan-Heo in #3396
- fix(test): type the deep-interview stage fact-count assertion by @Yeachan-Heo in #3400
New Contributors
- @DevOrca18 made their first contribution in #3257
Full Changelog: v0.11.11...v0.12.0