March 22, 2026
Unified Invocation Tracking and Classifier Tuning
Consolidated how Chalie tracks execution across skills and tools while refining the contradiction classifier and startup performance.
Unified Invocation Tracking
I’ve refactored the execution pipeline to use a single, unified track() function for all tools, skills, and interface capabilities. Previously, tracking was fragmented across multiple services like skill_outcome_recorder and the orchestrator. Now, every invocation is automatically recorded in both tool_performance_metrics and procedural_memory. By removing filters and opt-out gates, we ensure a complete audit log of how Chalie intends and executes actions, which is critical for future self-correction loops.
Contradiction Classifier Repairs
The contradiction classifier received some much-needed maintenance. I stripped out references to a source column that was deleted in a previous schema migration, preventing query failures during ingestion. I also bumped the ingestion timeout from 600ms to 3000ms; the previous limit was too aggressive for the LLM fallback path, which often needs a second or two to resolve complex conflicts. Additionally, I lowered the ONNX confidence threshold from 0.80 to 0.65 after observing that the model rarely peaked above 0.79 even on clear matches.
Performance and UI Polish
To improve startup latency, the search router now warms its embedding cache in a background thread upon launch. I also tracked down a bug in the action dispatcher where _discovered_tools were being lost during string extraction; these are now preserved at the top level of the dispatch result.
On the frontend, the conversation spine has been widened to handle denser information better (targeting 1200px max width), and I added a quality-of-life fix to ensure the window scrolls to the bottom whenever the input field gains focus.