Skip to content

Commit b272963

Browse files
Merge pull request #583 from corbitsdev/cl-release-0-2-106-changelog-backfill
Backfill 0.2.106 release notes
2 parents 319cfa1 + e725624 commit b272963

1 file changed

Lines changed: 67 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,73 @@ parallel copies under `docs/` or `scripts/notes/`. At cut time: rename
1717

1818
### Agent
1919

20+
- **`apply_patch` can update files again.** Its Update operation read the target
21+
through the line-numbered `read_file` view and then tried to match the patch's
22+
raw context lines against it, so every context-bearing update failed with
23+
"failed to find expected lines in file." Updates now read the file's real
24+
content. This was the codex-family edit path, and its most likely symptom was
25+
the model retrying the identical patch.
26+
27+
- **A worker that succeeds is no longer refused on its next dispatch.** Salvage
28+
classification matched free-text substrings, so a finished report whose Summary
29+
merely mentioned "no progress," "cancelled," or "long silence" was recorded as a
30+
forced stop and blocked an identical re-dispatch for the rest of the session.
31+
Classification is now exact. A parallel wave where one worker salvages and
32+
another succeeds also stops leaving the brief blocked.
33+
34+
- **Large files read in one pass instead of many.** A truncated `read_file` now
35+
returns a continuation handle that resumes exactly where it stopped, rather
36+
than telling the model to re-read the same path at a new offset. Following a
37+
spent handle explains what happened and names the file and offset to resume
38+
from, instead of a bare "not found."
39+
40+
- **Edits show what changed.** `edit_file`, `write_file`, `delete_file`, and
41+
`apply_patch` return a bounded diff of the change, so nothing needs a
42+
verification read to confirm the edit landed. The harness already re-read and
43+
compared after every write; that result now reaches the operator and the model.
44+
45+
- **Reasoning survives resume, and corrected retries win.** On the Responses
46+
adapters, reasoning items were dropped whenever a turn carried no model field —
47+
including on resume — while the tool calls they produced were kept, a shape
48+
known to degenerate reasoning models. Duplicate tool results also kept the
49+
stale first copy, discarding a corrected retry. Tool names now route through
50+
the wire-safe codec on all three adapters.
51+
52+
- **Compaction stops discarding the prompt cache.** Compacted prompt prefixes are
53+
byte-stable across passes, so a compaction no longer invalidates the cache in
54+
full, and a shallow reclaim no longer re-triggers compaction immediately.
55+
56+
- **Per-model loop visibility.** Mid-stream degenerate-repetition aborts are
57+
recorded per detector with the measured value beside its threshold, so the loop
58+
rate can be read per model instead of inferred.
59+
60+
### Interface
61+
62+
- **The context meter tells the truth after `/new`, `/clear`, and compaction.**
63+
It resets rather than reporting pre-clear usage, and re-syncs to the compacted
64+
size rather than blanking to zero.
65+
66+
- **Compaction is visible when it happens.** Folding turns away now shows in the
67+
TUI instead of the transcript quietly shrinking.
68+
69+
- **The status indicator no longer flashes "awaiting response" mid-fan-out.**
70+
During parallel tool calls the first tool to finish used to mark the turn idle
71+
while its siblings were still running.
72+
73+
### Safety
74+
75+
- **Connecting a provider verifies the token can actually be used.** OAuth
76+
onboarding completed on tokens carrying no API scope, so the first real request
77+
failed in a way that looked like a Corbits bug. Onboarding now probes the
78+
provider and blocks with an actionable message when the token definitively
79+
lacks access — a network failure or rate limit does not block.
80+
81+
- **Approval volume is measurable.** Every permission ask and how it settled is
82+
recorded — tool, rule, mode, outcome, and timings, with no command text, path,
83+
or argument in the record — with `bun run scripts/approval-forensics.ts` to
84+
read it back.
85+
86+
2087
- **Resuming a session no longer shows a blank error when the saved history
2188
has one corrupted line.** A malformed or schema-invalid line anywhere in the
2289
saved transcript used to abort the entire resume load. The TUI's resume view

0 commit comments

Comments
 (0)