You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -45,6 +45,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
45
45
### Changed
46
46
47
47
-**Docs**: README, developer setup, build guide, and `.env.release.example` now document the setup and cross-platform release automation paths.
48
+
-**Plans panel — Rules-style card UI**: the right-panel Plans tab now mirrors the Rules card flow with inline create/view/edit, header edit toggle, grouped state filters, task-state chips, and compact per-card status lines instead of the old split list/editor layout.
-**Command palette shortcut**: tmux-style chord moved from `Ctrl+B :` to `Ctrl+B p`. To free `p`, `ToggleRightPanel` (formerly `Ctrl+B p`) was reassigned to `Ctrl+B r`. Classic-mode shortcuts (`Ctrl+Shift+P` palette, `Ctrl+P` side panel) unchanged. Hint strings in `en_us.rs` / `de_de.rs` updated.
50
51
-**Subagent card polish**: dedicated CSS for the subagent timeline group — name and status now separated by a baseline-aligned `gap` (no more `scanblocked` run-together), font sizes shrunk (`0.7rem` name / `0.62rem` status / `0.68rem` summary / `0.64rem` tools), default `<details>` marker hidden in favour of the existing chevron pattern.
@@ -53,6 +54,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
53
54
54
55
### Fixed
55
56
57
+
-**Plans panel polish**: fixed new-plan composer scroll anchoring so the composer is visible immediately after pressing `+`, centered wrapped plan-state filter rows, and added a visible header edit/preview toggle for plan cards.
56
58
-**Azure tool-name validation**: tool names containing `.` (`subagents.run`, `harness.create_workspace`, `harness.open_terminal`, `harness.list_terminals`, `harness.send_terminal_keys`, `harness.send_agent_context`, `harness.read_terminal_output`) failed Azure's `^[a-zA-Z0-9_-]+$` regex when OpenRouter routed to an Azure-hosted model (`invalid_request_error` on `input[N].name`). The OpenAI-compatible tool catalog now sanitizes `.` → `_` at render time via `sanitize_openai_tool_name`, and inbound `tool_calls` are mapped back to the internal dotted form via `openai_tool_name_to_internal` before dispatch. Assistant-message replay keeps the sanitized form, matching provider expectations. Anthropic path's existing `to_anthropic_name` / `from_anthropic_name` unchanged.
57
59
-**Project Explorer flicker on chat updates**: the file-tree on the left was wiping its `children_cache` and reloading every time the agent panel pushed a `TimelineItem` (chat delta, tool result, …). Root cause was a Memo that returned the full `WorkspaceEntry` — any field change, including the timeline, invalidated it. Memo narrowed to project `Option<(id, cwd, configuring)>`, so unrelated workspace state no longer triggers a reload. Mirrors the same fix previously applied to the Git History sidebar.
58
60
-**Subagents reporting "no file-system tools were provisioned"**: subagents would fail with `blocked` claiming their tool schema was empty even when they had `workspace_read` in their role defaults. Root cause was `parse_allowed_groups` silently dropping any string the coordinator invented in `subagents.run`'s `allowedToolGroups` argument — `["file_access", "files", "workspace"]` would all parse to `[]`, leaving the subagent with only `submit_result` in its schema. The model was reporting honestly; the catalog really was empty. Fix combines schema-level `enum` constraint, a strict parser that surfaces unknown names, fallback to role defaults when nothing parses, a startup `Provisioned N tool(s)` diagnostic, and the existing prompt-level "you DO have file-system access" guard. Backed by a regression test (`no_subagent_reachable_group_contains_dotted_tool_names`) that asserts no subagent-reachable group exposes dotted tool names, so the Azure `.` sanitization can stay coordinator-only.
0 commit comments