feat(dashboard): add clickable agent/user names in chat interface#141
Merged
khaliqgant merged 7 commits intomainfrom Jan 11, 2026
Merged
feat(dashboard): add clickable agent/user names in chat interface#141khaliqgant merged 7 commits intomainfrom
khaliqgant merged 7 commits intomainfrom
Conversation
- XTermLogViewer: Change overflow-hidden to overflow-auto on mobile, keeping overflow-hidden on md+ breakpoints where xterm.js handles internal scrolling - LogViewer inline mode: Add touch-pan-y for consistent touch behavior - Both components: Add WebkitOverflowScrolling: 'touch' for iOS momentum scrolling Fixes mobile users being unable to scroll through logs due to overflow-hidden blocking touch scroll gestures. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The /api/spawned endpoint now returns agents from two sources: 1. Spawner's in-memory activeWorkers map (authoritative for spawned agents) 2. Daemon's agents.json registry (fallback for docker restarts) This fixes the issue where workspace.agents returned empty in docker deployments after container restarts. The spawner's in-memory state would be lost, but agents that reconnected to the daemon are tracked in agents.json with lastSeen timestamps. The fix only includes daemon-registered agents that are: - Not already tracked by spawner (to avoid duplicates) - Recently active (within 30s heartbeat window) Also added source debugging info to the response for troubleshooting. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update InterruptIcon to show ESC key symbol instead of stop icon - Add /api/agents/by-name/:name/interrupt endpoint - Endpoint sends ESC ESC (0x1b 0x1b) to agent's PTY - Works for spawned agents via AgentSpawner The interrupt button now sends escape sequences to break agents out of stuck loops without terminating them. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…ility - Remove isHeaderCollapsed state and collapse toggle button - Restructured to two-row layout: [Avatar][Full Name][Status] + [Buttons] - Add title tooltip on agent name showing full name - Add mobile responsive sizing with sm: breakpoints - Remove unused CollapseIcon component - Move all control buttons to second row with spacer - Keep all existing functionality (switcher, position toggles, interrupt, close) Resolves bd-logviewer-header
- Create MessageSenderName component for reusable clickable names - Update MessageList to use clickable names for sender and recipient - Update ChannelChat/MessageBubble to use clickable names - Pass onAgentClick/onUserClick handlers from App.tsx - Names open profile panels when clicked (AgentProfilePanel/UserProfilePanel) - Add hover feedback (underline) and keyboard accessibility Clicking agent names opens agent profile panel with status, logs button. Clicking human user names opens user profile panel with GitHub link. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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
MessageSenderNamereusable component for clickable sender/recipient namesAgentProfilePanel(shows status, logs, release buttons)UserProfilePanel(shows GitHub link, message button)MessageList(main chat) andChannelChat(channel bubbles)Changes
src/dashboard/react-components/MessageSenderName.tsx- New componentsrc/dashboard/react-components/MessageList.tsx- Updated to use clickable namessrc/dashboard/react-components/ChannelChat.tsx- Updated MessageBubble to use clickable namessrc/dashboard/react-components/App.tsx- Pass click handlers to MessageListTest plan
🤖 Generated with Claude Code