Skip to content

Commit 46f3902

Browse files
committed
feat(plans): enhance Plans panel with improved UI for rules-style card flow and polish new-plan composer functionality
1 parent cb41758 commit 46f3902

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4545
### Changed
4646

4747
- **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.
4849
- **Dependencies**: upgraded `leptos` 0.7 → 0.8, `leptos_icons` 0.5 → 0.7, `icondata` 0.5 → 0.7. Leptos 0.8 is backward-compatible for the signal / effect / callback / event-listener APIs in use; only Lucide icon renames required code changes (`LuFileEdit → LuFilePenLine`, `LuPlusCircle → LuCirclePlus`, `LuSendHorizonal → LuSendHorizontal`, `LuAlertTriangle → LuTriangleAlert`, `LuTerminalSquare → LuSquareTerminal`, `LuPlayCircle / LuAlertCircle / LuCheckCircle / LuMinusCircle → LuCircle*` variants).
4950
- **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.
5051
- **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
5354

5455
### Fixed
5556

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.
5658
- **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.
5759
- **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.
5860
- **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

Comments
 (0)