What's being built and why.
A running record of architectural decisions, design choices, and daily progress.
40 commits: image search shipped, the API rewrite goes wide
Chalie can now find and verify images on the open web, and the new Endpoint/Action contract from last week ate nearly every API vertical in a single day.
Undo Finally Means Undo
Cancelling a message now actually cancels it, thread replies stopped bleeding their status onto the main timeline, and a background reflection job that was feeding on its own output got a real gate.
Every table finally has one owner
The raw-SQL sweep that started with memory reached the rest of the app — scheduler, settings, policy, MCP, skills, documents — plus a couple of bugs that had been quietly breaking things for a while.
Finished the job, then found a corrupted index hiding under it
The memory-vertical migration reached its last two lanes and got a single fused recall path, and along the way two bugs that had been quietly zeroing search results got dragged into the light.
Memory stops being one drawer, becomes a house
Chalie's memory system got split into dedicated verticals for facts, contacts, places, and system state, plus a smarter way of recognizing when two facts are really the same fact.
The old orchestrator dies, on purpose
Chalie's core message-processing spine got torn down and rebuilt from an airtight spec, with three legacy classes deleted outright rather than patched.
Writing down how we actually build this
The contributor handbook gets unified under one router, the test suite loses 21 tests that were checking nothing real, and two table-rendering bugs get fixed along the way.
Turn tracking gets a real state machine
Chalie's send path collapses onto one execution tracker and one step-loop, closing out the thread-system rebuild with a clean Sonar bill and a silent memory bug fixed along the way.
v1.0.1-beta: fixing the first five seconds
A release built entirely around what a fresh install sees before Chalie is even warm — a broken boot sequence and a login loop, both fixed and shipped same day.
Auditing every deferred import in the backend
A full-repo sweep of Python import hygiene cuts suppressed lint warnings by more than a third and reconciles two parallel branches back into one.
Scheduled threads get their own stable spine
Scheduled conversations now settle into one durable thread instead of scattering across turns, and the interface's motion and color system gets scrubbed down to a single set of tokens.
One API surface, one lane per thread
Every namespace in the REST API now speaks one typed contract, and the spine and its threads finally run as independent lanes instead of one shared queue.
Threads get a real REST contract, and the wrapper API dies
The thread system lands its consolidated send/read contract behind one send chokepoint, while a full generation of dormant API surface gets torn out for good.
One route convention, one source of truth for a turn
The entire API surface moves onto a single routing convention, and the thread system converges on one function that decides what a conversation looks like.
Rebuilding threads: a spine that scrolls and a memory that holds
A two-axis compaction model gives every thread its own checkpoint, while a full Weave restyle turns the thread panel into a real workspace.
Threads ship: the flat feed is gone
Chalie's conversation model gets rebuilt around threads instead of one long scroll, landing end-to-end from database to UI in a single day.
v1.0.0-beta ships, then the cleanup starts immediately
Tagged v1.0.0-beta and spent the rest of the day hardening what shipped: bounded provider calls, isolated contacts, a Deno sandbox, and a leaner runtime.
v1.0.0-beta ships behind a rebuilt discovery brain
Chalie hits v1.0.0-beta on the back of a rebuilt tool-discovery cascade and a fix for a loop the reasoning engine could get stuck in forever.
One timeout to rule every provider call
A single 300-second ceiling now caps every provider call, the browser tool learns to read computed CSS, and boot stops hanging on a missing dependency.
Chalie starts researching on its own
A new background step lets Chalie go find things worth knowing about you, plus a run of fixes that close real deadlocks and dropped events.
Closing an unauthenticated voice endpoint on LAN
A security fix nobody should have needed, a dead classifier finally buried, and 2,300+ lines of frontend cruft cut — all in one day of hardening the 0.9.0 line.
Turns become a chain, not a loop
A ground-up rewrite of how Chalie processes a conversation turn, plus the multi-device sync and packaging work needed to actually ship it.
One flag decides whether a tool can be found
Chalie's tool-visibility rules collapse from a tangle of per-channel lists into a single DISCOVERABLE flag, with search's new result format and the news tool locked behind delegates in the same pass.
Search gets a format models can actually cite
Search results were rebuilt into delimited, ranked, indexed records the model can parse and cite, while a months-long docstring cleanup finally closed out.
A quiet day of paying down doc debt
26 commits trim seven-line docstrings down to what actually matters, while a document-attachment fix and two accessibility patches slip in alongside.
One redirect path, one alarm, less dead code
A tightening day: a single ApiClient now owns every session-expiry redirect, an unattended timer finally learns to shut up, and eleven functions nobody called got deleted.
Vue frontend cutover, three roles for providers
The backend now serves the Vue 3 interface and Brain SPA for real, providers split into chat/vision/delegate roles, and memory gets a hierarchy roll-up.
The Vue rewrite begins, quietly, next to the old one
A new Vue 3 frontend starts building in parallel behind /next/ while a whole-instance backup system and per-source memory profiles ship on the live interface.
Tool calls stop lying about what happened
Chalie's tool calls are now recorded durably instead of being purged mid-turn, fixing rich cards and unlocking a new fact-extraction step in memory.
Every tool learns to fail out loud
A full sweep forces nine tools onto one honest error contract while episodic memory gets a bi-temporal schema, absolute decay math, and full-KNN retrieval.
Every tool now speaks one honest language
Chalie's entire toolset moves onto a single sealed result contract, so a tool can no longer dress up an error as a success.
The agent that talked to itself, fixed
A runaway delegate loop, an over-eager memory fan-out, and a stale installer hint — three quiet trust bugs fixed in one day.
Closing the loop on the provider refactor
The provider-API rework clears its last review comments, a leftover test-support module gets deleted, and chat replies get a markdown safety net.
One send chokepoint for every model provider
A single request/response contract now sits in front of every LLM provider Chalie talks to
Compact-first rewrite, vision uploads, attachments that survive reload
Compaction gets a zero-divergence rewrite, images become searchable by what's in them, and chat attachments finally survive a page refresh.
Compaction goes compact-first, thinking gets un-stuck
A memory-management rewrite makes Chalie compact context before it ever overflows, plus a dead-wire fix that had high-effort thinking silently doing nothing.
The tool-dispatch god-file finally dies
A single overloaded base class that had grown into Chalie's tool dispatcher, policy gate, and async runtime all at once gets split into focused pieces with zero behaviour change.
One gate for every tool, no exceptions
The permission system gets rebuilt around a single flat table and one enforcement chokepoint, with every framework timeout removed in the same pass.
The day I found out Chalie had stopped using tools
A tool-execution loop rewrite exposed a silent bug where the assistant had been running with zero tools available — here's how it got caught and fixed.
Two chat bugs fixed, a bigger rewrite begins
Killing a reload bounce and a lost image in chat, then laying the first bricks of a flatter message-processing core.
Chalie learns to call other people's tools
Chalie ships an outbound MCP client, a probe-verified vision capability, and a clean-context web search delegate in one long day.
Memory Becomes Infrastructure, Not a Tool
Memory is promoted to a system-level capability that's always on, plus a light-theme shadow fix and a CI repointing.
Chalie can now push code, and v0.8.0 ships
A new Git capability lands alongside vault-recovery hardening and a pre-release cleanup pass that closes out v0.8.0.
Vault backups that never get deleted
A vault recovery rework that survives corruption by never throwing away a key, plus three reliability fixes that stop the agent loop from spinning on empty results.
Skill Curation Goes Fully Subconscious
Skill suggestion now runs entirely in the background, plus cancel-race fixes and a token-usage overhaul in the brain.
Optional Deps Go Runtime, Reasoning Loop Gets Steerable
Voice and browser automation now install on demand instead of bloating every image, and mid-conversation redirects finally cancel cleanly instead of racing the model.
A Bash Ability, and a Leaner Build
Chalie can now run shell commands safely, and the whole project got faster to install and cheaper to maintain.
Every filesystem tool gets a spec and a policy
A day spent tearing three filesystem abilities down to spec and giving Chalie a safe way to search, write, download, and chmod files without touching a shell.
Skills become a product surface, not a hidden file
Chalie ships a full skill-authoring loop — create, edit, and get proactively suggested new skills — while the policy dashboard stops hardcoding what it should be reading from the code.
No More Iteration Caps, No More Silent Memories
Chalie can now think for as long as a task needs and can finally recall the behavioral patterns it had been quietly collecting all along.
Ripping Dead Weight, Shipping Geo-Memory
A day of cutting inert introspection code and centralizing tool routing, capped by a full geo-tagging feature that gives Chalie a sense of place.
Shipped Discord, Then Killed It By Nightfall
Built a Discord channel for Chalie, found the privacy hole in testing, and ripped it back out the same day.
v0.7.0 Ships, Then the Morning-After Fixes
Shipped v0.7.0 and immediately caught three regressions in the brain UI redesign before they reached anyone.
One Chokepoint to Rule Every Message
Every message into Chalie now flows through a single dispatch function, deleting a whole shadow queueing system in the process.
Rebuilding the Wire: Steering, Sockets, and a Single Source of Config
The communication layer got rebuilt from the socket up, and mid-conversation steering finally became fully traceable.
Brain Gets Rebuilt, and Chalie Learns to Talk to Other Agents
The dashboard got a ground-up rebuild and Chalie gained an MCP server so external coding agents can talk to it directly.
Chalie learns to ask permission
A per-action policy layer ships across chat, subagent, and background contexts, right as home automation and full email send widen what Chalie can actually do.
Voice Hardening, Ability Recall, Dashboard Fixes
TTS and STT get crash and hallucination fixes while a new review_transcript ability gives agents memory of subagent work
No Autopilot on Your Inbox
Email drafting replaces autonomous sending, capability sync gets a real heartbeat, and a token dashboard makes cognition cost visible.
Reconnecting Mail, Calendar, and Contacts
Mail, calendar, and contacts come back online as first-class abilities after a dead-code audit found their handlers unreachable since Phase 4.
Rebuilding Voice on Two Single-Purpose ONNX Models
Chalie's voice stack drops its all-in-one dependency for kokoro-onnx and moonshine-onnx, bundling models in the image so first-request latency disappears.
Voice collapses onto one dependency, dead code keeps dying
Chalie's TTS and STT stack merges onto a single package while a sweeping cleanup pass strips hundreds of lines of zero-caller code.
v0.6.0 ships: voice gets honest, providers get live
Chalie v0.6.0 lands with a rebuilt voice pipeline, live provider model discovery, and a five-hundred-commit-deep cleanup of dead code.
Fixing the voice pipeline, four bugs deep
A day spent making Chalie's spoken replies sound right — no dropped list items, no dead air, no mid-sentence crashes — plus a wide security-hardening sweep.
Memory recall stops faking its own tool calls
Memory recall now delegates to the real schedule and document tools instead of quietly duplicating their queries, and a redundant LLM call comes out of the thinking gate.
Closing subagent's silent-death paths
A day spent hunting down every way a background task could vanish without a trace, and rewiring routing so subagents only fire when the job actually needs one.
Lists Stop Guessing, and I Learn to Stop Guessing Too
A silent list-selection bug got a strict CRUD rewrite, while a routing regression taught me to fix the narrow thing instead of the whole prompt.
No More Silent Truncation, No More Silent Gaps
A day spent ripping out arbitrary caps across voice and rich media — truncation isn't a feature, it's a bug we'd been tolerating.
Rich-media cards go physical, not promptable
Weather, timer, and article cards ship end to end while the rich-media contract is rebuilt as a dispatcher-level gate instead of a prompt instruction.
Closing Out Compaction, Opening Rich Media
The compaction rewrite gets its last bug fixes and a 2,000-test cleanup, while a new spec starts taking shape for tool results that render as real UI instead of text.
Rebuilding Memory Compaction From First Principles
Chalie's context-compaction pipeline gets rebuilt as an append-only log with a continuity-first summary, closing a class of memory bugs for good.
Chalie v0.6.0: Subagents, Timeouts, and Native Tooling
Test suite cleanup occurred, consolidating many tautological or static-data tests in favor of behavioral tests, resulting in a net increase of unit test coverag
v0.5.0: Leaner, Faster, Sharper AI Assistant
v0
Major XML Markup Cutover & Complexity Reduction
The system transitioned from a block protocol to a strict XML markup format, replacing legacy markdown and rich_render functionalities
Ability Framework Migration to Per-Processor Scope
The tool scope (ALWAYS_AVAILABLE / DISCOVERABLE) has been moved from the Ability ABC to each MessageProcessor subclass
ACT Visual Feedback & System Refinements
Inline tool start/end events and UI feedback are now available for ACT loops, showing progress via inline pills
Subconscious Worker V0.5.0 Refinements
The SubconsciousWorker tick was finalized, establishing a single daemon thread for latent cognition, which executes consolidation, decay, pattern extraction, an
Increased Python minimum version for stability
The minimum supported Python version has been raised from 3
Release v0.3.3 & v0.4.0 updates
Chalie v0
SES Daemon & Embedding Optimizations
The system introduced a single FIFO daemon to handle search expansion, replacing per-write doc2query threads and absorbing _schedule_embeddings
Refining Tooling and Enhancing Personalization
Tool descriptions were sharpened to require imperative triggers like "deep dive" or "research" to ensure models dispatch tools before timing out on inline answe
Weather tool handles country-only location
A smoke test was added for the weather tool to verify it resolves 'germany' without error
AI Core Refactor: World State, Memory, and User Summary
The system refactors WorldState into an in-process singleton, removing WorldStateService and related APIs, and introduces a new TimeFormatterService for elapsed
AI Memory Overhaul: Episodic Simplification & Providers
A major episodic memory simplification was performed, dropping nine columns from the episodes table and adding a consolidated_into back-pointer
AI Assistant Refactors Core Memory & Extraction
The ToolSynthesisProcessor was completely removed as the hourly sweep over tool_calls was an inefficient abstraction that duplicated existing ACT loop memory sk
Major Refactor: Thinking Gate, Data Graph & Classifier
The thinking-gate was redesigned to utilize provider-native deliberation flags instead of a classifier-driven approach, moving exploration to a single, same-job
v0.9.0 Classifier Stack & Schema Refactor
The classifier stack was integrated in v0
Chalie v0.3.2 Release & Refactoring Updates
The repository was merged into main for the v0
Refactor: Document Handling & Memory Pipeline
Documents are now split into 512-1024 char overlapping artifacts stored in data_graph, replacing the heavy document_processing_service
Major Memory & Tooling Overhaul
A complete memory recall overhaul introduced a new tool output format of [id:{id},relevance:{level}] {value} and added a `reflect` action featuring deep episode
Major Refactor: Message Processing & System Prompting
The underlying message processing pipeline underwent a substantial refactor, shifting to a MessageProcessor v2 architecture with a per-turn instance model, elim
MessageProcessor v2 Core Wiring Complete
SystemPrompt hierarchy was standardized, moving toward a pure template renderer
AI Core Updates: DMN, Context, and Performance Boosts
The DMN functionality was stabilized by replacing the broken unified_generate path with DMNMessageProcessor, enabling the full tool loop for DMN interactions
Core AI Overhaul: Schema, Tools, and Performance Gains
The schema management system was completely replaced by a declarative SchemaConvergenceService, which introspects the live database to ensure desired state
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
Memory Pipeline Redesign & Knowledge Recall Boost
The episodic memory pipeline has been entirely replaced with a psychology-grounded architecture, featuring transcript-linked episodes via a rolling trigger at i
AI Assistant Updates: News, Tasks, and Prompts
The news tool has been simplified from six parameters/four actions to a two-parameter interface: query and an optional category
Feature Overhaul: Tool Discovery, DMN, and Resilience
Two-axis tool discovery is implemented, scoring tools using both semantic k-NN distance and exact keyword matches, which replaces the previous reliance on full_
Chalie Dev Log: Core Reliability & Workflow Overhaul
The trait correction logic now allows for overwriting stale values when the confidence is greater than or equal to 80% of the old confidence, fixing issues wher
AI Core Updates: Search, Contradiction, and Prompt Fixes
The stale "{{focus}}" placeholder was removed from frontal-cortex prompts to resolve failures in unified_generate()
Major Overhaul: Episode-Based Goal Emergence
The system replaces its old goal creation pipeline with episode-based emergence
AI Core Update: Goals, Tracing, and Stability
Several changes focused on enhancing meta-harness diagnostics and AI reasoning stability
Chalie Dev Log: Goals, Traits, and FTS Fixes
The Goals skill now supports explicit goal creation, accepting a description and timescale
Kill Topic Classifier & Refactor Digest Worker
The TopicClassifierService, TwoSignalBoundaryService, and RecentTopicService were completely removed, along with all associated tests and benchmarks
AI Core Upgrades: Vault, Contact, & Briefing Features
The AI core implemented a major encryption upgrade, moving from legacy Fernet methods to AES-256-GCM via a centralized VaultService and related migrations
Refactor: Real MemoryStore replaces Mocks
Multiple tests across goal signal, adaptive layer, and onboarding integrations have been refactored to use real MemoryStore instances instead of mocking infrast
Cleanup Phase: Finalizing Knowledge Store Migration
This batch focuses on finalizing the knowledge store consolidation and cleaning up residual references from the deleted legacy services
New Visual Output & Knowledge Store Unification
A rich_render skill was introduced to produce visual output like charts and progress bars in a single generation pass, using block directives for rendering
Major Updates: Multi-Model Support & News Tool
Multi-model providers are integrated, supporting multiple models per API key across 4 capability-derived job groups: Vision, Reasoning, Analytical, and Utility
AI Core Enhancements & Observability
A new system for telemetry collection was implemented, including the creation of `backend/services/telemetry_service
AI Core & Goal Ecology Major Updates
The encryption key service now stores the key directly in the database, ensuring the key and encrypted data are never separated, and it automatically migrates f
Chalie Dev Log: Search, Docs & State Visibility
A unified multi-provider search tool was implemented, supporting 12 providers including Wikipedia, Wikidata, and GitHub, with DDG fallback and query routing via
Tooling and Context Overhaul in Chalie
Tools have been refactored to be direct-invocation Python modules, eliminating tool directories, manifest files, and subprocess execution
Major AI Pipeline Simplification and Refactoring
Routing infrastructure, including routing_decisions table and related services, has been entirely removed as it was unused in production
Major Refactors & New Daemon Gateway
Refactored the embodiment system to be internally managed, version-pinned, and auto-synced at boot, removing the marketplace model and several related API endpo
Chalie Dev Log: Interface & World State Upgrades
The interface layer was significantly expanded to include a Bluetooth-style pairing protocol and registered interface tools in ToolRegistryService
AI Core Enhancements: Mode-Gate, Context, and Stability
The mode-gate ONNX classifier has been deployed, a binary RESPOND/ACT classifier achieving 97
Chalie Dev Log: AI Refinements and Image Pipeline
The triage pipeline underwent significant refactoring, leading to the removal of CLARIFY mode and the simplification of routing logic
AI Core & ACT Loop Refinements
Trait extraction is now wired into the standard chat path and includes location data, and markdown fences are stripped before JSON parsing for traits
Major Refactor: Killing Memory Chunker
The memory chunker worker has been removed, significantly reducing codebase size by approximately 3,000 lines
World Model, Goal Inference, User Signals Integrated
WorldStateService now uses a MemoryStore cache, refreshed during idle periods and updated by signal handlers, providing ambient context, active conversation top
Docstrings & Tooling Enhancements
Multiple service files across Phase 1 and Phase 2a received comprehensive Google-style docstrings, covering modules, classes, and public/private methods with de
Core Architecture Deep Dive: Salience & Constraints
A new WorldStateService is introduced to aggregate contextual items using temporal and semantic salience scoring, surfacing relevant goals and tasks based on re
AI Stability & Pipeline Improvements
Added established signal and created_at to the contradiction pipeline, preparing for the ONNX contradiction classifier
AI Assistant Refinements & Uncertainty Engine
The Uncertainty Engine saw Phases 2, 3, and 4 complete, adding ContradictionClassifierService, ReconcileAction, and refining source reliability checks in ActDis
Stability and Intelligence Updates
60-second timeouts were added to all vision LLM OCR calls across Anthropic, OpenAI, and Gemini to prevent long-running pipeline hangs
AI Assistant Updates: Watch Folders, Classification & Stability
Watched Folder functionality is now available with a dedicated service handling CRUD, server-side browsing, and a scan algorithm using mtime fast-skip
Refining Timeouts and Schema Handling
Significant stability and reliability improvements were introduced today, focusing heavily on thread management and data integrity
Learning Behavioral Rhythms
Implemented temporal pattern mining to learn user rhythms from ambient signals and promoted the news tool to a trusted, default integration.
Consolidating the Architecture
Finalized the migration from external services to a unified internal architecture while improving intent detection and startup reliability.
Simplification and First-Party Tools
Shifted to a single-process architecture and introduced a background auto-installation system for trusted default tools.
Marketplace Foundations and Orchestrator Unification
This update introduces a dynamic embodiment catalog, unifies the core ACT execution logic, and adds a multi-stage document intelligence pipeline.
Self-Narrative and Conversational Control
Reframing the autobiography as a first-person narrative while introducing temporal pattern mining and conversational belief correction.
Cognitive Reflexes and Structured Planning
Introduced semantic fast-paths for simple queries and DAG-based plan decomposition for persistent tasks.
Visible Intent and Integrated Voice
Massive push on system observability, local voice integration, and closing the feedback loop for tool performance and selection.
Ambient Awareness and Autonomous Reliability
Implemented a zero-LLM ambient inference pipeline, a relationship state machine for user onboarding, and a post-action critic loop to verify tool results.
Memory Moments and Curiosity Threads
Introduced semantic message pinning with background enrichment and replaced the legacy goal system with autonomous curiosity threads.
Resilient Multi-Instance & Skill Refactoring
Implementation of multi-instance host support, a major refactor of innate skills, and the introduction of markdown rendering for responses.
System Maturation and UI Capabilities
Implemented list and scheduler management, refined the cognitive routing pipeline, and optimized database connection handling for multi-process stability.
Cognitive Triage and Innate Skills
Introduced a sophisticated cognitive triage system for tool execution and established a suite of core innate skills for identity, goals, and focus management.
Hot Tool Discovery and Orchestration
Implemented a background scanner for dynamic tool registration and streamlined the entire repository structure.