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
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,14 +29,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
29
29
-**Core skills**: embedded harness skills `subagents.md`, `environment.md`, `shell.md`, `git.md`, `web.md` plus updated `file-access.md` / `harness.md` (harness-vs-shell boundary). `system_prompt.rs` skill/tool index expanded with subagent activation triggers.
30
30
-**i18n**: subagent UI states, role display names (Scout / Review / Security Analyst with auto-suffix on conflict), all new tool/environment/shell/git/web labels and the web-disabled hint added to every locale.
31
31
-**Agent chat maximize**: new maximize/minimize icon button in the agent chat header (before Reset). Toggles a compact voice hero (`agent-hero--compact`) inside the Agent right-panel tab only — smaller orb and status line, tagline hidden — so the chat log gains vertical space while Tasks, Context and compose stay visible. Session-local `chat_maximized` state (not persisted per workspace). i18n: `AgChatMaximize`, `AgChatRestore` in all locales.
32
+
-**Subagent live streaming**: subagent HTTP calls switched from non-streaming to SSE on both the OpenAI-compatible (OpenRouter / OpenAI / Azure-routed) and Anthropic paths. New `AgentEvent::Subagent{AssistantDelta,ThinkingDelta,ThinkingDone}` events stream the model's text + reasoning per agent. `SubagentCard` gained `live_text` / `live_thinking` / `thinking_done` fields (tolerant serde for older snapshots), the card renders a collapsible Thinking block, a live assistant-text pre-block, and a pulsing three-dot indicator while `status == "running"`. Buffers are cleared on `SubagentFinished` so the final `summary` takes over.
33
+
-**Subagent tool inventory in prompt**: subagent system prompt now lists the actually-provisioned tools grouped by purpose (Workspace, Diffs, Git, Memory, Plans, Tasks, Rules & Skills, Web) — generated from `registry_filtered` so the prompt cannot drift from the schema. Adds an explicit anti-hallucination clause directing the subagent to attempt `list_workspace_files` / `read_workspace_file` before claiming a lack of tools. Stops weaker models from instantly returning `blocked`.
34
+
-**Timeline tool-call compaction**: consecutive identical tool calls in the chat timeline collapse into a single row with a live `×N` counter badge that grows as new calls stream in. Expand chevron reveals each invocation's args + detail in a sub-list. Single-call rows keep the prior layout; merged rows aggregate status (any pending → pending, any fail → fail, else ok).
35
+
-**Tool group horizontal wrap**: `.agent-tool-group` switched from vertical stack to `flex-direction: row` with `flex-wrap: wrap`, so consecutive tool-call chips sit side-by-side and only wrap when the chat column runs out of width.
32
36
33
37
### Changed
34
38
35
39
-**Docs**: README, developer setup, build guide, and `.env.release.example` now document the setup and cross-platform release automation paths.
-**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.
42
+
-**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.
37
43
38
44
### Fixed
39
45
46
+
-**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.
47
+
-**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.
Copy file name to clipboardExpand all lines: docs/user/plans.md
+12Lines changed: 12 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -62,6 +62,18 @@ The panel provides:
62
62
63
63
On workspace activation, BLXCode restores the last active plan path (`activePlanPath` in the workbench snapshot).
64
64
65
+
## Kanban board view
66
+
67
+
Switch the Plans toolbar to **Kanban** (alongside **Editor** and **Preview**).
68
+
69
+
- Aggregates tasks from all plan files in the workspace (`PLANS.md` index is excluded).
70
+
-**Free tasks** without `planPath` stay in the Agent task list only — not on the board.
71
+
- Columns match task statuses: pending, in progress, blocked, completed, cancelled.
72
+
-**Drag cards** between columns to change status; BLXCode writes the matching `[ ]` / `[>]` / `[!]` / `[x]` / `[-]` marker back into the plan Markdown.
73
+
-**Drag columns** to reorder; hide or show empty columns. Layout persists in `.blxcode/kanban/index.json`.
74
+
75
+
Quick-add and delete actions on cards keep the board and plan files in sync. When a card’s task is mirrored in `.blxcode/tasks/`, status updates best-effort sync there too.
76
+
65
77
## Plan-linked tasks
66
78
67
79
Tasks in `.blxcode/tasks/index.json` can reference a plan:
Copy file name to clipboardExpand all lines: docs/user/rules-and-skills.md
+13-7Lines changed: 13 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,11 +23,13 @@ Do not hand-edit `index.json` unless you know what you are doing; use the UI or
23
23
24
24
Open **Rules** from the right workbench rail (`LuShield` icon).
25
25
26
-
Each card shows:
26
+
Each rule is an **expandable card** (same pattern as Skills):
27
27
28
-
- Title and summary from the rule file
29
-
-**Enabled** / **Disabled** pill
30
-
- Toggle, read, and remove controls
28
+
| Collapsed | Expanded |
29
+
|-----------|----------|
30
+
| Title, summary, **Enabled** / **Disabled** pill, enable toggle | Full rule body (Markdown), inline **edit** and save, remove |
31
+
32
+
Use **Create rule** at the top of the tab to add a new `rule-*.md` file. The form validates name and body before writing to `.agents/rules/`.
31
33
32
34
Disabled rules are invisible to the agent — the system prompt treats them as if they did not exist.
33
35
@@ -54,10 +56,14 @@ Core skills show a **core** badge. You can enable or disable them per workspace,
54
56
55
57
The **web** core skill may show **disabled_no_key** when no Tavily/Brave API key is configured — configure keys under Harness settings → Agent → Web Tools ([Agent Harness](agent-harness.md)). The **subagents** core skill documents `subagents.run` — see [Subagents](subagents.md).
56
58
57
-
Each card shows:
59
+
Use the **Core** / **User** pill tabs at the top of the panel (counts per tab).
60
+
61
+
Each skill is an **expandable card**:
62
+
63
+
| Collapsed | Expanded |
64
+
|-----------|----------|
65
+
| Name, summary, source badge (`core`, `git`, `npm`, `local`, `agent`), enable switch | Lazy-loaded `SKILL.md` body on first expand |
58
66
59
-
- Skill name and summary
60
-
- Source badge: `core`, `git`, `npm`, `local`, or `agent`
61
67
-**SKILL.md missing** warning (user skills only) when the folder has no top-level `SKILL.md`
62
68
- Enable/disable; **remove** only for non-core skills
0 commit comments