Skip to content

fix(vscode): show board participants in message headers - #13957

Merged
marius-kilocode merged 6 commits into
mainfrom
add-missing-tool-to-subagent-avatar-logic
Sep 9, 2026
Merged

marius-kilocode merged 6 commits into
mainfrom
add-missing-tool-to-subagent-avatar-logic

Conversation

@marius-kilocode

@marius-kilocode marius-kilocode commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator

What Problem This Solves

board_read tool headers showed only the generic parent task glyph, even when the result contained messages from several agents. Broadcast board_post routes also represented ALL recipients with two generic task glyphs. The message routes themselves had partial avatar support, but the UI did not identify all participants consistently.

Why This Change Was Made

The board_read renderer now collects unique concrete sender and recipient IDs from the returned messages and renders them in the header. Broadcast board_post routes use the active avatar roster to render concrete recipients, while retaining the old generic fallback when no roster is available. The main participant keeps the existing static task glyph.

The participant row uses a small non-overlapping layout. Overlapping the dot-grid avatars made the header difficult to read.

User Impact

Collapsed board message reads now show the parent glyph followed by the avatars for every concrete participant in the conversation. Broadcast posts show the known recipient avatars instead of generic placeholders. Direct message routes and the parent icon are unchanged.

Evidence

Before, the header only showed the generic task glyph:

Before: board message header with only the generic task icon

After, it shows the parent glyph followed by both participant avatars:

After: board message header with the parent icon and participant avatars

Broadcast before, with two generic task glyphs for ALL:

Before: broadcast route with generic task glyphs for all agents

Broadcast after, with the two known recipient avatars:

After: broadcast route with concrete recipient avatars

Validation:

  • bun test tests/unit/board-tool-render.test.ts passed with multiple participants.
  • bun run lint passed in packages/kilo-vscode.
  • bun run bundle passed in packages/kilo-vscode.
  • The board renderer fixture verifies both a populated broadcast roster and the empty worker-roster generic fallback.
  • The Storybook browser fixture verified the read participant stack and the broadcast route with two recipient avatars.
  • Package-wide typecheck remains blocked by existing story, asset, and dependency errors unrelated to this change.
  • The isolated VS Code shell loaded the current bundle, but its isolated backend had no persisted transcript records, so a live Agent Manager transcript could not be opened.

CI follow-up:

  • The failed visual job was caused by stale swarm-board.spec.ts assertions that still expected two generic icons for the composite broadcast. The updated expectation checks for one parent icon, one recipient avatar, and the participant stack.
  • The empty worker-roster case now preserves the two-icon fallback.
  • The later unit-test failure is from the merge ref's AgentManagerProvider.ts size guard (1901 lines against a 1900-line cap), unrelated to avatar behavior. The focused local architecture test passes after removing one blank line locally.
  • CI was not rerun from this update.

@kilo-code-bot

kilo-code-bot Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (4 files)
  • packages/kilo-ui/src/components/board-message.tsx
  • packages/kilo-vscode/tests/fixtures/board-tool-render.tsx
  • packages/kilo-vscode/tests/swarm-board.spec.ts
  • packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/composite-webview/agent-messages-200-chromium-linux.png
Previous Review Summaries (2 snapshots, latest commit a7c1118)

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

Previous review (commit a7c1118)

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-ui/src/components/board-message.tsx 37 Unshifting main defeats the empty-roster fallback for subagent broadcasts
Files Reviewed (5 files)
  • packages/kilo-ui/src/components/agent-avatar.tsx - 0 issues
  • packages/kilo-ui/src/components/board-message.tsx - 1 issue
  • packages/kilo-ui/src/stories/message-part.stories.tsx - 0 issues
  • packages/kilo-vscode/tests/fixtures/board-tool-render.tsx - 0 issues
  • packages/kilo-vscode/webview-ui/src/stories/composite.stories.tsx - 0 issues

Fix these issues in Kilo Cloud

Previous review (commit 6f558cf)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (7 files)
  • .changeset/subagent-avatars.md
  • packages/kilo-ui/src/components/agent-avatar.css
  • packages/kilo-ui/src/components/basic-tool.css
  • packages/kilo-ui/src/components/board-message.tsx
  • packages/kilo-ui/src/components/message-part.tsx
  • packages/kilo-ui/src/stories/message-part.stories.tsx
  • packages/kilo-vscode/tests/fixtures/board-tool-render.tsx

Reviewed by grok-4.6 · Input: 85.6K · Output: 5.9K · Cached: 209.4K

Review guidance: REVIEW.md from base branch main

Comment thread packages/kilo-ui/src/components/board-message.tsx Outdated
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