get-claudia 1.51.26 → 1.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,2323 @@
1
+ # Changelog
2
+
3
+ All notable changes to Claudia will be documented in this file.
4
+
5
+ ## 1.51.26 (2026-03-04)
6
+
7
+ ### The Memory Fix: Auto-Install Daemon for All Users
8
+
9
+ The memory daemon source was not included in the npm package and the installer did not install it. Users had to manually `pip install` the daemon from source, which nobody did. The MCP server never started, Claude Code silently skipped it, and Claudia had no memory capabilities.
10
+
11
+ - **Bundle daemon source in npm package** -- `memory-daemon/claudia_memory/` (40 files) and `pyproject.toml` now ship with the npm tarball. Package size goes from ~500KB to ~2.7MB.
12
+ - **Add "Memory Daemon" step to installer** -- New Step 4 detects Python 3.10+, creates a venv at `~/.claudia/daemon/venv/`, pip installs the bundled daemon source, and verifies the import. Non-blocking: warns and continues if Python is missing.
13
+ - **Auto-configure `.mcp.json`** -- New `ensureDaemonMcpConfig()` writes the correct daemon entry with the absolute venv Python path. Preserves all existing MCP server entries. Creates the file if it doesn't exist.
14
+ - **Strengthen Session Start Protocol** -- Three mandatory outcomes when checking `memory.briefing`: tool responds (healthy), tool errors (tell user), tool missing (MUST disclose degraded mode immediately).
15
+ - **Add Mandatory Disclosure rule** -- `memory-availability.md` now requires upfront honesty when the daemon isn't running. No silent fallback to context files.
16
+ - **Update `.mcp.json.example`** -- Daemon entry now says "Auto-configured by installer" instead of manual setup instructions.
17
+
18
+ ## 1.51.25 (2026-03-04)
19
+
20
+ ### The Cleanup: Strip Unreachable CLI Code
21
+
22
+ The `claudia` CLI binary shipped 40+ memory subcommands (12,932 lines) that no user could reach because the package isn't globally installed (`npx get-claudia` is a temporary download) and `claudia` on many systems resolves to AWS Lambda's `claudia.js`. This release archives that dead code and cleans up the installer.
23
+
24
+ - **Archived 13 CLI files** to `_archived/cli-v1/` (12,932 lines, ~160KB). Commands, services, and OAuth code moved out of the active codebase but preserved for reference.
25
+ - **Pruned `cli/index.js`** from 694 lines to 47. Only `system-health` and `setup` remain (used internally by the installer).
26
+ - **Removed `claudia` bin entry** from `package.json`. No more PATH collision with AWS Lambda's `claudia.js`.
27
+ - **Removed Gmail/Calendar credential message** from installer output. Setup info already lives in `.mcp.json.example` and CLAUDE.md.
28
+ - **Removed silent global CLI install** attempt that ran `npm install -g` behind the scenes.
29
+ - **Removed demo database seeder** that called the now-archived `claudia memory save` command.
30
+ - **Updated `writeWhatsNewFile()`** to reference MCP tools instead of non-existent CLI commands.
31
+ - **Updated Session Start Protocol** in CLAUDE.md to use `memory.briefing` MCP tool instead of the unreachable `claudia system-health` CLI command.
32
+ - **Updated health check fallback** message to point to CLAUDE.md instead of the unreachable CLI.
33
+
34
+ ## 1.51.24 (2026-03-04)
35
+
36
+ ### Installer: MCP-Primary Memory Architecture
37
+
38
+ The installer was actively disabling the claudia-memory MCP daemon and reporting "CLI ready," directly contradicting the documentation updates from v1.51.22-23. This release aligns the installer with the MCP-primary architecture.
39
+
40
+ - **Removed daemon disabling** -- `disableLegacyMcpServers()` no longer removes `claudia-memory` from `.mcp.json`. The function and its global config warning counterpart have been removed entirely.
41
+ - **Daemon restoration for existing users** -- `restoreMcpServers()` now includes `claudia-memory` and `claudia_memory` in its restore list. Users who upgraded through v1.51.13+ will get their daemon config automatically restored from `_disabled_mcpServers`.
42
+ - **Updated status messages** -- Memory system check now reports "Database ready" instead of "CLI ready". Completion message mentions the daemon.
43
+ - **Template includes daemon** -- `.mcp.json.example` now lists `claudia-memory` as an MCP server with setup instructions. Memory note updated to describe MCP daemon architecture.
44
+ - **Removed legacy cleanup** -- Removed `cleanupLegacyDaemon()` stub and all "legacy daemon" language from the installer.
45
+
46
+ ## 1.51.23 (2026-03-04)
47
+
48
+ ### Memory Interface Alignment (Patch)
49
+
50
+ - **claudia-principles.md: 2 CLI references fixed** -- Source Preservation section now references `memory.file` MCP tool instead of `claudia memory document store`. Auto-Memory Discipline pointer example now references `memory.recall` MCP tool instead of CLI syntax.
51
+
52
+ ## 1.51.22 (2026-03-04)
53
+
54
+ ### Memory Interface Alignment (CLI to MCP)
55
+
56
+ All documentation previously referenced a CLI interface (`claudia memory recall`, `claudia memory save`, etc.) that was never built. The actual working interface is MCP tools from the claudia-memory daemon. This release updates the 8 highest-priority files to match reality.
57
+
58
+ - **memory-manager.md: full rewrite** -- Authoritative memory reference now describes MCP tools (`memory.recall`, `memory.remember`, `memory.about`, etc.) instead of non-existent CLI subcommands. Includes full MCP Tool Reference table and migration note for skills not yet updated.
59
+ - **memory-availability.md: MCP architecture** -- Failure mode documentation now correctly describes the daemon not running (check `.mcp.json`, verify daemon startup) instead of a missing CLI binary.
60
+ - **CLAUDE.md: session protocol** -- Session start/end instructions now reference `memory.briefing`, `memory.session_context`, and `memory.end_session` MCP tools instead of CLI commands.
61
+ - **morning-brief: MCP tool calls** -- All CLI commands replaced with MCP equivalents (`memory.morning_context`, `memory.recall`, `memory.about`, `memory.dormant_relationships`).
62
+ - **capture-meeting: MCP tool calls** -- Document filing (`memory.file`), batch operations (`memory.batch`), and provenance linking updated to MCP syntax.
63
+ - **meditate: MCP tool calls** -- Reflection retrieval, storage (`memory.end_session`), and natural language editing examples updated to MCP syntax.
64
+ - **hooks.json: MCP instructions** -- Session start verification, context loading, turn buffering, and source filing instructions now reference MCP tools.
65
+ - **pre-compact.sh/.py: advisory-only** -- Removed non-functional CLI calls. Now emits advisory text pointing Claude to the correct MCP tools for pre-compaction capture.
66
+
67
+ ## 1.51.21 (2026-03-04)
68
+
69
+ ### Data Freshness Protections
70
+
71
+ - **New rule: data-freshness** -- Establishes canonical source hierarchy (source files > database > context files > MEMORY.md). When tiers disagree, higher-authority sources win. Includes the Freshness Test: verify counts against source files before reporting them.
72
+ - **Principle 14: Auto-Memory Discipline** -- MEMORY.md is for structural knowledge, not volatile data. Introduces the Pointer Rule (store "files are at X" not "9 completed") and the Timestamp Rule (dated facts need verification notes).
73
+ - **Trust North Star Principle 6: Data Freshness is a Trust Obligation** -- Reporting a stale count is the same category of trust violation as presenting an inference as fact. Adds verification triggers and freshness signaling guidelines.
74
+ - **morning-brief: workspace verification** -- Before reporting project status, scans workspace directories for actual file counts. Reports from file-system truth, not summaries. Flags discrepancies transparently.
75
+ - **capture-meeting: downstream updates** -- Step 5 "Organize" replaced with prescriptive "Downstream Updates" (5a: person files, 5b: commitments, 5c: workspace files). Factual updates (last contact, history) proceed automatically; consequential changes still require confirmation.
76
+
77
+ ## 1.51.20 (2026-03-03)
78
+
79
+ ### Fix: Multi-Source Status Reconciliation
80
+
81
+ - **capture-meeting: concrete verification commands** -- Replaced vague "query current state" with specific grep commands for counting completed/outstanding items. Grep count is now explicitly authoritative over in-session memory.
82
+ - **capture-meeting: mandatory source reconciliation (Step 5b)** -- After any status change, all three sources (file YAML, memory DB, dashboard tracker) must be updated and cross-checked. Never use in-session counts.
83
+ - **capture-meeting: error recovery guidance** -- Documents how to handle cascading "sibling tool call errored" failures by re-running commands individually.
84
+ - **what-am-i-missing: Data Consistency Check (section 6)** -- New check cross-references memory DB against file-based trackers, flags contradictions like "memory says completed but tracker says outstanding."
85
+ - **morning-brief: verification step** -- Overdue/at-risk items now verified against actual file state before reporting, catching stale memory DB entries.
86
+ - **New rule: shell-compatibility** -- Bans zsh-reserved variable names (`status`, `path`, `prompt`), documents safe patterns for macOS default shell.
87
+
88
+ ## 1.51.19 (2026-03-03)
89
+
90
+ ### Installer UX + License Update
91
+
92
+ - **Installer now asks y/n before installing or upgrading** -- Users confirm before any files are written. Auto-approves in non-TTY environments (CI/scripts) and with `--yes`/`-y` flags.
93
+ - **Blank line between banner and status** -- Visual spacing between "Research in AI that learns how you work" and the first status line.
94
+ - **Logo hairline adjusted** -- Top hair block shifted left to better align with the face.
95
+ - **License changed to PolyForm Noncommercial 1.0.0** -- Replaces Apache 2.0. Free for personal, research, educational, and nonprofit use. Commercial licensing available via mail@kbanc.com.
96
+
97
+ ## 1.51.18 (2026-03-03)
98
+
99
+ ### Fix: Embedding Storage + Functional Health Checks
100
+
101
+ - **Fix: Vec0 primary keys now use BigInt** -- sqlite-vec v0.1.6 + better-sqlite3 requires `BigInt()` for INTEGER PRIMARY KEY columns in vec0 virtual tables. JS numbers are 64-bit floats, which sqlite-vec rejects. This was the actual root cause of the "Only integers are allows for primary key values" error on every embedding INSERT. Applied to all 6 INSERT locations across memory, entity, episode, and reflection embeddings.
102
+ - **Fix: Vec0 MATCH queries now include `k = ?` constraint** -- All 3 vector search queries (memory recall, reflection search, episode search) were missing the required `AND k = ?` clause in the WHERE, causing "A LIMIT or 'k = ?' constraint is required on vec0 knn queries" errors. Semantic search now works end-to-end.
103
+ - **New: Functional health checks in `system-health`** -- Health command now runs a full embedding roundtrip test: generate embedding via Ollama, verify dimensions match config, INSERT into vec0, MATCH query back, cleanup. Also checks dimension consistency across config, database _meta, and actual model output. Reports `memories_with_embeddings` count to surface coverage gaps.
104
+ - **New: `resetAvailability()` on EmbeddingService** -- Health check now clears the cached availability state before probing, so it always reports live status instead of stale cache.
105
+ - **New: Embedding coverage warning** -- If fewer than 50% of memories have embeddings, health check warns and suggests `--backfill-embeddings`.
106
+
107
+ ## 1.51.17 (2026-03-03)
108
+
109
+ ### Critical: Fix Embedding Storage + CLI Documentation
110
+
111
+ - **Fix: Embeddings now stored as Float32Array** -- All vec0 virtual table inserts (memory, entity, episode, reflection embeddings) were using `JSON.stringify()` which better-sqlite3 rejects. Now uses `new Float32Array()` matching the sqlite-vec Node.js API. This restores semantic/vector search, which was silently falling back to keyword-only FTS matching.
112
+ - **Fix: CLI reference in memory-manager.md** -- Corrected inaccurate flags (`--about`, `--summary`, `--action`), added batch JSON schema with examples, documented all 45+ subcommands including temporal, graph, provenance, and session groups. Added valid option values table.
113
+ - **Fix: Batch error messages now show expected format** -- "Invalid JSON input" now includes the expected `{"op":...}` schema inline. Added validation for missing `op` field and non-array input.
114
+ - **Fix: Embedding failure warnings now explicit** -- Changed from misleading "cosmetic" stderr messages to clear warnings explaining semantic search won't find the memory.
115
+ - **Fix: capture-meeting skill** -- Added pronoun context requirement for agent dispatch (prevents Haiku misgendering). Added pre-query step for dashboard/tracker state to prevent stale counts. Fixed `document store` example syntax (positional file arg, not flags).
116
+
117
+ ## 1.51.16 (2026-03-03)
118
+
119
+ ### Rube: Categorized App Directory
120
+
121
+ - **Categorized app list in CLAUDE.md** -- Rube section now shows apps by category (Communication, Meeting Notes & Transcription, Project Management, Databases, CRM, etc.) so users know exactly what they can connect. Includes Granola, Otter.ai, Fireflies.ai, Jira, Linear, Airtable, Supabase, HubSpot, Stripe, and many more.
122
+ - **More usage examples** -- Added examples for Granola meeting notes, Jira sprints, Stripe payments, Airtable records.
123
+
124
+ ## 1.51.15 (2026-03-03)
125
+
126
+ ### Rube Integration (500+ Apps)
127
+
128
+ - **Optional Rube MCP server** -- Connect Slack, Notion, Drive, GitHub, Linear, Jira, and 500+ more apps through a single MCP server via Rube (by Composio). Each user creates their own free Rube account at rube.app, connects apps via one-click OAuth, and pastes one API key. Works alongside existing Gmail/Calendar MCPs.
129
+ - **Comprehensive setup guidance in CLAUDE.md** -- Claudia can now walk users through Rube setup step by step, troubleshoot connection issues, and explain the difference between Rube and individual MCPs.
130
+
131
+ ## 1.51.14 (2026-03-03)
132
+
133
+ ### Installer Banner Fix
134
+
135
+ - **Fix: installer no longer shows `claudia google login`** -- The post-install banner now points to "Google Integration Setup" in CLAUDE.md instead of the old CLI login command, matching the MCP-first approach from v1.51.13.
136
+
137
+ ## 1.51.13 (2026-03-03)
138
+
139
+ ### Gmail & Calendar: Back to MCP
140
+
141
+ - **Reverted Gmail and Calendar from CLI to MCP servers** -- Gmail and Calendar integrations now use the third-party MCP packages (`@gongrzhe/server-gmail-autoauth-mcp` and `@gongrzhe/server-calendar-autoauth-mcp`) instead of Claudia's built-in CLI commands. Each user sets up their own Google Cloud Console project with their own OAuth credentials. No shared authentication. Setup instructions in CLAUDE.md.
142
+ - **Existing users: MCPs auto-restored** -- If v1.51.9-v1.51.12 moved your Gmail/Calendar MCPs to `_disabled_mcpServers`, the installer now moves them back to active `mcpServers`.
143
+ - CLI commands (`claudia gmail`, `claudia calendar`) remain available as a fallback.
144
+
145
+ ## 1.51.12 (2026-03-03)
146
+
147
+ ### OAuth Login: Instant Exit + Auto-Close Tab
148
+
149
+ - **Fix: login commands now exit immediately** -- Three-pronged fix for the 2-minute hang: (1) `openBrowser()` child process is now `.unref()`'d so it doesn't keep the event loop alive, (2) `process.exit(0)` in all login command handlers as a safety net, (3) the browser callback page now auto-closes after 3 seconds with `window.close()` and shows a "Close This Tab" button as fallback.
150
+
151
+ ## 1.51.11 (2026-03-03)
152
+
153
+ ### OAuth Login Speed Fix
154
+
155
+ - **Fix: `claudia google login` no longer hangs for 2 minutes** -- The OAuth callback server used HTTP/1.1 keep-alive connections by default. After the browser received the "Connected!" page, it held the TCP connection open, preventing the Node.js process from exiting. The command would hang until Claude Code's 2-minute Bash timeout killed it. Fixed by setting `Connection: close` headers on all responses and calling `server.closeAllConnections()` (Node 18.2+) to force-destroy sockets immediately. Login now completes in ~10 seconds.
156
+
157
+ ## 1.51.10 (2026-03-03)
158
+
159
+ ### Global MCP Config Warning
160
+
161
+ - **Warn about legacy MCP servers in global `~/.claude.json`** -- The installer now checks the global Claude Code config for legacy MCP servers (memory daemon, Gmail, Calendar) that overlap with Claudia's native CLI commands. These global entries can't be auto-fixed (they're shared across all projects), but the installer warns the user with specific instructions to clean them up. This catches the case where project-level `.mcp.json` is clean but a global config is still launching duplicate MCP servers.
162
+
163
+ ## 1.51.9 (2026-03-03)
164
+
165
+ ### MCP Disable Fix
166
+
167
+ - **Fix: legacy MCP servers now properly disabled** -- Previous versions set `_disabled: true` inside `mcpServers` entries, which is not a supported Claude Code feature. Claude Code was still launching the legacy MCP servers (memory daemon, Gmail, Calendar) even though they appeared "disabled." The installer now uses Claude Code's native disable format: servers are **moved** from `mcpServers` to the `_disabled_mcpServers` top-level key. This matches what Claude Code's own `/mcp` toggle does. The full config is preserved in `_disabled_mcpServers` so users can move it back to re-enable if needed.
168
+
169
+ ## 1.51.8 (2026-03-03)
170
+
171
+ ### Memory MCP Retirement
172
+
173
+ - **Legacy `claudia-memory` MCP auto-disabled on install/upgrade** -- The old Python daemon MCP server is now automatically disabled in `.mcp.json`, just like the Gmail/Calendar MCPs. The native `claudia memory` CLI replaces it entirely. This prevents Claude Code from using the MCP tools instead of the CLI commands.
174
+
175
+ ### Proactive Memory Lookup
176
+
177
+ - **"Search before asking" rule** -- Claudia now has an explicit directive to always query memory when someone is referenced by name or relationship ("my wife", "my boss", "my client"). She resolves the reference via `memory recall` and `memory about` before asking the user for information she might already have.
178
+
179
+ ## 1.51.7 (2026-03-03)
180
+
181
+ ### Gmail Draft
182
+
183
+ - **`claudia gmail draft`** -- Create draft emails with optional attachments via the Gmail API. Same MIME support as `gmail send` (--attach for images/files, --html, --cc, --bcc, --thread, --reply-to) but all fields are optional since drafts can be completed in the Gmail UI. Uses the `drafts.create` endpoint.
184
+
185
+ ### Installer Self-Update
186
+
187
+ - **Self-update trampoline** -- `npx get-claudia .` now checks the npm registry on startup and automatically re-executes with the latest version if the cached copy is outdated. No more stale installs from npx caching. Falls back gracefully if offline. Protected against infinite recursion via `CLAUDIA_SKIP_UPDATE_CHECK` env var.
188
+
189
+ ## 1.51.6 (2026-03-03)
190
+
191
+ ### Gmail Send
192
+
193
+ - **`claudia gmail send`** -- Send emails with optional attachments via the Gmail API. Supports `--to`, `--subject`, `--body` (required), plus `--cc`, `--bcc`, `--attach` (repeatable for multiple files), `--html` (HTML body), `--thread` (reply to a thread), and `--reply-to` (threading headers). MIME message constructed with Node.js built-ins only (no external dependencies). Attachments are base64-encoded with MIME type detection from file extension. 25 MB per-file limit enforced client-side.
194
+
195
+ ## 1.51.5 (2026-03-02)
196
+
197
+ ### Database Migration Fix
198
+
199
+ - **Fix: migration 20 `fact_id` column** -- SQLite does not allow `UNIQUE` constraints on `ALTER TABLE ADD COLUMN`. Migration 20 was silently failing, leaving the `fact_id` column missing and all memory writes broken (`table memories has no column named fact_id`). Fixed by adding the column without the constraint and enforcing uniqueness via a `CREATE UNIQUE INDEX` instead. Existing databases stuck at this broken state will self-heal on next startup.
200
+ - **Fix: `schema.sql` missing from npm package** -- The `memory-daemon/claudia_memory/schema.sql` file was not included in the published npm tarball, causing `[database] Schema file not found` warnings on every CLI invocation. Added to `package.json` `files` array.
201
+
202
+ ## 1.51.4 (2026-03-02)
203
+
204
+ ### MCP Cleanup
205
+
206
+ - **Gmail/Calendar MCPs auto-disabled on install/upgrade** -- The installer now detects active Gmail and Google Calendar MCP servers in `.mcp.json` and disables them automatically. Claudia's native CLI commands (`claudia google login`, `claudia gmail search`, `claudia calendar list`, etc.) replace these external MCP servers entirely.
207
+ - **`.mcp.json.example` cleaned up** -- Removed Gmail and Calendar MCP entries from the template. Added a note pointing users to `claudia google login` instead.
208
+
209
+ ## 1.51.3 (2026-03-02)
210
+
211
+ ### Google Polish
212
+
213
+ - **Unified login** -- `claudia google login` connects both Gmail and Calendar in a single OAuth flow. All 5 scopes requested at once, tokens saved for both services. `claudia google status` and `claudia google logout` manage both.
214
+ - **Calendar search & read** -- `claudia calendar search "meeting"` searches events by text. `claudia calendar read <eventId>` shows full event details including attendees, conference links, and description. Calendar now has full parity with Gmail commands.
215
+ - **OAuth callback page reworked** -- Light theme with Claudia's color palette (cyan/teal accents on white). Removed broken base64 image. Single "Connected" heading (no more duplicate badge). Service-aware: shows Gmail features, Calendar features, or both for unified login.
216
+ - **Faster terminal recognition** -- Added progress messages ("Waiting for browser authorization...", "Token received, finishing setup...") and a 10-second fetch timeout on the token exchange to prevent hanging.
217
+ - **Installer updated** -- Completion message now shows `claudia google login` (unified) instead of separate Gmail/Calendar commands.
218
+ - **CLAUDE.md command table expanded** -- Added `claudia google login/status/logout`, `claudia calendar search`, `claudia calendar read` to the CLI reference.
219
+ - **Landing page** -- `site/index.html` with Claudia branding, feature cards, install command with copy button.
220
+ - **Privacy policy page** -- `site/privacy.html`, styled HTML version of PRIVACY.md.
221
+ - **Terms of service page** -- `site/tos.html`, Apache 2.0, as-is, no liability, no accounts.
222
+
223
+ ## 1.51.2 (2026-03-02)
224
+
225
+ ### Gmail/Calendar CLI Discoverability
226
+
227
+ - **CLAUDE.md updated** -- Gmail and Calendar CLI commands are now documented in the Integrations section of `CLAUDE.md`. Claude Code will recognize `claudia gmail login`, `claudia gmail search`, etc. as shell commands and execute them via the Bash tool instead of trying to interpret them as questions.
228
+
229
+ ## 1.51.1 (2026-03-02)
230
+
231
+ ### Installer: Auto-Install Ollama + Robust Model Pull
232
+
233
+ - **Auto-install Ollama** -- Installer detects if Ollama is missing and installs it automatically via Homebrew (macOS) or the official install script (Linux). Windows users are guided to download manually.
234
+ - **Auto-start Ollama** -- If Ollama is installed but not running, the installer starts it and waits for the API to respond before pulling models.
235
+ - **Ollama key fix** -- Fresh Ollama installs can be missing `~/.ollama/id_ed25519`, causing silent pull failures. The installer now generates the key with `ssh-keygen` if absent, and retries the pull after restarting Ollama if the first attempt fails.
236
+
237
+ ## 1.51.0 (2026-03-02)
238
+
239
+ ### Google Integration
240
+
241
+ - **Gmail CLI** -- `claudia gmail login` opens your browser for Google OAuth. After signing in, Claudia can search, read, and send emails via `claudia gmail search`, `claudia gmail read`. Sign out with `claudia gmail logout`.
242
+ - **Calendar CLI** -- `claudia calendar login` connects Google Calendar. List upcoming events with `claudia calendar list`. Sign out with `claudia calendar logout`.
243
+ - **Loopback OAuth** -- Uses Google's Desktop App flow: temporary localhost server catches the callback, tokens stored locally at `~/.claudia/tokens/`. No server, no data collection.
244
+ - **Branded callback page** -- OAuth success page shows Claudia's logo, feature cards for what the connection enables, and a privacy note.
245
+ - **Privacy policy** -- `PRIVACY.md` added for Google Cloud app verification. Documents zero-collection, local-only architecture.
246
+ - **Installer updated** -- Post-install completion message shows `claudia gmail login` and `claudia calendar login` as optional next steps.
247
+
248
+ ## 1.50.2 (2026-03-02)
249
+
250
+ ### Auto Global Install
251
+
252
+ - **`claudia` auto-installed on PATH** -- After a successful install, `npx get-claudia .` now checks if `claudia` is on PATH. If not, silently runs `npm install -g get-claudia` so hooks and Claude Code can find the CLI immediately.
253
+ - **Completion message improved** -- Shows "Memory is ready" confirmation and simplified next steps.
254
+
255
+ ## 1.50.1 (2026-03-02)
256
+
257
+ ### Installer Fix
258
+
259
+ - **Installer rewritten for CLI** -- `bin/index.js` no longer depends on `memory-daemon/scripts/install.sh`. Environment, AI Models, Memory System, and Health Check steps now use direct Ollama HTTP calls, `createRequire` for native dep verification, and `claudia system-health` via the CLI.
260
+ - **MCP setup removed** -- `setupMcpJson()` eliminated. No `.mcp.json` is created or modified during install.
261
+ - **Demo seeder uses CLI** -- `--demo` flag now seeds via `claudia memory save` instead of Python `seed_demo.py`.
262
+ - **Dead code removed** -- STATUS line parser and `createInterface` import cleaned up.
263
+
264
+ ## 1.50.0 (2026-03-02)
265
+
266
+ ### The CLI Migration
267
+
268
+ Claudia's memory system is rewritten as pure Node.js CLI subcommands, replacing the Python MCP daemon entirely. No more daemon startup bugs, port conflicts, or MCP schema drift. Claude invokes memory via `claudia memory <command>` through the Bash tool.
269
+
270
+ - **21 new CLI files** -- Full Node.js implementation in `cli/` with better-sqlite3, sqlite-vec, and Ollama HTTP client. 7 core modules, 8 services, 5 command groups, 1 entry point.
271
+ - **36 memory subcommands** -- `claudia memory save`, `recall`, `about`, `relate`, `batch`, `end-session`, `consolidate`, `briefing`, `temporal`, `graph`, `entities`, `modify`, `session`, `document`, `provenance`, `summary`, `reflections`, `project-health`, and more.
272
+ - **Full MCP parity** -- All 21 MCP daemon tools ported to CLI equivalents with identical behavior and DB compatibility. Reads existing Python-created `.db` files with zero migration.
273
+ - **35 template files updated** -- Every skill, hook, rule, and agent file rewritten to use CLI commands instead of MCP tool calls. Zero `memory.*` MCP references remain.
274
+ - **Hooks rewritten** -- `session-health-check` and `pre-compact` hooks now call `claudia system-health` and `claudia memory consolidate` instead of HTTP pings to localhost:3848.
275
+ - **MCP server entry removed** -- `.mcp.json.example` no longer registers `claudia-memory` as an MCP server. The CLI is the sole interface.
276
+
277
+ ## 1.49.0 (2026-03-01)
278
+
279
+ ### Visual Polish
280
+
281
+ Edge rendering and environment controls tuned for the React brain explorer. Integrates and closes PR #5.
282
+
283
+ - **Smoother edge curves** -- Radial-basis orbital spread at node surfaces replaces flat normal offsets. Uniform arc-length sampling (`getSpacedPoints`) and higher segment counts (28-72) eliminate visible faceting on curved connections.
284
+ - **Family-aware line lengths** -- Edges classified into entity, memory, and pattern families. Each family has an independent line-length slider that reheats the d3-force layout to spread clusters differently.
285
+ - **Grid color picker** -- Live environment control for grid tint, plus adjusted opacity/thickness curves for stronger visual feedback.
286
+ - **Per-family particle colors** -- Entity, memory, and pattern particles can now be colored independently from node colors via Settings.
287
+ - **Theme refresh** -- Matrix Rain, TRON Arena, and Neo Tokyo redesigned with punchier palettes, stronger glow values, and tighter contrast ratios.
288
+
289
+ ## 1.48.0 (2026-02-28)
290
+
291
+ ### The React Brain
292
+
293
+ Claudia's Brain Visualizer is rebuilt from the ground up on React and react-three-fiber, replacing the vanilla JS + 3d-force-graph frontend entirely. Integrates and closes PR #4.
294
+
295
+ - **React + react-three-fiber frontend** -- Component-based 3D graph explorer with AppShell, BrainScene, NodeGlyphs, EdgeLayer, LabelLayer, SceneFx engine. Zustand store for state management. d3-force-3d layout runs in a dedicated web worker.
296
+ - **10 UI components** -- TopHudBar, LeftSidebar, RightInspector, BottomTimeline, SearchPalette, FilterDrawer, SettingsPanel, DatabaseSwitcher, GraphViewport, and 10 visual themes with live switching.
297
+ - **Old frontend removed** -- Deleted vanilla JS modules (main.js, renderer.js, camera.js, settings.js, themes.js), modular directories (data/, effects/, graph/, materials/, ui/), public-legacy/, and src-legacy/.
298
+ - **Unused dependencies cleaned** -- Removed 3d-force-graph, sigma, and graphology. Added React 19, react-three-fiber, drei, postprocessing, d3-force-3d, zustand.
299
+ - **Bug fix: invalidated_at filter** -- Added `WHERE invalidated_at IS NULL` to `loadGraphDataset()`, `/api/entity/:id`, and `/api/timeline` endpoints. Soft-deleted memories no longer appear in the graph.
300
+ - **Bug fix: hardcoded personal name removed** -- `findHubEntityId()` now uses a pure highest-relationship heuristic instead of a hardcoded regex.
301
+
302
+ ## 1.47.0 (2026-02-28)
303
+
304
+ ### The Safety Net
305
+
306
+ Fixes silent data loss when upgrading from single-database to project-isolated databases, and adds a labeled backup infrastructure to prevent future data loss.
307
+
308
+ - **Legacy database migration** -- Auto-detects stranded `claudia.db` data and migrates it into the active project database on daemon startup. Schema-adaptive reads handle databases from any schema version. Entity matching by `(canonical_name, type)` with content-hash deduplication prevents duplicates.
309
+ - **`--migrate-legacy` CLI** -- Manual migration with `--dry-run` preview, `--legacy-db` custom path, and detailed stats output. Standalone `scripts/migrate-legacy-db.py` for recovery without daemon.
310
+ - **Labeled backups** -- Daily (2:30 AM, 7-day retention) and weekly (Sunday 2:45 AM, 4-week retention) scheduled backups with independent retention tracking. Pre-migration backups created automatically.
311
+ - **Backup verification** -- Every backup validated with `PRAGMA integrity_check`. Corrupt backups are deleted immediately.
312
+ - **Database registry** -- Central `~/.claudia/memory/registry.json` enumerates all known project databases with workspace paths and timestamps.
313
+ - **Integrity fixes** -- WAL cleanup uses direct path concatenation (was fragile `.replace`), backup sorting by `mtime` (was alphabetical, broke with mixed labels).
314
+ - **24 new tests** -- Full migration coverage: entity mapping, dedup, pattern merging, schema gaps, dry-run, rollback on failure, idempotency. 532 total tests, 0 regressions.
315
+
316
+ ## 1.46.0 (2026-02-28)
317
+
318
+ ### Brain Visualizer v4.2
319
+
320
+ Complete rebuild of the 3D Brain Visualizer with a modular architecture, GPU-accelerated rendering, and rich exploration APIs.
321
+
322
+ **Frontend (v4.0-v4.2):**
323
+ - Modular architecture -- monolithic files split into 26 focused modules (data/, effects/, graph/, materials/, ui/)
324
+ - GPU memory particles -- 900+ memory nodes rendered in a single `THREE.Points` draw call with custom ShaderMaterial
325
+ - Luminance-gated chromatic aberration -- post-processing bloom + CA that only applies to bright pixels, keeping text sharp
326
+ - 10 visual themes -- Cosmos, Deep Ocean, Midnight, Aurora, Solar, Nebula, Forest, Sunset, Crystal, Neon
327
+ - Quality presets -- LOW/MEDIUM/HIGH/ULTRA with runtime switching (no reload needed)
328
+ - Connection view presets -- All Connections, Strong Bonds, People Map, Projects, Concepts
329
+ - Sidebar insights -- Memory Breakdown and Insights panels with live data
330
+ - Dramatic node selection -- highlighted neighborhood pops at full brightness while background softens to 35% opacity
331
+ - Async particle flow -- memory-to-entity particles with per-link speed variation via deterministic hash
332
+ - Midnight theme subtle color -- desaturated hues for entity type distinction while maintaining elegant aesthetic
333
+
334
+ **Backend (8 new API endpoints):**
335
+ - `/api/graph/overview` -- entity-first overview with inferred relationships and commitment overlays
336
+ - `/api/graph/neighborhood/:graphId` -- ego-graph exploration with configurable depth
337
+ - `/api/graph/trace` -- BFS shortest-path tracing between entities with shared memory evidence
338
+ - `/api/search` -- text search across entities, memories, and patterns with relevance scoring
339
+ - `/api/commitments/active` -- active commitment tracking with deadline and priority sorting
340
+ - `/api/insights` -- exploration signals: top entities, urgent commitments, cooling relationships, active patterns
341
+ - Enhanced `/api/graph` with signal scoring, entity stats, overdue detection, and richer metadata
342
+ - Enhanced `/api/stats` with safe fallbacks for optional schema columns and commitment counts
343
+
344
+ **Backend architecture:**
345
+ - `graph-contract.js` -- normalized node/edge types, utility functions, schema-adaptive queries
346
+ - `graph-data.js` -- central data loading layer with entity stats, commitment inference, inferred relationships
347
+ - Schema-adaptive SQL -- conditional column selection for backward compatibility across database versions
348
+
349
+ ## 1.45.1 (2026-02-26)
350
+
351
+ ### Open Source & Polish
352
+
353
+ Claudia is now Apache 2.0 licensed, with installer polish and creator attribution.
354
+
355
+ - **Apache 2.0 license** -- Replaces PolyForm Noncommercial for proper open-source status, wider adoption, and required attribution via NOTICE file
356
+ - **Logo alignment** -- Hair centered over face in both the installer banner and session greeting
357
+ - **Creator attribution** -- "by Kamil Banc" with GitHub link and research tagline in Claudia blue/white below the installer logo
358
+ - **Non-TTY fallback** -- Piped output now includes attribution and tagline
359
+
360
+ ## 1.45.0 (2026-02-26)
361
+
362
+ ### Ultra-Compact Installer
363
+
364
+ The installer output drops from ~80-100 lines to ~15 lines with a unified progress display, real-time status updates, and zero redundancy.
365
+
366
+ - **Progress bar** -- 5 unified steps (Environment, AI Models, Memory System, Obsidian Vault, Health Check) replace the old Phase 1/2 + Step 1-8 hierarchy
367
+ - **STATUS protocol** -- `install.sh` and `install.ps1` now support `CLAUDIA_EMBEDDED=1` mode, emitting machine-parseable `STATUS:step:state:detail` lines for programmatic consumers
368
+ - **In-place rendering** -- TTY-aware display with spinner animation and `[████░░░░] 3/5` progress bar that updates in place
369
+ - **Non-TTY fallback** -- Clean append-mode output without ANSI codes for CI/piped environments
370
+ - **Compact banner** -- Portrait-only art (7 rows instead of 12), no typewriter animation
371
+ - **Backward compatible** -- Running `install.sh` standalone produces identical output to before
372
+
373
+ ## 1.44.0 (2026-02-25)
374
+
375
+ ### The Judgment Layer
376
+
377
+ Claudia can now learn your business trade-offs and apply them automatically. A new Judgment Architecture lets her understand which tasks matter most, when to escalate, and what to always surface, based on rules that evolve from your actual behavior during session reflections.
378
+
379
+ **New: Judgment Awareness skill**
380
+ - Loads user-defined rules from `context/judgment.yaml` silently at session start
381
+ - Rules use natural language conditions (not code), matching how `claudia-principles.md` works
382
+ - Five rule categories: priorities, escalation, overrides, surfacing, delegation
383
+ - Strict hierarchy: principles > trust north star > judgment rules > reflections
384
+ - Graceful degradation: Claudia works fine without any judgment file
385
+
386
+ **Extended: Meditate skill**
387
+ - New reflection question: "Did any judgment-relevant decisions happen this session?"
388
+ - Proposes judgment rules when session behavior reveals repeatable business trade-offs
389
+ - User approves, edits, or rejects proposed rules before they're saved
390
+ - Rules written to `context/judgment.yaml` with provenance tracking (`meditate/YYYY-MM-DD`)
391
+
392
+ **Integrations:**
393
+ - Morning Brief checks judgment rules for surfacing triggers and priority ordering
394
+ - Commitment Detector boosts importance for entity-linked escalation rules
395
+ - Risk Surfacer raises severity by one level when escalation rules match
396
+
397
+ **Archetype starter templates:**
398
+ - Optional priority frameworks for all 5 archetypes (Consultant, Founder, Executive, Solo, Creator)
399
+ - Only created when user explicitly requests them during onboarding or later sessions
400
+
401
+ **Invocation consistency fix:**
402
+ - Added explicit `invocation: proactive` to 5 skills that only had legacy `user-invocable: false`
403
+
404
+ ## 1.43.0 (2026-02-24)
405
+
406
+ ### The Trim
407
+
408
+ Claudia's template and memory daemon got a significant trim. Template files shed ~4,000 lines of redundant prose, archetypes now reference a shared base structure instead of duplicating it, and the MCP server was refactored from a monolithic handler into a clean registry pattern. Several memory-side fixes improve correctness.
409
+
410
+ **Template simplification (-4,000 lines):**
411
+ - `CLAUDE.md` condensed: session startup, vault lookups, and skill tables trimmed to essentials with pointers to dedicated skill files
412
+ - `claudia-principles.md` cut from verbose examples to concise principles (same 10 rules, fewer words)
413
+ - All 5 archetype files (consultant, executive, founder, solo, creator) stripped of duplicated structure definitions; now reference `_base-structure.md`
414
+ - `memory-manager.md` streamlined to remove redundant operational detail
415
+ - `what-am-i-missing` skill tightened
416
+ - `accountability-check` skill removed (functionality absorbed into `what-am-i-missing`)
417
+ - `skill-index.json` updated to reflect removals
418
+
419
+ **MCP server refactor:**
420
+ - Converted from monolithic `call_tool()` switch to `@tool_handler` decorator registry pattern
421
+ - Each tool handler is now a self-contained function with its own schema
422
+ - Backward-compatible aliases preserved for all 28 legacy tool names
423
+
424
+ **Memory daemon fixes:**
425
+ - WAL checkpoint upgraded from PASSIVE to TRUNCATE for more reliable crash recovery
426
+ - Deadline surge updates (overdue/48h/7d importance bumps) now wrapped in a single transaction
427
+ - Entity matching in recall uses word-boundary regex instead of substring containment (prevents false matches on short names)
428
+ - Single-character entity names excluded from text matching
429
+ - Recency decay half-life is now configurable via `recency_half_life_days` (default: 30)
430
+
431
+ **Dev docs:**
432
+ - `CLAUDE.md` updated with vault sync docs, config reference, diagnostics section, correct visualizer port, test count
433
+ - New `docs/plans/desktop-strategy/` with 8 design documents for future desktop app exploration
434
+
435
+ 510 tests pass (5 skipped), 0 regressions.
436
+
437
+ ## 1.42.4 (2026-02-24)
438
+
439
+ Consolidated the memory daemon test suite from 47 files to 39 by merging 13 related test files into 5 well-organized modules. All 508 tests pass with zero regressions. No test logic changed, just better structure.
440
+
441
+ - **Guards:** `test_guards.py` + `test_relationship_guards.py` merged into `test_validation_guards.py`
442
+ - **Daemon lifecycle:** `test_health.py` + `test_scheduler.py` + `test_startup.py` + `test_backup.py` merged into `test_daemon_lifecycle.py`
443
+ - **Entity lifecycle:** `test_entity_management.py` + `test_corrections.py` merged into `test_entity_lifecycle.py`
444
+ - **Vault sync:** `test_vault_sync.py` + `test_vault_sync_v2.py` merged into `test_vault_operations.py`
445
+ - **Graph:** `test_graph.py` + `test_graph_retrieval.py` + `test_graph_analytics.py` merged into `test_graph_operations.py`
446
+
447
+ 508 tests pass (5 skipped), 0 regressions.
448
+
449
+ ## 1.42.3 (2026-02-21)
450
+
451
+ Four fixes from a live field report:
452
+
453
+ - **Critical fix:** Fresh installs now correctly pass `--project-dir` to the standalone daemon's LaunchAgent (macOS) and Task Scheduler entry (Windows). Previously the daemon always ran maintenance jobs (decay, pattern detection, consolidation) against the global default database instead of the project-specific one. Upgrades trigger a rewrite of the plist/task with the correct path.
454
+ - **Medium fix:** `memory.system_health` now fetches scheduler state from the running daemon's HTTP endpoint (`GET :3848/status`) instead of calling `get_scheduler().is_running()` in-process — which always returned `False` inside the MCP subprocess. Scheduler status is now accurate.
455
+ - **New:** `POST /backup` endpoint on port 3848 lets you trigger a backup with `curl -X POST http://localhost:3848/backup`. New `memory.backup` MCP tool does the same with an HTTP-first / direct-fallback pattern.
456
+ - **New:** Orphan episodes (sessions that ended without an explicit `memory.end_session` call) are now auto-closed during nightly consolidation. Episodes open for more than 24 hours get a synthetic `ended_at` and `is_summarized = 1`, eliminating false positives in health reports.
457
+
458
+ 503 tests pass (5 skipped), 0 regressions.
459
+
460
+ ## 1.42.2 (2026-02-19)
461
+
462
+ Refreshed README to better communicate Claudia's strengths, cognitive architecture, and real-world value. Added "How Her Mind Works" section explaining Remember/Recall/Consolidate/Vault in plain English. Expanded "See It in Action" with morning brief and pattern detection examples. Updated feature cards for PARA vault, background learning, and pattern detection. Promoted cognitive extraction from hidden details to visible paragraph. Cleaned up commands table (removed archived gateway/relay, added vault sync, brain, deep-context, and more).
463
+
464
+ ## 1.42.1 (2026-02-19)
465
+
466
+ Updated vault-awareness skill and architecture docs to reflect the PARA structure shipped in v1.42.0. Claudia now references correct PARA paths (Active/, Relationships/, Reference/, Archive/, Claudia's Desk/) in deep links, routing logic, and navigation guidance. Added vault to ARCHITECTURE.md installed files tree.
467
+
468
+ ## 1.42.0 (2026-02-19)
469
+
470
+ ### PARA Second Brain
471
+
472
+ The vault is now a proper second brain for business. Entities route into PARA-inspired folders based on their activity status, not just their type. Claudia's machine-readable files live in her own named zone.
473
+
474
+ **Vault PARA restructure:**
475
+ - Four human-facing folders: `Active/` (projects with attention), `Relationships/` (people + organizations), `Reference/` (concepts + locations), `Archive/` (dormant or explicitly archived entities)
476
+ - Routing uses existing `attention_tier` and `contact_trend` fields: archived or dormant entities go to Archive, everything else routes by entity type
477
+ - `Claudia's Desk/` is Claudia's named zone for MOC files, patterns, reflections, sessions, and dataview query templates
478
+ - Home.md rewritten as PARA navigation dashboard with active projects, relationship counts, needs-attention callouts, and quick links
479
+ - `--migrate-vault-para` CLI flag with safety-first workflow: backs up both database and vault, copies (not moves), verifies file counts, cleans up only after verification passes
480
+ - Old `--organize-vault` (wing migration) removed along with `use_claudia_wing` and `claudia_wing_dir` config fields
481
+
482
+ **Self-awareness mechanism:**
483
+ - Installer now writes `context/whats-new.md` after install/upgrade with the current version's changelog and full skill inventory (grouped by invocation type)
484
+ - Claudia reads it at session start, mentions the update in her greeting, then deletes the file
485
+ - `showWhatsNew()` now reads from CHANGELOG.md dynamically instead of hardcoded bullets
486
+
487
+ **Fixes:**
488
+ - Logo alignment corrected (hair line shifted 2 spaces right)
489
+ - Removed phantom `/curate-vault` from skills table
490
+ - Added `/brain`, `/deep-context`, `/fix-duplicates`, `/memory-health` to contextual skills table
491
+
492
+ 503 tests pass (5 skipped), 0 regressions.
493
+
494
+ ## 1.41.0 (2026-02-19)
495
+
496
+ ### Vault Organizer: Efficiency-First Architecture
497
+
498
+ The vault is now dual-purpose: a human-browsable Obsidian graph and Claudia's own cheap read layer. Session start overhead drops from ~1,800 tokens to ~550 on healthy days. Every data access path now has a cheaper degraded-mode equivalent.
499
+
500
+ **Session start token reduction (~70% savings):**
501
+ - `memory.briefing` is now the primary session-start call (~500 tokens) replacing `memory.session op=context` (~1,200 tokens). Deep context loads only when the briefing flags alerts (overdue commitments, cooling relationships, unread messages)
502
+ - Session health hook output trimmed from ~700 tokens to ~50: user profile injection removed (profile lives in `context/me.md`; Claudia reads it when needed), daemon-down messages condensed to one-liners per platform
503
+ - New `/briefing` HTTP endpoint on port 3848 so future hooks can access briefing data without MCP
504
+
505
+ **Living MOCs as Claudia's read layer:**
506
+ - Three pre-computed vault files generated on every sync: `MOC-People.md` (tier-grouped relationship health map with last contact, trend, open commitments), `MOC-Commitments.md` (overdue / due this week / open / recently completed), `MOC-Projects.md` (tier-grouped with connected people and commitment counts)
507
+ - Reading `MOC-People.md` replaces `memory.graph op=network` for overview queries (~0 MCP tokens vs 200-300+). CLAUDE.md documents the vault file paths and when to use vault reads vs MCP calls
508
+ - MOC files regenerated on every incremental sync (pure SQL, <50ms, no embeddings)
509
+
510
+ **Pattern backlinks:**
511
+ - Entity notes now include a "Related Patterns" section linking to patterns that reference them
512
+ - Pattern notes include typed entity wikilinks back to the people/projects they describe
513
+ - Vault graph coherent: no orphaned pattern nodes
514
+
515
+ **Claudia Wing (opt-in vault organizer):**
516
+ - New `--organize-vault` CLI flag migrates an existing flat vault into a typed container structure: `claudia/relational/` for people/concepts, `claudia/ops/` for projects/orgs, `claudia/self/` for reflections, `claudia/` root for MOC files
517
+ - `--organize-vault --preview` shows the migration plan without making changes
518
+ - Copy-not-move semantics: originals preserved, aliases injected into frontmatter so existing Obsidian wikilinks resolve
519
+ - `use_claudia_wing: false` by default -- fully opt-in, no disruption to existing vaults
520
+
521
+ **Consolidation vault reweave:**
522
+ - After Phase 3 (pattern detection), `run_full_consolidation()` now triggers an incremental vault sync inline, keeping MOC files current for the next morning session
523
+ - 4R phase labels added as inline documentation: Reduce (decay), Reflect (merge), Reweave (pattern detection + vault sync), Verify (dedupe + cleanup)
524
+ - 3:15 AM scheduled full sync retained as safety net
525
+
526
+ **Fallback chain: MCP tools → vault MOC files → vault entity files → `context/` files**
527
+
528
+ 503 tests pass (5 skipped).
529
+
530
+ ## 1.40.5 (2026-02-18)
531
+
532
+ ### Brain Visualizer: Performance Fix
533
+
534
+ - **Replaced O(N) triggerRefresh() with O(k) targeted material updates** - Node clicks no longer force 3d-force-graph to re-evaluate color/width callbacks on every node and link. Instead, directly manipulates Three.js materials on just the selected neighborhood (~5-20 items). Saves/restores original materials on selection change.
535
+ - **Skipped idle memory nodes in per-frame animation loop** - Memory nodes that aren't actively spawning, pulsing, or shimmering are now skipped in `animateNodes()`. Since memories outnumber entities 3:1+, this eliminates ~75% of per-frame iterations.
536
+ - **Reduced bloom strength 30% across all 10 themes** - UnrealBloomPass strength reduced by 0.7x and radius by 0.75x. Maintains glow aesthetic while cutting GPU bloom cost. Ultra quality preset scaled proportionally.
537
+ - **Faster force simulation settling** - Increased `d3AlphaDecay` default from 0.008 to 0.02, so the graph stabilizes ~2.5x faster and stops burning CPU on force calculations.
538
+ - **Guarded theme change listeners** - Both `links.js` and `nodes.js` theme listeners now track the previous theme ID and skip reconfiguration when it hasn't changed.
539
+ - **Replaced full node rebuild on theme change** - Theme switches no longer call `Graph.nodeThreeObject()` (which recreated all geometries, materials, and textures). Now updates `material.color` and `material.emissive` in-place on existing meshes.
540
+
541
+ ## 1.40.4 (2026-02-18)
542
+
543
+ ### Brain Visualizer: One-Command Experience
544
+
545
+ - **Visualizer now ships with npm package** - Added `visualizer` to `package.json` `files` array so `npx get-claudia` installs the 3D brain visualizer automatically
546
+ - **Pre-built frontend included** - Removed `dist/` from `.npmignore` so the Vite-built frontend ships ready to serve. No dev tools needed on the user's machine.
547
+ - **Auto-open browser** - New `--open` flag on `server.js` launches the browser automatically after the server starts. Uses `execFile` (not `exec`) for shell injection safety, with platform detection for macOS/Linux/Windows.
548
+ - **Single-server brain skill** - Rewrote `/brain` skill from a 6-step two-server flow (Express + Vite dev server) to a 4-step single-server experience. One process, one port (3849), one command.
549
+
550
+ ## 1.40.3 (2026-02-18)
551
+
552
+ ### MCP Tool UnboundLocalError Fixes
553
+
554
+ - **Fixed: `memory.temporal` (operation: "upcoming") crashing with UnboundLocalError** - A `from ..services.recall import recall_upcoming_deadlines` inside the legacy `memory.upcoming` alias branch caused Python to treat `recall_upcoming_deadlines` as a local variable throughout the entire `call_tool` function, making it unbound at the merged-tool dispatch site. Removed the redundant local import; the name is already imported at module level.
555
+ - **Fixed: `memory.graph` (operation: "reconnect") crashing with UnboundLocalError** - Two `from datetime import datetime` imports inside if-branches of the `memory.end_session` handler caused the same scoping problem for `datetime`, which is used earlier in the function by the reconnect handler. Removed the redundant local imports; `datetime` is already imported at module level.
556
+
557
+ ## 1.40.2 (2026-02-18)
558
+
559
+ ### Port Conflict Fix + Graceful Degraded Mode
560
+
561
+ - **Fixed: MCP process crashes with [Errno 48] when standalone daemon is running** - When the LaunchAgent/systemd daemon holds port 3848, Claude Code's ephemeral MCP server process was unconditionally trying to bind the same port and failing before registering any tools. `start_health_server()` and `start_scheduler()` are now guarded by `if not mcp_mode:`, consistent with the existing singleton lock guard. MCP processes are session-bound and ephemeral; the standalone daemon owns the port and the scheduler.
562
+ - **User profile injected in degraded session context** - When the daemon auto-restarts (or is otherwise unavailable), the session-health-check hook now appends the contents of `context/me.md` to the hook output. Claudia can greet the user naturally and work from markdown context even before memory tools become available.
563
+ - **Improved fallback mode in CLAUDE.md** - When memory tools are absent, Claudia now reads `context/me.md` and related files immediately as her first action, before saying anything, then greets the user naturally using that context. Clearer guidance on when to offer troubleshooting vs. when a `/diagnose` run is the right next step.
564
+ - **Cleaner rule language** - `claudia-principles.md` now explicitly prohibits referencing internal implementation details (skill files, hook names, MCP tool IDs) in conversation. `memory-availability.md` rewritten for concision, with the "Why This Matters" section condensed to avoid verbatim surfacing.
565
+
566
+ ## 1.40.1 (2026-02-18)
567
+
568
+ ### Memory Tool Guard + Singleton Lock Fix
569
+
570
+ - **Fixed: MCP server blocked by standalone daemon (singleton lock conflict)** - When the LaunchAgent or systemd service runs the daemon with `--standalone`, it held the global `claudia.lock`. Claude Code's MCP server would try to acquire the same lock, see another daemon running, and exit silently with code 0 -- leaving memory tools unregistered. Fixed by making the lock conditional on standalone mode only. MCP servers are ephemeral and don't need the lock; SQLite WAL handles concurrent access safely.
571
+ - **Explicit episodic-memory guard** - Claudia now has explicit instructions (hooks.json, new `memory-availability.md` rule) to never use `plugin:episodic-memory` as a substitute for her own `mcp__claudia-memory__*` tools. Using the wrong tool masked the real problem and returned unrelated memories.
572
+ - **Clearer restart message from health hook** - When the daemon auto-restarts, the hook now explicitly tells Claudia that MCP tools are NOT yet registered in the current session (because MCP connects at session start, before the restart). Claudia tells the user to restart Claude Code -- one clear action, no command to type.
573
+ - **New `memory-availability.md` rule** - Session-level rule reinforcing the no-substitute policy and explaining the restart-only fix. Acts as belt-and-suspenders alongside hooks.json.
574
+ - **`/diagnose` updated** - Detects standalone daemon process count, explains the pre-v1.40.1 lock conflict, and provides fix instructions for users on older versions.
575
+
576
+ ## 1.40.0 (2026-02-18)
577
+
578
+ ### MCP Tool Consolidation
579
+
580
+ - **41 tools reduced to 21 visible tools** - Related MCP tools consolidated into 8 composite tools with `operation` parameters, improving LLM tool selection accuracy (degrades above ~15-20 tools)
581
+ - **8 new merged tools** - `memory.temporal`, `memory.graph`, `memory.entities`, `memory.vault`, `memory.modify`, `memory.session`, `memory.document`, `memory.provenance` each combine 2-5 related operations
582
+ - **Full backward compatibility** - All 28 old tool names remain callable as aliases in `call_tool()`, just hidden from `list_tools()`. Existing hooks, scripts, and integrations continue working
583
+ - **`memory.purge` hidden** - Destructive admin operation removed from tool listing (still callable by skills that need it)
584
+ - **Template files updated** - 19 skill, hook, and rule files updated to reference new merged tool names
585
+ - **Archived gateway/telegram references cleaned** - Removed stale references to archived relay/gateway/visualizer components from template files
586
+
587
+ ## 1.39.4 (2026-02-17)
588
+
589
+ ### Daemon Robustness Path B
590
+
591
+ - **Per-request transaction isolation** - Every MCP tool call is now wrapped in a single SQLite transaction. If a service function fails mid-way, the connection rolls back cleanly instead of leaving dirty state that could corrupt sibling calls.
592
+ - **Startup integrity check with auto-restore** - On daemon start, a read-only `PRAGMA integrity_check` runs before accepting any requests. If the database is corrupt, the latest rolling backup is automatically restored and stale WAL files are removed. A critical log message guides manual recovery if no backup exists.
593
+ - **Session health-check auto-restart** - When the daemon is installed but stopped, the session hook now attempts a silent restart (launchctl on macOS, systemctl on Linux) and re-checks health before falling back to a manual suggestion. Most dropped-daemon situations self-heal without user intervention.
594
+ - **7 new tests** - Transaction isolation (commit on success, rollback on exception, cursor reuse) and startup integrity (healthy db, backup restore, no-backup logging, missing db skip).
595
+
596
+ ## 1.39.3 (2026-02-16)
597
+
598
+ ### Session Greeting Fix
599
+
600
+ - **Fixed distorted robot logo** - Reduced leading whitespace so code block renderers can't strip the indentation that creates the face overhang. Added top padding for clean rendering.
601
+
602
+ ## 1.39.2 (2026-02-16)
603
+
604
+ ### Installer Fixes
605
+
606
+ - **Cognitive tools now auto-install** - Non-interactive mode (via `npx`) now installs the recommended LLM (qwen3:4b) instead of silently skipping. Previously, upgrading via `npx get-claudia .` would leave cognitive tools disabled with no prompt offered.
607
+ - **Suppressed confection/Pydantic UserWarning** - The previous fix only filtered DeprecationWarning; confection emits a UserWarning on Python 3.14. Now all Python warnings are suppressed during install.
608
+ - **Clean venv on upgrade** - `python -m venv --clear` ensures stale packages from a previous Python version don't persist (fixes Python 3.14 packages lingering after selecting 3.13)
609
+
610
+ ## 1.39.1 (2026-02-16)
611
+
612
+ ### Installer Bug Fixes
613
+
614
+ - **Fixed `set -e` abort during upgrade** - The install script would abort at "Checking embeddings..." and report "Memory setup had issues" even though the core installation succeeded. The `--backfill-embeddings` and markdown migration commands now properly capture exit codes under `set -e`
615
+ - **Actionable error messages** - Backfill failures now explain *why* (Ollama not responding, embedding model changed, etc.) instead of silently skipping
616
+ - **Suppressed harmless Python warnings** - Pydantic V1 deprecation warnings on Python 3.14 no longer appear during install
617
+ - **Failure details logged** - Backfill errors are written to `~/.claudia/install.log` for debugging
618
+ - **Improved retry guidance** - The installer now points to diagnostics (`~/.claudia/diagnose.sh`) when memory setup fails
619
+
620
+ ### Session Greeting
621
+
622
+ - **Claudia now shows her robot logo** at the start of every session, giving a consistent visual identity in the terminal
623
+
624
+ ## 1.39.0 (2026-02-16) - The Graph Intelligence Upgrade
625
+
626
+ ### Enhanced Graph Retrieval
627
+
628
+ Six GraphRAG-inspired enhancements to Claudia's memory system, improving how she understands relationships and connections between entities.
629
+
630
+ #### Strength-Aware Graph Traversal
631
+ - Graph proximity scoring now accounts for relationship strength instead of flat hop-distance values
632
+ - 1-hop scores scale with edge strength (0.5-0.8 range); 2-hop scores multiply path strengths
633
+ - Multi-entity bonus: memories connecting multiple query entities get a 15% boost per additional connection, helping "connect-the-dots" queries
634
+
635
+ #### Entity Summaries
636
+ - New `entity_summaries` table caches structured overviews for entities with sufficient memories
637
+ - Summaries include key facts, relationships, open commitments, and contact velocity
638
+ - Generated during consolidation, refreshed on a configurable schedule (default: 7 days)
639
+
640
+ #### Entity Overview MCP Tool
641
+ - New `memory.entity_overview` tool for community-style queries across one or more entities
642
+ - Returns cross-entity patterns, relationship maps, shared memories, and open commitments
643
+ - Enables questions like "what connects Sarah, the Acme deal, and the budget review?"
644
+
645
+ #### Auto-Dedupe Entity Detection
646
+ - Identifies potential duplicate entities using vec0's native KNN search on embeddings and alias overlap
647
+ - Stores merge suggestions as predictions for user review (does not auto-merge)
648
+ - Each detection method runs independently, so alias overlap works even without sqlite-vec
649
+
650
+ #### Provenance Chain Rendering
651
+ - `memory.trace` now returns structured provenance chains showing a memory's full lifecycle
652
+ - Chain steps: origin, source document, episode, context, memory, correction, invalidation, entities
653
+
654
+ #### New Configuration Options
655
+ - `enable_entity_summaries` (default: true), `entity_summary_min_memories` (default: 2), `entity_summary_max_age_days` (default: 7)
656
+ - `enable_auto_dedupe` (default: true), `auto_dedupe_threshold` (default: 0.90)
657
+ - `graph_proximity_weight` (default: 0.15) - all configurable via `~/.claudia/config.json`
658
+
659
+ ### Installer UX for Non-Technical Users
660
+
661
+ Six improvements to reduce friction for users who aren't comfortable with terminals and dependency management.
662
+
663
+ - **Unmissable restart instruction** - Bold yellow with explicit command, instead of dim text users miss
664
+ - **pip install logging** - Output goes to `~/.claudia/install.log` instead of `/dev/null`, with failure guidance
665
+ - **Post-install health check** - Verifies the daemon actually started on both macOS and Linux
666
+ - **Non-interactive LLM skip** - `npx` installs no longer hang on the cognitive tools prompt
667
+ - **Onboarding time estimate** - First-run greeting sets expectations ("takes about 5 minutes")
668
+ - **Obsidian explainer** - Tells users what Obsidian is when it's not detected
669
+
670
+ ### Database
671
+ - New migration 19: `entity_summaries` table with indexes and integrity check
672
+ - Migration integrity now covers all 19 migrations
673
+
674
+ ### Testing
675
+ - 22 new tests in `test_graph_retrieval.py` covering all graph enhancements
676
+ - 478 tests passing, 0 regressions
677
+
678
+ #### Stats
679
+ - Install: `npx get-claudia@1.39.0`
680
+
681
+ ## 1.38.0 (2026-02-14)
682
+
683
+ ### Workspace Templates
684
+
685
+ 9 new Obsidian workspace templates for project management. These ship with the installer and are available in your vault's `workspaces/_templates/` directory.
686
+
687
+ - **Agreement** - Contract and agreement tracking with key terms and change history
688
+ - **Dashboard** - Project overview with phase tracker, deliverables, and dataview queries
689
+ - **Deliverable** - Individual deliverable tracking with evidence strength scoring
690
+ - **Interview** - Assessment interview template with 6-dimension scoring
691
+ - **Invoice** - Invoice tracking with line items and payment status
692
+ - **Meeting** - Meeting capture with decisions, action items, and themes
693
+ - **Pipeline** - Sales pipeline with active engagements, leads, and capacity tracking
694
+ - **Theme** - Theme/topic tracking with evidence and deliverable implications
695
+ - **Timeline** - Chronological project timeline
696
+
697
+ ### New Skills
698
+
699
+ - **new-workspace** - Create a workspace skeleton for a new project, client, or venture. Gathers details, creates directory structure with populated templates, validates generated files, and updates your main dashboard.
700
+ - **gateway** - Start, stop, or check status of the Claudia Gateway service for Telegram and Slack messaging integration.
701
+ - **setup-gateway** - Guided walkthrough for setting up the API-based gateway (lightweight, fast chat interface).
702
+ - **setup-telegram** - Guided walkthrough for setting up the Telegram relay (full agent sessions with all skills and memory).
703
+ - **inbox-check** - Lightweight inbox triage across all configured email accounts. Uses a fast subagent to fetch messages, then provides judgment on what matters and what needs a reply.
704
+
705
+ ### Vault Sync Improvements
706
+
707
+ #### Markdown table validation
708
+ The vault sync service now validates markdown tables at every entity export write point. Detects corrupted tables where header and separator rows have been merged onto a single line (a rendering issue that causes tables to display as raw text in Obsidian). Warnings are logged when corruption is detected.
709
+
710
+ #### Table repair method
711
+ New `_repair_broken_tables()` method that can split merged header/separator lines back into proper multi-line format. Available for future automatic repair integration.
712
+
713
+ ### Skill Improvements
714
+
715
+ - **capture-meeting** - Added table rendering validation to the quality checklist
716
+ - **new-workspace** - Includes Step 3 "Validate Generated Files" to catch table corruption at creation time
717
+
718
+ ### Installer
719
+
720
+ #### Python 3.13 support
721
+ - Added Python 3.13 to pyproject.toml classifiers (was already working, now official)
722
+
723
+ #### Visible spaCy status
724
+ - When spaCy can't install (e.g., Python 3.14+), the installer now displays a clear message explaining that entity extraction will use pattern matching instead of NLP, rather than failing silently
725
+
726
+ #### Optional memory daemon
727
+ - New `--no-memory` flag for template-only installs without the Python memory daemon
728
+ - Upgrades now also receive workspace templates (`workspaces/` added to framework paths)
729
+
730
+ ### Compatibility
731
+
732
+ - **Python:** 3.10, 3.11, 3.12, 3.13 (tested)
733
+ - **Python 3.14+:** Installs with reduced NLP (pattern matching instead of spaCy). Core functionality unaffected.
734
+
735
+ #### Stats
736
+ - Install: `npx get-claudia@1.38.0`
737
+
738
+ ---
739
+
740
+ ## 1.37.3 (2026-02-12)
741
+
742
+ ### The Second Brain Upgrade
743
+
744
+ The Obsidian vault is no longer a data dump. It's a genuinely useful knowledge base with visual hierarchy, navigation, and graph theming out of the box.
745
+
746
+ #### Added
747
+ - **Home dashboard** - `Home.md` serves as the vault entry point with quick navigation links (entity counts), attention watchlist, open commitments, and recent activity table. Regenerated on every sync.
748
+ - **MOC index files** - `_Index.md` in each entity type directory, grouped by attention tier (active, watchlist, standard, archive) with sortable tables.
749
+ - **Status callouts** - Person notes show attention tier, trend, last contact, and frequency in an `[!info]` callout. Project notes show connected people count and open commitments.
750
+ - **Verification-grouped memories** - Key facts split into verified (`[!note]`) and unverified (`[!warning]`) callout blocks with origin and confidence tags.
751
+ - **Relationship tables** - Connections displayed as scannable tables (Connection | Type | Strength) instead of flat bullet lists.
752
+ - **Interaction timeline** - Last 10 sessions in dated `[!example]` callouts instead of 5 truncated bullets.
753
+ - **People overview canvas** - New `people-overview.canvas` showing person-to-person relationships only (who works with whom).
754
+ - **Morning brief reconnection card** - Surfaces dormant/decelerating contacts with importance > 0.3 in the morning brief canvas.
755
+ - **Narrative wikification** - Session narratives wrap known entity names in `[[wikilinks]]`, connecting sessions to entities in graph view.
756
+ - **7 Dataview templates** - Added Active Network, Entity Overview, Session Log. Open Commitments upgraded to TASK query.
757
+ - **.obsidian config** - Ships graph.json (7 color groups by entity type), claudia-theme.css (emoji prefixes, tag color pills), workspace.json (opens Home.md with graph sidebar). Created on first sync, never overwrites.
758
+ - **Vault format versioning** - `vault_format_version: 2` in `_meta/last-sync.json`. Old vaults auto-rebuild on sync.
759
+
760
+ #### Changed
761
+ - **Rich frontmatter** - Added `name`, `attention_tier`, `contact_trend`, `contact_frequency_days`, `last_contact`, compound `tags` (type + tier + trend), `cssclasses` for CSS styling. Fixed `aliases` to proper YAML list format.
762
+ - **Hierarchical sessions** - Session files now use `sessions/YYYY/MM/YYYY-MM-DD.md` paths instead of flat `sessions/YYYY-MM-DD.md`.
763
+ - **Grouped relationship map** - Quadrant layout by entity type (People top-left, Projects top-right, Orgs bottom-left, Concepts bottom-right) with group container nodes instead of flat circular layout.
764
+
765
+ #### Fixed
766
+ - **sqlite3.Row access** - Added `_row_get()` helper for safe field access on `sqlite3.Row` objects (which lack `.get()`). Fixes crashes in frontmatter and status callout rendering.
767
+
768
+ #### Stats
769
+ - 456 tests pass, 5 skipped, 0 regressions
770
+ - Install: `npx get-claudia`
771
+
772
+ ---
773
+
774
+ ## 1.37.2 (2026-02-12)
775
+
776
+ ### Python 3.14 Compatibility
777
+
778
+ #### Fixed
779
+ - **macOS installer** now prefers Python 3.13 over 3.14 for spaCy compatibility. Searches Homebrew symlinks, then Cellar paths, with SQLite extension validation. Falls back to 3.14 gracefully when 3.13 is unavailable.
780
+ - **Windows installer** now prefers Python 3.10-3.13, falling back to 3.14+ with a visible warning about reduced NLP capabilities.
781
+
782
+ #### Stats
783
+ - Install: `npx get-claudia`
784
+
785
+ ---
786
+
787
+ ## 1.37.1 (2026-02-12)
788
+
789
+ ### Directory Policy Compliance
790
+
791
+ #### Added
792
+ - **MCP tool annotations** - All 42 tools now include `title` and `ToolAnnotations` (readOnlyHint, destructiveHint, openWorldHint) for Anthropic Software Directory compliance. 23 read-only, 12 write-safe, 7 destructive, 2 open-world.
793
+ - **Vault awareness skill** indexed in skill-index.json (was missing)
794
+
795
+ #### Fixed
796
+ - **memory-manager.md** tool reference now includes all 7 tools added in v1.37.0: `memory.upcoming`, `memory.since`, `memory.timeline`, `memory.reconnections`, `memory.project_health`, `memory.summary`, `memory.import_vault_edits`
797
+ - **skill-index.json** descriptions updated for relationship-tracker, risk-surfacer, and morning-brief to reflect temporal/velocity capabilities
798
+
799
+ #### Stats
800
+ - 436 tests pass, 5 skipped, 0 regressions
801
+ - Install: `npx get-claudia`
802
+
803
+ ---
804
+
805
+ ## 1.37.0 (2026-02-12)
806
+
807
+ ### The Proactive Intelligence Upgrade
808
+
809
+ Claudia now thinks ahead. She tracks deadlines, notices when relationships are cooling, syncs her memory to an Obsidian vault, and generates visual dashboards you can browse in Obsidian's graph view.
810
+
811
+ #### Added
812
+ - **Temporal intelligence** - Memories now carry deadline and temporal marker metadata. New `memory.upcoming`, `memory.since`, and `memory.timeline` MCP tools let Claudia surface what's due, what happened recently, and full chronological views.
813
+ - **Contact velocity tracking** - Entities track `last_contact_at`, `contact_frequency_days`, and `contact_trend` (accelerating/stable/decelerating/stale). New `memory.reconnections` tool surfaces relationships that need attention.
814
+ - **Attention tiers** - Entities are automatically classified into inner_circle, active, peripheral, or dormant based on contact patterns. Consolidation updates tiers nightly.
815
+ - **Obsidian vault sync** - Every entity becomes a markdown note with `[[wikilinks]]` in `~/.claudia/vault/`. Obsidian's graph view acts as a relationship visualizer. Sync runs nightly and on-demand.
816
+ - **Canvas generation** - Relationship maps, morning brief dashboards, and project boards generated as `.canvas` files for Obsidian. Canvas preservation ensures manual edits survive re-generation.
817
+ - **Vault edit import** - New `memory.import_vault_edits` tool detects when you've edited vault markdown files and syncs changes back into the memory database.
818
+ - **Project health tool** - New `memory.project_health` surfaces stale projects and at-risk deliverables.
819
+ - **Temporal extraction** - `extraction/temporal.py` parses natural language deadlines ("by Friday", "end of Q1") into ISO dates with confidence scores.
820
+
821
+ #### Changed
822
+ - **Installer streamlined** - Replaced visualizer setup with Obsidian vault detection. Install is now 2 phases (memory daemon + Obsidian vault) instead of 4.
823
+ - **Skills updated** - Commitment detector, relationship tracker, risk surfacer, morning brief, and vault awareness skills all leverage the new temporal and contact velocity data.
824
+ - **Consolidation enhanced** - Three new sub-steps: surge approaching deadlines, update contact velocity, update attention tiers. Each wrapped in independent try-except for resilience.
825
+
826
+ #### Database
827
+ - Migration 17: `deadline_at` and `temporal_markers` columns on memories table
828
+ - Migration 18: `last_contact_at`, `contact_frequency_days`, `contact_trend`, `attention_tier` columns on entities table
829
+ - Both migrations are purely additive with duplicate-column guards. Existing databases upgrade safely.
830
+
831
+ #### Stats
832
+ - 436 tests pass, 5 skipped, 0 regressions
833
+ - 6 new test files covering temporal extraction, temporal recall, vault sync, canvas preservation, and consolidation v2
834
+ - Install: `npx get-claudia`
835
+
836
+ ---
837
+
838
+ ## 1.36.1 (2026-02-10)
839
+
840
+ ### Fix: Edge Bundling & Highlight Intensity
841
+
842
+ #### Fixed
843
+ - Edge bundling algorithm: inverted endpoint stiffness (middle points now move most), force averaging that killed dense clusters (accumulated instead), flat force falloff (now inverse-square)
844
+ - Highlight intensity toned down: radius 1.3 to 0.8, opacity 0.65 to 0.45, particle count 6 to 3
845
+ - Installer now attempts visualizer install on upgrades even if memory step had issues
846
+
847
+ ---
848
+
849
+ ## 1.36.0 (2026-02-10)
850
+
851
+ ### Brain Visualizer V1
852
+
853
+ The 3D brain visualizer gets four upgrades that make dense graphs readable, search smarter, and the visual experience more customizable.
854
+
855
+ #### Added
856
+ - **Edge bundling** - Tightly interconnected clusters (e.g., YPO Forum V+) now render bundled "highway" edges instead of spaghetti. Uses force-directed edge bundling (FDEB) as a post-processing pass after simulation settles. Configurable strength, radius, and endpoint stiffness via design panel.
857
+ - **5 new dark themes** - Noir Signal (high-contrast black + crimson), Arctic Command (cool blue-white ops center), Synth Wave (retro neon pink/cyan), Copper Patina (warm industrial copper/teal), Phosphor Terminal (green-on-black CRT). Now 10 themes total.
858
+ - **Resolution picker** - Control render resolution via settings gear or design panel. Options: Auto (device default), 0.5x (performance), 1x, 1.5x, 2x (retina). Useful for HiDPI tradeoffs or screen recording at specific resolutions.
859
+ - **Search prioritizes people** - People entities now always appear before other types in search results, sorted by importance within each tier.
860
+
861
+ ---
862
+
863
+ ## 1.35.2 (2026-02-09)
864
+
865
+ ### Fix: Embedding Migration Column Name
866
+
867
+ Fixed `--migrate-embeddings` crashing on the memories table. The migration code used `deleted_at` (which exists on entities) instead of `invalidated_at` (which is the correct soft-delete column on memories). Also fixed matching query in the migration test file.
868
+
869
+ #### Fixed
870
+ - Memory queries in migration now use `invalidated_at IS NULL` instead of `deleted_at IS NULL`
871
+ - Test file `test_embedding_migration.py` updated to match
872
+
873
+ ---
874
+
875
+ ## 1.35.1 (2026-02-09)
876
+
877
+ ### UX: Friendlier Embedding Migration
878
+
879
+ `--migrate-embeddings` no longer requires manual config editing. It now shows an interactive model picker, auto-updates config.json, and offers to download missing models from Ollama automatically. Three simple prompts: pick a number, press Enter to download, press Y to migrate.
880
+
881
+ #### Improved
882
+ - Interactive model selection menu with size/accuracy info and current model marked
883
+ - Auto-pull: if the selected model isn't installed in Ollama, offers to download it with one keypress
884
+ - Better error messages: distinguishes "Ollama not running" from "model not pulled"
885
+ - Config.json updated automatically when user picks a new model (no manual JSON editing)
886
+
887
+ ---
888
+
889
+ ## 1.35.0 (2026-02-09)
890
+
891
+ ### The Memory Upgrade
892
+
893
+ Claudia's memory system got meaningfully better in three ways: she no longer accidentally surfaces outdated facts, she can now switch to better embedding models with a single command, and the install/upgrade flow maintains her semantic search automatically.
894
+
895
+ ### Added
896
+
897
+ - **Embedding model migration** - New `--migrate-embeddings` CLI command safely transitions between embedding models (e.g., `all-minilm:l6-v2` at 384D to `nomic-embed-text` at 768D). Pre-flight checks, automatic backup, progress reporting, and clear rollback instructions. Vec0 dimensions are now configurable via `config.json`.
898
+ - **Embedding backfill on upgrade** - The installer now auto-backfills missing embeddings across all databases during upgrades, and detects model mismatches with clear guidance.
899
+ - **Config-aware model pulling** - Installer reads `embedding_model` from `config.json` instead of hardcoding `all-minilm:l6-v2`, so users with custom models get the right model pulled during install.
900
+ - **`memory.system_health` MCP tool** - Surfaces daemon health, memory counts, and embedding status directly inside Claude sessions.
901
+ - **`memory.summary` MCP tool** - Lightweight entity summaries with proper soft-delete filtering.
902
+ - **Database backup** - `Database.backup()` with SQLite online backup API and rolling retention (configurable, default 3).
903
+ - **Embedding cache** - Thread-safe LRU cache (256 entries, SHA256 keys) for embedding deduplication. Includes `clear()` for post-migration invalidation.
904
+ - **Retention cleanup** - Consolidation Phase 4 trims old audit logs (90d), predictions (30d), turn buffer (60d), and metrics (90d). All thresholds configurable.
905
+ - **Dimension mismatch detection** - `_check_model_consistency()` now checks both model name and dimensions, warns on startup if database doesn't match config.
906
+ - **Skill index** - `skill-index.json` (43 skills, ~3K tokens) for fast skill lookup without loading all skill files.
907
+ - **Enhanced session hooks** - Health check hook now calls `/status` for memory counts and embedding warnings.
908
+
909
+ ### Fixed
910
+
911
+ - **Invalidated memories no longer surface** - Added `invalidated_at IS NULL` filter to all 6 recall paths. Previously, memories marked as no longer true could still appear in search results.
912
+ - **Backfill format bug** - `--backfill-embeddings` was using `struct.pack()` (binary blobs) instead of `json.dumps()` (JSON strings), silently corrupting the vec0 index. Fixed to match all other code paths.
913
+ - **Adaptive decay** - High-importance memories (>0.7) now decay at half rate with a configurable floor at `min_importance_threshold`.
914
+
915
+ ### Changed
916
+
917
+ - **Vec0 tables moved to database.py** - All 5 vec0 `CREATE VIRTUAL TABLE` statements moved from `schema.sql` to `database.py` for runtime dimension configuration. `VEC0_TABLES` class attribute provides canonical table list.
918
+ - **Scheduler trimmed** - Reduced from 8 scheduled jobs to 3 (daily decay, pattern detection, full consolidation). Removed: verification, predictions, LLM consolidation, metrics, document lifecycle.
919
+ - **Config validation** - Warns on uncommon `embedding_dimensions` values, enforces minimums on `backup_retention_count` and all retention day settings.
920
+
921
+ ### Stats
922
+
923
+ - 341 tests (+42 new across 5 test files), 0 regressions
924
+ - Install: `npx get-claudia`
925
+
926
+ ---
927
+
928
+ ## 1.34.2 (2026-02-08)
929
+
930
+ ### Hotfix: Python 3.14 sqlite-vec Loading
931
+
932
+ Python 3.14 tightened SQLite extension security, requiring explicit `enable_load_extension(True)` before any extension can be loaded. This broke semantic search for every Python 3.14 user -- vector embeddings never loaded, and recall silently fell back to text-only matching.
933
+
934
+ ### Fixed
935
+
936
+ - **sqlite-vec loading on Python 3.14+** - Added `enable_load_extension(True)` before `sqlite_vec.load()` and re-locked after. Guarded with `hasattr()` for Python builds that omit extension loading entirely (`SQLITE_OMIT_LOAD_EXTENSION`).
937
+
938
+ ### Added
939
+
940
+ - **`--backfill-embeddings` CLI flag** - One-shot command (`python3 -m claudia_memory --backfill-embeddings`) to generate embeddings for all memories missing them. Useful after fixing the sqlite-vec loading issue on existing installations.
941
+
942
+ ### Stats
943
+
944
+ - 299 tests (+1 new), 0 regressions
945
+ - Install: `npx get-claudia`
946
+
947
+ ---
948
+
949
+ ## 1.34.1 (2026-02-08)
950
+
951
+ ### Hotfix: Tool Name Compatibility
952
+
953
+ The Anthropic Messages API requires tool names to match `^[a-zA-Z0-9_-]{1,128}$`, but the memory daemon's MCP tools use dot-notation (`memory.recall`, `memory.remember`, etc.). The gateway passed these names through verbatim, causing every API request with tool_use to fail with a 400 error. No user could send a message through Telegram with tool_use enabled.
954
+
955
+ ### Fixed
956
+
957
+ - **Anthropic tool name conversion** - Dots are now converted to underscores when sending tool schemas to the Anthropic API (`memory.recall` becomes `memory_recall`), and converted back when calling the MCP daemon.
958
+ - **Bidirectional name resolution** - `isExposed()` safety gate now accepts both MCP dot-names and Anthropic underscore-names. The conversion only replaces the first underscore (namespace separator), preserving underscores within tool names like `search_entities`.
959
+ - **Verbose error logging** - LLM call errors now log `status`, `body`, and `stack` in addition to the error message, making API failures debuggable without guesswork.
960
+
961
+ ### Stats
962
+
963
+ - 78 gateway tests (+3 new), 0 regressions
964
+ - Install: `npx get-claudia`
965
+
966
+ ---
967
+
968
+ ## 1.34.0 (2026-02-08)
969
+
970
+ ### The Quick Setup
971
+
972
+ Setting up Telegram used to mean 70 seconds of codebase exploration followed by a wall of text. Now there's a dedicated `/setup-gateway` skill that walks you through it one step at a time: create bot, get user ID, write secrets to shell profile, generate gateway.json, start and verify. The gateway also defaults to Haiku now (fast and cheap for chat), instead of Sonnet.
973
+
974
+ ### Added
975
+
976
+ - **`/setup-gateway` skill** - Guided walkthrough for gateway Telegram/Slack setup with fast pre-flight checks (file existence + env vars, no codebase exploration), step-by-step flow with user confirmation at each stage, and automatic config generation.
977
+ - **Setup-telegram clarification** - `setup-telegram.md` now clearly labels itself as the relay path (full `claude -p` sessions) and points users to `/setup-gateway` for the simpler API-based path.
978
+
979
+ ### Changed
980
+
981
+ - **Default gateway model** - Changed from `claude-sonnet-4-20250514` to `claude-haiku-4-5-20251001`. Existing users with a model in their `gateway.json` are unaffected (deepMerge preserves their value).
982
+ - **Gateway SKILL.md** - Fixed port typo (3848 to 3849), added `/setup-gateway` suggestions for missing install and missing token errors.
983
+ - **Trigger deconfliction** - "connect Telegram" now routes to `/setup-gateway` (the common case). Relay-specific phrases ("Telegram relay", "set up relay") route to `/setup-telegram`.
984
+
985
+ ### Stats
986
+
987
+ - 75 gateway tests, 0 regressions
988
+ - Install: `npx get-claudia`
989
+
990
+ ---
991
+
992
+ ## 1.33.0 (2026-02-08)
993
+
994
+ ### Claudia Thinks for Herself
995
+
996
+ The gateway now exposes 14 memory tools to Claude via native Anthropic/Ollama tool_use. Instead of only getting pre-loaded context, Claudia can now decide mid-conversation to search for more memories, store new facts, correct outdated information, or trace where she learned something. She uses tools naturally without announcing them.
997
+
998
+ ### Added
999
+
1000
+ - **API-native tool_use** - New `ToolManager` (`tools.js`) dynamically loads MCP tool schemas from the memory daemon at startup, filters to a curated 14-tool subset, and converts to Anthropic/Ollama formats. No hardcoded schemas to maintain.
1001
+ - **Tool execution loop** - `_callAnthropicWithTools()` and `_callOllamaWithTools()` in `bridge.js` run an iterative tool loop (max 5 rounds, configurable) letting Claude chain tool calls before producing a final response.
1002
+ - **Safety chokepoint** - `_executeToolCall()` rejects non-exposed tools and auto-injects `source_channel` on write operations (`memory.remember`, `memory.batch`, `memory.correct`).
1003
+ - **`toolUse` config** - Global and per-channel setting. `undefined` (default) auto-detects by provider: enabled for Anthropic, disabled for Ollama.
1004
+ - **`toolUseMaxIterations` config** - Max tool loop rounds per message (default 5).
1005
+ - **`preRecall` config** - Keep programmatic pre-call recall alongside tool_use (default true, belt-and-suspenders).
1006
+
1007
+ ### Changed
1008
+
1009
+ - **`processMessage()`** branches between tool_use and standard LLM paths based on resolved config.
1010
+ - **`_buildSystemPrompt()`** appends tool usage instructions when tool_use is active.
1011
+ - **`getStatus()`** includes `toolUseEnabled` and `toolCount` fields.
1012
+
1013
+ ### Stats
1014
+
1015
+ - 75 gateway tests (was 49), 0 regressions
1016
+ - 26 new tests across 2 files (tools, bridge-tooluse)
1017
+ - Install: `npx get-claudia`
1018
+
1019
+ ---
1020
+
1021
+ ## 1.32.0 (2026-02-08)
1022
+
1023
+ ### The Real Claudia on Telegram
1024
+
1025
+ The gateway now loads Claudia's full personality from template files instead of a generic 8-line prompt. Telegram and Slack Claudia feels like the real Claudia: warm, witty, principled. Plus per-channel model config so you can run Haiku on Telegram (~$27/mo) and Sonnet on Slack (~$86/mo).
1026
+
1027
+ ### Added
1028
+
1029
+ - **Per-channel model config** - Each channel (telegram, slack) can specify its own `model` in `gateway.json`, overriding the global default. Empty string means "use global." Resolved per-message in `_resolveModel()`.
1030
+ - **Claudia personality loading** - New `personality.js` module extracts gateway-relevant sections from `template-v2/CLAUDE.md` (identity, mission, style, behaviors, boundaries) and `claudia-principles.md` (principles 1-10). Prepends a chat-adapted preamble.
1031
+ - **Personality resolution chain** - `personalityDir` config > auto-detect `template-v2/` in dev mode > `systemPromptPath` legacy > `DEFAULT_SYSTEM_PROMPT` fallback. Cached after first load.
1032
+ - **`personalityMaxChars` config** - Safety limit (default 15,000) to prevent oversized system prompts. Truncates at last complete line.
1033
+
1034
+ ### Changed
1035
+
1036
+ - **`_callAnthropic()` and `_callOllama()`** now receive the resolved model as a parameter instead of reading from config directly.
1037
+ - **`getStatus()`** includes `personalityLoaded` boolean.
1038
+ - **Gateway logs** now include `channel` and resolved `model` in LLM call logs.
1039
+
1040
+ ### Stats
1041
+
1042
+ - 49 gateway tests (was 22), 0 regressions
1043
+ - 27 new tests across 3 files (personality, bridge-model, config)
1044
+ - Install: `npx get-claudia`
1045
+
1046
+ ---
1047
+
1048
+ ## 1.31.0 (2026-02-07)
1049
+
1050
+ ### The Telegram Relay
1051
+
1052
+ Claudia can now talk to you over Telegram. The relay spawns `claude -p` for each message, so she has full access to skills, memory, MCP tools, and her complete personality. Not a simplified chatbot; the real Claudia, in your pocket.
1053
+
1054
+ ### Added
1055
+
1056
+ - **Telegram relay** - New `relay/` module that bridges Telegram messages to Claude Code via `claude -p`. Handles text, photos, and document attachments with session persistence and concurrency guards.
1057
+ - **File sending over Telegram** - Claudia can create files (SVG diagrams, HTML pages, CSV exports) and send them back as Telegram attachments. Images go inline, documents as file attachments. Supported: png, jpg, jpeg, gif, webp, pdf, svg, csv, xlsx, docx, txt, html, json.
1058
+ - **Channel-aware memory** - Memories stored via Telegram are tagged with `source_channel: "telegram"`. New `source_channel` column (migration 16) on the memories table, exposed through `memory.remember`, `memory.batch`, and recall results.
1059
+ - **`/setup-telegram` skill** - Guided 7-step walkthrough: create bot via @BotFather, find user ID, install deps, create config, set token, start relay, test it. Checks existing state and skips completed steps.
1060
+ - **Relay in installer** - Phase 4/4 in `npx get-claudia`. Copies source to `~/.claudia/relay/`, runs npm install, creates `claudia-relay` CLI wrapper, sets up LaunchAgent (macOS) / systemd (Linux) / scheduled task (Windows).
1061
+ - **Telegram HTML formatter** - Converts markdown to Telegram-compatible HTML (bold, italic, code, pre blocks). Strips unsupported formatting gracefully.
1062
+ - **Message chunking** - Splits long responses at sentence boundaries to stay within Telegram's 4096-char limit.
1063
+
1064
+ ### Stats
1065
+
1066
+ - 5 new relay test files (chunker, config, formatter, session, telegram)
1067
+ - 2 new memory daemon test files (source_channel, database migration)
1068
+ - Install: `npx get-claudia`
1069
+
1070
+ ---
1071
+
1072
+ ## 1.30.0 (2026-02-07)
1073
+
1074
+ ### The Trust Model
1075
+
1076
+ Relationships now behave like synaptic connections: weak traces that strengthen through repeated activation, decay without reinforcement, and respect the authority of their source. A single batch inference can no longer create a 0.9-strength relationship. Instead, inferred relationships start capped at 0.5 and must earn trust through re-encounter.
1077
+
1078
+ ### Added
1079
+
1080
+ - **`memory.invalidate_relationship` MCP tool** - Mark a relationship as incorrect or ended without creating a replacement. Use when someone leaves a company, ends a partnership, or when data was wrong. The relationship is preserved for history but excluded from active queries.
1081
+ - **Origin-aware strength ceilings** - Every relationship now tracks how it was learned (`origin_type`): `user_stated` (ceiling 1.0), `extracted` (0.8), `inferred` (0.5), `corrected` (1.0). Strength is automatically capped by origin authority.
1082
+ - **Scaled reinforcement** - Re-encountering a relationship strengthens it by an amount proportional to the new evidence: user statements add +0.2, extracted evidence +0.1, inferences +0.05. Repeated weak signals compound into strong connections.
1083
+ - **Origin upgrades** - When a relationship first seen as `inferred` is later confirmed by `user_stated`, the origin and ceiling both upgrade, lifting the strength cap.
1084
+
1085
+ ### Fixed
1086
+
1087
+ - **Supersede targeted wrong relationship** - When an entity had multiple relationships of the same type (e.g., works_at Acme AND works_at Beta), supersede matched only source + type, picking one arbitrarily. Could invalidate the wrong relationship. Now matches the full source + target + type triple.
1088
+ - **Non-atomic supersede** - Three separate auto-committed operations (invalidate, rename, insert) meant a crash mid-sequence could leave corrupted state. Wrapped in a `Database.transaction()` context manager that commits on success, rolls back on error.
1089
+ - **Batch operations dropped relationship parameters** - `memory.batch` relate operations silently ignored `origin_type`, `supersedes`, `valid_at`, and `direction`. All parameters now forwarded correctly.
1090
+
1091
+ ### Changed
1092
+
1093
+ - **`recall_about` includes origin_type** - Relationship results now include provenance so the visualizer and entity lookups show how each relationship was learned.
1094
+ - **map-connections skill uses origin_type** - Replaced manual strength mapping (0.9/0.6/0.3) with honest origin classification. Set `origin_type` based on evidence quality and let the system enforce the ceiling.
1095
+ - **New `Database.transaction()` context manager** - Explicit multi-step transactions for operations that must be atomic.
1096
+
1097
+ ### Stats
1098
+
1099
+ - 295 tests, 0 regressions
1100
+ - 14 new tests, 1 updated (guards, bitemporal, batch parallel)
1101
+ - Migration 15: adds `origin_type` column to relationships
1102
+
1103
+ ---
1104
+
1105
+ ## 1.29.2 (2026-02-07)
1106
+
1107
+ ### Fixed
1108
+
1109
+ - **Brain visualizer missing from npm package** - v1.29.1 incorrectly removed `visualizer/` from the `files` array, assuming it was a legacy directory. It actually contains `server.js` (the Express API backend) and `scripts/install.sh` (called by the installer). New users got "Visualizer files not found. Skipping." and the brain visualizer never installed.
1110
+
1111
+ ---
1112
+
1113
+ ## 1.29.1 (2026-02-07)
1114
+
1115
+ ### Post-Release Fixes
1116
+
1117
+ Full code review across the entire repository caught bugs, dead references, and a resource leak that slipped through v1.29.0.
1118
+
1119
+ ### Fixed
1120
+
1121
+ - **`run_decay()` always reported 0 memories decayed** - `SELECT changes()` was called after subsequent UPDATE statements instead of immediately after the memories UPDATE, so the metric was always 0. Decay itself worked fine; only the reported count was wrong.
1122
+ - **7 dead MCP tool references in template** - Skills and hooks still referenced `memory.predictions` and `memory.agent_dispatch` (removed in v1.29.0). These would fail silently at runtime. Replaced with `memory.session_context` or removed dispatch logging steps.
1123
+ - **Embedding service HTTP clients leaked on shutdown** - The `EmbeddingService.close()` method existed but was never called during daemon shutdown. Added cleanup in the `finally` block.
1124
+
1125
+ ### Changed
1126
+
1127
+ - **Config parse errors now log a warning** - Previously, a malformed `~/.claudia/config.json` was silently ignored. Now logs the error and falls back to defaults.
1128
+ - **`embed_batch` handles individual failures gracefully** - One failed embedding no longer crashes the entire batch. Uses `return_exceptions=True` and converts exceptions to `None`.
1129
+ - **Duplicate dispatch_tier trigger removed** - The trigger was created in both migration 14 and the post-migration setup. Removed the redundant copy from migration 14.
1130
+
1131
+ ### Stats
1132
+
1133
+ - 277 tests, 0 regressions
1134
+ - 14 files changed across memory-daemon, template, installer, and docs
1135
+
1136
+ ---
1137
+
1138
+ ## 1.29.0 (2026-02-07)
1139
+
1140
+ ### The Robustness Release
1141
+
1142
+ Claudia's memory system was overbuilt and underverified. Eight background jobs ran overnight, but three crashed, two never confirmed completing, and predictions had never generated a single result. This release strips the system down to what works, fixes what was broken, and adds the observability to prove it.
1143
+
1144
+ ### Fixed
1145
+
1146
+ - **Hourly verification crash** - The `verification_status` column was missing on databases created before migration 5. The migration integrity check now detects and self-heals this on next daemon startup.
1147
+
1148
+ ### Added
1149
+
1150
+ - **`memory.system_health` MCP tool** - Was documented but never implemented. Now returns schema version, component status (database/embeddings/scheduler), active job list with next run times, and data counts. Also powers the enhanced `/status` HTTP endpoint.
1151
+ - **Pipeline integration test** - 8 end-to-end tests proving the core data flow works: entity creation, memory storage, relationships, decay, pattern detection, session lifecycle, and deduplication.
1152
+ - **Shared test conftest.py** - Eliminates duplicated database fixture across 12+ test files.
1153
+ - **Scheduler test** - Verifies exactly 3 jobs are registered, none of the removed ones sneak back.
1154
+
1155
+ ### Changed
1156
+
1157
+ - **Scheduler slimmed from 8 jobs to 3** - Kept: daily decay (2 AM), pattern detection (every 6h), full consolidation (3 AM). Removed: hourly verification (crashed), daily predictions (never worked), LLM consolidation (requires local model most users lack), metrics collection (no consumer), weekly document lifecycle (4 documents). Service code retained for future re-enablement.
1158
+ - **3 MCP tools deferred** - Removed `memory.predictions`, `memory.prediction_feedback`, `memory.agent_dispatch`. These exposed features that either never worked or had no data flowing through them.
1159
+ - **Full consolidation no longer generates predictions** - `run_full_consolidation()` now runs decay, merging, and pattern detection only.
1160
+
1161
+ ### Stats
1162
+
1163
+ - 277 tests, 0 regressions
1164
+ - 16 new tests (pipeline, scheduler, health check, migration integrity)
1165
+ - Net code reduction: ~145 lines removed from MCP tools, ~50 from scheduler
1166
+
1167
+ ---
1168
+
1169
+ ## 1.28.4 (2026-02-06)
1170
+
1171
+ ### Windows 11 Compatibility
1172
+
1173
+ Claudia now works on Windows 11 out of the box. A user reported five cascading failures after installing via `npx get-claudia` on Windows: hooks crashed (no bash), MCP tools didn't load (wrong entry point), sqlite-vec failed silently, and the diagnose skill only spoke Unix.
1174
+
1175
+ ### Fixed
1176
+
1177
+ - **Hooks crash on Windows** - Session hooks hardcoded `bash` as executor, which doesn't exist on vanilla Windows. Hooks now try `python3 > python > bash` with a graceful JSON fallback. New cross-platform Python hooks (`session-health-check.py`, `pre-compact.py`) handle macOS, Linux, and Windows natively.
1178
+ - **MCP entry point bypassed __main__.py** - The installer wrote `.mcp.json` with `-m claudia_memory.mcp.server`, skipping project isolation, the health server, and background scheduling. Fixed to use `-m claudia_memory --project-dir ${workspaceFolder}`.
1179
+ - **sqlite-vec silent failure on Windows** - Method 1 failure logged at DEBUG (invisible). Upgraded to WARNING. Added Windows DLL search paths (package directory rglob, sys.executable/DLLs) and architecture mismatch guidance.
1180
+ - **Bash health check missing Windows case** - Added `msys*|cygwin*|MINGW*` OSTYPE detection with Task Scheduler status check and PowerShell `Invoke-WebRequest` fallback for curl.
1181
+
1182
+ ### Changed
1183
+
1184
+ - **Diagnose skill is cross-platform** - Added platform detection step, Windows PowerShell equivalents for all diagnostic commands (process check, health endpoint, log tail, database query, Task Scheduler), and Windows recovery commands.
1185
+ - **New diagnose issue: wrong MCP entry point** - Detection and fix instructions for the `.mcp.json` entry point bug, helping existing users self-heal.
1186
+ - **`.mcp.json.example` Windows note** - Added `_windows` field documenting the Windows Python path.
1187
+
1188
+ ---
1189
+
1190
+ ## 1.28.3 (2026-02-06)
1191
+
1192
+ ### Resilient Memory Tools
1193
+
1194
+ Claudia's memory tools now defend against two classes of LLM serialization errors that caused silent failures during session wrap-up.
1195
+
1196
+ ### Fixed
1197
+
1198
+ - **String-serialized arrays** - LLMs sometimes send array parameters as JSON strings (e.g., `'["Alice"]'` instead of `["Alice"]`). All 16 top-level array parameters across 10 MCP tools now accept both native arrays and JSON strings, with transparent runtime coercion.
1199
+ - **Missing episode_id in end_session** - When `buffer_turn` was never called during a session, `end_session` would fail because `episode_id` was required. It's now optional with automatic episode creation.
1200
+
1201
+ ### Added
1202
+
1203
+ - **Parallel batch embeddings** - `memory.batch` now collects all texts upfront and embeds them in parallel before executing operations, reducing latency for multi-operation calls.
1204
+ - **Agent-accelerated extraction** - Document Processor agent gains `memory_operations` extraction type, returning ready-to-store `memory.batch` operations. Capture-meeting and memory-manager skills updated to use the agent pipeline.
1205
+ - **16 new tests** for LLM coercion defense (coerce utility, episode auto-creation, schema validation).
1206
+
1207
+ ---
1208
+
1209
+ ## 1.28.2 (2026-02-06)
1210
+
1211
+ ### Fixed
1212
+
1213
+ - **end_session FK constraint fix** - Calling `memory.end_session` with a non-existent episode_id (e.g., 0 or before `buffer_turn` creates one) no longer crashes with a FOREIGN KEY constraint error. The MCP handler now auto-creates a minimal episode, and the service layer returns a clear error for direct callers.
1214
+
1215
+ ---
1216
+
1217
+ ## 1.28.1 (2026-02-06)
1218
+
1219
+ ### Don't Let Me Forget
1220
+
1221
+ Claudia no longer silently falls back to markdown when the memory daemon is off. She now detects why the daemon is down and proactively offers to fix it.
1222
+
1223
+ ### Changed
1224
+
1225
+ - **Proactive daemon startup** - Session health check hook now detects whether the daemon is installed but stopped vs never installed, and provides the exact platform-specific restart command (launchctl on macOS, systemd on Linux).
1226
+ - **No silent degradation** - Memory manager skill and session start protocol updated to always tell the user what they're missing and offer to fix it, rather than quietly operating at reduced capability.
1227
+ - **Crash log surfacing** - Health check hook now includes recent daemon error log lines in its output to help diagnose issues faster.
1228
+
1229
+ ---
1230
+
1231
+ ## 1.28.0 (2026-02-06)
1232
+
1233
+ ### Brain Monitor
1234
+
1235
+ A real-time terminal dashboard for watching Claudia's memory system. Four live panels show neural activity, daemon health, entity constellations, and memory landscapes, all updating in your terminal.
1236
+
1237
+ ### Added
1238
+
1239
+ - **Brain Monitor TUI** - Textual-based terminal dashboard (`python -m claudia_memory --tui`) with four widgets: Neural Pulse (write/read/link activity), Identity (daemon health + stats), Constellation (entity dot grid), and Landscape (importance distribution).
1240
+ - **`/brain-monitor` skill** - Launch the TUI dashboard from any Claudia session. Simple one-command launch with background execution.
1241
+ - **`claudia-brain` CLI entry point** - Direct command to launch the Brain Monitor without the `python -m` invocation.
1242
+ - **TUI auto-install** - `textual>=0.80.0` now installs automatically during memory daemon setup (both fresh installs and upgrades).
1243
+
1244
+ ### Changed
1245
+
1246
+ - Install scripts (`install.sh`, `install.ps1`) now use `pip install -e ".[tui]"` instead of plain `-e .` to include the TUI extra.
1247
+ - `requirements.txt` includes `textual>=0.80.0` as a core dependency.
1248
+ - `pyproject.toml` declares `[tui]` optional extra and includes `tui/*.tcss` in package data.
1249
+
1250
+ ---
1251
+
1252
+ ## 1.27.0 (2026-02-06)
1253
+
1254
+ ### Zero-Prompt Seamless Install
1255
+
1256
+ The installer no longer asks any questions. Everything installs automatically with smart defaults.
1257
+
1258
+ ### Changed
1259
+
1260
+ - **Zero-prompt installer** - Memory system, brain visualizer, and messaging gateway all install automatically. No interactive prompts. Ollama auto-installs via Homebrew (macOS) or winget/direct download (Windows).
1261
+ - **Modern banner** - Version badge, typewriter tagline, and "by Kamil Banc" all render in yellow. Phase indicators (1/3, 2/3, 3/3) show progress through memory, visualizer, and gateway setup.
1262
+ - **Gateway auto-install** - Gateway installs silently alongside the memory system. Interactive Telegram/Slack wizard skipped during main install; users configure tokens at their own pace via `~/.claudia/gateway.json`.
1263
+ - **Installation summary** - Final output shows a status table for all three components (Memory, Visualizer, Gateway) with Active/Skipped/Installed status.
1264
+ - **What's New updated** - Highlights zero-prompt install, gateway auto-setup, document storage, and provenance.
1265
+
1266
+ ### Technical
1267
+
1268
+ - `CLAUDIA_NONINTERACTIVE=1` env var passed to `memory-daemon/scripts/install.sh` and `install.ps1` to auto-install Ollama without prompting. LLM model selection menu preserved (meaningful user choice).
1269
+ - `CLAUDIA_GATEWAY_SKIP_SETUP=1` env var passed to `gateway/scripts/install.sh` and `install.ps1` to skip the interactive Telegram/Slack wizard.
1270
+ - Removed `readline` import from `bin/index.js` (no longer needed).
1271
+ - All scripts remain fully interactive when run standalone (env vars default to 0).
1272
+
1273
+ ---
1274
+
1275
+ ## 1.26.0 (2026-02-05)
1276
+
1277
+ ### The Full Sweep
1278
+
1279
+ 13 improvements across skills, config, tests, and security in a single pass.
1280
+
1281
+ ### Added
1282
+
1283
+ - **Skill disambiguation rules** in agent-dispatcher: clear routing tables for content processing (meeting vs email vs extraction) and research vs analysis queries, with cost-minimizing priority rule.
1284
+ - **MCP tool reference** in memory-manager: complete catalog of all 33 memory tools grouped by category (Core, Session, Documents, Analysis, Trust, Network, Gateway, Admin).
1285
+ - **Config validation** in memory daemon: warn-and-reset for out-of-range values (decay rate, max results, importance threshold, ranking weight sum).
1286
+ - **`dispatch_tier` constraint trigger**: database now rejects invalid tier values (must be 'task' or 'native_team').
1287
+ - **Gateway test expansion**: 7 new tests covering deepMerge (4 cases), PID file operations (3 cases), and structure-based config loading.
1288
+ - **Dispatch tier integrity test**: verifies the trigger rejects invalid values with `IntegrityError`.
1289
+
1290
+ ### Changed
1291
+
1292
+ - **`/deep-context` memory budget fixed**: was 190-270 (exceeded stated 100-200), now capped at 180. Added deduplication step, edge case handling (entity not found, sparse connections, daemon unavailable, contradictions).
1293
+ - **Archetype phantom commands removed**: all 5 archetypes referenced `.claude/commands/` files that don't exist as standalone skills. Removed phantom file references, kept inline template content.
1294
+ - **CLAUDE.md/principles redundancy reduced**: condensed duplicate Safety First and Source Preservation sections in CLAUDE.md to brief references to `claudia-principles.md`.
1295
+ - **Consolidation error handling**: phase-level try/except wrapping (decay, merging, pattern detection, predictions) so one failure doesn't abort the entire consolidation run.
1296
+ - **Node engine requirement**: bumped from >=14.0.0 to >=18.0.0 (Node 14 EOL'd April 2023).
1297
+ - **Gateway config security**: warns when Telegram/Slack tokens are stored in plaintext config file instead of environment variables.
1298
+ - **Greeting instruction**: changed impossible "never the same greeting twice" to practical "change it up frequently".
1299
+ - **Structure generator**: archetype commands described as built-in templates, not separate command files.
1300
+
1301
+ ---
1302
+
1303
+ ## 1.25.0 (2026-02-05)
1304
+
1305
+ ### Opus 4.6 Integration
1306
+
1307
+ Claudia now leverages Claude Opus 4.6's expanded capabilities: native agent teams, deeper recall from the 1M context window, effort levels for skills, and a new /deep-context skill for comprehensive analysis.
1308
+
1309
+ ### Added
1310
+
1311
+ - **Two-tier agent dispatch** - Agents now dispatch via two mechanisms: Tier 1 (Task tool) for fast, structured Haiku agents (Document Archivist, Document Processor, Schedule Analyst), and Tier 2 (Native Agent Teams) for Research Scout, which gets independent context and multi-turn tool access.
1312
+ - **Effort levels** - All 39 skills now declare an `effort-level` (low/medium/high/max) in YAML frontmatter, signaling how much thinking budget each task requires.
1313
+ - **`/deep-context` skill** - Full-context deep analysis that pulls 100-200 memories across multiple dimensions (entity, semantic, connected entities, temporal sweep) for meeting prep, relationship analysis, and strategic planning. Effort level: max.
1314
+ - **`dispatch_tier` field** - `memory.agent_dispatch` now tracks whether each dispatch used Task tool ("task") or native agent teams ("native_team").
1315
+ - **Briefing packets** - Tier 2 agents receive structured briefing packets with task context, relevant entities, and constraints since they don't have direct memory access.
1316
+ - **Database migration v14** - Adds `dispatch_tier` column to `agent_dispatches` table.
1317
+ - **Skills README effort table** - Documents all effort levels and explains the system.
1318
+
1319
+ ### Changed
1320
+
1321
+ - **`max_recall_results` bumped to 50** - Up from 20, leveraging the 1M context window for richer recall.
1322
+ - **Pre-compact hook** - Tone changed from alarm ("CONTEXT COMPACTION OCCURRED") to advisory, reflecting that compaction is less frequent with 1M context.
1323
+ - **Agent dispatcher** - Rewritten with two-tier architecture, briefing packet construction, and effort routing guidance.
1324
+ - **Agent definitions** - All four agents now include `dispatch-tier` in frontmatter (task or native_team).
1325
+ - **Research Scout** - Added briefing expectations section for native team dispatch.
1326
+ - **Agents README** - Updated with two-tier architecture diagram and dispatch-tier in agent definition format.
1327
+ - **CLAUDE.md "My Team" section** - Updated to describe two-tier dispatch system.
1328
+ - **Memory manager** - Added `/deep-context` reference and note about reduced compaction frequency.
1329
+ - **11 proactive skills** - Added YAML frontmatter with `name`, `description`, and `effort-level` (previously had `**Purpose:**` header format only).
1330
+ - **Native agent teams enabled** - `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` set in settings.local.json.
1331
+
1332
+ ### Why This Matters
1333
+
1334
+ Before: All agents dispatched identically via Task tool. Skills had no thinking budget signal. Recall was capped at 20 results. Deep analysis required manual memory queries.
1335
+
1336
+ After: Research Scout operates as a true autonomous teammate with its own context and tools. Skills declare effort levels so the model allocates appropriate thinking. Recall can pull up to 50 results for richer context. `/deep-context` automates comprehensive 100-200 memory pulls for strategic analysis.
1337
+
1338
+ ---
1339
+
1340
+ ## 1.24.0 (2026-02-05)
1341
+
1342
+ ### Trust North Star + Agent Team
1343
+
1344
+ Claudia now has a team of specialized agents and a foundational commitment to accuracy. Trust is her #1 priority, and she has help.
1345
+
1346
+ ### Added
1347
+
1348
+ - **Trust North Star rule** - Core principle: every memory must be accurate and traceable. New `origin_type` field tracks whether information came from the user directly, was extracted from documents, was inferred, or was corrected.
1349
+ - **Origin tracking** - Memories now track `origin_type` (user_stated, extracted, inferred, corrected) with auto-detection based on source and importance.
1350
+ - **`memory.audit_history` tool** - Get the full audit trail for any entity or memory. Answer "where did you learn that?" with precision.
1351
+ - **`memory.agent_dispatch` tool** - Log when Claudia delegates tasks to her agent team, track performance and judgment requirements.
1352
+ - **Agent team** - Four specialized sub-agents that help Claudia work faster:
1353
+ - **Document Archivist** (Haiku) - PRIMARY entry point for pasted content, adds provenance
1354
+ - **Research Scout** (Sonnet) - Web searches, fact-finding, synthesis
1355
+ - **Document Processor** (Haiku) - Extracts structured data from documents
1356
+ - **Schedule Analyst** (Haiku) - Calendar pattern analysis
1357
+ - **`agent-dispatcher` skill** - Core logic for when and how to delegate to agents.
1358
+ - **`hire-agent` skill** - Suggests new agents based on repeated task patterns.
1359
+ - **Database migration v13** - Adds `origin_type` column to memories, `agent_dispatches` table for tracking.
1360
+
1361
+ ### Changed
1362
+
1363
+ - **RecallResult** - Now includes `confidence`, `verification_status`, and `origin_type` fields.
1364
+ - **`remember_fact()`** - Now accepts `origin_type` parameter with auto-detection fallback.
1365
+ - **`correct_memory()`** - Automatically sets `origin_type=corrected` and `confidence=1.0`.
1366
+ - **CLAUDE.md** - Added "My Team" section describing Claudia's agent team.
1367
+ - **`memory-manager` skill** - Added Trust North Star reference and origin tracking requirement.
1368
+
1369
+ ### Why This Matters
1370
+
1371
+ Before: Claudia could confidently state something she'd inferred, with no way to distinguish it from what the user actually said. Processing large documents blocked the conversation.
1372
+
1373
+ After: Every memory has traceable provenance. "Where did you learn that?" has an answer. Pasted content goes to the Document Archivist for processing while Claudia stays responsive. Trust is earned through accuracy.
1374
+
1375
+ ---
1376
+
1377
+ ## 1.23.0 (2026-02-05)
1378
+
1379
+ ### Proactive Memory
1380
+
1381
+ Claudia now captures important information as it happens, not just at session end. Context compaction can't steal what's already stored.
1382
+
1383
+ ### Added
1384
+
1385
+ - **PreCompact hook** - Fires before context compaction, triggers `/flush` endpoint to checkpoint the database and injects recovery reminders into compacted context.
1386
+ - **`/flush` endpoint** - New daemon endpoint forces WAL checkpoint to ensure all buffered data is durably written.
1387
+ - **Proactive capture rules** - New behavioral guidelines for storing commitments, entities, and relationships mid-conversation instead of waiting for session end.
1388
+ - **Turn buffering tests** - 7 new tests covering the full session lifecycle (buffer_turn, end_session, get_unsummarized).
1389
+
1390
+ ### Changed
1391
+
1392
+ - **`commitment-detector` skill** - Now calls `memory.remember` immediately when a commitment is detected, before adding to markdown.
1393
+ - **`memory-manager` skill** - Rewrote "Proactive Capture Rules" section with Claudia's personality. Explains the why (context compaction risk) not just the what (call these tools).
1394
+
1395
+ ### Why This Matters
1396
+
1397
+ Before: Important information could be lost if context compacted before session end, or if the user closed the terminal abruptly.
1398
+
1399
+ After: Commitments, entities, and relationships are stored as they're discovered. The PreCompact hook provides a safety net. Turn buffering catches orphaned sessions.
1400
+
1401
+ ---
1402
+
1403
+ ## 1.22.0 (2026-02-05)
1404
+
1405
+ ### The Learning Loop
1406
+
1407
+ Claudia's memory system now actually learns from experience. She can fix mistakes, merge duplicates, track what changed, and measure her own health.
1408
+
1409
+ ### Added
1410
+
1411
+ - **Audit logging** - Full audit trail for all memory operations. Every merge, correction, deletion, and creation is logged with timestamps and details.
1412
+ - **Metrics system** - System health metrics collected daily at 5am. Track entity counts, memory stats, data quality indicators over time.
1413
+ - **Entity merge tool** - `memory.merge_entities` combines duplicate entities, preserving all references (memories, relationships, aliases).
1414
+ - **Entity delete tool** - `memory.delete_entity` soft-deletes with reason tracking. Historical references preserved.
1415
+ - **Memory correction tool** - `memory.correct` updates content while preserving history in `corrected_from` field.
1416
+ - **Memory invalidation tool** - `memory.invalidate` marks memories as no longer true without destroying them.
1417
+ - **Fuzzy duplicate detection** - `find_duplicate_entities()` uses SequenceMatcher for similarity scoring.
1418
+ - **`/fix-duplicates` skill** - Find and merge duplicate entities through natural language.
1419
+ - **`/memory-health` skill** - System health dashboard showing entity counts, memory stats, and data quality.
1420
+ - **49 new tests** - Comprehensive coverage for audit, metrics, entity management, and corrections.
1421
+
1422
+ ### Changed
1423
+
1424
+ - **Database migration v12** - Added `audit_log` and `metrics` tables, soft-delete columns on entities, correction columns on memories.
1425
+ - **Scheduler** - Added daily metrics collection job at 5am.
1426
+ - **`memory-manager` skill** - New "User Corrections" section with triggers and workflow for fixing mistakes.
1427
+
1428
+ ### Why This Matters
1429
+
1430
+ Before: Memory mistakes were permanent. Duplicates accumulated. No way to know if the system was healthy.
1431
+
1432
+ After: Say "that's not right about Sarah" and Claudia corrects it. Run `/fix-duplicates` to clean up. Check `/memory-health` to see how the system is doing. Full audit trail for accountability.
1433
+
1434
+ ---
1435
+
1436
+ ## 1.21.1 (2026-02-04)
1437
+
1438
+ ### Bulletproof Memory
1439
+
1440
+ Claudia now verifies the memory system is working at session start and enforces source preservation as a hard requirement.
1441
+
1442
+ ### Fixed
1443
+
1444
+ - **Python 3.14 compatibility** - Fixed `asyncio.get_event_loop()` deprecation in standalone daemon mode that was crashing the health endpoint.
1445
+
1446
+ ### Added
1447
+
1448
+ - **`/diagnose` skill** - Full diagnostic tool that checks MCP tools, daemon process, health endpoint, and database. Provides specific fix instructions for each failure mode.
1449
+ - **Memory verification at session start** - Claudia now checks that `memory.*` tools are available before proceeding. If missing, warns user and suggests `/diagnose`.
1450
+ - **Hard source preservation requirement** - "STOP. File it FIRST." is now a hard stop in the workflow, not a suggestion.
1451
+
1452
+ ### Changed
1453
+
1454
+ - **Session start protocol** - Now has explicit 4-step verification: check tools → load context → catch up → greet.
1455
+ - **`/ingest-sources` workflow** - Now files each source during Phase 2 (extraction), not Phase 5 (after everything). File-Then-Extract, not Extract-Then-File.
1456
+ - **`memory-manager` skill** - Added "Hard Requirements" section at top making source preservation non-negotiable.
1457
+ - **`hooks.json`** - Added `memory_verification` and `source_filing` notes.
1458
+
1459
+ ### Why This Matters
1460
+
1461
+ Before: Claudia could read 40 transcripts, extract to a dashboard, but never file the sources. Next session, no provenance.
1462
+
1463
+ After: She literally cannot proceed past "read source" without filing it first. And if memory tools aren't available, she warns you immediately instead of silently failing.
1464
+
1465
+ ---
1466
+
1467
+ ## 1.21.0 (2026-02-04)
1468
+
1469
+ ### The Reflections Release
1470
+
1471
+ Claudia can now generate persistent learnings about how to work with you. These reflections decay much slower than regular memories and compound over time.
1472
+
1473
+ ### Added
1474
+
1475
+ - **`/meditate` skill** - End-of-session reflection workflow. Claudia reviews the conversation, generates 1-3 learnings (observations, patterns, learnings, questions), and presents them for your approval before storing.
1476
+ - **Reflections table** - Schema v10 migration with 4 reflection types, content hashing for duplicate detection, and aggregation tracking for confirmed patterns.
1477
+ - **`memory.reflections` MCP tool** - CRUD operations for reflections with get, search, update, and delete actions.
1478
+ - **Slow decay model** - Reflections decay at 0.999 daily (~693 day half-life) vs memories at 0.995 (~138 days). Well-confirmed reflections (3+ aggregation) decay even slower at 0.9995.
1479
+ - **Reflection aggregation** - ConsolidateService merges semantically similar reflections (>85% cosine similarity) while preserving timeline (first observed, last confirmed).
1480
+ - **Natural language editing** - Tell Claudia "that reflection about Monday mornings is wrong" and she'll find and update it.
1481
+
1482
+ ### Changed
1483
+
1484
+ - **`memory.end_session`** - Now accepts a `reflections` array parameter for storing approved reflections alongside the session narrative.
1485
+ - **`memory-manager` skill** - New "Reflections (Enhanced Memory)" section documenting the full reflection lifecycle.
1486
+
1487
+ ### Why This Matters
1488
+
1489
+ Before: Each session started fresh. Claudia remembered facts, but not meta-learnings about working with you.
1490
+
1491
+ After: "You prefer bullet points for technical content but conversational flow for discussions" persists across sessions. Claudia adapts to your style, remembers what works, and compounds that knowledge over time.
1492
+
1493
+ ---
1494
+
1495
+ ## 1.20.0 (2026-02-04)
1496
+
1497
+ ### The Skills Migration
1498
+
1499
+ All 22 commands are now skills. Claudia responds to natural language, not just slash commands.
1500
+
1501
+ ### Changed
1502
+
1503
+ - **Commands → Skills** - Every command converted to a skill directory with YAML frontmatter. Skills activate contextually based on what you say.
1504
+ - **8 explicit-only skills** - Some workflows still require `/skill-name`: `/brain`, `/databases`, `/capture-meeting`, `/file-document`, `/gateway`, `/ingest-sources`, `/memory-audit`, `/new-person`
1505
+ - **14 contextual skills** - The rest respond to natural language triggers. Say "check my pipeline" instead of `/pipeline-review`. Ask "what am I missing?" instead of running a command.
1506
+ - **Updated CLAUDE.md** - Complete skills reference with trigger examples and invocation patterns.
1507
+ - **Updated skills README** - Tables showing explicit vs contextual skills with descriptions.
1508
+
1509
+ ### Why This Matters
1510
+
1511
+ Before: You had to remember `/command-name` syntax and what each command did.
1512
+
1513
+ After: Just tell Claudia what you need. She recognizes intent and activates the right workflow. Explicit skills remain for precision when you want it.
1514
+
1515
+ ---
1516
+
1517
+ ## 1.19.0 (2026-02-04)
1518
+
1519
+ ### The Source Preservation Release
1520
+
1521
+ Claudia now files raw source material (transcripts, emails, documents) before extracting from it. Every fact she remembers can trace back to its source.
1522
+
1523
+ ### Added
1524
+
1525
+ - **Source Preservation principle (#12)** - New core principle: always file raw sources before extraction. Added to `claudia-principles.md` with clear guidance on what gets filed, how, and why.
1526
+ - **`/file-document` command** - Ad-hoc document capture for emails, research, contracts, and any content worth keeping. Files are automatically routed to entity-aware folders (`people/`, `clients/`, `projects/`).
1527
+ - **Document Filing guidance** - New section in `memory-manager.md` skill with explicit flows for when and how to file different document types.
1528
+
1529
+ ### Changed
1530
+
1531
+ - **`/capture-meeting` workflow** - Filing is now Step 1 (mandatory), not Step 3 (suggested). Quality checklist now requires "Raw transcript/notes filed" verification.
1532
+ - **Core Behavior #8** - Added "Source Preservation" to CLAUDE.md core behaviors, explaining the provenance chain and file routing.
1533
+ - **File locations table** - Added "Filed documents" row pointing to `~/.claudia/files/` (entity-routed).
1534
+ - **Commands table** - Added `/file-document` command.
1535
+
1536
+ ### Why This Matters
1537
+
1538
+ Before: Claudia would extract facts into person files and memory, but the full transcript lived only in conversation context (which compresses away).
1539
+
1540
+ After: Raw sources are filed first, creating a provenance chain. Ask "where did you learn that?" and she can cite the exact document, email, or transcript.
1541
+
1542
+ ---
1543
+
1544
+ ## 1.18.1 (2026-02-03)
1545
+
1546
+ ### Fixed
1547
+
1548
+ - **PowerShell 5.1 compatibility** - Fixed parse errors in both visualizer and gateway Windows installers. PowerShell 5.1 (default on Windows 10) had issues with here-strings containing code structures, Unicode characters in interpolated strings, and the `&&` operator. All installers now use string arrays, explicit concatenation, and ASCII-safe symbols.
1549
+
1550
+ ---
1551
+
1552
+ ## 1.18.0 (2026-02-03)
1553
+
1554
+ ### Brain Visualizer: Real-Time Settings & Smart Navigation
1555
+
1556
+ Design panel settings now update the visualization instantly. No more refreshing the window to see changes take effect.
1557
+
1558
+ ### Added
1559
+
1560
+ - **Live force simulation updates** - Adjusting charge, distance, or decay in the design panel immediately reheats the simulation and applies new forces. Watch nodes reorganize in real-time.
1561
+ - **Live glow sprite updates** - Glow size and intensity sliders update existing node halos without recreating meshes.
1562
+ - **Live link curvature updates** - Changing link curvature, opacity, or radius triggers immediate geometry rebuild.
1563
+ - **Live emissive intensity** - Node emissive settings apply instantly to all visible nodes.
1564
+ - **Reload hint toasts** - Settings that truly require reload (particle count, star count) now show a brief toast notification explaining why.
1565
+ - **Smart H-key navigation** - When the design panel is open and a node is selected, pressing `H` jumps to the relevant settings section:
1566
+ - Entity nodes → Opens "Nodes" folder + "Entity Colors"
1567
+ - Memory nodes → Opens "Nodes" folder + "Memory Colors"
1568
+ - Pattern nodes → Opens "Nodes" folder
1569
+ - Scrolls and briefly highlights the target folder
1570
+
1571
+ ### Technical Details
1572
+
1573
+ New exports in visualizer modules:
1574
+ - `graph.js`: `updateSimulationForces()` - Updates running d3-force simulation
1575
+ - `nodes.js`: `refreshNodeGlows()`, `refreshNodeEmissive()` - Update sprite scales and material properties
1576
+ - `design-panel.js`: `setSelectedNodeCallback()`, `focusSectionForNode()` - Smart navigation system
1577
+
1578
+ ---
1579
+
1580
+ ## 1.17.2 (2026-02-03)
1581
+
1582
+ ### Fixed
1583
+
1584
+ - **Windows visualizer installer** - Fixed PowerShell parse errors on Windows caused by parentheses being interpreted as subexpressions when inside interpolated strings. Changed tree view output to use string concatenation.
1585
+ - **Streamlined install flow** - Gateway now auto-installs like the visualizer (no prompt). Installation only asks one question: whether to set up the memory system. Memory -> Visualizer -> Gateway all install in sequence.
1586
+
1587
+ ---
1588
+
1589
+ ## 1.17.1 (2026-02-03)
1590
+
1591
+ ### Docs
1592
+
1593
+ - Added upgrade instructions for existing users to install the brain visualizer
1594
+
1595
+ ---
1596
+
1597
+ ## 1.17.0 (2026-02-03)
1598
+
1599
+ ### Brain Visualizer Auto-Install
1600
+
1601
+ The 3D memory visualizer now installs automatically when you set up the memory system. No more manual file copying.
1602
+
1603
+ ### Added
1604
+
1605
+ - **Visualizer auto-install** - When you say "yes" to memory system setup, the brain visualizer is automatically installed to `~/.claudia/visualizer/` and `~/.claudia/visualizer-threejs/`. Just run `/brain` and it works.
1606
+ - **Cross-platform installers** - `visualizer/scripts/install.sh` (macOS/Linux) and `visualizer/scripts/install.ps1` (Windows) handle Node.js version checks, file copying, npm install, and launcher script creation.
1607
+ - **Launcher script** - `~/.claudia/bin/brain` starts both the API backend (port 3849) and Three.js frontend (port 5173/5174), then opens your browser.
1608
+
1609
+ ### Changed
1610
+
1611
+ - **README updates** - Fixed license badge (was Apache 2.0, now PolyForm Noncommercial). Added Demo Mode section with clear instructions. Added `/brain` command to the command table.
1612
+ - **Installer flow** - The visualizer now chains after memory daemon setup: memory -> visualizer (auto) -> gateway (if requested) -> finish.
1613
+
1614
+ ### How It Works
1615
+
1616
+ After running `npx get-claudia` and saying "yes" to memory setup:
1617
+ 1. Memory daemon installs (Python venv, Ollama models, SQLite database)
1618
+ 2. Visualizer auto-installs (copies files, runs npm install)
1619
+ 3. Gateway setup runs (if you said yes)
1620
+ 4. You can immediately use `/brain` to see your memory graph
1621
+
1622
+ ---
1623
+
1624
+ ## 1.16.0 (2026-02-03)
1625
+
1626
+ ### License Change: PolyForm Noncommercial
1627
+
1628
+ Claudia is now licensed under [PolyForm Noncommercial 1.0.0](https://polyformproject.org/licenses/noncommercial/1.0.0/).
1629
+
1630
+ ### What This Means
1631
+
1632
+ **Free for:**
1633
+ - Personal use
1634
+ - Research and experimentation
1635
+ - Education and learning
1636
+ - Hobby projects
1637
+ - Nonprofits, charities, and government
1638
+
1639
+ **Requires permission:**
1640
+ - Commercial use (contact mail@kbanc.com or open a GitHub issue)
1641
+
1642
+ ### Why
1643
+
1644
+ This license protects the project while keeping it freely available for the community. You can view, use, modify, and share Claudia for any noncommercial purpose. Commercial use requires a separate license.
1645
+
1646
+ ### Changed
1647
+
1648
+ - LICENSE file updated to PolyForm Noncommercial 1.0.0
1649
+ - package.json license field updated
1650
+ - README updated with license details
1651
+ - template-v2/LICENSE and NOTICE updated
1652
+
1653
+ ---
1654
+
1655
+ ## 1.15.1 (2026-02-03)
1656
+
1657
+ ### MCP Template Cleanup
1658
+
1659
+ Cleaner MCP server config for new users. Removed redundant servers, clearer setup instructions.
1660
+
1661
+ ### Changed
1662
+
1663
+ - **Removed redundant MCP servers from template** -- `filesystem`, `brave-search`, `fetch`, `web-search` removed (Claude Code has native tools for all of these)
1664
+ - **Kept useful servers** -- `claudia-memory`, `gmail`, `google-calendar` remain as templates
1665
+ - **Clearer setup instructions** -- Each server has `_setup` field with one-line instructions
1666
+ - **Security note** -- Explicitly states OAuth tokens are stored locally, never shared
1667
+
1668
+ ### Why
1669
+
1670
+ Claude Code now has built-in `WebSearch`, `WebFetch`, and file tools (`Read`, `Write`, `Edit`). The old MCP servers for these functions were redundant and the `filesystem` server with placeholder path caused startup failures.
1671
+
1672
+ ---
1673
+
1674
+ ## 1.15.0 (2026-02-03)
1675
+
1676
+ ### Database Switcher
1677
+
1678
+ View all Claudia databases, see what's in each, and switch between them.
1679
+
1680
+ ### Added
1681
+
1682
+ - **`/databases` command** -- List all Claudia databases with stats (size, people, memories, last activity). Shows which workspace each database belongs to.
1683
+ - **`/databases use <hash>`** -- Switch to a different database by modifying `.mcp.json`. Requires Claude restart to take effect.
1684
+ - **`/databases info <hash>`** -- Deep dive into a specific database: entity breakdown, memory types, relationship count, top entities.
1685
+ - **`/databases delete <hash>`** -- Delete a database with explicit confirmation. Cannot delete the currently active database.
1686
+ - **`_meta` table** -- Databases now store their workspace path internally, making hash-based filenames reversible. Legacy databases show "Unknown (legacy)".
1687
+ - **`CLAUDIA_DB_OVERRIDE` env var** -- Force a specific database path, bypassing project hash detection. Used by `/databases use`.
1688
+
1689
+ ### Technical
1690
+
1691
+ - Schema migration v9 adds `_meta` table
1692
+ - `CLAUDIA_WORKSPACE_PATH` env var set by daemon on startup
1693
+ - Config priority: `CLAUDIA_DB_OVERRIDE` > `CLAUDIA_DEMO_MODE` > project hash > default
1694
+
1695
+ ---
1696
+
1697
+ ## 1.14.1 (2026-02-03)
1698
+
1699
+ ### Database Selector
1700
+
1701
+ Switch between different Claudia databases directly from the visualizer UI.
1702
+
1703
+ ### Added
1704
+
1705
+ - **Database dropdown** in the HUD bar to select which database to visualize
1706
+ - **`GET /api/databases`** endpoint lists all available databases
1707
+ - **`POST /api/database/switch`** endpoint switches to a different database
1708
+ - Graph automatically reloads when switching databases
1709
+
1710
+ ---
1711
+
1712
+ ## 1.14.0 (2026-02-03)
1713
+
1714
+ ### Brain Visualizer
1715
+
1716
+ Full 3D memory visualization with design controls and per-project database isolation.
1717
+
1718
+ ### Added
1719
+
1720
+ - **Three.js Brain Visualizer** -- Real-time 3D force-directed graph of your memory system. Entities, relationships, memories, and patterns rendered with bloom, particles, and ambient effects.
1721
+ - **Design control panel** -- Press `H` to open live GUI. Adjust colors, bloom, fog, animations, particles, and more in real-time. Export/import configs as JSON.
1722
+ - **`/brain` command** -- Launch the visualizer from any Claudia session. Auto-detects and starts API backend + frontend.
1723
+ - **Per-project database isolation** -- Visualizer uses `--project-dir` to select the correct database via SHA256 path hashing. Each Claudia installation sees only its own memories.
1724
+ - **API backend** (`visualizer/`) -- Express server on port 3849. Endpoints: `/api/graph`, `/api/stats`, `/api/entity/:id`, `/api/timeline`, `/api/events` (SSE).
1725
+ - **~300 config parameters** -- Full control over entity colors, memory colors, link colors, lighting, nodes, links, particles, animations, bloom, fog, ambient particles, starfield, nebula, camera, and simulation forces.
1726
+
1727
+ ### Architecture
1728
+
1729
+ ```
1730
+ Port 3848: Memory daemon (MCP, embeddings)
1731
+ Port 3849: API server (graph data from SQLite)
1732
+ Port 5173: Vite frontend (Three.js visualization)
1733
+ ```
1734
+
1735
+ ### Stats
1736
+
1737
+ - 2 new directories: `visualizer/`, `visualizer-threejs/`
1738
+ - 25 new files
1739
+ - ~10,000 lines added
1740
+
1741
+ ---
1742
+
1743
+ ## 1.13.1 (2026-02-03)
1744
+
1745
+ ### Demo Mode
1746
+
1747
+ Safe, isolated demo installations for testing and demos.
1748
+
1749
+ ### Added
1750
+
1751
+ - **`--demo` installer flag** -- `npx get-claudia my-demo --demo` creates an installation pre-populated with realistic fake data. Perfect for testing features or giving demos without using real data.
1752
+ - **Demo database isolation** -- Demo data lives in `~/.claudia/demo/`, completely separate from real data in `~/.claudia/memory/`. Safety checks prevent accidental writes to production data.
1753
+ - **`seed_demo.py` script** -- Manually seed demo data with 12 people, 3 organizations, 3 projects, relationships with varying dormancy, commitments (some overdue), patterns, predictions, and past session episodes.
1754
+ - **`CLAUDIA_DEMO_MODE` env var** -- Set to `1` to use demo database. The installer configures this automatically with `--demo`.
1755
+
1756
+ ---
1757
+
1758
+ ## 1.13.0 (2026-02-02)
1759
+
1760
+ ### Relationship Intelligence
1761
+
1762
+ Claudia now maps your network. Graph analytics, attribute inference, proactive relationship surfacing.
1763
+
1764
+ ### Added
1765
+
1766
+ - **`/map-connections` command** -- Scans `people/`, `projects/`, `context/` directories. Extracts entities and relationships with confidence levels (0.9 explicit, 0.6 co-mentioned, 0.3 inferred). Reports new entities, new relationships, and inferred connections.
1767
+ - **Attribute-based inference** -- Extracts structured attributes from text: geography (city/state/country), industry keywords, role/title, community memberships (YPO, EO, clubs, associations). `infer_connections()` suggests relationships between people with shared attributes.
1768
+ - **`memory.project_network`** -- New MCP tool returns all people and organizations connected to a project, plus their 1-hop extended network.
1769
+ - **`memory.find_path`** -- BFS pathfinding between any two entities. Returns the shortest relationship chain.
1770
+ - **`memory.network_hubs`** -- Identifies most-connected entities in your network. Configurable minimum connection threshold.
1771
+ - **`memory.dormant_relationships`** -- Surfaces relationships that need attention based on days since last memory. Configurable dormancy threshold and minimum strength.
1772
+ - **Relationship health dashboard** -- Morning brief now includes 30/60/90-day dormancy buckets, introduction opportunities (people with shared attributes who aren't connected), and forming clusters (groups frequently mentioned together).
1773
+ - **Introduction opportunity detection** -- Pattern detector identifies pairs of people who share geography+industry, community membership, or company but have no explicit relationship.
1774
+ - **Cluster forming alerts** -- Detects when 3+ people are frequently mentioned together, suggesting a project or team may be forming.
1775
+
1776
+ ### Changed
1777
+
1778
+ - **`morning-brief.md`** -- Now documents the relationship health dashboard section showing dormant relationships, introduction opportunities, and forming clusters.
1779
+
1780
+ ### Stats
1781
+
1782
+ - 23 new tests for graph analytics
1783
+ - 138 total tests passing
1784
+ - 2,177 lines added
1785
+
1786
+ ---
1787
+
1788
+ ## 1.12.0 (2026-02-02)
1789
+
1790
+ ### The Intelligence Upgrade
1791
+
1792
+ Smarter folder structure. Relationship history. Better recall scoring. Overnight LLM processing.
1793
+
1794
+ ### Added
1795
+
1796
+ - **Entity-aware document folders** -- Documents linked to known entities now route to `people/`, `clients/`, or `projects/` folders by entity type and canonical name. Unlinked files fall back to `general/`. Deterministic path construction from entity metadata.
1797
+ - **Bi-temporal relationships** -- Relationships gain `valid_at` and `invalid_at` columns (schema v8). `supersedes=True` on `memory.relate` invalidates the old relationship instead of deleting it. `memory.about` filters to current relationships by default; `include_historical=True` shows the full timeline.
1798
+ - **Reciprocal Rank Fusion (RRF)** -- Replaces fixed weighted-sum scoring with rank-based fusion across 5 independent signals: vector similarity, FTS5, importance, recency, and graph proximity. Eliminates scale sensitivity between signals. Configurable via `rrf_k` and `enable_rrf`.
1799
+ - **Graph proximity scoring** -- Memories linked to entities mentioned in the query get a recall boost: 1.0 for direct entity matches, 0.7 for one-hop graph neighbors, 0.4 for two-hop. Uses existing `_expand_graph()` recursive CTE.
1800
+ - **Sleep-time LLM consolidation** -- Optional daily 3:30 AM job rewrites high-importance memories for clarity (preserving originals in metadata) and generates richer predictions using the local Ollama model. Gracefully skips when no LLM is available.
1801
+
1802
+ ### Changed
1803
+
1804
+ - **`_build_relative_path()`** now prefixes unlinked files with `general/` to avoid collisions with entity folders. Existing files are unaffected (paths stored in DB are absolute).
1805
+ - **`_expand_graph()`** now includes entity `id` in returned dicts for downstream use by graph proximity scoring.
1806
+ - **5 new config fields**: `rrf_k`, `enable_rrf`, `graph_proximity_enabled`, `llm_consolidation_batch_size`, `enable_llm_consolidation`.
1807
+
1808
+ ---
1809
+
1810
+ ## 1.11.0 (2026-02-02)
1811
+
1812
+ ### The Provenance Release
1813
+
1814
+ Every claim traces to a source. Every document links to people and projects. Auditable, verifiable, robust.
1815
+
1816
+ ### Added
1817
+
1818
+ - **Document storage** -- Store transcripts, emails, and files on disk with automatic registration in SQLite. Deduplication by file hash. Lifecycle management (active, dormant, archived, purged). Three new MCP tools: `memory.file`, `memory.documents`, `memory.purge`.
1819
+ - **Provenance tracking** -- New `memory_sources` table links memories to their source documents. `memory.trace` now includes document references. `save_source_material()` auto-registers in the documents table.
1820
+ - **Graph traversal** -- `memory.about` responses now include a `connected` field showing related entities via recursive CTE traversal of the relationship graph. Cycle prevention, weak-edge pruning, configurable depth.
1821
+ - **Compact session briefing** -- New `memory.briefing` MCP tool returns ~500 token aggregate summary (commitment counts, cooling relationships, unread messages, top prediction, recent activity). Replaces full file loading at session startup.
1822
+ - **`/memory-audit` command** -- Full system audit or entity-specific deep dive. Shows memory counts, top people/projects, provenance chains, linked documents.
1823
+ - **Installer "What's New" section** -- Fresh installs and upgrades now show a brief feature summary in yellow/cyan matching the Claudia banner.
1824
+
1825
+ ### Fixed
1826
+
1827
+ - **FTS5 on fresh installs** -- FTS5 virtual table was only created in migration v4, but fresh databases skipped it. Added post-migration setup block that creates FTS5 regardless of migration path. All 7 pre-existing FTS5 test failures now pass.
1828
+ - **FTS5 test skip markers** -- Tests gracefully skip when FTS5 module is unavailable in the SQLite build.
1829
+
1830
+ ### Changed
1831
+
1832
+ - **`capture-meeting.md`** -- New step stores raw transcript via `memory.file` and links to extracted memories.
1833
+ - **`meeting-prep.md`** -- Queries `memory.documents` for recent files involving the meeting person.
1834
+ - **`memory-manager.md`** -- Session startup uses `memory.briefing` instead of `memory.predictions`, with fallback.
1835
+
1836
+ ---
1837
+
1838
+ ## 1.10.1 (2026-02-01)
1839
+
1840
+ ### Fixed
1841
+
1842
+ - **PATH auto-configuration** -- The installer now auto-appends `~/.claudia/bin` to your shell rc file (zshrc/bashrc) and updates the current session, so `claudia-gateway` works immediately. Windows installer auto-adds to user PATH via registry.
1843
+ - **Interactive setup guide** -- After install, the gateway offers a step-by-step walkthrough for setting up Telegram or Slack. Walks you through @BotFather, token collection, user ID lookup, and writes everything to `gateway.json` automatically. No more guessing.
1844
+ - **`bin/index.js` next steps** -- Now shows the full `~/.claudia/bin/claudia-gateway` path as fallback if the short command isn't found.
1845
+
1846
+ ---
1847
+
1848
+ ## 1.10.0 (2026-02-01)
1849
+
1850
+ ### Gateway: Local Model Support (Zero API Key)
1851
+
1852
+ The gateway now works without an Anthropic API key by using local Ollama models. Users who picked a model during memory daemon setup (qwen3, smollm3, llama3.2) can use the same model for chat. Provider auto-detects at startup: Anthropic if `ANTHROPIC_API_KEY` is set, Ollama otherwise.
1853
+
1854
+ ### Added
1855
+
1856
+ - **Ollama provider in bridge** - New `_callOllama()` method using `/api/chat` with multi-turn conversation support, 0.7 temperature for chat, 60s timeout, and 2-retry logic matching the memory daemon pattern.
1857
+ - **Provider auto-detection** - `start()` tries Anthropic first (dynamic import), falls back to Ollama (pings `/api/tags`), throws a helpful error if neither is available.
1858
+ - **Shared config reading** - Gateway reads `~/.claudia/config.json` `language_model` field (written by memory daemon installer) to auto-detect which Ollama model to use.
1859
+ - **Installer model menu** - Both `install.sh` and `install.ps1` now offer to pull a local model if Ollama is installed and no model is configured. Same menu as memory daemon: qwen3:4b, smollm3:3b, llama3.2:3b, or skip.
1860
+ - **`ollama.host` and `ollama.model`** config fields with `OLLAMA_HOST` env override.
1861
+ - **Local-only data flow diagram** in README showing the fully offline path (phone to gateway to Ollama, no cloud).
1862
+
1863
+ ### Changed
1864
+
1865
+ - **Anthropic SDK is now dynamically imported** - The gateway no longer crashes at startup if `@anthropic-ai/sdk` isn't installed but user only uses Ollama.
1866
+ - **Installer security checklist** adapts based on whether a local model was detected (skips the "Set ANTHROPIC_API_KEY" step).
1867
+ - **`getStatus()`** returns `provider` and `providerReady` instead of `anthropicReady`.
1868
+
1869
+ ---
1870
+
1871
+ ## 1.9.4 (2026-02-01)
1872
+
1873
+ ### Messaging Gateway: Talk to Claudia from Your Phone
1874
+
1875
+ The gateway lets you message Claudia from Telegram or Slack. Messages flow through the gateway running on your machine to the Anthropic API, with full access to Claudia's memory system. Everything stays local except the API call itself.
1876
+
1877
+ ### Added
1878
+
1879
+ - **Gateway bundled in `npx get-claudia`** - The installer now asks whether to set up the messaging gateway after the memory system question. Gateway source, install scripts, and CLI wrapper are all included in the NPM package.
1880
+ - **`gateway/scripts/install.sh`** - macOS/Linux installer: checks Node 18+, copies source to `~/.claudia/gateway/`, runs `npm install`, generates config, creates CLI wrapper and LaunchAgent/systemd unit (disabled by default, requires API keys first).
1881
+ - **`gateway/scripts/install.ps1`** - Windows PowerShell equivalent using Task Scheduler.
1882
+ - **`gateway/README.md`** - Setup guides for Telegram and Slack, full config reference, security documentation (deny-by-default allowlist, API key stripping, data flow diagram), CLI commands, proactive notifications, and troubleshooting.
1883
+ - **`.npmignore`** - Keeps `node_modules/` and `package-lock.json` out of the NPM tarball.
1884
+
1885
+ ### Changed
1886
+
1887
+ - **`bin/index.js`** - Both setup questions (memory + gateway) are now asked upfront before spawning any child processes. Gateway setup chains after memory via continuation-passing. `showNextSteps` displays gateway-specific instructions when applicable.
1888
+ - **`package.json`** - Added `gateway` to the `files` array.
1889
+
1890
+ ### Security Model
1891
+
1892
+ - **Deny-by-default**: No `allowedUsers` entries means nobody can message your Claudia
1893
+ - **Secrets stay in env vars**: `saveConfig` strips all API keys/tokens before writing `gateway.json` to disk
1894
+ - **Service disabled on install**: LaunchAgent/systemd/Task Scheduler entries are created but not enabled, so the gateway won't start until you've configured credentials
1895
+
1896
+ ---
1897
+
1898
+ ## 1.9.3 (2026-01-31)
1899
+
1900
+ ### Fixed
1901
+
1902
+ - **Upgrade crash on memory migration** - Existing databases failed with `no such column: verification_status` during upgrade because `schema.sql` tried to create an index on a migration-added column before migrations ran. The schema initializer now tolerates missing-column errors, letting migrations add the columns first.
1903
+
1904
+ ---
1905
+
1906
+ ## 1.9.1 (2026-01-31)
1907
+
1908
+ ### Concierge: Context-Aware Web Research
1909
+
1910
+ Claudia can now research topics using whatever web tools are available, connect findings to her memory graph, and track when information gets stale.
1911
+
1912
+ ### Added
1913
+
1914
+ - **Concierge skill** (`concierge.md`) - Tool-agnostic research behavior that detects available tools (built-in WebFetch/WebSearch, free MCP servers, or paid options) and adapts. Checks memory before searching, builds context-aware queries using entity knowledge, and stores key findings with source provenance.
1915
+ - **`/research [topic]` command** - Deep research workflow supporting factual, exploratory, comparative, and competitive research. Synthesizes across multiple sources and connects findings to known relationships and projects.
1916
+ - **Free MCP server recommendations** - `.mcp.json.example` now includes `@anthropics/mcp-server-fetch` and `@mcp-server/web-search` (DuckDuckGo) as optional no-API-key power-ups alongside the existing Brave Search option.
1917
+ - **Updated connector-discovery** - Search & Research section expanded to show the full spectrum from free built-in tools to paid options with plain-language guidance.
1918
+
1919
+ ### How It Works
1920
+
1921
+ Claudia checks memory first (avoiding redundant fetches), uses whatever tools are available, and stores key facts with `source:web:` provenance. On future queries, she surfaces previously researched information and flags when it might be stale. No new dependencies, no API keys required for base functionality.
1922
+
1923
+ ---
1924
+
1925
+ ## 1.9.0 (2026-01-31)
1926
+
1927
+ ### Hybrid Search, Session Context, Compact Recall, and Anticipatory Memory
1928
+
1929
+ Four upgrades to the memory system that make Claudia significantly smarter at finding what matters and surfacing it at the right time.
1930
+
1931
+ ### Added
1932
+
1933
+ - **FTS5 hybrid search** - Memory recall now combines vector similarity with full-text search (BM25 via SQLite FTS5 with porter stemming). Exact keyword matches no longer slip through the cracks. Four-factor scoring: vector (0.50), importance (0.25), FTS (0.15), recency (0.10).
1934
+ - **`memory.session_context` tool** - Single MCP call at session start loads everything: unsummarized sessions needing catch-up, recent memories (48h), active predictions, commitments (7d), and episode narratives. Three token budget tiers (brief/normal/full). Replaces the previous pattern of 3+ separate tool calls.
1935
+ - **Compact recall mode** - `memory.recall` now accepts `compact=true` for lightweight browsing (80-char snippets, top 3 entities) and `ids=[...]` for fetching full content by ID. Enables browse-then-fetch workflows that save tokens.
1936
+ - **`memory.morning_context` tool** - Curated morning digest in one call: stale commitments, cooling relationships, cross-entity connections, predictions, and recent activity (72h). Powers the `/morning-brief` command.
1937
+ - **Cross-entity pattern detection** - Consolidation now detects person entities that co-occur in 2+ memories without an explicit relationship, surfacing hidden connections ("Alice and Bob appear together in 4 memories. Are they connected?").
1938
+ - **Schema migration v4** - FTS5 virtual table with auto-sync triggers (insert/update/delete) and backfill of existing memories. Fully backward compatible.
1939
+
1940
+ ### Changed
1941
+
1942
+ - **Session Start Protocol** added to CLAUDE.md: call `memory.session_context` first, catch up unsummarized sessions, then greet with context.
1943
+ - **hooks.json** updated: `context_load` step replaces individual memory.recall and memory.predictions calls.
1944
+ - **morning-brief.md** updated to use `memory.morning_context` as primary data source.
1945
+ - **Search weights** rebalanced: vector 0.60 -> 0.50, importance 0.30 -> 0.25, recency 0.10 unchanged, FTS 0.15 (new).
1946
+ - **`_keyword_search` fallback** now tries FTS5 MATCH before falling back to LIKE.
1947
+
1948
+ ### Technical Details
1949
+
1950
+ - FTS5 triggers created in migration code (not schema.sql) due to the line-based SQL parser not supporting internal semicolons in trigger bodies.
1951
+ - All new features degrade gracefully: FTS5 catches exceptions and returns empty dict on old DBs, session_context returns "no context" on empty DBs.
1952
+ - No new Python dependencies. FTS5 is built into SQLite since 3.9.0.
1953
+ - 16 new unit tests across two test files (test_fts_hybrid.py, test_session_context.py).
1954
+
1955
+ ---
1956
+
1957
+ ## 1.8.1 (2026-01-30)
1958
+
1959
+ ### Memory Efficiency, Fallback Guidance, and Visual Formatting
1960
+
1961
+ Template refinements for smarter memory usage and scannable structured output.
1962
+
1963
+ ### Added
1964
+
1965
+ - **Episodic-memory plugin fallback** - Memory manager now detects whether the `episodic-memory` Claude Code plugin is installed and guides gracefully when it's missing. Covers all four availability states (daemon+plugin, daemon-only, plugin-only, neither).
1966
+ - **Memory efficiency rules** - New section preventing redundant memory calls: session-local dedup, recall/about overlap avoidance, file-vs-memory rule, batch preference, skip-fresh-context.
1967
+ - **Output formatting principle** (#11 in claudia-principles) - Structured output uses emoji section headers, bold titles, and trailing horizontal rules for visual distinction from regular conversation.
1968
+ - **Emoji formatting** for morning-brief, capture-meeting, and weekly-review output templates.
1969
+ - **Trailing `---`** on risk-surfacer alert blocks.
1970
+
1971
+ ---
1972
+
1973
+ ## 1.8.0 (2026-01-30)
1974
+
1975
+ ### Cognitive Tools: Local LLM Extraction
1976
+
1977
+ Claudia can now use a local language model to extract structured data from meeting transcripts, emails, and documents without sending anything to an external API. Optional during install, zero-cost, fully private.
1978
+
1979
+ ### Added
1980
+
1981
+ - **`cognitive.ingest` MCP tool** - Extract entities, facts, commitments, action items, and relationships from raw text using a local Ollama language model. Supports four source types: meeting, email, document, and general.
1982
+ - **Language model service** (`language_model.py`) - Ollama generation service parallel to the existing embedding service. Same architecture: HTTP client, retry logic, async/sync variants, graceful degradation.
1983
+ - **Installer model selection** - During memory system install, users choose a local model: Qwen3-4B (recommended), SmolLM3-3B, Llama 3.2-3B, or skip. Choice is persisted to `~/.claudia/config.json`.
1984
+ - **Configurable via `language_model`** - Set to `""` in config to disable cognitive tools entirely. Claudia works identically to previous versions when no model is installed.
1985
+
1986
+ ### How It Works
1987
+
1988
+ When the user pastes a meeting transcript or email, Claude calls `cognitive.ingest` instead of parsing the text itself. The local model extracts structured JSON (entities, facts, commitments, relationships). Claude reviews the structured output and applies judgment, saving tokens and time.
1989
+
1990
+ If no language model is available, the tool returns the raw text and Claude handles extraction directly (previous behavior).
1991
+
1992
+ ### Extraction Prompts
1993
+
1994
+ Four specialized prompt templates optimized for structured JSON output:
1995
+ - **Meeting** - Participants, decisions, action items, commitments, sentiment
1996
+ - **Email** - Sender, recipients, action items, tone, summary
1997
+ - **Document** - Title, key points, entities, relationships
1998
+ - **General** - Facts, commitments, action items, entities
1999
+
2000
+ ---
2001
+
2002
+ ## 1.7.0 (2026-01-30)
2003
+
2004
+ ### Episodic Memory Provenance
2005
+
2006
+ Memories now carry source provenance, so Claudia can trace any fact back to the original email, transcript, document, or conversation it came from.
2007
+
2008
+ ### Added
2009
+
2010
+ - **Source tracing on recall** - Every memory result now includes `source`, `source_id`, and `source_context` fields identifying where the information originated.
2011
+ - **`memory.trace` MCP tool** - On-demand provenance reconstruction. Returns the full chain: memory, source episode narrative, archived conversation turns, and source material file preview. Zero cost until invoked.
2012
+ - **Source material storage** - `memory.remember`, `memory.end_session`, and `memory.batch` accept `source_material` to save raw text (emails, transcripts, docs) to `~/.claudia/memory/sources/` as human-readable markdown files.
2013
+ - **Archived turn buffer** - Session conversation turns are now archived instead of deleted after summarization, preserving the raw exchange for later tracing.
2014
+ - **Schema migration v3** - Adds `source_context` to memories table and `is_archived` to turn_buffer. Fully backward compatible with existing databases.
2015
+
2016
+ ---
2017
+
2018
+ ## 1.6.0 (2026-01-29)
2019
+
2020
+ ### In-Place Upgrades
2021
+
2022
+ Running `npx get-claudia` in an existing Claudia directory now upgrades framework files (skills, commands, rules, hooks, identity) while preserving your data (context/, people/, projects/). Previously, the installer refused to run if Claudia files already existed, leaving existing users with no upgrade path.
2023
+
2024
+ ### Added
2025
+
2026
+ - **Upgrade support** - Installer detects existing Claudia instances and selectively updates `.claude/` and `CLAUDE.md` without touching user data. Works for users on any previous version (v1.0+).
2027
+ - **`memory.batch` MCP tool** - Execute entity creation, memory storage, and relationship linking in a single call. Reduces mid-session memory operations from 3-5 tool calls to 1.
2028
+ - **Behavioral optimizations** in memory-manager skill:
2029
+ - Silent processing with structured Session Update output format
2030
+ - File write efficiency (wait for complete data before writing)
2031
+ - Information lookup priority chain (memory.about > file read > ask user)
2032
+ - Lazy startup (2 calls max instead of 5+ file reads)
2033
+
2034
+ ### Upgrade Instructions
2035
+
2036
+ Existing users on any version:
2037
+ ```bash
2038
+ cd your-claudia-directory
2039
+ npx get-claudia .
2040
+ ```
2041
+
2042
+ ---
2043
+
2044
+ ## 1.5.2 (2026-01-29)
2045
+
2046
+ ### Fixed
2047
+
2048
+ - **Windows** - Ollama installer now runs silently (`/S` flag) after the user confirms. Previously it opened the GUI installer requiring manual clicks.
2049
+
2050
+ ---
2051
+
2052
+ ## 1.5.1 (2026-01-29)
2053
+
2054
+ ### Automatic Ollama Installation
2055
+
2056
+ The installer now offers to install Ollama automatically on all platforms when it isn't already present.
2057
+
2058
+ ### Changed
2059
+
2060
+ - **macOS/Linux** - Tries Homebrew first (macOS), then falls back to the official Ollama install script (`curl -fsSL https://ollama.com/install.sh | sh`). Works on both macOS and Linux now (previously macOS-only).
2061
+ - **Windows** - Tries `winget install Ollama.Ollama` first, then falls back to downloading and running `OllamaSetup.exe` directly. PATH is refreshed automatically so the installer can continue without restarting the terminal.
2062
+
2063
+ ---
2064
+
2065
+ ## 1.5.0 (2026-01-29)
2066
+
2067
+ ### Windows Support
2068
+
2069
+ Claudia's memory system now installs and runs on Windows.
2070
+
2071
+ ### Added
2072
+
2073
+ - **Windows installer** (`install.ps1`) - Full 8-step PowerShell installer matching macOS/Linux functionality. Uses Windows Task Scheduler for auto-start instead of LaunchAgent/systemd.
2074
+ - **Windows diagnostics** (`diagnose.ps1`) - 11 diagnostic checks for troubleshooting on Windows.
2075
+ - **Platform detection** - `bin/index.js` detects Windows and spawns PowerShell with the correct full path (fixes Git Bash PATH issues). Uses Windows venv paths for `.mcp.json`.
2076
+
2077
+ ### Tested
2078
+
2079
+ - Windows 10, Python 3.12, PowerShell 5.1
2080
+
2081
+ ---
2082
+
2083
+ ## 1.4.1 (2026-01-28)
2084
+
2085
+ ### Fixed
2086
+
2087
+ - **spaCy crash on Python 3.14** - The entity extractor only caught `ImportError` when spaCy failed to load, but Python 3.14 triggers an internal `ConfigError` from Pydantic v1 instead. Broadened the exception handler so the daemon falls back to regex-based entity extraction gracefully instead of crashing on startup.
2088
+
2089
+ ---
2090
+
2091
+ ## 1.4.0 (2026-01-28)
2092
+
2093
+ ### Per-Turn Memory Capture & Session Narratives
2094
+
2095
+ Claudia now captures every meaningful conversation turn and generates rich narrative summaries at session end. If a session ends abruptly, the next session catches up automatically.
2096
+
2097
+ ### Added
2098
+
2099
+ - **Turn buffering** - `memory.buffer_turn` stores raw conversation turns without expensive embedding generation. Lightweight, crash-safe via SQLite WAL mode.
2100
+ - **Session narratives** - `memory.end_session` lets Claude write a free-form narrative that enhances structured data with tone, emotional context, unresolved threads, reasons behind decisions, and half-formed ideas.
2101
+ - **Orphan session catch-up** - `memory.unsummarized` detects sessions that ended without a summary. Next session start generates retroactive summaries from buffered turns.
2102
+ - **Episode semantic search** - `recall_episodes()` searches session narratives by vector similarity, giving Claude access to the texture of past conversations.
2103
+ - **Database migration system** - Version-tracked schema migrations in `database.py` so existing databases upgrade automatically.
2104
+ - **Architecture documentation** - `ARCHITECTURE.md` with mermaid diagrams showing memory pipeline, data flow, and system components.
2105
+
2106
+ ### Changed
2107
+
2108
+ - **CLAUDE.md** - Elevated memory system as core architecture alongside the template layer. Added development workflow for the memory daemon.
2109
+ - **Memory manager skill** - Rewritten to use per-turn buffering instead of auto-remembering. Added detailed guidance on writing session narratives that enhance rather than compress information.
2110
+ - **Session hooks** - Updated to include catch-up behavior at session start and narrative summarization at session end.
2111
+ - **`recall_about()`** - Now includes recent session narratives mentioning the entity.
2112
+
2113
+ ### Schema Changes
2114
+
2115
+ - `episodes` table: added `narrative`, `turn_count`, `is_summarized` columns
2116
+ - New `turn_buffer` table for raw conversation turn storage
2117
+ - New `episode_embeddings` virtual table for narrative semantic search
2118
+ - Migration v2 applied automatically on existing databases
2119
+
2120
+ ### Rollback
2121
+
2122
+ Tag `pre-memory-capture` on commit `834fb5e` (v1.3.2) provides a clean rollback point.
2123
+
2124
+ ---
2125
+
2126
+ ## 1.3.2 (2026-01-28)
2127
+
2128
+ ### Fixed
2129
+
2130
+ - **MCP schema validation** - Moved `_comment` and `_comment2` out of `mcpServers` in `.mcp.json.example`. Claude Code's validator rejected these string values as invalid server definitions, causing parse errors when users renamed the file to `.mcp.json`.
2131
+
2132
+ ---
2133
+
2134
+ ## 1.3.1 (2026-01-28)
2135
+
2136
+ ### Per-Project Memory Isolation
2137
+
2138
+ Each Claudia installation now gets its own isolated memory database, so memories from work projects don't mix with personal projects.
2139
+
2140
+ ### Added
2141
+
2142
+ - **--project-dir argument** - Memory daemon accepts project directory for database isolation
2143
+ - **Automatic isolation** - `.mcp.json.example` uses `${workspaceFolder}` to auto-isolate per project
2144
+ - **Deterministic hashing** - Same project directory always maps to same database file
2145
+
2146
+ ### How It Works
2147
+
2148
+ When Claude Code launches the MCP server, it passes the workspace folder. The daemon hashes the path to create a unique database:
2149
+
2150
+ ```
2151
+ ~/.claudia/memory/
2152
+ ├── claudia.db ← Global fallback (backward compatible)
2153
+ ├── a1b2c3d4.db ← Project A's memories
2154
+ ├── e5f6g7h8.db ← Project B's memories
2155
+ ```
2156
+
2157
+ ### Backward Compatible
2158
+
2159
+ Existing installations without `--project-dir` continue using the global database.
2160
+
2161
+ ---
2162
+
2163
+ ## 1.3.0 (2026-01-28)
2164
+
2165
+ ### Business Operating System
2166
+
2167
+ Claudia now generates business-grade folder structures for all archetypes, with depth that users choose during onboarding.
2168
+
2169
+ ### Added
2170
+
2171
+ - **Business Depth Selection** - During onboarding, users choose between Full, Starter, or Minimal structure
2172
+ - **Universal Business Modules** - Pipeline tracking, financial management, accountability, templates, and insights available to all archetypes
2173
+ - **Deep Per-Client Structure** (Consultant) - Milestone plans, stakeholder maps, blockers, decision logs, wins documentation
2174
+ - **Enhanced Archetypes** - All 5 archetypes upgraded with business depth variations
2175
+ - **Structure Evolution Skill** - Claudia proactively suggests structural improvements as she observes your workflow
2176
+ - **4 New Commands**:
2177
+ - `/pipeline-review` - Review active pipeline, deals, capacity
2178
+ - `/financial-snapshot` - Revenue, expenses, invoicing status
2179
+ - `/client-health` - Health check across all clients (Consultant/Solo)
2180
+ - `/accountability-check` - Surface commitments, overdue items, waiting-on
2181
+
2182
+ ### Philosophy
2183
+
2184
+ Structure grows organically from actual needs. Users who want minimal setup get minimal setup. Power users get full business operating systems. Claudia watches for friction and offers targeted additions over time.
2185
+
2186
+ ---
2187
+
2188
+ ## 1.2.5 (2026-01-28)
2189
+
2190
+ ### Memory System: Fully Automatic Installation
2191
+
2192
+ The memory system now works automatically after install with no manual intervention required.
2193
+
2194
+ ### Fixed
2195
+
2196
+ - **sqlite-vec on Python 3.13+** - Now tries the Python package first before `enable_load_extension()`, which isn't available on Python 3.13
2197
+ - **Ollama auto-start on macOS** - Creates LaunchAgent so Ollama starts on boot
2198
+ - **Model pull reliability** - Ensures Ollama is running before attempting to pull the embedding model
2199
+ - **Boot resilience** - Daemon waits up to 10 seconds for Ollama to start after reboot
2200
+
2201
+ ### Added
2202
+
2203
+ - Comprehensive verification step at end of install showing status of all services
2204
+ - 5 new checks in `diagnose.sh`: Ollama running, LaunchAgent configured, embedding model, sqlite-vec working
2205
+ - Retry logic in embeddings service (5 attempts, 2s delay) for Ollama connection
2206
+
2207
+ ---
2208
+
2209
+ ## 1.0.0 (2026-01-23) - get-claudia
2210
+
2211
+ ### Package Rename
2212
+
2213
+ The npm package has been renamed from `create-claudia` to `get-claudia` for a cleaner install experience:
2214
+
2215
+ ```bash
2216
+ npx get-claudia
2217
+ ```
2218
+
2219
+ ### README Overhaul
2220
+
2221
+ - Character-authentic README that reflects Claudia's personality
2222
+ - ASCII banner header
2223
+ - "Busy work is my job. Judgment is yours." tagline
2224
+ - Clear comparison table (Traditional AI vs Claudia)
2225
+ - Sample onboarding conversation showing her personality
2226
+ - 5 archetype icons (Consultant, Executive, Founder, Solo, Creator)
2227
+ - "Adapt and create" philosophy section
2228
+ - Created by Kamil Banc attribution
2229
+
2230
+ ### Includes all features from 2.0.0-beta.1
2231
+
2232
+ ---
2233
+
2234
+ ## 2.0.0-beta.1 (2026-01-23)
2235
+
2236
+ ### Complete Rebuild: Adaptive, Learning AI Executive Assistant
2237
+
2238
+ This is a major release that transforms Claudia from a static template into an adaptive, learning system.
2239
+
2240
+ ### Added
2241
+
2242
+ **Conversational Onboarding**
2243
+ - Claudia now greets new users and learns about them through natural conversation
2244
+ - Detects user archetype (Consultant, Executive, Founder, Solo, Creator)
2245
+ - Generates personalized folder structure based on user's work style
2246
+ - Creates archetype-specific commands tailored to user's needs
2247
+
2248
+ **Skills System (8 Proactive Capabilities)**
2249
+ - `onboarding.md` - First-run discovery flow
2250
+ - `structure-generator.md` - Creates personalized folders and files
2251
+ - `relationship-tracker.md` - Surfaces context when people are mentioned
2252
+ - `commitment-detector.md` - Automatically catches promises in conversations
2253
+ - `pattern-recognizer.md` - Notices trends over time
2254
+ - `risk-surfacer.md` - Proactively warns about issues
2255
+ - `capability-suggester.md` - Suggests new commands based on usage patterns
2256
+ - `memory-manager.md` - Handles cross-session persistence
2257
+
2258
+ **5 Archetype Templates**
2259
+ - Consultant/Advisor - clients, pipeline, proposals
2260
+ - Executive/Manager - direct reports, initiatives, board
2261
+ - Founder/Entrepreneur - investors, team, product, fundraising
2262
+ - Solo Professional - clients, projects, finances
2263
+ - Content Creator - content calendar, audience, collaborations
2264
+
2265
+ **Memory System**
2266
+ - `context/learnings.md` - Persists preferences and patterns across sessions
2267
+ - Session start/end hooks for loading and saving context
2268
+ - Claudia remembers your preferences, successful approaches, and areas to watch
2269
+
2270
+ **Self-Evolution**
2271
+ - Claudia can suggest new commands when she notices repeated behaviors
2272
+ - Proposes structure changes when new categories emerge
2273
+ - Learns what works and adapts over time
2274
+
2275
+ ### Changed
2276
+
2277
+ **Ultra-Minimal Seed**
2278
+ - Fresh install is now just CLAUDE.md and .claude/ folder
2279
+ - Everything else is generated during onboarding
2280
+ - Much smaller initial footprint
2281
+
2282
+ **9 Base Commands (All Users)**
2283
+ - `/morning-brief` - Daily priorities and warnings
2284
+ - `/meeting-prep` - Pre-meeting briefing
2285
+ - `/capture-meeting` - Process meeting notes
2286
+ - `/what-am-i-missing` - Surface risks and blind spots
2287
+ - `/weekly-review` - Guided weekly reflection
2288
+ - `/new-person` - Create relationship file
2289
+ - `/follow-up-draft` - Post-meeting emails
2290
+ - `/draft-reply` - Email response drafts
2291
+ - `/summarize-doc` - Document summaries
2292
+
2293
+ **Enhanced CLAUDE.md**
2294
+ - Embedded onboarding behavior
2295
+ - Skills documentation
2296
+ - Memory system integration
2297
+ - Clearer safety principles
2298
+
2299
+ ### Removed
2300
+ - Static folder structure (now generated dynamically)
2301
+ - Pre-created template files (now created during onboarding)
2302
+ - One-size-fits-all commands (now archetype-specific)
2303
+
2304
+ ---
2305
+
2306
+ ## 1.0.0 (2026-01-23)
2307
+
2308
+ ### Initial Release
2309
+
2310
+ - Created `npx create-claudia` CLI package
2311
+ - FIGlet ASCII banner in ANSI Shadow style (yellow)
2312
+ - Copies complete Claudia template directory structure:
2313
+ - `CLAUDE.md` - Claudia's personality and capabilities
2314
+ - `.claude/commands/` - 17 built-in slash commands
2315
+ - `people/` - Relationship context files
2316
+ - `context/` - Commitments, patterns, waiting, outreach
2317
+ - `projects/` - Project templates
2318
+ - `tasks/` - Task blueprints for recurring work
2319
+ - `content/` - Content planning
2320
+ - `expansions/` - Optional capability extensions
2321
+ - Error handling for existing directories
2322
+ - Custom directory name support (`npx create-claudia my-name`)
2323
+ - Apache 2.0 license