diff --git a/CHANGELOG.md b/CHANGELOG.md index c63209b8..c191af42 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,15 @@ The release workflow uses a tag's section here as its release notes (a hand-written `docs/releases/.md` wins if present), so keeping this file current is part of cutting a release. +## v0.302.47 + +- When a compaction can't get the context under the compaction point, the next one waits for real growth instead of running on every step (#1686). +- The shared-tree checkpoint covers every live peer at once and forgets exited ones, so a re-issued call goes through (#1622). +- `peer_message send` takes `fyi: true`: an informational update stays in the inbox without waking the recipient, and the inbox no longer asks for a reply to everything (#1137). +- A transient shell-handle reservation failure is retried and names its cause; only storage faults point at HOME's permissions (#1619). +- `--json` mode pairs every `model_call_started` with a `model_call_finished`; a retried attempt closes with `retried: true` (#1665). +- Retains all changes from v0.302.46. + ## v0.302.46 - Images attached over ACP now reach the hosted default models; graff dropped them before the model saw them. diff --git a/docs/releases/v0.302.47.md b/docs/releases/v0.302.47.md new file mode 100644 index 00000000..2ea0eeb2 --- /dev/null +++ b/docs/releases/v0.302.47.md @@ -0,0 +1,8 @@ +# v0.302.47 + +- **Compaction stops repeating when it can't make room.** When a compaction left the context still over the compaction point, the next step compacted again. A turn could spend most of an hour compacting and rereading the same files (#1686). Now the next compaction waits until the context has grown by a twentieth of the window. The server's in-stream compaction waits too. Near the 95% wall it still compacts as before. +- **The shared-tree checkpoint lets a re-issued call through.** The checkpoint remembered at most 16 acknowledged peers and never forgot one that had exited. With peers respawning, every mutating call was refused for good, and each re-issue named a different peer (#1622). One checkpoint now covers every peer live at that moment, and peers that are gone are forgotten. +- **Informational peer mail doesn't start a turn.** `peer_message send` takes `fyi: true` for a status or scope update that needs nothing from the recipient. It stays readable in the inbox but never wakes an idle session on its own. Reading the inbox no longer tells the model to reply unconditionally (#1137). +- **Shell handle failures name their cause.** A transient failure to reserve a durable shell handle is retried. If it still fails, the error says why. Only a real storage fault points at HOME's permissions (#1619). +- **Every model call start has a finish.** In `--json` mode, a request rebuilt before its response (a WebSocket reanchor, a stream reconnect, a steer) now closes the earlier attempt with `ok: false, retried: true`. A request that ends in an error closes with `ok: false` (#1665). +- Retains all changes from v0.302.46. diff --git a/src/cli.zig b/src/cli.zig index 58e2a1e8..12678630 100644 --- a/src/cli.zig +++ b/src/cli.zig @@ -24,6 +24,11 @@ const update_target = @import("update_target.zig"); pub const changelog_text = \\What's new \\────────── + \\0.302.47 + \\ • compaction waits instead of repeating when it can't make room + \\ • the shared-tree checkpoint lets a re-issued call through + \\ • fyi peer mail stays in the inbox without starting a turn + \\ \\0.302.46 \\ • images over ACP reach the hosted default models \\ • a worker keeps its report when its state can't be saved