- Enhanced Agent struct with current_activity, current_files, and activity_history fields
- Created ActivityTracker module to infer activities from tool calls
- Integrated activity tracking into MCP server tool routing
- Updated task board APIs to include activity information
- Agents now show real-time status like 'Reading file.ex', 'Editing main.py', 'Sequential thinking', etc.
- Added activity history to track recent agent actions
- All file operations and tool calls are now tracked and displayed
CRITICAL FIX:
- Removed auto-registration during initialization that was causing crashes
- Fixed pattern match error with Inbox.start_link (already_started case)
- Changed architecture to require explicit agent registration with unique IDs
MULTI-AGENT SUPPORT:
- Agents must now register themselves with unique identifiers (e.g., 'Green Platypus')
- register_agent tool now works without requiring prior agent_id
- All other tools require agent_id parameter to identify the calling agent
- Proper error handling for missing agent_id in tool calls
ARCHITECTURE CHANGE:
- One MCP server instance serves multiple agents (as per VS Code design)
- Removed auto-registration of 'GitHub Copilot' agent during initialization
- Each agent must explicitly call register_agent before using other tools
This fixes the VS Code connection error:
MatchError: no match of right hand side value: {:error, {:already_started, #PID<0.215.0>}}
- Deleted mcp_server_manager.ex, enhanced_mcp_server.ex, unified_mcp_server.ex
- All functionality successfully consolidated into single mcp_server.ex
- Server starts correctly with all external servers (context7, filesystem, memory, sequentialthinking)
- HTTP server support working for mcp_figma
- All 15+ agent coordination tools properly registered
- Codebase is now clean with no duplicate files
- Combined external server management from MCPServerManager (stdio/http support)
- Integrated session tracking and heartbeat from EnhancedMCPServer
- Added auto-registration and unified interface from UnifiedMCPServer
- Fixed HTTP server support to prevent crashes on mcp_figma config
- All 15+ agent coordination tools now properly registered and working
- External servers (context7, filesystem, memory, sequentialthinking) starting correctly
- HTTP servers handled gracefully with proper fallback logging
- Application.ex updated to start only consolidated MCPServer
- Ready to remove duplicate files after verification
- Remove {:line, 1024} port option that was truncating long JSON responses
- Rewrite collect_response to handle binary data instead of line-based data
- Add extract_json_messages function to properly parse complete JSON from mixed stdout
- Filter out log messages while preserving complete JSON responses
- Add timeouts to all GenServer calls to prevent blocking
- This fixes the 'unexpected end of input at position 1024' JSON decode errors
- Replace hardcoded tool lists with dynamic discovery via MCP tools/list
- Move MCPServerManager to application supervision tree for resource sharing
- Eliminate duplicate MCP server instances (one shared instance per server type)
- Add automatic tool refresh when servers restart
- Implement conditional VS Code tool loading based on module availability
- Add comprehensive test suite for dynamic discovery
- Update documentation with architecture improvements
Benefits:
- Full MCP protocol compliance
- Massive resource savings (shared servers vs per-agent instances)
- Zero maintenance overhead for tool list synchronization
- Automatic adaptation to server changes
- Improved reliability and performance
Closes: Dynamic tool discovery implementation
Fixes: Multiple MCP server instance resource waste
- Marked Phase 1 as ✅ COMPLETED with all 12 core tools working
- Added Phase 1.5 as CURRENT PRIORITY for real VS Code Extension API bridge
- Updated timeline with specific dates and priorities for remaining phases
- Added key insights from successful Phase 1 implementation
- Defined success metrics and next immediate actions
- Fixed markdown formatting for better readability
Status: VS Code tools now working seamlessly through agent coordinator!
Next: Replace placeholder responses with actual VS Code Extension API calls
- Fixed Task.new/3 to handle both maps and keyword lists
- Added robust inbox existence checking in find_available_agent
- Ensure inbox creation during agent registration and task assignment
- Add helper function ensure_inbox_exists to avoid crashes