Skip to content

Commit e6b8440

Browse files
Merge pull request #946 from corbitsdev/release-0.3.23
Release corbits 0.3.23
2 parents dcd1a8e + 1e7442d commit e6b8440

4 files changed

Lines changed: 52 additions & 4 deletions

File tree

CHANGELOG.md

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,19 @@ 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.23] - 2026-09-12
15+
16+
### Added
17+
18+
- Malformed plugin manifests now surface a warning instead of loading
19+
silently; a missing manifest stays silent. Swallowed plugin-load errors are
20+
logged for diagnosis.
21+
- Expanded coalesced transcript lanes show a per-call subject, so grouped tool
22+
rows stay attributable to the file or pattern each call touched.
23+
- Greybeard review checklist restored in Corbits idiom: verdict-scoped checks
24+
in checklist order.
25+
- Gaasbot CTO voice restored from the GaaS original; still advisory-only, not
26+
a gate.
1527

1628
### Changed
1729

@@ -23,13 +35,42 @@ parallel copies under `docs/` or `scripts/notes/`. At cut time: rename
2335
- Headless `corbits exec` unmounts `ask_operator` when stdin/stdout are not
2436
TTYs instead of advertising a cancel stub. TUI Skywalker still mounts it;
2537
TTY exec still prompts on stdin.
38+
- Provider `contextWindow` settings now drive occupancy, compaction, and the
39+
status-bar meter. The same setting no longer changes the per-request output
40+
budget, which keeps the shared default.
41+
- Sub-agent leaf reports always render all four headings (Summary, Findings,
42+
Blockers, Paths), with `None.` under headings that have nothing to report.
43+
- A repo-committed `.corbits/permissions.json` no longer auto-allows tool
44+
calls. Each grant needs a one-time operator confirmation per project, and
45+
the first encounter surfaces what the file would grant.
2646

2747
### Removed
2848

2949
- Profile files no longer accept a `workflow` field. Workflows start only from
3050
slash commands; a leftover key is rejected on load rather than ignored. The
3151
`--no-workflow` CLI flag is unchanged.
3252

53+
### Fixed
54+
55+
- A second same-category credential error in one session no longer fails the
56+
session on a duplicate error record.
57+
- A model tool call truncated mid-JSON now fails the turn with an actionable,
58+
retryable error instead of dispatching garbled arguments.
59+
- An unspaced `&` (`a &b`) now splits into two approval segments, so a
60+
standing grant for the head command no longer covers a hidden payload.
61+
Redirects (`2>&1`, `&>`, `<&-`) are unaffected.
62+
- Runs interrupted while waiting for admission settle through the normal
63+
terminal path instead of stranding.
64+
- Internal agent traffic (occupancy wakes and similar system messages) no
65+
longer paints as operator rows in the transcript.
66+
- Approval overlays on short terminals keep a closed border and at least one
67+
visible choice instead of collapsing below their minimum size.
68+
- The MCP authorization marker survives a browser-timeout re-auth cycle
69+
instead of being dropped.
70+
- A missing or unreadable agent-plugin prompt file now surfaces a warning
71+
naming the plugin, agent, and path instead of silently loading the profile
72+
without its system prompt.
73+
3374
## [0.3.22] - 2026-09-11
3475

3576
### Added

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@corbits/code",
3-
"version": "0.3.22",
3+
"version": "0.3.23",
44
"description": "Single-process coding agent CLI built on the Interchange runtime (Bun + TypeScript)",
55
"private": true,
66
"license": "SEE LICENSE IN LICENSE.md",

src/agent/directors/greybeard/package.test.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,9 @@ describe("greybeardPackage", () => {
4141
expect(checklistIdx).toBeGreaterThan(-1);
4242
const checklist = p.slice(checklistIdx);
4343
const claimIdx = checklist.search(/architectural claim/);
44-
const ownershipIdx = checklist.search(/constraint ownership|owns constraints/i);
44+
const ownershipIdx = checklist.search(
45+
/constraint ownership|owns constraints/i,
46+
);
4547
const holesIdx = checklist.search(/anti-patterns/);
4648
const risksIdx = checklist.search(/Rank risks/);
4749
const verdictIdx = checklist.search(/hold \/ revise \/ block/);

src/subagent/spawn-agent-worktree.test.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -524,7 +524,12 @@ describe("spawn_agent worktree isolation", () => {
524524
expect(
525525
sessions
526526
.list()
527-
.every((s) => !isLiveWaitStatus(projectWaitStatus(s.lifecycle, s.runInFlight === true))),
527+
.every(
528+
(s) =>
529+
!isLiveWaitStatus(
530+
projectWaitStatus(s.lifecycle, s.runInFlight === true),
531+
),
532+
),
528533
).toBe(true);
529534
await waitFor(() => events.some((event) => event.event === "subagent_end"));
530535
const ends = events.filter((event) => event.event === "subagent_end");

0 commit comments

Comments
 (0)