May 21, 2026
Core Refactor & Geo-Tagging Release
Installer configuration shifted the default port to 31025 and dropped automatic Python installation in favor of explicit platform instructions
Installer configuration shifted the default port to 31025 and dropped automatic Python installation in favor of explicit platform instructions. A shell brace-delimiting patch fixes an unbound variable crash triggered by Unicode ellipsis characters during voice-model downloads. Documentation was updated to reflect a hard requirement for Python 3.11+.
The /providers/list-models endpoint now correctly handles openai_compatible providers. A new internal fetch function queries the standard OpenAI models API with Bearer authentication, resolving a previous state where these providers fell through to 400 errors.
Duplicate data transformation logic was consolidated into shared utilities. A central parse_json_column chokepoint replaces fourteen instances of conditional JSON parsing, an Email utility class unifies validation and normalization helpers, and manual string truncation patterns were removed from production code.
Personality and heartbeat management were converted to OOP singletons, eliminating redundant background processing and per-render database queries for telemetry. The obsolete bg_process subagent transcript was stripped from WorldState since results already reach the user via return envelopes.
The dead SelfModelService introspection system was purged alongside its inert epistemic layer, background thread registration, unused endpoints, and stale architectural documentation, saving over 700 lines of code.
Tool tier defaults were centralized on the MessageProcessor base class, moving ALWAYS_AVAILABLE and DISCOVERABLE configurations upstream while unifying the _BLOCKED pattern. The find_tools description now dynamically indexes all discoverable tools at runtime, and Operational Principles were distilled from nine rules to three core directives.
Full geo-tagging functionality was integrated across transcripts, episodes, and named places. Location data is auto-captured during writes, aggregated across episode windows, and surfaced in all retrieval paths. A new PlaceAbility supports CRUD operations with cosine-supersede contradiction policies, while scheduler departure reminders use layered speed estimation.
-
Default port shifted to 31025 with automatic Python installation removed
-
parse_json_column consolidates fourteen conditional JSON parsing instances
-
Personality and heartbeat state management converted to OOP singletons
-
Tool tier defaults centralized on MessageProcessor base class
-
Geo-tagging added via transcript auto-tagging, PlaceAbility CRUD, and LLM pattern extraction