Skip to content

Commit d19c4b4

Browse files
Document 0.3.21 in the changelog (#913)
1 parent c07c978 commit d19c4b4

1 file changed

Lines changed: 41 additions & 9 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 41 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,23 @@ matching `## [X.Y.Z]` section (plus install instructions). Do not maintain
1111
parallel copies under `docs/` or `scripts/notes/`. At cut time: rename
1212
`## [Unreleased]` to `## [X.Y.Z] - YYYY-MM-DD`, then run the release script.
1313

14-
## [Unreleased]
14+
## [0.3.21] - 2026-09-11
1515

16-
### Fixed
16+
### Added
17+
18+
- `tool_search`-activated tools persist in `run.json` and are re-advertised
19+
after resume, rebuild, and compaction. Per-project `pinnedTools` in
20+
`.corbits/settings.json` keeps chosen MCP tools on the wire without
21+
activation. Registered-but-unadvertised calls error toward `tool_search`
22+
instead of silent dispatch.
23+
- Repeated identical tool batches warn in the transcript before the doom-loop
24+
guard kills the run.
25+
26+
### Changed
1727

18-
- A stalled worker now gets a full `stallTimeoutMs` grace after the first
19-
continuation nudge before salvage — stall pings queued inside that window
20-
wait instead of counting toward escalation.
28+
- A named profile file that is missing fails closed instead of falling
29+
through. Resume-picker docs match the unfiltered recent-10 list. Grok
30+
model-family policy docs match the runtime.
2131

2232
### Removed
2333

@@ -26,11 +36,33 @@ parallel copies under `docs/` or `scripts/notes/`. At cut time: rename
2636

2737
### Fixed
2838

39+
- Stalled workers get a full `stallTimeoutMs` grace after the first
40+
continuation nudge before salvage. Stall pings inside that window wait
41+
instead of counting toward escalation. Mailbox mail re-flushes from the
42+
fleet stall poll. Dry-fleet occupancy still delivers inbound mail.
2943
- Stale `running` sessions age to `interrupted` after two missed 5-minute
30-
heartbeats, leftover newer parseable `run.json.*.tmp` files recover by mtime
31-
over a stale `run.json`, and resume persists `interrupted` before reopening
32-
as `running`. Signals stay `failed`; missing or unreadable state stays
33-
`crashed`.
44+
heartbeats. Leftover newer parseable `run.json.*.tmp` files recover by
45+
mtime. Resume persists `interrupted` before reopening as `running`. Crash
46+
and signal finalizers keep `turnsUsed`.
47+
- Subagent follow-up and interrupt are race-safe. Queued messages recover
48+
when the target agent closes. Retryable worker failures retry once.
49+
Pending sub-agent nudges append onto existing ephemeral turns. Pending
50+
poll batches are exempt from the doom-loop guard. Non-fatal reactor
51+
errors continue; empty extra session segments do not skip a real
52+
checkpoint.
53+
- Auto mode treats bash combined file redirects as mutations. The agent
54+
cannot persist its own shell grants into the standing approval store.
55+
Operators are not asked to approve a path the sandbox will reject.
56+
Same-process credential writes queue so each gets its own lock window.
57+
- Compaction summarizer is bounded and retried once per failure class.
58+
Torn write tails heal; failed rewrite commits stay on HEAD. A prompt
59+
submitted before `/clear` does not land in the new session. Quoted
60+
image-path mentions keep whitespace and drop false-positive matches.
61+
Relative filenames in prose quotes do not mint root-path mentions.
62+
- Assistants that print tool-call markup as text get one nudge. Consecutive
63+
tool-failure recovery audits coalesce. Concurrent mutating lane-overlap
64+
warnings rate-limit. OpenCode Go worker session IDs forward without a
65+
catalog. Attributable xAI capacity protocol mismatches retry.
3466

3567

3668
## [0.3.20] - 2026-09-10

0 commit comments

Comments
 (0)