April 7, 2026
Major Pipeline Overhaul & Prompt Architecture Refactor
A major migration replaced the 20-step digest_worker pipeline with a new 4-step flow: WebSocket → UserMessageProcessor → MessageProcessor → Providers
A major migration replaced the 20-step digest_worker pipeline with a new 4-step flow: WebSocket → UserMessageProcessor → MessageProcessor → Providers. This involved killing the topic and thread concepts, replacing them entirely with a channel system. Tables like topic_transcript and topic_compactions were renamed to transcript and compactions, and the key reference topic to channel.
Several large components were removed, including ContextAssemblyService, ThreadService, ThreadConversationService, ThreadExpiryService, TopicContext, SessionService, ConstraintMemoryService, and ConstraintConsolidationService. About 4800 lines of code were deleted.
Prompt assembly was split into two services: SystemPromptAssemblyService for stable system prompts and UserPromptAssemblyService for per-turn user messages. UserPromptAssemblyService is now fully implemented, using world state, transcript, and episodic memory for context reconstruction.
A new tool_calls audit table was added to track every tool invocation per transcript turn, storing the tool name, parameters, result, and who invoked it.
Retrieval of episodes was redesigned to use a simplified 2-parameter API (query_text, radius). This now employs NLTK POS and noun phrase chunking for entity extraction and uses an adaptive radius calculation.
Episodic memory and semantic concepts were removed from direct prompt injection to prevent caching issues. Episodes are now re-injected directly into the user message with radius-based relevance filtering.
Several tests were rewritten to use real code paths, moving away from hollow mocks. Tests in test_act_loop.py were updated to use TestActionExecution with real code paths.
In the knowledge service, five tests were rewritten to verify functionality against the actual SQLite row state, checking aspects like negation soft-delete and value mismatch guards.
-
Replaced 20-step digest_worker pipeline with a 4-step flow: WebSocket → UserMessageProcessor → MessageProcessor → Providers.
-
Replaced topic and thread concepts with the channel system.
-
Split prompt assembly into SystemPromptAssemblyService and UserPromptAssemblyService.
-
Added tool_calls audit table to track every tool invocation per transcript turn.
-
Redesigned retrieve_episodes() to use a 2-parameter API with adaptive radius.
-
Removed episodic_memory and semantic_concepts from prompt injection.