Skip to content

Commit d7ac15e

Browse files
committed
feat(docs): update README and plans documentation with Kanban board features and rule/skill card enhancements
1 parent d4a2b46 commit d7ac15e

4 files changed

Lines changed: 36 additions & 9 deletions

File tree

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2929
- **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.
3030
- **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.
3131
- **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.
3236

3337
### Changed
3438

3539
- **Docs**: README, developer setup, build guide, and `.env.release.example` now document the setup and cross-platform release automation paths.
3640
- **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).
41+
- **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.
3743

3844
### Fixed
3945

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.
48+
4049
### Removed
4150

4251

docs/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ Welcome to the BLXCode docs. User guides explain how to run and use the app; dev
2727
- [Getting Started](user/getting-started.md) — prerequisites, run BLXCode, first workspace, where data lives.
2828
- [Workspaces](user/workspaces.md) — creation, terminal grids, sidebar explorer, Git graph, handoff, persistence.
2929
- [Memory And Tasks](user/memory-and-tasks.md) — Memory panel (Files, Graph, Search), dynamic categories, tasks, agent memory tools.
30-
- [Plans](user/plans.md)`.agents/plans/`, task syntax, Plans panel, plan-linked tasks, agent tools.
31-
- [Rules And Skills](user/rules-and-skills.md)`.agents/rules/`, `.agents/skills/`, core vs user skills, install dialog.
30+
- [Plans](user/plans.md)`.agents/plans/`, Kanban board, task syntax, Plans panel, agent tools.
31+
- [Rules And Skills](user/rules-and-skills.md)expandable rule/skill cards, core vs user skills, install dialog.
3232
- [Agent Harness](user/agent-harness.md) — core skills, slim prompt, environment/shell/git/web, web API keys.
3333
- [Subagents](user/subagents.md) — parallel runs, roles, timeline, tool groups, limits.
3434
- [Keyboard Shortcuts](user/keyboard-shortcuts.md) — tmux prefix vs legacy chords, notification toasts.

docs/user/plans.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,18 @@ The panel provides:
6262

6363
On workspace activation, BLXCode restores the last active plan path (`activePlanPath` in the workbench snapshot).
6464

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+
6577
## Plan-linked tasks
6678

6779
Tasks in `.blxcode/tasks/index.json` can reference a plan:

docs/user/rules-and-skills.md

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,13 @@ Do not hand-edit `index.json` unless you know what you are doing; use the UI or
2323

2424
Open **Rules** from the right workbench rail (`LuShield` icon).
2525

26-
Each card shows:
26+
Each rule is an **expandable card** (same pattern as Skills):
2727

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/`.
3133

3234
Disabled rules are invisible to the agent — the system prompt treats them as if they did not exist.
3335

@@ -54,10 +56,14 @@ Core skills show a **core** badge. You can enable or disable them per workspace,
5456

5557
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).
5658

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 |
5866

59-
- Skill name and summary
60-
- Source badge: `core`, `git`, `npm`, `local`, or `agent`
6167
- **SKILL.md missing** warning (user skills only) when the folder has no top-level `SKILL.md`
6268
- Enable/disable; **remove** only for non-core skills
6369

0 commit comments

Comments
 (0)