Parse and display the subagent_type field from Claude Code's Task tool
calls to show specific agent names (e.g., "codebase-analyzer") instead
of the generic "Task" label. This brings the WUI display in line with
how Claude Code presents named subagents.
- Show subagent_type in main event display when available
- Display subagent names in task group headers
- Include subagent names in collapsed task previews
- Maintain backward compatibility for tasks without subagent_type
Fixes ENG-1893
Adds a help icon button to the status bar that opens the keyboard shortcuts
panel, improving discoverability of the existing '?' hotkey functionality.
The button displays a tooltip indicating it shows keyboard shortcuts and
maintains consistent styling with other status bar buttons.
Fixes#449
- Create mcp.ts with claude_approvals command for local daemon integration
- Register MCP command in index.ts
- Uses daemon RPC instead of HumanLayer API for approval management
Resolves issue #443 where meta+enter keyboard shortcut only worked from
the prompt textarea. Now works consistently from title, directory, and
prompt fields by moving keyboard handling to the modal level.
- Add global meta+enter handler at SessionLauncher modal level
- Remove input-specific keyboard handler from CommandInput textarea
- Update visual hints to show shortcut on Launch button
- Clean up footer hints for consistency
When continuing a session with HTTP MCP servers, the X-Session-ID header
must be updated to reflect the new child session ID rather than inheriting
the parent's session ID. This ensures proper session tracking across
continued sessions.
Rename the method for better clarity and move correlation logic to execute
immediately after approval creation for all approval types, not just auto-approved
- Update OpenAPI spec to support both stdio and HTTP MCP server configurations
- Add type, url, and headers fields for HTTP servers alongside existing stdio fields
- Update mapper to handle optional fields for both server types
- Remove 5-minute timeout from MCP approval handler for better session resumption
- Configure WUI to use HTTP MCP server endpoint instead of stdio npx command
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Enable the 'i' key to close the ToolResultModal for a true toggle experience.
This allows users to navigate sessions with one hand - j/k for scrolling
and 'i' to toggle the modal open/closed, without reaching for ESC.
- Add 'i' hotkey handler to close modal when open
- Update footer hint to show "i or ESC to close"
- Replace Unix socket RPC calls with REST API calls to /api/v1/sessions
- Remove unused imports (net, bufio, rpc, claudecode)
- Use standard HTTP client for session creation requests
- Maintain same test behavior and assertions
Add comprehensive integration test that verifies tool_use_id is properly
set in the approvals table when Claude Code triggers approvals through
the MCP HTTP endpoint. The test:
- Launches Claude sessions via daemon RPC with HTTP MCP configuration
- Verifies approvals are created with tool_use_id populated
- Tests both single and parallel approval scenarios
- Confirms tool_use_id enables direct correlation without race conditions
- Keep query persistence feature from upstream
- Preserve title field functionality from feature branch
- Remove redundant query field from config object
NB - SOME TEST IS STALLING OUT RIGHT NOW! Needs a timeout/failure or something.
- Add console.debug logging in WUI to track tool_use_id in approval events
- Update CLAUDE.md documentation for test commands
- Extend claudecode-go types to support HTTP MCP servers with headers
- Update launch command to use HTTP MCP endpoint at /api/v1/mcp
- Remove stdio MCP server implementation from hlyr
- Clean up index.ts to remove MCP server initialization
- Add event-driven approval resolution to MCP server
- Implement automatic X-Session-ID header injection for HTTP MCP servers
- Update store to handle HTTP MCP configuration alongside stdio
- Remove MCP stub handler as full implementation is complete
- Add golang/mock dependency for test mocks
- Update integration tests to account for MCP event listener
- Use updateSession instead of updateSessionOptimistic in Layout when receiving server data
- Fix stale closure issue in meta+y hotkey by reading current state directly from store
- Ensures bypass permissions toggle always uses the most current session state
Prevents loss of draft prompts when users accidentally close the launcher
by saving the query text to localStorage on every keystroke. The draft
is restored when the launcher reopens and cleared only after successful
session launch.
- Save draft to localStorage on every query change
- Restore draft when launcher reopens (via 'c' shortcut or Cmd+K)
- Clear draft only after successful session creation
- Preserve draft on errors for retry attempts
- Follow existing ResponseInput localStorage pattern for consistency
Enables quick submission of the bypass permissions dialog using meta+Enter (Cmd+Enter on Mac, Ctrl+Enter on Windows/Linux). The shortcut respects validation rules and only submits when the form is valid. Visual indicator shows the keyboard shortcut next to the submit button when enabled.
- Test Claude's transmission of custom headers including X-Session-ID
- Verify approval creation with tool_use_id in Phase 4 implementation
- Test auto-approval behavior with dangerously_skip_permissions flag
- Confirm session correlation works correctly via HTTP headers