get-claudia 1.55.13 → 1.55.14

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 CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  All notable changes to Claudia will be documented in this file.
4
4
 
5
+ ## 1.55.14 (2026-03-16)
6
+
7
+ - **LaunchAgent no longer bakes in --project-dir** -- The standalone background daemon now starts without a `--project-dir` argument. This forces a plist content change for all existing installs, which triggers an automatic LaunchAgent reload on next `claudia setup`, picking up the current Python daemon code. Previously, the plist could be identical across updates, leaving old daemon code running indefinitely even after `pip install --upgrade`.
8
+ - **Cleanup of orphaned empty hash databases** -- On each startup, if the database is already unified and empty hash-named DB files exist (created by stale old-code daemon processes), they are silently removed. Prevents phantom databases from accumulating in `~/.claudia/memory/`.
9
+ - **Root cause:** After the v1.55 consolidation, users whose LaunchAgent was running old pre-unified-DB code would see scheduled jobs (consolidation, backups, decay) operating against an empty `6af67351bcfa.db` while all real memories lived in `claudia.db`. Health check showed `schema_version: 0` and `-1` counts.
10
+
5
11
  ## 1.55.13 (2026-03-16)
6
12
 
7
13
  - **Gmail & Calendar MCPs as standard options** -- The standalone `gmail` (`@gongrzhe/server-gmail-autoauth-mcp`) and `google-calendar` (`@gongrzhe/server-calendar-autoauth-mcp`) servers are now first-class options alongside workspace-mcp. Two paths for Google integration: Option A (lightweight, focused, fewer tools) and Option B (all-in-one workspace-mcp with Drive, Docs, Sheets, etc.). Both can coexist.
package/bin/index.js CHANGED
@@ -1004,7 +1004,7 @@ async function main() {
1004
1004
 
1005
1005
  // Register LaunchAgent for standalone daemon (macOS only)
1006
1006
  if (daemonOk && process.platform === 'darwin') {
1007
- await ensureLaunchAgent(venvPython, targetPath);
1007
+ await ensureLaunchAgent(venvPython);
1008
1008
  }
1009
1009
 
1010
1010
  // MCP Config step: verify .mcp.json is correct and check stdio server count
@@ -1575,7 +1575,7 @@ function checkMcpConfig(targetPath) {
1575
1575
  * The standalone daemon runs 24/7 for scheduled jobs (consolidation, decay, vault sync).
1576
1576
  * This is separate from the MCP daemon that Claude Code spawns per-session.
1577
1577
  */
1578
- async function ensureLaunchAgent(venvPythonPath, projectDir) {
1578
+ async function ensureLaunchAgent(venvPythonPath) {
1579
1579
  const plistDir = join(homedir(), 'Library', 'LaunchAgents');
1580
1580
  const plistPath = join(plistDir, 'com.claudia.memory.plist');
1581
1581
 
@@ -1591,8 +1591,6 @@ async function ensureLaunchAgent(venvPythonPath, projectDir) {
1591
1591
  <string>-m</string>
1592
1592
  <string>claudia_memory</string>
1593
1593
  <string>--standalone</string>
1594
- <string>--project-dir</string>
1595
- <string>${projectDir}</string>
1596
1594
  </array>
1597
1595
  <key>WorkingDirectory</key>
1598
1596
  <string>${join(homedir(), '.claudia', 'daemon')}</string>
@@ -195,7 +195,16 @@ def _auto_consolidate() -> None:
195
195
  fetch=True,
196
196
  )
197
197
  if rows and rows[0]["value"] == "true":
198
- logger.debug("Database already unified, skipping consolidation")
198
+ # Unified. Clean up any empty hash DBs that stale daemon instances may have
199
+ # created (old standalone daemons running pre-unified-DB code create a fresh
200
+ # empty hash DB on startup if the original was deleted by consolidation).
201
+ all_hash_dbs = scan_hash_databases(memory_dir)
202
+ empty_dbs = [d for d in all_hash_dbs if not d["has_data"]]
203
+ if empty_dbs:
204
+ logger.info(
205
+ f"Removing {len(empty_dbs)} empty hash DB(s) left by stale standalone daemon"
206
+ )
207
+ cleanup_old_databases(memory_dir, empty_dbs)
199
208
  return
200
209
  except Exception:
201
210
  pass # _meta table might not exist yet
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "get-claudia",
3
- "version": "1.55.13",
3
+ "version": "1.55.14",
4
4
  "description": "An AI assistant who learns how you work.",
5
5
  "keywords": [
6
6
  "claudia",