Skip to content

feat(vscode): add shared agent board reader and reset - #13782

Merged
marius-kilocode merged 4 commits into
mainfrom
add-session-board-view-and-reset
Sep 8, 2026
Merged

marius-kilocode merged 4 commits into
mainfrom
add-session-board-view-and-reset

Conversation

@marius-kilocode

@marius-kilocode marius-kilocode commented Sep 4, 2026 •

Copy link
Copy Markdown
Collaborator

What Problem This Solves

Shared-agent board messages are available to agents, but the owning session has no direct way to read the full discussion. Long exchanges are difficult to inspect through individual tool results, and a stale board cannot be cleared without disrupting resumed agents' cursors.

Why This Change Was Made

Add a single Board action to the session header, shown only when experimental.shared_agent_board is enabled and the board has messages. It opens a larger chronological reader and loads older history automatically in bounded requests. Sender/recipient rows, task and broadcast icons, tooltips, and Markdown reuse the same components as board tool cards.

The observer is read-only: opening the reader does not create a board or mark messages as agent-read. Reset is owner- and directory-scoped, requires confirmation, and rejects a changed revision. It advances the visible-history floor rather than deleting rows, so existing message IDs, cursors, replies, and retried posts remain valid. Conversations and running agents are unchanged. Archived records remain stored; this is not permanent deletion or storage reclamation.

User Impact

  • No Board control for disabled features, empty boards, child sessions, or read-only views.
  • A distinct header icon opens a readable history without manual page controls.
  • Loading older entries preserves the current reading position, including scrolling while a request is pending.
  • Failed resets remain visible and require a refresh before another confirmation.
  • New Local/worktree sessions can resolve their board before project-route registration completes, without falling back to another project.

Evidence

Validated against the PR base: extension compile/typecheck/lint, 4,846 extension unit tests, 65 board/runtime/API tests, 4 migration tests, and 10 focused browser tests. Strict HTTP API coverage and auth checks cover all 331 scenarios, including both board endpoints. Migration consistency, unused-export, source-link, and annotation checks pass. The browser suite ran on an isolated port to avoid another worktree's Storybook server.

CI also exposed Windows path representation differences and npm audit requests in two local-file test fixtures. Board directory checks now compare canonical paths while still rejecting neighboring worktrees. Only those test fixtures disable audit networking; production npm behavior is unchanged. The full local core suite passes with the unrelated local AWS profile unset (1,319 passed, 26 platform skips).

Manual VS Code checks covered hidden empty boards, directed and broadcast messages, long-history loading, keyboard navigation, and reset. Screenshots use isolated fixture data without real credentials. The standalone kilo-ui story typecheck has unrelated existing story-typing errors; the extension typecheck covers the shared renderer used here.

Board reader

Shared board reader with directed and broadcast agent messages

An empty board does not add a header control

Session header with no Board button when the board is empty

@kilo-code-bot

kilo-code-bot Bot commented Sep 4, 2026 •

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (2 files)
  • packages/kilo-vscode/tests/swarm-board.spec.ts
  • packages/kilo-vscode/webview-ui/src/components/chat/SwarmBoard.tsx
Previous Review Summaries (5 snapshots, latest commit e089f5c)

Current summary above is authoritative. Previous snapshots are kept for context only.

Previous review (commit e089f5c)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (2 files)
  • packages/kilo-vscode/tests/swarm-board.spec.ts
  • packages/kilo-vscode/webview-ui/src/components/chat/SwarmBoard.tsx

Previous review (commit d7b368b)

Status: 1 Issue Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 0
Issue Details (click to expand)

WARNING

File Line Issue
packages/kilo-vscode/webview-ui/src/components/chat/SwarmBoard.tsx 320 ResizeObserver is created without an element guard, so dialog close can throw and skip cleanup
Files Reviewed (67 files)
  • .changeset/swarm-session-board.md
  • packages/core/schema.json
  • packages/core/script/kilocode/migration.ts
  • packages/core/src/database/migration.gen.ts
  • packages/core/src/database/migration/20260903104806_kilocode_board_reset.ts
  • packages/core/src/database/schema.gen.ts
  • packages/core/src/kilocode/board/sql.ts
  • packages/core/test/kilocode/board/migration.test.ts
  • packages/core/test/npm.test.ts
  • packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/chat/board-closed-chromium-linux.png
  • packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/chat/board-empty-chromium-linux.png
  • packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/chat/board-open-chromium-linux.png
  • packages/kilo-ui/package.json
  • packages/kilo-ui/src/components/basic-tool.css
  • packages/kilo-ui/src/components/board-message.css
  • packages/kilo-ui/src/components/board-message.tsx
  • packages/kilo-ui/src/components/message-part.tsx
  • packages/kilo-ui/src/styles/index.css
  • packages/kilo-vscode/src/KiloProvider.ts
  • packages/kilo-vscode/src/kilo-provider/early-message.ts
  • packages/kilo-vscode/src/kilo-provider/session-board.ts
  • packages/kilo-vscode/tests/swarm-board.spec.ts
  • packages/kilo-vscode/tests/unit/early-message.test.ts
  • packages/kilo-vscode/tests/unit/session-board.test.ts
  • packages/kilo-vscode/webview-ui/agent-manager/AgentManagerApp.tsx
  • packages/kilo-vscode/webview-ui/src/components/chat/ChatView.tsx
  • packages/kilo-vscode/webview-ui/src/components/chat/SwarmBoard.tsx - 1 issue
  • packages/kilo-vscode/webview-ui/src/components/chat/TaskHeader.tsx
  • packages/kilo-vscode/webview-ui/src/i18n/ar.ts
  • packages/kilo-vscode/webview-ui/src/i18n/br.ts
  • packages/kilo-vscode/webview-ui/src/i18n/bs.ts
  • packages/kilo-vscode/webview-ui/src/i18n/da.ts
  • packages/kilo-vscode/webview-ui/src/i18n/de.ts
  • packages/kilo-vscode/webview-ui/src/i18n/en.ts
  • packages/kilo-vscode/webview-ui/src/i18n/es.ts
  • packages/kilo-vscode/webview-ui/src/i18n/fa.ts
  • packages/kilo-vscode/webview-ui/src/i18n/fr.ts
  • packages/kilo-vscode/webview-ui/src/i18n/it.ts
  • packages/kilo-vscode/webview-ui/src/i18n/ja.ts
  • packages/kilo-vscode/webview-ui/src/i18n/ko.ts
  • packages/kilo-vscode/webview-ui/src/i18n/nl.ts
  • packages/kilo-vscode/webview-ui/src/i18n/no.ts
  • packages/kilo-vscode/webview-ui/src/i18n/pl.ts
  • packages/kilo-vscode/webview-ui/src/i18n/ru.ts
  • packages/kilo-vscode/webview-ui/src/i18n/th.ts
  • packages/kilo-vscode/webview-ui/src/i18n/tr.ts
  • packages/kilo-vscode/webview-ui/src/i18n/uk.ts
  • packages/kilo-vscode/webview-ui/src/i18n/zh.ts
  • packages/kilo-vscode/webview-ui/src/i18n/zht.ts
  • packages/kilo-vscode/webview-ui/src/stories/chat.stories.tsx
  • packages/kilo-vscode/webview-ui/src/styles/task-header.css
  • packages/kilo-vscode/webview-ui/src/types/messages/board.ts
  • packages/kilo-vscode/webview-ui/src/types/messages/extension-messages.ts
  • packages/kilo-vscode/webview-ui/src/types/messages/index.ts
  • packages/kilo-vscode/webview-ui/src/types/messages/webview-messages.ts
  • packages/opencode/src/kilocode/board/store.ts
  • packages/opencode/src/kilocode/server/httpapi/groups/kilocode.ts
  • packages/opencode/src/kilocode/server/httpapi/handlers/kilocode.ts
  • packages/opencode/src/kilocode/server/httpapi/public.ts
  • packages/opencode/src/server/shared/workspace-routing.ts
  • packages/opencode/test/kilocode/board/store.test.ts
  • packages/opencode/test/kilocode/server/board.test.ts
  • packages/opencode/test/kilocode/server/httpapi-exercise-scenarios.ts
  • packages/opencode/test/kilocode/server/httpapi-public.test.ts
  • packages/sdk/js/src/v2/gen/sdk.gen.ts
  • packages/sdk/js/src/v2/gen/types.gen.ts
  • packages/sdk/openapi.json

Fix these issues in Kilo Cloud

Previous review (commit b04dd7f)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (67 files)
  • .changeset/swarm-session-board.md
  • packages/core/schema.json
  • packages/core/script/kilocode/migration.ts
  • packages/core/src/database/migration.gen.ts
  • packages/core/src/database/migration/20260903104806_kilocode_board_reset.ts
  • packages/core/src/database/schema.gen.ts
  • packages/core/src/kilocode/board/sql.ts
  • packages/core/test/kilocode/board/migration.test.ts
  • packages/core/test/npm.test.ts
  • packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/chat/board-closed-chromium-linux.png
  • packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/chat/board-empty-chromium-linux.png
  • packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/chat/board-open-chromium-linux.png
  • packages/kilo-ui/package.json
  • packages/kilo-ui/src/components/basic-tool.css
  • packages/kilo-ui/src/components/board-message.css
  • packages/kilo-ui/src/components/board-message.tsx
  • packages/kilo-ui/src/components/message-part.tsx
  • packages/kilo-ui/src/styles/index.css
  • packages/kilo-vscode/src/KiloProvider.ts
  • packages/kilo-vscode/src/kilo-provider/early-message.ts
  • packages/kilo-vscode/src/kilo-provider/session-board.ts
  • packages/kilo-vscode/tests/swarm-board.spec.ts
  • packages/kilo-vscode/tests/unit/early-message.test.ts
  • packages/kilo-vscode/tests/unit/session-board.test.ts
  • packages/kilo-vscode/webview-ui/agent-manager/AgentManagerApp.tsx
  • packages/kilo-vscode/webview-ui/src/components/chat/ChatView.tsx
  • packages/kilo-vscode/webview-ui/src/components/chat/SwarmBoard.tsx
  • packages/kilo-vscode/webview-ui/src/components/chat/TaskHeader.tsx
  • packages/kilo-vscode/webview-ui/src/i18n/ar.ts
  • packages/kilo-vscode/webview-ui/src/i18n/br.ts
  • packages/kilo-vscode/webview-ui/src/i18n/bs.ts
  • packages/kilo-vscode/webview-ui/src/i18n/da.ts
  • packages/kilo-vscode/webview-ui/src/i18n/de.ts
  • packages/kilo-vscode/webview-ui/src/i18n/en.ts
  • packages/kilo-vscode/webview-ui/src/i18n/es.ts
  • packages/kilo-vscode/webview-ui/src/i18n/fa.ts
  • packages/kilo-vscode/webview-ui/src/i18n/fr.ts
  • packages/kilo-vscode/webview-ui/src/i18n/it.ts
  • packages/kilo-vscode/webview-ui/src/i18n/ja.ts
  • packages/kilo-vscode/webview-ui/src/i18n/ko.ts
  • packages/kilo-vscode/webview-ui/src/i18n/nl.ts
  • packages/kilo-vscode/webview-ui/src/i18n/no.ts
  • packages/kilo-vscode/webview-ui/src/i18n/pl.ts
  • packages/kilo-vscode/webview-ui/src/i18n/ru.ts
  • packages/kilo-vscode/webview-ui/src/i18n/th.ts
  • packages/kilo-vscode/webview-ui/src/i18n/tr.ts
  • packages/kilo-vscode/webview-ui/src/i18n/uk.ts
  • packages/kilo-vscode/webview-ui/src/i18n/zh.ts
  • packages/kilo-vscode/webview-ui/src/i18n/zht.ts
  • packages/kilo-vscode/webview-ui/src/stories/chat.stories.tsx
  • packages/kilo-vscode/webview-ui/src/styles/task-header.css
  • packages/kilo-vscode/webview-ui/src/types/messages/board.ts
  • packages/kilo-vscode/webview-ui/src/types/messages/extension-messages.ts
  • packages/kilo-vscode/webview-ui/src/types/messages/index.ts
  • packages/kilo-vscode/webview-ui/src/types/messages/webview-messages.ts
  • packages/opencode/src/kilocode/board/store.ts
  • packages/opencode/src/kilocode/server/httpapi/groups/kilocode.ts
  • packages/opencode/src/kilocode/server/httpapi/handlers/kilocode.ts
  • packages/opencode/src/kilocode/server/httpapi/public.ts
  • packages/opencode/src/server/shared/workspace-routing.ts
  • packages/opencode/test/kilocode/board/store.test.ts
  • packages/opencode/test/kilocode/server/board.test.ts
  • packages/opencode/test/kilocode/server/httpapi-exercise-scenarios.ts
  • packages/opencode/test/kilocode/server/httpapi-public.test.ts
  • packages/sdk/js/src/v2/gen/sdk.gen.ts
  • packages/sdk/js/src/v2/gen/types.gen.ts
  • packages/sdk/openapi.json

Previous review (commit efa5c6f)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (67 files)
  • .changeset/swarm-session-board.md
  • packages/core/schema.json
  • packages/core/script/kilocode/migration.ts
  • packages/core/src/database/migration.gen.ts
  • packages/core/src/database/migration/20260903104806_kilocode_board_reset.ts
  • packages/core/src/database/schema.gen.ts
  • packages/core/src/kilocode/board/sql.ts
  • packages/core/test/kilocode/board/migration.test.ts
  • packages/core/test/npm.test.ts
  • packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/chat/board-closed-chromium-linux.png
  • packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/chat/board-empty-chromium-linux.png
  • packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/chat/board-open-chromium-linux.png
  • packages/kilo-ui/package.json
  • packages/kilo-ui/src/components/basic-tool.css
  • packages/kilo-ui/src/components/board-message.css
  • packages/kilo-ui/src/components/board-message.tsx
  • packages/kilo-ui/src/components/message-part.tsx
  • packages/kilo-ui/src/styles/index.css
  • packages/kilo-vscode/src/KiloProvider.ts
  • packages/kilo-vscode/src/kilo-provider/early-message.ts
  • packages/kilo-vscode/src/kilo-provider/session-board.ts
  • packages/kilo-vscode/tests/swarm-board.spec.ts
  • packages/kilo-vscode/tests/unit/early-message.test.ts
  • packages/kilo-vscode/tests/unit/session-board.test.ts
  • packages/kilo-vscode/webview-ui/agent-manager/AgentManagerApp.tsx
  • packages/kilo-vscode/webview-ui/src/components/chat/ChatView.tsx
  • packages/kilo-vscode/webview-ui/src/components/chat/SwarmBoard.tsx
  • packages/kilo-vscode/webview-ui/src/components/chat/TaskHeader.tsx
  • packages/kilo-vscode/webview-ui/src/i18n/ar.ts
  • packages/kilo-vscode/webview-ui/src/i18n/br.ts
  • packages/kilo-vscode/webview-ui/src/i18n/bs.ts
  • packages/kilo-vscode/webview-ui/src/i18n/da.ts
  • packages/kilo-vscode/webview-ui/src/i18n/de.ts
  • packages/kilo-vscode/webview-ui/src/i18n/en.ts
  • packages/kilo-vscode/webview-ui/src/i18n/es.ts
  • packages/kilo-vscode/webview-ui/src/i18n/fa.ts
  • packages/kilo-vscode/webview-ui/src/i18n/fr.ts
  • packages/kilo-vscode/webview-ui/src/i18n/it.ts
  • packages/kilo-vscode/webview-ui/src/i18n/ja.ts
  • packages/kilo-vscode/webview-ui/src/i18n/ko.ts
  • packages/kilo-vscode/webview-ui/src/i18n/nl.ts
  • packages/kilo-vscode/webview-ui/src/i18n/no.ts
  • packages/kilo-vscode/webview-ui/src/i18n/pl.ts
  • packages/kilo-vscode/webview-ui/src/i18n/ru.ts
  • packages/kilo-vscode/webview-ui/src/i18n/th.ts
  • packages/kilo-vscode/webview-ui/src/i18n/tr.ts
  • packages/kilo-vscode/webview-ui/src/i18n/uk.ts
  • packages/kilo-vscode/webview-ui/src/i18n/zh.ts
  • packages/kilo-vscode/webview-ui/src/i18n/zht.ts
  • packages/kilo-vscode/webview-ui/src/stories/chat.stories.tsx
  • packages/kilo-vscode/webview-ui/src/styles/task-header.css
  • packages/kilo-vscode/webview-ui/src/types/messages/board.ts
  • packages/kilo-vscode/webview-ui/src/types/messages/extension-messages.ts
  • packages/kilo-vscode/webview-ui/src/types/messages/index.ts
  • packages/kilo-vscode/webview-ui/src/types/messages/webview-messages.ts
  • packages/opencode/src/kilocode/board/store.ts
  • packages/opencode/src/kilocode/server/httpapi/groups/kilocode.ts
  • packages/opencode/src/kilocode/server/httpapi/handlers/kilocode.ts
  • packages/opencode/src/kilocode/server/httpapi/public.ts
  • packages/opencode/src/server/shared/workspace-routing.ts
  • packages/opencode/test/kilocode/board/store.test.ts
  • packages/opencode/test/kilocode/server/board.test.ts
  • packages/opencode/test/kilocode/server/httpapi-exercise-scenarios.ts
  • packages/opencode/test/kilocode/server/httpapi-public.test.ts
  • packages/sdk/js/src/v2/gen/sdk.gen.ts
  • packages/sdk/js/src/v2/gen/types.gen.ts
  • packages/sdk/openapi.json

Previous review (commit 00370f3)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (65 files)
  • .changeset/swarm-session-board.md
  • packages/core/schema.json
  • packages/core/script/kilocode/migration.ts
  • packages/core/src/database/migration.gen.ts
  • packages/core/src/database/migration/20260903104806_kilocode_board_reset.ts
  • packages/core/src/database/schema.gen.ts
  • packages/core/src/kilocode/board/sql.ts
  • packages/core/test/kilocode/board/migration.test.ts
  • packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/chat/board-closed-chromium-linux.png
  • packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/chat/board-empty-chromium-linux.png
  • packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/chat/board-open-chromium-linux.png
  • packages/kilo-ui/package.json
  • packages/kilo-ui/src/components/basic-tool.css
  • packages/kilo-ui/src/components/board-message.css
  • packages/kilo-ui/src/components/board-message.tsx
  • packages/kilo-ui/src/components/message-part.tsx
  • packages/kilo-ui/src/styles/index.css
  • packages/kilo-vscode/src/KiloProvider.ts
  • packages/kilo-vscode/src/kilo-provider/early-message.ts
  • packages/kilo-vscode/src/kilo-provider/session-board.ts
  • packages/kilo-vscode/tests/swarm-board.spec.ts
  • packages/kilo-vscode/tests/unit/early-message.test.ts
  • packages/kilo-vscode/tests/unit/session-board.test.ts
  • packages/kilo-vscode/webview-ui/agent-manager/AgentManagerApp.tsx
  • packages/kilo-vscode/webview-ui/src/components/chat/ChatView.tsx
  • packages/kilo-vscode/webview-ui/src/components/chat/SwarmBoard.tsx
  • packages/kilo-vscode/webview-ui/src/components/chat/TaskHeader.tsx
  • packages/kilo-vscode/webview-ui/src/i18n/ar.ts
  • packages/kilo-vscode/webview-ui/src/i18n/br.ts
  • packages/kilo-vscode/webview-ui/src/i18n/bs.ts
  • packages/kilo-vscode/webview-ui/src/i18n/da.ts
  • packages/kilo-vscode/webview-ui/src/i18n/de.ts
  • packages/kilo-vscode/webview-ui/src/i18n/en.ts
  • packages/kilo-vscode/webview-ui/src/i18n/es.ts
  • packages/kilo-vscode/webview-ui/src/i18n/fa.ts
  • packages/kilo-vscode/webview-ui/src/i18n/fr.ts
  • packages/kilo-vscode/webview-ui/src/i18n/it.ts
  • packages/kilo-vscode/webview-ui/src/i18n/ja.ts
  • packages/kilo-vscode/webview-ui/src/i18n/ko.ts
  • packages/kilo-vscode/webview-ui/src/i18n/nl.ts
  • packages/kilo-vscode/webview-ui/src/i18n/no.ts
  • packages/kilo-vscode/webview-ui/src/i18n/pl.ts
  • packages/kilo-vscode/webview-ui/src/i18n/ru.ts
  • packages/kilo-vscode/webview-ui/src/i18n/th.ts
  • packages/kilo-vscode/webview-ui/src/i18n/tr.ts
  • packages/kilo-vscode/webview-ui/src/i18n/uk.ts
  • packages/kilo-vscode/webview-ui/src/i18n/zh.ts
  • packages/kilo-vscode/webview-ui/src/i18n/zht.ts
  • packages/kilo-vscode/webview-ui/src/stories/chat.stories.tsx
  • packages/kilo-vscode/webview-ui/src/styles/task-header.css
  • packages/kilo-vscode/webview-ui/src/types/messages/board.ts
  • packages/kilo-vscode/webview-ui/src/types/messages/extension-messages.ts
  • packages/kilo-vscode/webview-ui/src/types/messages/index.ts
  • packages/kilo-vscode/webview-ui/src/types/messages/webview-messages.ts
  • packages/opencode/src/kilocode/board/store.ts
  • packages/opencode/src/kilocode/server/httpapi/groups/kilocode.ts
  • packages/opencode/src/kilocode/server/httpapi/handlers/kilocode.ts
  • packages/opencode/src/kilocode/server/httpapi/public.ts
  • packages/opencode/src/server/shared/workspace-routing.ts
  • packages/opencode/test/kilocode/board/store.test.ts
  • packages/opencode/test/kilocode/server/board.test.ts
  • packages/opencode/test/kilocode/server/httpapi-public.test.ts
  • packages/sdk/js/src/v2/gen/sdk.gen.ts
  • packages/sdk/js/src/v2/gen/types.gen.ts
  • packages/sdk/openapi.json

Reviewed by grok-4.6 · Input: 105.1K · Output: 8.3K · Cached: 218.6K

Review guidance: REVIEW.md from base branch main

@marius-kilocode
marius-kilocode force-pushed the add-session-board-view-and-reset branch from 00370f3 to 15beb8f Compare September 4, 2026 11:21
@marius-kilocode
marius-kilocode force-pushed the add-session-board-view-and-reset branch from efa5c6f to b04dd7f Compare September 7, 2026 13:30
@marius-kilocode
marius-kilocode force-pushed the add-session-board-view-and-reset branch from b04dd7f to d7b368b Compare September 8, 2026 08:37
@marius-kilocode
marius-kilocode force-pushed the add-session-board-view-and-reset branch from e089f5c to f83275f Compare September 8, 2026 09:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants