3.9 KiB
Current Context
The current focus is on enhancing the dashboard's visualization capabilities (specifically embedding graphs) and improving the desktop application's authentication workflow to automatically detect Claude Code credentials.
Active Projects
Obsidian-Style Graph View for Embeddings
Location: dashboard/app/routes/visualize/+page.svelte
Status: The visualization pipeline has been successfully migrated from Chart.js to a custom D3-force Canvas renderer. The implementation includes drag-and-drop physics, projection of high-dimensional vectors, and interaction (click-to-select). The critical fix for the can't acquire context error was implemented using await tick().
Next: Refine the visual aesthetics (glowing nodes, edge rendering) and optimize physics parameters for the canvas loop.
Desktop App Auto-Credential Detection
Location: compass-bridge, compass-app/src-tauri/src/main.rs, dashboard/src/lib/auth.ts
Status: Investigating the architecture for automatic detection of Claude Code OAuth credentials (~/.claude/.credentials.json) within the Tauri desktop app. The bridge daemon currently handles credentials but the desktop app requires explicit manual setup or relies on the proxy mode.
Next: Implement a Tauri command or mechanism to read $HOME/.claude/.credentials.json and bridge it to the dashboard's auth state, ensuring the app doesn't break when Claude Code is installed.
Signet/Clawdbot Integration
Location: /tmp/claude-1000/..., memory system scripts
Status: Background task was triggered to search for references, but execution failed. The Signet memory system configuration remains intact with export_embeddings.py ready for data generation.
Recent Work
Embeddings Visualization Migration: Replaced Chart.js with D3-force to achieve a non-chart-like, force-directed graph suitable for vector spaces. Resolved a race condition where the chart constructor ran before the canvas element existed in the DOM.
Dashboard Initialization: Successfully set up the SvelteKit environment with Prisma, ensuring the database schema is aligned with the frontend routes.
Authentication Architecture Review: Reviewed the compass-bridge daemon's proxy implementation. Confirmed that Claude Code tokens are restricted and cannot be used directly outside the Claude Code environment. Explored the use of the proxy to capture headers for bridge requests.
Technical Notes
Frontend Stack: SvelteKit + Canvas API + d3-force. The visualize route uses conditional rendering (if (embeddings.length > 0)) which requires careful handling of DOM updates.
Backend/Integration: The Compass Bridge daemon manages the connection to Claude Code. The desktop app interacts with the bridge via commands (like status and proxy mode).
Data Source: Vector embeddings are exported via ~/.agents/memory/scripts/export_embeddings.py and consumed by the API endpoint.
File System Permissions: The Tauri desktop app requires filesystem permissions for $HOME (specifically .claude/) to read user credentials, not just the standard app data directories.
Rules & Warnings
Svelte DOM Timing: When manipulating state that triggers conditional rendering (like canvas creation), always use await tick() after clearing loading states to ensure the DOM element exists before the library attempts to acquire its context.
Claude Auth Restriction: Claude Code OAuth tokens (~/.claude/.credentials.json) are restricted exclusively to the Claude Code client. Any other application (like the dashboard or bridge) must detect these credentials or use the proxy mode to inject the necessary headers; direct token usage is not supported.
- Desktop FS Access: Ensure Tauri
fscapabilities are configured to allow read access to the user's home directory ($HOME) to enable credential auto-detection.