feat: color badges for subagent types with .claude/agents/ config support#50
Merged
matt1398 merged 1 commit intomatt1398:mainfrom Feb 21, 2026
Merged
Conversation
1ea45bf to
7c263c9
Compare
7c263c9 to
2dc1c43
Compare
5d6bae8 to
f150447
Compare
…port Subagent badges now show distinct colors instead of generic gray. Colors are resolved from the project's .claude/agents/*.md frontmatter (color field), with deterministic hash-based fallback for unconfigured types. New AgentConfigReader service reads agent definitions via IPC, cached per project root to avoid redundant disk reads on session refreshes. Team member colors remain unaffected (team branch has priority).
f150447 to
f05bf9f
Compare
proxikal
added a commit
to proxikal/claude-devtools
that referenced
this pull request
Feb 21, 2026
Two performance regressions introduced in recent PRs: 1. readAgentConfigs blocked transcript rendering (PR matt1398#50) The agent config IPC call was awaited on the critical path of fetchSessionDetail, preventing any transcript data from rendering until the filesystem read completed. On macOS this was especially noticeable due to security checks on first directory access. Fixed by making the call fire-and-forget: the transcript renders immediately and subagent color badges update asynchronously. Also set the project cache key optimistically before the async call to prevent duplicate in-flight requests on rapid navigation. 2. SessionSearcher stat()-called every session file on each search (PR matt1398#53) LocalFileSystemProvider.readdir() did not populate the optional mtimeMs field on FsDirent entries. The new SearchTextCache-based SessionSearcher fell back to an individual fsProvider.stat() call per session file when mtimeMs was missing, adding N extra filesystem round-trips on every search in local mode. Fixed by statting all entries concurrently inside readdir(), so mtimeMs is always populated and the stat fallback is never triggered. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
.claude/agents/*.mdfrontmatter (colorfield), matching the user's configured color for each agent.claude/agents/via IPC. Results are cached perprojectRoot, so session refreshes (file watcher turns) don't re-read from diskFuture extensibility
The
AgentConfigReaderalready parses the full frontmatter of agent files. Today it exposesnameandcolor, but it can be extended to surface other supported frontmatter fields likedescription,model,tools— enabling richer agent tooltips, model badges, or tool inventory views.Screenshots
Testing
npm run typecheckpassesnpm run lintpassesnpm testpasses