--- id: 7a391397-2276-42bf-bca6-e1bb468029cd type: configuration title: "Hourly embedding refresh timer with --if-changed flag" tags: [cognitive-memory, systemd, automation, embedding, configuration] importance: 0.7 confidence: 0.8 created: "2026-02-19T20:53:09.280113+00:00" updated: "2026-03-03T05:32:47.987847+00:00" relations: - target: 96a6c125-bb69-45af-b1b6-a9b48654fb7e type: RELATED_TO direction: incoming strength: 0.75 edge_id: d0342cf0-b6f5-43c4-be5c-b1ec25216265 - target: 1af571c5-cf7a-4e40-b324-6973b56f2502 type: RELATED_TO direction: incoming strength: 0.72 edge_id: b5ed8a02-b4db-409b-b67f-8b9d7ff8041b --- Created systemd user timer `cognitive-memory-embed.timer` that runs hourly. Uses `claude-memory embed --if-changed` which compares memory IDs in _index.json vs _embeddings.json — skips in ~0.1s when nothing changed, full re-embed (~27s) only when memories were added or deleted. Removed embed from daily timer (cognitive-memory-daily.service) since hourly covers it. Daily timer now only runs decay, core, and symlinks. Both services need `export PATH="/home/cal/.local/bin:$PATH"` because systemd doesn't load user shell profile and `uv` lives in ~/.local/bin. Files: ~/.config/systemd/user/cognitive-memory-embed.{service,timer}.