diff --git a/CHANGELOG.md b/CHANGELOG.md index 16712cd2c..4279bdf6c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,54 +20,40 @@ release that deserves narration. Passing `--notes ` overrides both for the GitHub body. Sections below this line predate generation and were written by hand. -## [0.3.38] - 2026-10-13 - -Written by hand, ahead of the cut, because this range changes behavior you may -already be relying on. - -### What changed for you - -**`ask_director` now requires a typed `escalation` assessment (#1394).** The -compatibility-sensitive change in this release: calls that omit `escalation` -now fail with an error instead of parking a question. The argument carries -`policyVersion`, `classification`, and the seven required facts. One of five -classifications decides what happens next: `routine`, and -`director_resolvable` with a comparable confidence alternative, continue -internally without parking; `operator_decision_required`, -`irreversible_or_sensitive`, and `outcome_blocked` always park the question -with the parent or the operator, even when a listed alternative claims -comparable confidence. The seven facts force a real accounting of what is -blocked, what was tried, and what declining the ask costs. - -**Permission cards now offer "Reject and stop" (#1388).** A standing second -row on every permission card, between Reject and Accept once: a plain deny -with no grant — it never picks up a persistable scope — that aborts the -in-flight turn and auto-denies any gates queued behind it. Ctrl+C shares the -same path instead of resuming the run. - -**`web_fetch` and `web_search` now auto-allow in auto mode (#1412).** Auto -mode is on by default, and these two read tools now execute under it without a -prompt; outside auto mode they still ask. State of the permissions surface, -plainly: if you want the prompts back, pass `--no-auto` to start in ask mode. - -Also in this release: - -- Subagents that fail or are cancelled now carry a typed terminal failure - record — `failure_class`, recovery availability with a typed reason, attempt - number — written once, never rewritten, so `wait_agents`, `list_agents`, and - mailbox mail cannot disagree and recovery is actionable (#1391). -- Concurrent sessions and compacted transcripts share one authoritative - session log: concurrent writers on one directory cannot duplicate sequence - numbers or interleave entries (#1408, #1413). -- Codex parallel tool calls replay arguments from `output_item.done` for - backends that never stream them as deltas, so calls no longer assemble as - `{}` (#1414). -- Parked `ask_director` questions expire after 30 minutes and settle with a - timeout error instead of waiting forever (#1389). -- Timed stalls on parked workers are bounded: the ask deadline sits at twice - the stall abort bound, so a re-surfaced wake turn gets a full cycle to prove - the parent alive (#1387). -- Docs updated for all of the above (#1416). +## [0.3.38] - 2026-10-14 + +### What's Changed +* fix(subagent): apply the latest wrap's sources on continuation OAuth refresh by @TheGreatAxios in https://github.com/corbitsdev/corbits-code/pull/1397 +* refactor(session): drop dead compactor config, branch, and aliases by @TheGreatAxios in https://github.com/corbitsdev/corbits-code/pull/1398 +* refactor(config): drop dead guards and duplicate profile expression by @TheGreatAxios in https://github.com/corbitsdev/corbits-code/pull/1399 +* refactor(permission): drop dead params and duplicate helpers by @TheGreatAxios in https://github.com/corbitsdev/corbits-code/pull/1402 +* refactor(session): replace compactorNoOpFloor with a constant by @TheGreatAxios in https://github.com/corbitsdev/corbits-code/pull/1401 +* refactor(config): extract shared apiKey helper by @TheGreatAxios in https://github.com/corbitsdev/corbits-code/pull/1400 +* refactor(scripts): dedupe percentile and release helpers by @TheGreatAxios in https://github.com/corbitsdev/corbits-code/pull/1403 +* refactor(packages): drop no-op export, dedupe helpers by @TheGreatAxios in https://github.com/corbitsdev/corbits-code/pull/1404 +* refactor(tui): drop dead notice field, dedupe helpers by @TheGreatAxios in https://github.com/corbitsdev/corbits-code/pull/1405 +* feat(permission): auto-approve web search and fetch in edit mode by @TheGreatAxios in https://github.com/corbitsdev/corbits-code/pull/1412 +* fix(session): concurrent sessions write disjoint transcripts by @TheGreatAxios in https://github.com/corbitsdev/corbits-code/pull/1408 +* perf(agent): memoize toolSetDigest per tool set by @TheGreatAxios in https://github.com/corbitsdev/corbits-code/pull/1410 +* fix(provider): align opencode-go model protocols with zen and upstream by @TheGreatAxios in https://github.com/corbitsdev/corbits-code/pull/1409 +* fix(session): keep concurrent transcripts on the shared log by @TheGreatAxios in https://github.com/corbitsdev/corbits-code/pull/1413 +* refactor(session): stop excerpting the same tail turn twice in turnCost by @TheGreatAxios in https://github.com/corbitsdev/corbits-code/pull/1407 +* feat(session): flag-gated append-only session event log by @TheGreatAxios in https://github.com/corbitsdev/corbits-code/pull/1406 +* feat(tui): show parked worker questions on the prompt box by @bwachman in https://github.com/corbitsdev/corbits-code/pull/1389 +* fix(provider): recover Codex parallel call arguments sent only on done by @bwachman in https://github.com/corbitsdev/corbits-code/pull/1414 +* feat(tui): show required operator input at the composer by @bwachman in https://github.com/corbitsdev/corbits-code/pull/1393 +* feat(subagent): codify outcome-aware worker escalation policy by @bwachman in https://github.com/corbitsdev/corbits-code/pull/1394 +* feat(tui): show accepted-but-unread queued input by @bwachman in https://github.com/corbitsdev/corbits-code/pull/1395 +* feat(tui): add Reject and stop to the permission prompt by @bwachman in https://github.com/corbitsdev/corbits-code/pull/1388 +* docs(tui): state and pin the bounded ask_director stall policy by @bwachman in https://github.com/corbitsdev/corbits-code/pull/1387 +* feat(tui): surface off-tag build identity in version badge by @bwachman in https://github.com/corbitsdev/corbits-code/pull/1390 +* feat(subagent): classify terminal subagent failures with typed record by @bwachman in https://github.com/corbitsdev/corbits-code/pull/1391 +* feat(subagent): enforce one recovery per failure via spawn_agent by @bwachman in https://github.com/corbitsdev/corbits-code/pull/1392 +* fix(subagent): attach the send_input followup reply after an interrupt by @TheGreatAxios in https://github.com/corbitsdev/corbits-code/pull/1415 +* docs(fleet): document behavior changes that landed undocumented since v0.3.37 by @TheGreatAxios in https://github.com/corbitsdev/corbits-code/pull/1416 +* docs(changelog): narrate the 0.3.38 release changes by @TheGreatAxios in https://github.com/corbitsdev/corbits-code/pull/1417 +* chore(release): corbits 0.3.38 by @TheGreatAxios in https://github.com/corbitsdev/corbits-code/pull/1418 + **Full Changelog**: https://github.com/corbitsdev/corbits-code/compare/v0.3.37...v0.3.38