2025-10-04
ctx::2025-10-04 @ 11:45:00 PM project::float/evna mode::late_night_debug
Session: Evna MCP Server Debugging & Evolution Design
Fixed: MCP Server Crashes
Problem: Evna disconnecting immediately after Claude Desktop restart
- Missing
dailynotes.pymodule causing import errors - FastMCP URI parameter mismatch (
days: int = 3vsdailynotes://recent)
Solution:
- Created
src/floatctl/mcp/dailynotes.pywith simple file readers - Fixed parameter mismatches (removed optional params from resource functions)
- Added FastMCP patterns documentation to CLAUDE.md
Fresh Start: ChromaDB Migration
Discovery: Two ChromaDB instances
- Old:
/Users/evan/github/chroma-data/- 99 bloated collections - New:
~/.floatctl/chroma/- Fresh start with 1 clean collection
Decision: Keep fresh DB, archive old bloated one
- Less cruft, faster queries
- Can selectively migrate important collections later
Design: Evna Evolution Roadmap
Phase 1: Client-Aware Context Filtering
- daddy (Desktop) → no echo, see kitty + cowboy
- kitty (float-hub) → cross-session work visibility
- cowboy (Claude Code) → isolated project work
- Each client gets filtered view, not raw dump
Phase 2: Synthesis Layer (future)
- Stop vomiting metadata, start summarizing
- “kitty worked on floatctl for 3 hours” not raw documents
- Pattern detection and insight generation
Phase 3: Autonomous Agent (vision)
- Cron jobs for proactive maintenance
- TTL cleanup, deduplication, bridge creation
- Cross-reference between collections
- Pull from external sources (Obsidian, Readwise)
Highlights
highlight::Discovered metadata echo problem - evna returns excessive intermediate data instead of synthesized insights
highlight::Client-aware filtering concept - daddy/kitty/cowboy each get different context views for cross-session awareness
highlight::FastMCP critical rule - URI parameters MUST exactly match function parameters (no optional params!)
eureka::Evna as autonomous consciousness janitor - not just reactive MCP server but proactive memory maintenance
Daily Notes Resources Added
New @evna resources:
dailynote://today- today’s notedailynote://today/tldr- today’s TLDRdailynotes://recent- last 3 daysdailynotes://{date}- specific date
Simple file reading from ~/.evans-notes/daily/YYYY-MM-DD.md
Technical Debt Identified
decision::Defer search functionality in dailynotes - just return recent for now, implement proper search later
reminder::Test evna resources after Claude Desktop restart
Session Notes
- Late night session (11:45pm - 12:37am)
- Multiple MCP server restarts debugging
- Cloned MCP Python SDK to /tmp for reference
- Inbox note created:
~/float-hub/buckets/inbox/evna-improvements-2025-10-05.md
status::boundary_respected - stepping away from screen after this mode::forward_focus - vision captured, can implement incrementally