Active Source Not Visible in UI
Bug: Active Source Not Visible in UI
Environment
- Craft Agents: v0.4.5
- macOS: 26.2 (Build 25C56)
- Date: February 14, 2026
Summary
A workspace source (Telegram MCP) is marked as Active in session state and all tools function correctly, but the source does not appear in the UI source list.
Steps to Reproduce
- Create a workspace with a symlinked source:
````
workspace/sources/telegram → /path/to/another/workspace/sources/telegram
- Configure the source with a working MCP server:
``json``
{
"name": "Telegram",
"slug": "telegram",
"enabled": true,
"type": "mcp",
"mcp": {
"transport": "stdio",
"command": "/path/to/mcp-server/start.sh",
"args": []
}
}
- Restart Craft Agents
- Open the workspace
- Check the UI source list
Expected Behavior
The "Telegram" source should be visible in the sources panel in the UI, showing connection status and available tools.
Actual Behavior
- ✅ Session state correctly shows:
Active: telegram - ✅ All 91 MCP tools work perfectly (e.g.,
mcp__telegram__list_chats) - ✅ Source test passes:
✓ MCP server started successfully - ❌ Source does NOT appear in the UI source list
Evidence
Session State (from system):
<sources>
Active: telegram
Inactive: memory (inactive), work-memory (inactive)
</sources>
MCP Tools Working:
// Tools are accessible and functional:
mcp__telegram__list_chats({limit: 10}) // ✅ Works
mcp__telegram__get_messages({chat_id: 123, limit: 5}) // ✅ Works
Source Test Output:
✓ MCP server started successfully
Tools available: 91
Examples: get_chats, get_messages, send_message, ...
Source Configuration
Type: Symlink
Path: workspace/sources/telegram → /other/workspace/sources/telegram
Directory structure:
sources/
├── memory/ (inactive) ← visible in UI
├── telegram/ → symlink (active) ← NOT visible in UI
└── work-memory/ (inactive) ← visible in UI
Additional Context
- Source works 100% correctly from a functionality perspective
- This appears to be purely a UI rendering issue
- Refreshing (Cmd+R) does not help
- Full app restart does not resolve
- Other sources (memory, work-memory) display correctly as "inactive"
Potential Root Causes
- Symlink resolution: UI may not properly handle symlinked source directories
- State sync: Mismatch between backend session state and frontend UI state
- UI filtering: Active sources might be incorrectly filtered from display
- Caching: UI may cache source list and miss updates
Impact
- Severity: Medium (works but confusing UX)
- Workaround: Use tools directly (they work fine)
- User Confusion: Contradicts visible session state showing "Active: telegram"
Suggested Investigation
- Check UI component that renders source list
- Verify symlinked sources are resolved correctly
- Ensure proper state sync between backend and frontend
- Add debug logging to track source display filtering logic
---
Environment Details:
- Platform: darwin
- OS Version: Darwin 25.2.0
- App Bundle ID: com.lukilabs.craft-agent
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗