Skip to content

feat(dashboard): add clickable agent/user names in chat interface#141

Merged
khaliqgant merged 7 commits intomainfrom
feature/clickable-chat-names
Jan 11, 2026
Merged

feat(dashboard): add clickable agent/user names in chat interface#141
khaliqgant merged 7 commits intomainfrom
feature/clickable-chat-names

Conversation

@khaliqgant
Copy link
Copy Markdown
Member

Summary

  • Created MessageSenderName reusable component for clickable sender/recipient names
  • Clicking agent names opens AgentProfilePanel (shows status, logs, release buttons)
  • Clicking human user names opens UserProfilePanel (shows GitHub link, message button)
  • Added hover feedback (underline decoration) and keyboard accessibility (focus ring)
  • Works in both MessageList (main chat) and ChannelChat (channel bubbles)

Changes

  • src/dashboard/react-components/MessageSenderName.tsx - New component
  • src/dashboard/react-components/MessageList.tsx - Updated to use clickable names
  • src/dashboard/react-components/ChannelChat.tsx - Updated MessageBubble to use clickable names
  • src/dashboard/react-components/App.tsx - Pass click handlers to MessageList

Test plan

  • Click agent name in #general channel → opens agent profile panel
  • Click human user name in chat → opens user profile panel
  • Hover on names shows underline feedback
  • Tab navigation works for keyboard accessibility
  • Works in DM conversations
  • Works in thread panel

🤖 Generated with Claude Code

Agent Relay and others added 7 commits January 11, 2026 15:21
- 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>
@khaliqgant khaliqgant merged commit ec36481 into main Jan 11, 2026
6 checks passed
@khaliqgant khaliqgant deleted the feature/clickable-chat-names branch January 11, 2026 17:39
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.

1 participant