Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 34 additions & 48 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,54 +20,40 @@ release that deserves narration. Passing `--notes <file>` 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

Expand Down
Loading