Eidos Bootup Sprint
Summary
A multi-phase sprint (initiated March 31, 2026) to transition from the legacy Grimoire domain to the Eidos API using the Hyle type system, establish the Hermes↔Eidos MCP loop, and perform comprehensive cleanup of stale code references. Tracked via SPRINT-EIDOS-BOOTUP.md.
Details
Phase 1: Hyle Type System Implementation
Replaced legacy GraphModel, MemoryType, MemoryRole, and RelationType enums with concrete Hyle primitives in eidos/src/eidos/domain/models/concrete.py:
- Observations:
FriendUtterance,ClaudeUtterance(content, embeddings, salience, conversation IDs) - Entities:
TopicCluster,GitRepository,CodeFile,ConfluenceSpace,ConfluencePage - Memory union type with
node_typeLiteral discriminators
GenericMemoryRepository and MemoryRepository updated to use BaseNode methods (labels(), to_neo4j_properties()) instead of legacy GraphModel API. Service layer (memory_service.py, Git/Confluence connectors) refactored to resolve ghost imports.
Phase 2: API and Security Hardening
memory.pyrecall endpoint:memory_type→node_type,timestamp→observed_at/created_at- OAuth refactored: removed import-time secret generation (invalidated tokens on restart) → deterministic secrets via
sops-nix ALLOWED_EMAIL_DOMAINS:wise.is→sokrates.is- Logfire namespace updated to “eidos”, CORS configured
- System crashes on startup if
jwt_secret_keymissing in production
Phase 3: Hermes↔Eidos MCP Integration
Transport configured via hermes.nix → http://localhost:8000/mcp. SOUL.md updated with Eidos tool awareness: remember, recall, health, query. Replaced aspirational curl transport with native HTTP MCP support.
Phase 4: Final Cleanup and Rebranding
Comprehensive search-and-replace across the entire repository:
- CLI/Plugins:
grimoire_url→eidos_url,query-grimoire/→query-eidos/ - Environment variables:
SOKRATES_GRIMOIRE_URL→SOKRATES_EIDOS_URL - Documentation:
AGENTS.md,CLAUDE.mdfiles updated - Infrastructure: Watchdog containers in
docker.nix,philosopher-kingDockerfile corrected - All 16 CLI tests passing under new naming
Deferred
GQL compilation target, hyperedge semantics, Differential Datalog evaluation, MemoryRelationship → formal BaseEdge migration.