W08 — Semantic memory, DNS monitor, event log filters
Phase 1 of semantic memory lands via SQLite FTS5. The event log gets layered filters and presets. A DNS health monitor goes live. The week's headline LOC number is misleading — most of it is generated dist.
A quietly important week. The headline number — 49k +LOC — is mostly a single chore: commit planning docs and rebuilt Svelte dist snapshot (46k of generated assets). Strip that and you have a focused 3k of real change.
What shipped
- Semantic memory, Phase 1. SQLite FTS5 is the obvious right answer for local semantic search — fast, durable, no extra infrastructure. The first cut got the index, the write path, and a basic query API. Recall quality is what the next phases tighten.
- DNS health monitor. A startup-time check plus a recurring job that watches resolution health for the domains the cockpit cares about. When DNS rots, every flow that calls an external API rots with it; surfacing that early collapses a whole class of debugging time.
- Event log Phase 5. Layered filters, preset filter combinations, heartbeat controls, and outcome-coloring aligned with Recent Runs. The event log went from “scrollable firehose” to “queryable timeline” in a single afternoon’s commits.
- Notes panel polish. Icon actions, smoother panel switching. Small UX, high daily-use value.
Architecture moves
FTS5 as the memory substrate is a deliberate choice over a vector database. Vectors are not better for the cockpit’s read patterns — most queries are “what did I write about this term?” not “what is similar to this idea?” Lexical FTS gets 90% of the value at zero infrastructure cost and stays inside the SQLite file the rest of the system already lives in. Vectors can layer on later if the use cases demand them.
By the numbers
- 16 commits
- +49,228 / −1,047 (mostly the dist snapshot; ~3k real change)
- 9 milestone-class drops
What’s next
Push the memory layer into Phase 2 — write paths from chat, read paths into prompt assembly. Begin the long arc of restructuring jobs into a proper graph runtime.