Skip to content

v0.12.1

Choose a tag to compare

@github-actions github-actions released this 29 Jul 17:32

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
  • chore: restore dev history ancestry into main by @Yeachan-Heo in #3405
  • test(sdk): widen the Discord recovery wait to the daemon's own backoff ceiling by @Yeachan-Heo in #3406
  • chore: merge main release ancestry back into dev by @Yeachan-Heo in #3411
  • fix coordinator workflow question reconciliation by @thisisjun786 in #3408
  • test(read): pin conflict surfacing across truncation directions by @Yeachan-Heo in #3366
  • fix(coding-agent): make task delegation actionable with discovery by @yeongjunyoo in #3357
  • feat(gjc-plugins): scope-qualified bundle lifecycle and Settings management by @probepark in #3342
  • fix(tui): stop terminal probe replies leaking into the prompt by @sskys18 in #3392
  • fix(coding-agent): resolve web-search endpoints and keys from trusted env by @10kH in #3282
  • fix(tui): isolate status-line gh lookup stdin by @sj0618 in #3401
  • perf(coding-agent): cache transcript viewer layouts by @elppaaa in #3404
  • fix(coding-agent): resolve the Exa API key from trusted env by @10kH in #3287
  • fix(coding-agent): resolve SDK bus tokens from trusted env by @10kH in #3288
  • fix(coding-agent): resolve SearXNG search config from trusted env by @10kH in #3290
  • fix(team): return actionable errors for unknown API operations by @jaeyunha in #3414
  • fix(ai): stop GOOGLE_CLOUD_LOCATION from redirecting Vertex requests by @10kH in #3291
  • docs: stop documenting removed native APIs by @10kH in #3351
  • docs: correct the scope of the two directory overrides by @10kH in #3352
  • fix(telegram): launch lifecycle sessions safely on macOS by @chiznoir in #3367
  • chore(artifacts): record pr3392/3401/3404 merge batch receipt by @Yeachan-Heo in #3416
  • fix(skill-state): stop heredoc document bodies from false-blocking spec persistence during planning phases by @Yeachan-Heo in #3415
  • fix(acp): harden Air prompt termination and session recovery (repair of #3373) by @Yeachan-Heo in #3413
  • fix(session): restore disk offloading for managed-session resident data (RAM/CPU bloat in long sessions) by @Yeachan-Heo in #3344
  • feat(session): add resume model behavior control (repair of #3293) by @Yeachan-Heo in #3418
  • feat(session): add session.resumeModelBehavior to control resume model restore by @minislively in #3293
  • fix(ai): drop the unused $env import from the Vertex provider by @Yeachan-Heo in #3419
  • fix(coding-agent): align eager todo prompt schema by @sj0618 in #3407
  • fix(coding-agent): show subagent fast mode in task UI by @sj0618 in #3417
  • fix(ci): address workflow bun test files by explicit relative path by @Yeachan-Heo in #3430
  • fix(coding-agent): surface subagent launch failures by @probepark in #3423
  • feat(ralplan): support configured auto handoff by @probepark in #3428
  • chore(schemas): regenerate config schema for session.resumeModelBehavior by @Yeachan-Heo in #3431
  • feat(telegram): add notification sound policy by @probepark in #3427
  • fix(skill-state): harden heredoc masking against shadowing, escapes, continuations, and multiline quotes by @Yeachan-Heo in #3421
  • fix(tui): preserve nested paths during slash completion by @jaeyunha in #3432
  • fix(streaming): retry first-event timeouts safely by @probepark in #3424
  • fix(agent): unwedge invalid_prompt repair so the retry can continue by @probepark in #3433
  • chore(artifacts): record merge-batch lane retirement receipt by @Yeachan-Heo in #3422
  • docs: record #3373/#3357/#3344/#3293 repair batch merge receipt by @Yeachan-Heo in #3429
  • fix(coding-agent): guard resume-model-choice prompt against a settings-less ctx by @Yeachan-Heo in #3434
  • fix(sdk): classify resolveConfiguredDefaultModel as an internal seam by @Yeachan-Heo in #3438
  • fix(skill-state): fold line continuations and strip ANSI-C $ in the heredoc dequoted view by @Yeachan-Heo in #3436
  • fix(tui): clear completed shell command overlay by @probepark in #3437
  • fix: handle stale Codex named tool choices by @probepark in #3441
  • fix(test): realign two goldens with the contracts their producers changed by @Yeachan-Heo in #3443
  • fix(team): publish a runtime-owned worker heartbeat while a turn is in flight by @jaeyunha in #3391
  • fix: expose subagent sessions to Session Observer by @ZergRocks in #3435
  • chore(artifacts): record #3422/#3429 CI-wait lane retirement receipt by @Yeachan-Heo in #3442
  • fix(prompts): honor explicit worktree delegation requests by @probepark in #3440
  • fix(coding-agent): keep ralplan writes in owner session by @ZergRocks in #3439
  • Fix ralplan session_id handoff goldens by @Yeachan-Heo in #3447
  • fix(coding-agent): downgrade expected AgentBusyError continuation races to debug by @Yeachan-Heo in #3446
  • chore(artifacts): record dev-CI green recovery receipt for a92c4dd by @Yeachan-Heo in #3445
  • fix(telegram): preserve multiline ask questions in rich messages by @chiznoir in #3325
  • fix(natives): fall back to linkat(2) for managed no-replace publish on NFS by @bjkim95 in #3388
  • fix(coding-agent): advertise search in fast help by @sj0618 in #3294
  • fix(coding-agent): wire ToolSession.getAuthorizedArtifactsDirs for same-tree artifact reads by @Yeachan-Heo in #3314
  • perf(coding-agent): incrementally project observer sessions by @elppaaa in #3448
  • fix(ai): resolve the Kimi OAuth host from trusted env only by @10kH in #3311
  • fix(telegram): preserve multi-select state in remote prompts by @chiznoir in #3304
  • fix(coding-agent): resolve auth-broker config from trusted env only by @10kH in #3310
  • fix(coding-agent): resolve image-generation env from trusted sources by @10kH in #3309
  • fix(ai): honor the documented GJC_NO_STRICT bypass by @10kH in #3305
  • fix(coding-agent): sweep session resident-cache dirs on abnormal exit by @10kH in #3318
  • fix(ai): honor the documented GJC_AUTH_NO_BORROW opt-out by @10kH in #3296
  • fix(telegram): support WebP image delivery by @probepark in #3453
  • fix(ai): resolve the Azure API key fallback from trusted env by @10kH in #3272
  • fix(telegram): convert WebP images to photos by @probepark in #3454
  • feat(telegram): add topic session folder picker (successor of #3214, #3258) by @gimso2x in #3271
  • fix(coding-agent): restore descriptor-backed subagent resume by @Yeachan-Heo in #3456
  • fix(sdk): restart broker that predates broker.shutdown, and close its session hosts by @probepark in #3450
  • fix(ai): bound the HTTP 400 request-dump directory by @10kH in #3319
  • feat(tui): add type-to-filter to the /login provider selector by @Yeachan-Heo in #3315
  • fix(coding-agent): repair the tmux session lifecycle on macOS by @lightofjeju in #3452
  • test(ai): repair exact dev evidence and timeout contract by @Yeachan-Heo in #3457
  • fix(coding-agent): sweep SDK revision-store spills on abnormal exit by @10kH in #3320
  • fix(dev): remove Bun shadow before source link validation by @probepark in #3451
  • test(team): extend memory-guard selector-replacement timeout for CI contention by @Yeachan-Heo in #3409
  • feat(compaction): tool-aware, artifact-aware, state-aware pruning and compaction by @Yeachan-Heo in #2957
  • fix(test): align T2 mid-run maintenance with protectRecentTurns fence by @Yeachan-Heo in #3458
  • fix(ai): flag Anthropic and Ollama tool calls truncated by max_tokens by @Yeachan-Heo in #3455
  • fix(mcp): honor explicit config startup timeouts by @raphaelnz in #3372
  • fix(utils): redact complete AWS STS credentials and current GitHub token formats in crash logs by @10kH in #3449
  • fix(coding-agent): separate review findings evidence by @Yeachan-Heo in #3467
  • fix(ai): stop Anthropic thinking replay from contradicting the request shape by @probepark in #3465
  • feat(coding-agent): default Bash tool output to 1 KiB tail by @Yeachan-Heo in #3476
  • fix(session): expose managed scope prepare diagnostics by @Yeachan-Heo in #3462
  • fix(ci): require exact PR base ancestry for exact-head gates by @Yeachan-Heo in #3481
  • test(bash): complete Settings fixtures after default-tail merge by @Yeachan-Heo in #3482
  • fix(tui): clear Kitty images during viewport repaint by @Yeachan-Heo in #3475
  • fix(tui): harden Kitty placement lifecycle by @Yeachan-Heo in #3493
  • feat(ultragoal): move verification from per-subgoal to per-boundary by @Yeachan-Heo in #3498
  • fix(coding-agent): complete single-model credential failover for extension-loaded sessions (#3491) by @Yeachan-Heo in #3495
  • chore(coding-agent): restore ultragoal formatting by @Yeachan-Heo in #3506
  • fix(ai): stamp lazy-stream first-event timeouts as transport facts (#3496) by @innocarpe in #3501
  • fix(coding-agent): retry Codex overloads with backoff by @probepark in #3510
  • test(sdk): await async command dispatch before asserting query_request by @Yeachan-Heo in #3512
  • fix(coding-agent): follow CLAUDE_CONFIG_DIR and CODEX_HOME when importing credentials by @Dayoooun in #3513

New Contributors

Full Changelog: v0.12.0...v0.12.1