Skip to content

fix(vscode): animate subagent avatar from loading shimmer to identity - #14004

Merged
marius-kilocode merged 2 commits into
mainfrom
veil-intelligence
Sep 10, 2026
Merged

fix(vscode): animate subagent avatar from loading shimmer to identity#14004
marius-kilocode merged 2 commits into
mainfrom
veil-intelligence

Conversation

@marius-kilocode

Copy link
Copy Markdown
Collaborator

What Problem This Solves

When a subagent started, the task card icon slot showed a neutral placeholder glyph (a fixed grey identicon) and then swapped to the child's real colored identicon. The card title read task Agent because the renderer fell back to the internal tool name while subagent_type was still streaming.

Why This Change Was Made

The avatar is an identity glyph, not a loading indicator. Using it as the pre-identity placeholder conflated "unknown agent" with "agent with no identity" and produced a visible glyph swap. The title fallback exposed an internal tool name to the user. The default kilo-ui renderer already uses the localized default in this state; this renderer diverged from it.

User Impact

  • The task card shows a neutral frame shimmer (all ring dots pulsing in place, grey) while the child session id is unknown.
  • When the id arrives, the dots resolve into the hashed identity glyph in place, and the surrounding frame keeps pulsing while the child runs.
  • The title uses the localized Agent default until subagent_type streams in, then switches to <type> Agent. The card never shows task Agent.
  • A virtualized remount that starts with the id already known shows the resolved glyph without replaying the resolve animation.
  • prefers-reduced-motion falls back to a static frame and no resolve.

Evidence

Manual self-test in an isolated VS Code dev host: spawned two subagents. The second task card transitioned from data-color absent with task-avatar-frame to data-color=7 with task-avatar-resolve on the lit dots and agent-avatar-pulse on the frame, and the title rendered explore Agent.

Subagent task card showing the resolved identity avatar and the explore Agent title while running

The task card showed a neutral placeholder glyph and the internal tool name
("task Agent") while the subagent started. The avatar slot now renders a
neutral frame shimmer until the child session id is known, then resolves into
the hashed identity glyph in place. The title falls back to the localized
default ("Agent") until subagent_type streams in, so the card never exposes
the tool name.
Comment thread packages/kilo-ui/src/components/agent-avatar.css Outdated
@kilo-code-bot

kilo-code-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (2 files)
  • packages/kilo-ui/src/components/agent-avatar.css
  • packages/kilo-vscode/webview-ui/src/styles/tool-overrides.css
Previous Review Summary (commit 5d1e7a2)

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

Previous review (commit 5d1e7a2)

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/agent-avatar.css 12 transition: color is overridden on the task card and leaks to every other avatar
Files Reviewed (6 files)
  • .changeset/task-avatar-frame-shimmer.md - 0 issues
  • packages/kilo-ui/src/components/agent-avatar.css - 1 issue
  • packages/kilo-ui/src/components/agent-avatar.tsx - 0 issues
  • packages/kilo-vscode/webview-ui/src/components/chat/MessageList.tsx - 0 issues
  • packages/kilo-vscode/webview-ui/src/components/chat/TaskToolExpanded.tsx - 0 issues
  • packages/kilo-vscode/webview-ui/src/styles/tool-overrides.css - 0 issues

Fix these issues in Kilo Cloud


Reviewed by grok-4.6 · Input: 41.7K · Output: 4.2K · Cached: 182.5K

Review guidance: REVIEW.md from base branch main

The task-avatar descendant rule set transition: filter, and the shorthand
reset transition-property, so the color fade never ran on the task card. The
base avatar rule applied it to every other AgentAvatar instead. Move both
transitions onto the task-avatar selector and clear them under
prefers-reduced-motion.
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