diff --git a/.daemon/logs/daemon.out.log b/.daemon/logs/daemon.out.log index 003a3175a..ebf76be4f 100644 --- a/.daemon/logs/daemon.out.log +++ b/.daemon/logs/daemon.out.log @@ -10949,3 +10949,137 @@ hint: See the 'Note about fast-forwards' in 'git push --help' for details. 18:55:49 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-01-27.md","chunks":4,"sections":4,"filename":"2026-01-27"} 18:55:49 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/TOOLS.md","chunks":7,"sections":7,"filename":"TOOLS"} 18:55:49 INFO  [daemon] Imported existing memory files {"files":18,"chunks":107} +19:43:25 INFO  [daemon] Serving dashboard {"path":"/home/nicholai/node_modules/signetai/dashboard"} +19:43:25 INFO  [daemon] Signet Daemon starting +19:43:25 INFO  [daemon] Agents directory {"path":"/home/nicholai/.agents"} +19:43:25 INFO  [daemon] Port configured {"port":3850} +19:43:25 INFO  [daemon] Process ID {"pid":3390902} +19:43:25 INFO  [watcher] File watcher started +19:43:25 INFO  [auth] Running in local mode (no auth) +19:43:25 INFO  [pipeline] Worker started {"pollMs":2000,"maxRetries":3,"model":"haiku","mode":"controlled-write"} +19:43:25 INFO  [retention] Worker started {"intervalMs":21600000,"tombstoneDays":30,"historyDays":180} +19:43:25 INFO  [maintenance] Worker skipped (disabled or frozen) +19:43:25 INFO  [document-worker] Worker started {"intervalMs":10000,"chunkSize":2000} +19:43:25 INFO  [pipeline] Pipeline started {"mode":"controlled-write"} +19:43:25 INFO  [git] Auto-sync enabled: every 300s +19:43:25 INFO  [daemon] Server listening {"address":"::1","port":3850} +19:43:25 INFO  [daemon] Daemon ready +19:43:25 INFO  [watcher] Synced Claude memory chunk {"content":"compass project\n===\n\narchitecture\n---\n\n- compass r","section":"(no section)","level":"section"} +19:43:25 INFO  [watcher] Synced Claude memory file {"path":"/home/nicholai/.claude/projects/-mnt-work-dev-client-work-martine-vogel-compass/memory/MEMORY.md","projectId":"-mnt-work-dev-client-work-martine-vogel-compass","chunks":1,"sections":1} +19:43:25 INFO  [watcher] Synced Claude memory chunk {"content":"## Depth Anything v3 Nuke Plugin\n\n- repo: /mnt/wor","section":"depth anything v3 nuke plugin","level":"section"} +19:43:25 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-01-26.md","chunks":2,"sections":2,"filename":"2026-01-26"} +19:43:25 INFO  [watcher] Synced Claude memory chunk {"content":"## Nuke .cat File Format (critical)\n\n- .cat files ","section":"nuke .cat file format (critical)","level":"section"} +19:43:25 INFO  [watcher] Synced Claude memory chunk {"content":"## TorchScript Lessons (hard-won)\n\n- nn.ModuleList","section":"torchscript lessons (hard-won)","level":"section"} +19:43:25 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-01-24.md","chunks":2,"sections":2,"filename":"2026-01-24"} +19:43:25 INFO  [watcher] Synced Claude memory chunk {"content":"## Model Performance Notes\n\n- kimi-k2.5: 2/10 on n","section":"model performance notes","level":"section"} +19:43:25 INFO  [watcher] Synced Claude memory chunk {"content":"## Skill\n\n- materia-nuke-node skill at ~/.agents/s","section":"skill","level":"section"} +19:43:25 INFO  [watcher] Synced Claude memory file {"path":"/home/nicholai/.claude/projects/-mnt-work-dev-materia/memory/MEMORY.md","projectId":"-mnt-work-dev-materia","chunks":5,"sections":5} +19:43:25 INFO  [watcher] Synced Claude memory chunk {"content":"compass schedule project\n===\n\nkey patterns\n---\n\n- ","section":"(no section)","level":"section"} +19:43:25 INFO  [watcher] Synced Claude memory file {"path":"/home/nicholai/.claude/projects/-mnt-work-dev-client-work-martine-vogel-compass-compass-schedule/memory/MEMORY.md","projectId":"-mnt-work-dev-client-work-martine-vogel-compass-compass-schedule","chunks":1,"sections":1} +19:43:25 INFO  [watcher] Synced Claude memory chunk {"content":"quickshell port\n===\n\nthe caelestia -> quickshell p","section":"(no section)","level":"paragraph"} +19:43:25 INFO  [watcher] Synced Claude memory chunk {"content":"status (2026-02-08)\n---\n- deployed and running wit","section":"(no section)","level":"paragraph"} +19:43:25 INFO  [watcher] Synced Claude memory file {"path":"/home/nicholai/.claude/projects/-home-nicholai/memory/MEMORY.md","projectId":"-home-nicholai","chunks":2,"sections":0} +19:43:25 INFO  [watcher] Synced Claude memory chunk {"content":"## DB Access Pattern (PR #58 fix)\n\n- `src/lib/db-u","section":"db access pattern (pr #58 fix)","level":"section"} +19:43:25 INFO  [watcher] Synced Claude memory chunk {"content":"## Env Access Pattern\n\n- cloudflare workers: env v","section":"env access pattern","level":"section"} +19:43:25 INFO  [watcher] Synced Claude memory chunk {"content":"## Lessons Learned\n\n- when removing multiline bloc","section":"lessons learned","level":"section"} +19:43:25 INFO  [watcher] Synced Claude memory file {"path":"/home/nicholai/.claude/projects/-mnt-work-dev-client-work-martine-vogel-compass-compass-custom-dashboards/memory/MEMORY.md","projectId":"-mnt-work-dev-client-work-martine-vogel-compass-compass-custom-dashboards","chunks":3,"sections":3} +19:43:25 INFO  [watcher] Synced Claude memory chunk {"content":"## Veo 3.1 First-Last Frame Pipeline\n\n- When gener","section":"veo 3.1 first-last frame pipeline","level":"section"} +19:43:25 INFO  [watcher] Synced Claude memory chunk {"content":"### Nano Banana Pro (Input-Only Moderation)\n\n- Che","section":"nano banana pro (input-only moderation)","level":"section"} +19:43:25 INFO  [watcher] Synced Claude memory chunk {"content":"### Veo 3.1 (Input AND Output Moderation)\n\n- Moder","section":"veo 3.1 (input and output moderation)","level":"section"} +19:43:25 INFO  [watcher] Synced Claude memory chunk {"content":"## API Format Notes (Gemini API, not Vertex AI)\n\n-","section":"api format notes (gemini api, not vertex ai)","level":"section"} +19:43:25 INFO  [watcher] Synced Claude memory chunk {"content":"## Project Location\n\n- Working dir: `/mnt/work/dev","section":"project location","level":"section"} +19:43:25 INFO  [watcher] Synced Claude memory file {"path":"/home/nicholai/.claude/projects/-mnt-work-dev-ai-studio-videos/memory/MEMORY.md","projectId":"-mnt-work-dev-ai-studio-videos","chunks":5,"sections":5} +19:43:25 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-15-pre-compaction-flush.md","chunks":13,"sections":13,"filename":"2026-02-15-pre-compaction-flush"} +19:43:25 INFO  [watcher] Synced Claude memory chunk {"content":"compass project memory\n===\n\nMCP tool architecture ","section":"(no section)","level":"paragraph"} +19:43:25 INFO  [watcher] Synced Claude memory chunk {"content":"netsuite gotchas:\n- 401 can mean timeout, not auth","section":"(no section)","level":"paragraph"} +19:43:25 INFO  [watcher] Synced Claude memory file {"path":"/home/nicholai/.claude/projects/-mnt-work-dev-client-work-martine-vogel-compass-compass/memory/MEMORY.md","projectId":"-mnt-work-dev-client-work-martine-vogel-compass-compass","chunks":2,"sections":0} +19:43:25 INFO  [watcher] Synced Claude memory chunk {"content":"## Tailwind v4 + styled-jsx Gotcha\n\n`hidden lg:fle","section":"tailwind v4 + styled-jsx gotcha","level":"section"} +19:43:25 INFO  [watcher] Synced Claude memory chunk {"content":"## Turbopack Build Bug\n\n`npx next build` crashes w","section":"turbopack build bug","level":"section"} +19:43:25 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-09.md","chunks":4,"sections":4,"filename":"2026-02-09"} +19:43:25 INFO  [watcher] Synced Claude memory chunk {"content":"## Theme: Modern Minimal (oklch)\n\n- Background: pu","section":"theme: modern minimal (oklch)","level":"section"} +19:43:25 INFO  [watcher] Synced Claude memory chunk {"content":"## Design Direction\n\n- Compact, minimal UI inspire","section":"design direction","level":"section"} +19:43:25 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-14.md","chunks":2,"sections":2,"filename":"2026-02-14"} +19:43:25 INFO  [watcher] Synced Claude memory chunk {"content":"## Key Paths\n\n- Theme vars: `app/globals.css`\n- Ap","section":"key paths","level":"section"} +19:43:25 INFO  [watcher] Synced Claude memory file {"path":"/home/nicholai/.claude/projects/-mnt-work-dev-cre-sync/memory/MEMORY.md","projectId":"-mnt-work-dev-cre-sync","chunks":5,"sections":5} +19:43:25 INFO  [watcher] Synced existing Claude memories {"count":24} +19:43:25 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/MODEL-ROUTING.md","chunks":5,"sections":5,"filename":"MODEL-ROUTING"} +19:43:25 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-10-openagents-tracker.md","chunks":8,"sections":8,"filename":"2026-02-10-openagents-tracker"} +19:43:25 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-10-signet.md","chunks":16,"sections":16,"filename":"2026-02-10-signet"} +19:43:25 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-01-20.md","chunks":2,"sections":0,"filename":"2026-01-20"} +19:43:25 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-17.md","chunks":8,"sections":8,"filename":"2026-02-17"} +19:43:25 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-10.md","chunks":12,"sections":12,"filename":"2026-02-10"} +19:43:25 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-16-signet-architecture.md","chunks":6,"sections":6,"filename":"2026-02-16-signet-architecture"} +19:43:25 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/package-preferences.md","chunks":1,"sections":1,"filename":"package-preferences"} +19:43:25 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-01-31.md","chunks":1,"sections":1,"filename":"2026-01-31"} +19:43:25 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-07.md","chunks":8,"sections":8,"filename":"2026-02-07"} +19:43:25 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/VOICE-WORKFLOW.md","chunks":6,"sections":6,"filename":"VOICE-WORKFLOW"} +19:43:25 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-01-27.md","chunks":4,"sections":4,"filename":"2026-01-27"} +19:43:25 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/TOOLS.md","chunks":7,"sections":7,"filename":"TOOLS"} +19:43:25 INFO  [daemon] Imported existing memory files {"files":18,"chunks":107} +19:45:55 INFO  [daemon] Serving dashboard {"path":"/home/nicholai/node_modules/signetai/dashboard"} +19:45:55 INFO  [daemon] Signet Daemon starting +19:45:55 INFO  [daemon] Agents directory {"path":"/home/nicholai/.agents"} +19:45:55 INFO  [daemon] Port configured {"port":3850} +19:45:55 INFO  [daemon] Process ID {"pid":3396265} +19:45:55 INFO  [watcher] File watcher started +19:45:55 INFO  [auth] Running in local mode (no auth) +19:45:55 INFO  [pipeline] Worker started {"pollMs":2000,"maxRetries":3,"model":"haiku","mode":"controlled-write"} +19:45:55 INFO  [retention] Worker started {"intervalMs":21600000,"tombstoneDays":30,"historyDays":180} +19:45:55 INFO  [maintenance] Worker skipped (disabled or frozen) +19:45:55 INFO  [document-worker] Worker started {"intervalMs":10000,"chunkSize":2000} +19:45:55 INFO  [pipeline] Pipeline started {"mode":"controlled-write"} +19:45:55 INFO  [git] Auto-sync enabled: every 300s +19:45:55 INFO  [daemon] Server listening {"address":"::1","port":3850} +19:45:55 INFO  [daemon] Daemon ready +19:45:55 INFO  [watcher] Synced Claude memory chunk {"content":"compass project\n===\n\narchitecture\n---\n\n- compass r","section":"(no section)","level":"section"} +19:45:55 INFO  [watcher] Synced Claude memory file {"path":"/home/nicholai/.claude/projects/-mnt-work-dev-client-work-martine-vogel-compass/memory/MEMORY.md","projectId":"-mnt-work-dev-client-work-martine-vogel-compass","chunks":1,"sections":1} +19:45:55 INFO  [watcher] Synced Claude memory chunk {"content":"## Depth Anything v3 Nuke Plugin\n\n- repo: /mnt/wor","section":"depth anything v3 nuke plugin","level":"section"} +19:45:55 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-01-26.md","chunks":2,"sections":2,"filename":"2026-01-26"} +19:45:55 INFO  [watcher] Synced Claude memory chunk {"content":"## Nuke .cat File Format (critical)\n\n- .cat files ","section":"nuke .cat file format (critical)","level":"section"} +19:45:55 INFO  [watcher] Synced Claude memory chunk {"content":"## TorchScript Lessons (hard-won)\n\n- nn.ModuleList","section":"torchscript lessons (hard-won)","level":"section"} +19:45:55 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-01-24.md","chunks":2,"sections":2,"filename":"2026-01-24"} +19:45:55 INFO  [watcher] Synced Claude memory chunk {"content":"## Model Performance Notes\n\n- kimi-k2.5: 2/10 on n","section":"model performance notes","level":"section"} +19:45:55 INFO  [watcher] Synced Claude memory chunk {"content":"## Skill\n\n- materia-nuke-node skill at ~/.agents/s","section":"skill","level":"section"} +19:45:55 INFO  [watcher] Synced Claude memory file {"path":"/home/nicholai/.claude/projects/-mnt-work-dev-materia/memory/MEMORY.md","projectId":"-mnt-work-dev-materia","chunks":5,"sections":5} +19:45:55 INFO  [watcher] Synced Claude memory chunk {"content":"compass schedule project\n===\n\nkey patterns\n---\n\n- ","section":"(no section)","level":"section"} +19:45:55 INFO  [watcher] Synced Claude memory file {"path":"/home/nicholai/.claude/projects/-mnt-work-dev-client-work-martine-vogel-compass-compass-schedule/memory/MEMORY.md","projectId":"-mnt-work-dev-client-work-martine-vogel-compass-compass-schedule","chunks":1,"sections":1} +19:45:55 INFO  [watcher] Synced Claude memory chunk {"content":"quickshell port\n===\n\nthe caelestia -> quickshell p","section":"(no section)","level":"paragraph"} +19:45:55 INFO  [watcher] Synced Claude memory chunk {"content":"status (2026-02-08)\n---\n- deployed and running wit","section":"(no section)","level":"paragraph"} +19:45:55 INFO  [watcher] Synced Claude memory file {"path":"/home/nicholai/.claude/projects/-home-nicholai/memory/MEMORY.md","projectId":"-home-nicholai","chunks":2,"sections":0} +19:45:55 INFO  [watcher] Synced Claude memory chunk {"content":"## DB Access Pattern (PR #58 fix)\n\n- `src/lib/db-u","section":"db access pattern (pr #58 fix)","level":"section"} +19:45:55 INFO  [watcher] Synced Claude memory chunk {"content":"## Env Access Pattern\n\n- cloudflare workers: env v","section":"env access pattern","level":"section"} +19:45:55 INFO  [watcher] Synced Claude memory chunk {"content":"## Lessons Learned\n\n- when removing multiline bloc","section":"lessons learned","level":"section"} +19:45:55 INFO  [watcher] Synced Claude memory file {"path":"/home/nicholai/.claude/projects/-mnt-work-dev-client-work-martine-vogel-compass-compass-custom-dashboards/memory/MEMORY.md","projectId":"-mnt-work-dev-client-work-martine-vogel-compass-compass-custom-dashboards","chunks":3,"sections":3} +19:45:55 INFO  [watcher] Synced Claude memory chunk {"content":"## Veo 3.1 First-Last Frame Pipeline\n\n- When gener","section":"veo 3.1 first-last frame pipeline","level":"section"} +19:45:55 INFO  [watcher] Synced Claude memory chunk {"content":"### Nano Banana Pro (Input-Only Moderation)\n\n- Che","section":"nano banana pro (input-only moderation)","level":"section"} +19:45:55 INFO  [watcher] Synced Claude memory chunk {"content":"### Veo 3.1 (Input AND Output Moderation)\n\n- Moder","section":"veo 3.1 (input and output moderation)","level":"section"} +19:45:55 INFO  [watcher] Synced Claude memory chunk {"content":"## API Format Notes (Gemini API, not Vertex AI)\n\n-","section":"api format notes (gemini api, not vertex ai)","level":"section"} +19:45:55 INFO  [watcher] Synced Claude memory chunk {"content":"## Project Location\n\n- Working dir: `/mnt/work/dev","section":"project location","level":"section"} +19:45:55 INFO  [watcher] Synced Claude memory file {"path":"/home/nicholai/.claude/projects/-mnt-work-dev-ai-studio-videos/memory/MEMORY.md","projectId":"-mnt-work-dev-ai-studio-videos","chunks":5,"sections":5} +19:45:55 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-15-pre-compaction-flush.md","chunks":13,"sections":13,"filename":"2026-02-15-pre-compaction-flush"} +19:45:55 INFO  [watcher] Synced Claude memory chunk {"content":"compass project memory\n===\n\nMCP tool architecture ","section":"(no section)","level":"paragraph"} +19:45:55 INFO  [watcher] Synced Claude memory chunk {"content":"netsuite gotchas:\n- 401 can mean timeout, not auth","section":"(no section)","level":"paragraph"} +19:45:55 INFO  [watcher] Synced Claude memory file {"path":"/home/nicholai/.claude/projects/-mnt-work-dev-client-work-martine-vogel-compass-compass/memory/MEMORY.md","projectId":"-mnt-work-dev-client-work-martine-vogel-compass-compass","chunks":2,"sections":0} +19:45:55 INFO  [watcher] Synced Claude memory chunk {"content":"## Tailwind v4 + styled-jsx Gotcha\n\n`hidden lg:fle","section":"tailwind v4 + styled-jsx gotcha","level":"section"} +19:45:55 INFO  [watcher] Synced Claude memory chunk {"content":"## Turbopack Build Bug\n\n`npx next build` crashes w","section":"turbopack build bug","level":"section"} +19:45:55 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-09.md","chunks":4,"sections":4,"filename":"2026-02-09"} +19:45:55 INFO  [watcher] Synced Claude memory chunk {"content":"## Theme: Modern Minimal (oklch)\n\n- Background: pu","section":"theme: modern minimal (oklch)","level":"section"} +19:45:55 INFO  [watcher] Synced Claude memory chunk {"content":"## Design Direction\n\n- Compact, minimal UI inspire","section":"design direction","level":"section"} +19:45:55 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-14.md","chunks":2,"sections":2,"filename":"2026-02-14"} +19:45:55 INFO  [watcher] Synced Claude memory chunk {"content":"## Key Paths\n\n- Theme vars: `app/globals.css`\n- Ap","section":"key paths","level":"section"} +19:45:55 INFO  [watcher] Synced Claude memory file {"path":"/home/nicholai/.claude/projects/-mnt-work-dev-cre-sync/memory/MEMORY.md","projectId":"-mnt-work-dev-cre-sync","chunks":5,"sections":5} +19:45:55 INFO  [watcher] Synced existing Claude memories {"count":24} +19:45:55 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/MODEL-ROUTING.md","chunks":5,"sections":5,"filename":"MODEL-ROUTING"} +19:45:55 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-10-openagents-tracker.md","chunks":8,"sections":8,"filename":"2026-02-10-openagents-tracker"} +19:45:55 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-10-signet.md","chunks":16,"sections":16,"filename":"2026-02-10-signet"} +19:45:55 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-01-20.md","chunks":2,"sections":0,"filename":"2026-01-20"} +19:45:55 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-17.md","chunks":8,"sections":8,"filename":"2026-02-17"} +19:45:55 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-10.md","chunks":12,"sections":12,"filename":"2026-02-10"} +19:45:55 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-16-signet-architecture.md","chunks":6,"sections":6,"filename":"2026-02-16-signet-architecture"} +19:45:55 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/package-preferences.md","chunks":1,"sections":1,"filename":"package-preferences"} +19:45:55 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-01-31.md","chunks":1,"sections":1,"filename":"2026-01-31"} +19:45:55 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-07.md","chunks":8,"sections":8,"filename":"2026-02-07"} +19:45:55 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/VOICE-WORKFLOW.md","chunks":6,"sections":6,"filename":"VOICE-WORKFLOW"} +19:45:55 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-01-27.md","chunks":4,"sections":4,"filename":"2026-01-27"} +19:45:55 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/TOOLS.md","chunks":7,"sections":7,"filename":"TOOLS"} +19:45:55 INFO  [daemon] Imported existing memory files {"files":18,"chunks":107} diff --git a/.daemon/logs/signet-2026-02-21.log b/.daemon/logs/signet-2026-02-21.log index 60229829c..3102c6f45 100644 --- a/.daemon/logs/signet-2026-02-21.log +++ b/.daemon/logs/signet-2026-02-21.log @@ -9476,3 +9476,447 @@ {"timestamp":"2026-02-21T19:00:09.617Z","level":"info","category":"watcher","message":"File changed","data":{"path":"/home/nicholai/.agents/memory/memories.db-wal"}} {"timestamp":"2026-02-21T19:00:14.336Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"e42d5c70-9709-48cd-9921-c6eabba5758f","memoryId":"1450a545-565d-487c-8894-473035c12018","facts":4,"entities":6,"proposals":4,"writeMode":"phase-c","added":0,"deduped":0,"skippedLowConfidence":0,"blockedDestructive":0,"entitiesInserted":6,"entitiesUpdated":6,"relationsInserted":6,"relationsUpdated":0,"mentionsLinked":7}} {"timestamp":"2026-02-21T19:00:14.336Z","level":"info","category":"watcher","message":"File changed","data":{"path":"/home/nicholai/.agents/memory/memories.db-wal"}} +{"timestamp":"2026-02-21T19:00:19.395Z","level":"info","category":"git","message":"Auto-committed","data":{"message":"2026-02-21T19-00-19_auto_memory/memories.db-wal, memory/memories.db-wal","filesChanged":2}} +{"timestamp":"2026-02-21T19:42:04.004Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"claude-code"}} +{"timestamp":"2026-02-21T19:42:04.004Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:42:04.004Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:42:04.004Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:42:04.005Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"claude-code"}} +{"timestamp":"2026-02-21T19:42:04.005Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":1}} +{"timestamp":"2026-02-21T19:42:04.005Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"claude-code"}} +{"timestamp":"2026-02-21T19:42:04.005Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:42:04.010Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"claude-code"}} +{"timestamp":"2026-02-21T19:42:04.010Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":2,"durationMs":0}} +{"timestamp":"2026-02-21T19:42:04.011Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"claude-code"}} +{"timestamp":"2026-02-21T19:42:04.011Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:42:04.011Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"claude-code"}} +{"timestamp":"2026-02-21T19:42:04.011Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:42:04.011Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"claude-code"}} +{"timestamp":"2026-02-21T19:42:04.011Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:42:04.011Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:42:04.011Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:42:04.011Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:42:04.011Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:42:04.016Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:42:04.016Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:42:04.021Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:42:04.021Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":1,"durationMs":0}} +{"timestamp":"2026-02-21T19:42:04.026Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"test","project":"/home/user/myproject"}} +{"timestamp":"2026-02-21T19:42:04.027Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":2,"durationMs":1}} +{"timestamp":"2026-02-21T19:42:04.027Z","level":"info","category":"hooks","message":"Pre-compaction hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:42:04.027Z","level":"info","category":"hooks","message":"Pre-compaction hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:42:04.032Z","level":"info","category":"hooks","message":"Pre-compaction hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:42:04.037Z","level":"info","category":"hooks","message":"Pre-compaction hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:42:04.042Z","level":"info","category":"hooks","message":"User prompt submit","data":{"memoryCount":1,"durationMs":0}} +{"timestamp":"2026-02-21T19:42:04.058Z","level":"info","category":"hooks","message":"User prompt submit","data":{"memoryCount":4,"durationMs":0}} +{"timestamp":"2026-02-21T19:42:04.063Z","level":"info","category":"hooks","message":"Memory saved","data":{"id":"60e2030d-cd49-42f7-9932-366b9bf3886d","type":"preference","pinned":false}} +{"timestamp":"2026-02-21T19:42:04.068Z","level":"info","category":"hooks","message":"Memory saved","data":{"id":"c83feb6e-e332-4b36-9921-55b9df09c1b5","type":"rule","pinned":true}} +{"timestamp":"2026-02-21T19:42:04.073Z","level":"info","category":"hooks","message":"Memory saved","data":{"id":"63c83366-11a0-4805-b843-3dfbf0d39076","type":"fact","pinned":false}} +{"timestamp":"2026-02-21T19:42:04.073Z","level":"error","category":"hooks","message":"Remember failed","error":{"name":"Error","message":"DbAccessor not initialised — call initDbAccessor() first","stack":"Error: DbAccessor not initialised — call initDbAccessor() first\n at getDbAccessor (/home/nicholai/signet/signetai/packages/daemon/src/db-accessor.ts:267:13)\n at handleRemember (/home/nicholai/signet/signetai/packages/daemon/src/hooks.ts:931:20)\n at (/home/nicholai/signet/signetai/packages/daemon/test/hooks.test.ts:733:18)"}} +{"timestamp":"2026-02-21T19:42:09.976Z","level":"warn","category":"hooks","message":"Failed to parse LLM output as JSON"} +{"timestamp":"2026-02-21T19:42:09.983Z","level":"info","category":"hooks","message":"Synthesis request","data":{"trigger":"manual"}} +{"timestamp":"2026-02-21T19:42:09.988Z","level":"info","category":"hooks","message":"Synthesis request","data":{"trigger":"scheduled"}} +{"timestamp":"2026-02-21T19:42:09.988Z","level":"info","category":"hooks","message":"Synthesis request","data":{"trigger":"manual"}} +{"timestamp":"2026-02-21T19:42:09.988Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:42:09.988Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:42:09.988Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:42:09.988Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:42:09.989Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:42:09.989Z","level":"error","category":"hooks","message":"Failed to get project memories","error":{"name":"Error","message":"DbAccessor not initialised — call initDbAccessor() first","stack":"Error: DbAccessor not initialised — call initDbAccessor() first\n at getDbAccessor (/home/nicholai/signet/signetai/packages/daemon/src/db-accessor.ts:267:13)\n at getProjectMemories (/home/nicholai/signet/signetai/packages/daemon/src/hooks.ts:308:16)\n at handleSessionStart (/home/nicholai/signet/signetai/packages/daemon/src/hooks.ts:563:19)\n at (/home/nicholai/signet/signetai/packages/daemon/test/hooks.test.ts:982:18)"}} +{"timestamp":"2026-02-21T19:42:09.989Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:42:09.989Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:42:09.989Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:42:10.008Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:42:10.008Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":1,"durationMs":0}} +{"timestamp":"2026-02-21T19:42:10.013Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:42:10.013Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":2,"durationMs":0}} +{"timestamp":"2026-02-21T19:42:10.221Z","level":"info","category":"pipeline","message":"repair: requeued dead jobs","data":{"affected":2,"actor":"test-operator","reason":"test run"}} +{"timestamp":"2026-02-21T19:42:10.225Z","level":"info","category":"pipeline","message":"repair: requeued dead jobs","data":{"affected":3,"actor":"test-operator","reason":"test run"}} +{"timestamp":"2026-02-21T19:42:10.228Z","level":"info","category":"pipeline","message":"repair: released stale leases","data":{"affected":1,"cutoff":"2026-02-21T19:37:10.228Z","actor":"test-operator","reason":"test run"}} +{"timestamp":"2026-02-21T19:42:10.231Z","level":"info","category":"pipeline","message":"repair: FTS consistency check","data":{"memCount":1,"ftsCount":1,"mismatch":false,"repaired":false,"actor":"test-operator"}} +{"timestamp":"2026-02-21T19:42:10.235Z","level":"info","category":"pipeline","message":"repair: FTS consistency check","data":{"memCount":1,"ftsCount":1,"mismatch":false,"repaired":false,"actor":"test-operator"}} +{"timestamp":"2026-02-21T19:42:10.235Z","level":"info","category":"pipeline","message":"repair: retention sweep triggered","data":{"actor":"test-operator","reason":"test run"}} +{"timestamp":"2026-02-21T19:42:10.306Z","level":"info","category":"daemon","message":"Serving dashboard","data":{"path":"/home/nicholai/signet/signetai/packages/cli/dashboard/build"}} +{"timestamp":"2026-02-21T19:42:10.430Z","level":"warn","category":"pipeline","message":"Failed to parse extraction JSON","data":{"preview":"this is not valid json at all"}} +{"timestamp":"2026-02-21T19:42:10.431Z","level":"warn","category":"pipeline","message":"Extraction LLM call failed","data":{"error":"connection refused"}} +{"timestamp":"2026-02-21T19:42:10.466Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"shadow"}} +{"timestamp":"2026-02-21T19:42:10.478Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"38f0af62-6f78-4aeb-8992-15c3fe3c4b45","memoryId":"mem-proc","facts":1,"entities":1,"proposals":1,"writeMode":"shadow","added":0,"deduped":0,"skippedLowConfidence":0,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:42:10.911Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:10.914Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"shadow"}} +{"timestamp":"2026-02-21T19:42:10.925Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"3d0706fe-8aba-4cd6-8b51-18e723bfb563","memoryId":"mem-hist","facts":1,"entities":1,"proposals":1,"writeMode":"shadow","added":0,"deduped":0,"skippedLowConfidence":0,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:42:11.115Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:11.118Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"shadow"}} +{"timestamp":"2026-02-21T19:42:11.129Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"b6d943a2-3575-4e24-b90d-1c066e6f2540","memoryId":"mem-payload","facts":1,"entities":1,"proposals":1,"writeMode":"shadow","added":0,"deduped":0,"skippedLowConfidence":0,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:42:11.319Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:11.322Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"shadow"}} +{"timestamp":"2026-02-21T19:42:11.523Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:11.528Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"shadow"}} +{"timestamp":"2026-02-21T19:42:11.539Z","level":"warn","category":"pipeline","message":"Extraction LLM call failed","data":{"error":"LLM unavailable"}} +{"timestamp":"2026-02-21T19:42:11.539Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"c04bfb0f-3f36-47e3-aa80-fd287f68c208","memoryId":"mem-llm-err","facts":0,"entities":0,"proposals":0,"writeMode":"shadow","added":0,"deduped":0,"skippedLowConfidence":0,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:42:11.728Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:11.733Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"shadow"}} +{"timestamp":"2026-02-21T19:42:11.783Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"a38f18c7-aa1d-4178-8732-e8ea7dd43027","memoryId":"mem-slow","facts":0,"entities":0,"proposals":0,"writeMode":"shadow","added":0,"deduped":0,"skippedLowConfidence":0,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:42:11.783Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:11.787Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"shadow"}} +{"timestamp":"2026-02-21T19:42:11.787Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:11.790Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"controlled-write"}} +{"timestamp":"2026-02-21T19:42:11.803Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"a8961d91-36a0-4097-95b8-4aab3f0aea17","memoryId":"mem-src-add","facts":1,"entities":1,"proposals":1,"writeMode":"phase-c","added":1,"deduped":0,"skippedLowConfidence":0,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:42:12.041Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:12.045Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"controlled-write"}} +{"timestamp":"2026-02-21T19:42:12.056Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"17e09fcd-0cc0-4afd-b267-af3daebf094e","memoryId":"mem-src-add-no-emb","facts":1,"entities":1,"proposals":1,"writeMode":"phase-c","added":1,"deduped":0,"skippedLowConfidence":0,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:42:12.296Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:12.300Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"controlled-write"}} +{"timestamp":"2026-02-21T19:42:12.310Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"ad700210-4dd9-43b7-b484-56059fe28789","memoryId":"mem-src-dedupe-1","facts":1,"entities":0,"proposals":1,"writeMode":"phase-c","added":1,"deduped":0,"skippedLowConfidence":0,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:42:12.321Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"64d44d67-756f-4cbf-bba8-d388ff030ff9","memoryId":"mem-src-dedupe-2","facts":1,"entities":0,"proposals":1,"writeMode":"phase-c","added":0,"deduped":1,"skippedLowConfidence":0,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:42:12.649Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:12.653Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"controlled-write"}} +{"timestamp":"2026-02-21T19:42:12.664Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"f1c83654-1c24-4b56-ae3d-55dbd82b1217","memoryId":"mem-src-lowconf","facts":1,"entities":0,"proposals":1,"writeMode":"phase-c","added":0,"deduped":0,"skippedLowConfidence":1,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:42:12.903Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:12.907Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"controlled-write"}} +{"timestamp":"2026-02-21T19:42:12.919Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"a3ecb6dd-81c0-49bb-8d0c-a2d68552f23d","memoryId":"mem-src-empty-normalized","facts":1,"entities":0,"proposals":1,"writeMode":"phase-c","added":0,"deduped":0,"skippedLowConfidence":1,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:42:13.157Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:13.162Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"controlled-write"}} +{"timestamp":"2026-02-21T19:42:13.173Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"41e73ee0-621a-433b-ba12-a3752c5889da","memoryId":"mem-src-delete","facts":1,"entities":0,"proposals":1,"writeMode":"phase-c","added":0,"deduped":0,"skippedLowConfidence":0,"blockedDestructive":1,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:42:13.462Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:13.466Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"controlled-write"}} +{"timestamp":"2026-02-21T19:42:13.477Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"23d89f45-11df-4742-ba5a-99660e53bb0e","memoryId":"mem-src-none","facts":1,"entities":0,"proposals":1,"writeMode":"phase-c","added":0,"deduped":0,"skippedLowConfidence":0,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:42:13.766Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:13.770Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"shadow"}} +{"timestamp":"2026-02-21T19:42:13.781Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"eb671467-6a42-45ca-8a4d-7113677d8700","memoryId":"mem-src-frozen","facts":1,"entities":1,"proposals":1,"writeMode":"shadow","added":0,"deduped":0,"skippedLowConfidence":0,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:42:14.020Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:14.025Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":1,"model":"qwen3:4b","mode":"shadow"}} +{"timestamp":"2026-02-21T19:42:14.036Z","level":"warn","category":"pipeline","message":"Job failed","data":{"jobId":"20d6771a-b2dd-417e-ad3c-175ef154cf40","error":"DB write failed","attempt":1}} +{"timestamp":"2026-02-21T19:42:14.324Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:14.328Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"shadow"}} +{"timestamp":"2026-02-21T19:42:14.339Z","level":"warn","category":"pipeline","message":"Job failed","data":{"jobId":"22a357cf-0fcf-438c-bfcb-7dfcedfdf85b","error":"transient failure","attempt":1}} +{"timestamp":"2026-02-21T19:42:14.478Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:14.701Z","level":"info","category":"maintenance","message":"Worker started","data":{"mode":"execute","intervalMs":1800000}} +{"timestamp":"2026-02-21T19:42:14.701Z","level":"info","category":"maintenance","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:14.704Z","level":"info","category":"maintenance","message":"Worker started","data":{"mode":"execute","intervalMs":1800000}} +{"timestamp":"2026-02-21T19:42:14.704Z","level":"info","category":"maintenance","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:14.705Z","level":"info","category":"pipeline","message":"repair: requeued dead jobs","data":{"affected":5,"actor":"maintenance-worker","reason":"autonomous maintenance"}} +{"timestamp":"2026-02-21T19:42:14.705Z","level":"info","category":"maintenance","message":"Cycle complete","data":{"priorScore":"0.92","postScore":"1.00","improved":true,"executed":["requeueDeadJobs"]}} +{"timestamp":"2026-02-21T19:42:14.708Z","level":"info","category":"maintenance","message":"Worker started","data":{"mode":"execute","intervalMs":1800000}} +{"timestamp":"2026-02-21T19:42:14.708Z","level":"info","category":"maintenance","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:14.708Z","level":"info","category":"pipeline","message":"repair: requeued dead jobs","data":{"affected":2,"actor":"maintenance-worker","reason":"autonomous maintenance"}} +{"timestamp":"2026-02-21T19:42:14.708Z","level":"info","category":"maintenance","message":"Cycle complete","data":{"priorScore":"0.92","postScore":"1.00","improved":true,"executed":["requeueDeadJobs"]}} +{"timestamp":"2026-02-21T19:42:14.711Z","level":"info","category":"maintenance","message":"Worker started","data":{"mode":"observe","intervalMs":1800000}} +{"timestamp":"2026-02-21T19:42:14.711Z","level":"info","category":"maintenance","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:14.711Z","level":"info","category":"maintenance","message":"Recommendations (observe-only)","data":{"composite":"0.92","recommendations":["requeueDeadJobs"]}} +{"timestamp":"2026-02-21T19:42:14.715Z","level":"info","category":"maintenance","message":"Worker skipped (disabled or frozen)"} +{"timestamp":"2026-02-21T19:42:14.715Z","level":"info","category":"maintenance","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:14.718Z","level":"info","category":"maintenance","message":"Worker started","data":{"mode":"execute","intervalMs":1800000}} +{"timestamp":"2026-02-21T19:42:14.718Z","level":"info","category":"maintenance","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:14.718Z","level":"info","category":"pipeline","message":"repair: released stale leases","data":{"affected":1,"cutoff":"2026-02-21T19:37:14.718Z","actor":"maintenance-worker","reason":"autonomous maintenance"}} +{"timestamp":"2026-02-21T19:42:14.718Z","level":"info","category":"maintenance","message":"Cycle complete","data":{"priorScore":"0.94","postScore":"0.94","improved":false,"executed":["releaseStaleLeases"]}} +{"timestamp":"2026-02-21T19:42:14.721Z","level":"info","category":"maintenance","message":"Worker started","data":{"mode":"execute","intervalMs":1800000}} +{"timestamp":"2026-02-21T19:42:14.721Z","level":"info","category":"maintenance","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:14.722Z","level":"info","category":"pipeline","message":"repair: FTS consistency check","data":{"memCount":5,"ftsCount":10,"mismatch":true,"repaired":true,"actor":"maintenance-worker"}} +{"timestamp":"2026-02-21T19:42:14.722Z","level":"info","category":"pipeline","message":"repair: retention sweep triggered","data":{"actor":"maintenance-worker","reason":"autonomous maintenance"}} +{"timestamp":"2026-02-21T19:42:14.722Z","level":"info","category":"maintenance","message":"Cycle complete","data":{"priorScore":"0.81","postScore":"0.81","improved":false,"executed":["checkFtsConsistency","triggerRetentionSweep"]}} +{"timestamp":"2026-02-21T19:42:14.727Z","level":"info","category":"retention","message":"Worker started","data":{"intervalMs":999999,"tombstoneDays":30,"historyDays":180}} +{"timestamp":"2026-02-21T19:42:14.728Z","level":"info","category":"retention","message":"Sweep completed","data":{"graphLinksPurged":0,"entitiesOrphaned":0,"embeddingsPurged":0,"tombstonesPurged":1,"historyPurged":0,"completedJobsPurged":0,"deadJobsPurged":0}} +{"timestamp":"2026-02-21T19:42:14.728Z","level":"info","category":"retention","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:14.731Z","level":"info","category":"retention","message":"Worker started","data":{"intervalMs":999999,"tombstoneDays":30,"historyDays":180}} +{"timestamp":"2026-02-21T19:42:14.731Z","level":"info","category":"retention","message":"Sweep completed","data":{"graphLinksPurged":0,"entitiesOrphaned":0,"embeddingsPurged":0,"tombstonesPurged":0,"historyPurged":1,"completedJobsPurged":0,"deadJobsPurged":0}} +{"timestamp":"2026-02-21T19:42:14.731Z","level":"info","category":"retention","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:14.735Z","level":"info","category":"retention","message":"Worker started","data":{"intervalMs":999999,"tombstoneDays":30,"historyDays":180}} +{"timestamp":"2026-02-21T19:42:14.735Z","level":"info","category":"retention","message":"Sweep completed","data":{"graphLinksPurged":0,"entitiesOrphaned":0,"embeddingsPurged":0,"tombstonesPurged":0,"historyPurged":0,"completedJobsPurged":1,"deadJobsPurged":1}} +{"timestamp":"2026-02-21T19:42:14.735Z","level":"info","category":"retention","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:14.738Z","level":"info","category":"retention","message":"Worker started","data":{"intervalMs":999999,"tombstoneDays":30,"historyDays":180}} +{"timestamp":"2026-02-21T19:42:14.738Z","level":"info","category":"retention","message":"Sweep completed","data":{"graphLinksPurged":1,"entitiesOrphaned":1,"embeddingsPurged":0,"tombstonesPurged":1,"historyPurged":0,"completedJobsPurged":0,"deadJobsPurged":0}} +{"timestamp":"2026-02-21T19:42:14.738Z","level":"info","category":"retention","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:14.743Z","level":"info","category":"retention","message":"Worker started","data":{"intervalMs":999999,"tombstoneDays":30,"historyDays":180}} +{"timestamp":"2026-02-21T19:42:14.743Z","level":"info","category":"retention","message":"Sweep completed","data":{"graphLinksPurged":2,"entitiesOrphaned":1,"embeddingsPurged":0,"tombstonesPurged":1,"historyPurged":0,"completedJobsPurged":0,"deadJobsPurged":0}} +{"timestamp":"2026-02-21T19:42:14.743Z","level":"info","category":"retention","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:42:14.747Z","level":"info","category":"retention","message":"Worker started","data":{"intervalMs":999999,"tombstoneDays":30,"historyDays":180}} +{"timestamp":"2026-02-21T19:42:14.747Z","level":"info","category":"retention","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:25.200Z","level":"info","category":"daemon","message":"Serving dashboard","data":{"path":"/home/nicholai/node_modules/signetai/dashboard"}} +{"timestamp":"2026-02-21T19:43:25.200Z","level":"info","category":"daemon","message":"Signet Daemon starting"} +{"timestamp":"2026-02-21T19:43:25.200Z","level":"info","category":"daemon","message":"Agents directory","data":{"path":"/home/nicholai/.agents"}} +{"timestamp":"2026-02-21T19:43:25.200Z","level":"info","category":"daemon","message":"Port configured","data":{"port":3850}} +{"timestamp":"2026-02-21T19:43:25.203Z","level":"info","category":"daemon","message":"Process ID","data":{"pid":3390902}} +{"timestamp":"2026-02-21T19:43:25.204Z","level":"info","category":"watcher","message":"File watcher started"} +{"timestamp":"2026-02-21T19:43:25.204Z","level":"info","category":"auth","message":"Running in local mode (no auth)"} +{"timestamp":"2026-02-21T19:43:25.204Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":2000,"maxRetries":3,"model":"haiku","mode":"controlled-write"}} +{"timestamp":"2026-02-21T19:43:25.204Z","level":"info","category":"retention","message":"Worker started","data":{"intervalMs":21600000,"tombstoneDays":30,"historyDays":180}} +{"timestamp":"2026-02-21T19:43:25.204Z","level":"info","category":"maintenance","message":"Worker skipped (disabled or frozen)"} +{"timestamp":"2026-02-21T19:43:25.204Z","level":"info","category":"document-worker","message":"Worker started","data":{"intervalMs":10000,"chunkSize":2000}} +{"timestamp":"2026-02-21T19:43:25.204Z","level":"info","category":"pipeline","message":"Pipeline started","data":{"mode":"controlled-write"}} +{"timestamp":"2026-02-21T19:43:25.204Z","level":"info","category":"git","message":"Auto-sync enabled: every 300s"} +{"timestamp":"2026-02-21T19:43:25.289Z","level":"info","category":"daemon","message":"Server listening","data":{"address":"::1","port":3850}} +{"timestamp":"2026-02-21T19:43:25.290Z","level":"info","category":"daemon","message":"Daemon ready"} +{"timestamp":"2026-02-21T19:43:25.307Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"compass project\n===\n\narchitecture\n---\n\n- compass r","section":"(no section)","level":"section"}} +{"timestamp":"2026-02-21T19:43:25.307Z","level":"info","category":"watcher","message":"Synced Claude memory file","data":{"path":"/home/nicholai/.claude/projects/-mnt-work-dev-client-work-martine-vogel-compass/memory/MEMORY.md","projectId":"-mnt-work-dev-client-work-martine-vogel-compass","chunks":1,"sections":1}} +{"timestamp":"2026-02-21T19:43:25.310Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Depth Anything v3 Nuke Plugin\n\n- repo: /mnt/wor","section":"depth anything v3 nuke plugin","level":"section"}} +{"timestamp":"2026-02-21T19:43:25.311Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-01-26.md","chunks":2,"sections":2,"filename":"2026-01-26"}} +{"timestamp":"2026-02-21T19:43:25.312Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Nuke .cat File Format (critical)\n\n- .cat files ","section":"nuke .cat file format (critical)","level":"section"}} +{"timestamp":"2026-02-21T19:43:25.314Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## TorchScript Lessons (hard-won)\n\n- nn.ModuleList","section":"torchscript lessons (hard-won)","level":"section"}} +{"timestamp":"2026-02-21T19:43:25.314Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-01-24.md","chunks":2,"sections":2,"filename":"2026-01-24"}} +{"timestamp":"2026-02-21T19:43:25.315Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Model Performance Notes\n\n- kimi-k2.5: 2/10 on n","section":"model performance notes","level":"section"}} +{"timestamp":"2026-02-21T19:43:25.317Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Skill\n\n- materia-nuke-node skill at ~/.agents/s","section":"skill","level":"section"}} +{"timestamp":"2026-02-21T19:43:25.317Z","level":"info","category":"watcher","message":"Synced Claude memory file","data":{"path":"/home/nicholai/.claude/projects/-mnt-work-dev-materia/memory/MEMORY.md","projectId":"-mnt-work-dev-materia","chunks":5,"sections":5}} +{"timestamp":"2026-02-21T19:43:25.319Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"compass schedule project\n===\n\nkey patterns\n---\n\n- ","section":"(no section)","level":"section"}} +{"timestamp":"2026-02-21T19:43:25.319Z","level":"info","category":"watcher","message":"Synced Claude memory file","data":{"path":"/home/nicholai/.claude/projects/-mnt-work-dev-client-work-martine-vogel-compass-compass-schedule/memory/MEMORY.md","projectId":"-mnt-work-dev-client-work-martine-vogel-compass-compass-schedule","chunks":1,"sections":1}} +{"timestamp":"2026-02-21T19:43:25.321Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"quickshell port\n===\n\nthe caelestia -> quickshell p","section":"(no section)","level":"paragraph"}} +{"timestamp":"2026-02-21T19:43:25.322Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"status (2026-02-08)\n---\n- deployed and running wit","section":"(no section)","level":"paragraph"}} +{"timestamp":"2026-02-21T19:43:25.322Z","level":"info","category":"watcher","message":"Synced Claude memory file","data":{"path":"/home/nicholai/.claude/projects/-home-nicholai/memory/MEMORY.md","projectId":"-home-nicholai","chunks":2,"sections":0}} +{"timestamp":"2026-02-21T19:43:25.324Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## DB Access Pattern (PR #58 fix)\n\n- `src/lib/db-u","section":"db access pattern (pr #58 fix)","level":"section"}} +{"timestamp":"2026-02-21T19:43:25.326Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Env Access Pattern\n\n- cloudflare workers: env v","section":"env access pattern","level":"section"}} +{"timestamp":"2026-02-21T19:43:25.327Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Lessons Learned\n\n- when removing multiline bloc","section":"lessons learned","level":"section"}} +{"timestamp":"2026-02-21T19:43:25.328Z","level":"info","category":"watcher","message":"Synced Claude memory file","data":{"path":"/home/nicholai/.claude/projects/-mnt-work-dev-client-work-martine-vogel-compass-compass-custom-dashboards/memory/MEMORY.md","projectId":"-mnt-work-dev-client-work-martine-vogel-compass-compass-custom-dashboards","chunks":3,"sections":3}} +{"timestamp":"2026-02-21T19:43:25.329Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Veo 3.1 First-Last Frame Pipeline\n\n- When gener","section":"veo 3.1 first-last frame pipeline","level":"section"}} +{"timestamp":"2026-02-21T19:43:25.330Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"### Nano Banana Pro (Input-Only Moderation)\n\n- Che","section":"nano banana pro (input-only moderation)","level":"section"}} +{"timestamp":"2026-02-21T19:43:25.331Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"### Veo 3.1 (Input AND Output Moderation)\n\n- Moder","section":"veo 3.1 (input and output moderation)","level":"section"}} +{"timestamp":"2026-02-21T19:43:25.333Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## API Format Notes (Gemini API, not Vertex AI)\n\n-","section":"api format notes (gemini api, not vertex ai)","level":"section"}} +{"timestamp":"2026-02-21T19:43:25.334Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Project Location\n\n- Working dir: `/mnt/work/dev","section":"project location","level":"section"}} +{"timestamp":"2026-02-21T19:43:25.334Z","level":"info","category":"watcher","message":"Synced Claude memory file","data":{"path":"/home/nicholai/.claude/projects/-mnt-work-dev-ai-studio-videos/memory/MEMORY.md","projectId":"-mnt-work-dev-ai-studio-videos","chunks":5,"sections":5}} +{"timestamp":"2026-02-21T19:43:25.335Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-15-pre-compaction-flush.md","chunks":13,"sections":13,"filename":"2026-02-15-pre-compaction-flush"}} +{"timestamp":"2026-02-21T19:43:25.336Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"compass project memory\n===\n\nMCP tool architecture ","section":"(no section)","level":"paragraph"}} +{"timestamp":"2026-02-21T19:43:25.338Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"netsuite gotchas:\n- 401 can mean timeout, not auth","section":"(no section)","level":"paragraph"}} +{"timestamp":"2026-02-21T19:43:25.338Z","level":"info","category":"watcher","message":"Synced Claude memory file","data":{"path":"/home/nicholai/.claude/projects/-mnt-work-dev-client-work-martine-vogel-compass-compass/memory/MEMORY.md","projectId":"-mnt-work-dev-client-work-martine-vogel-compass-compass","chunks":2,"sections":0}} +{"timestamp":"2026-02-21T19:43:25.339Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Tailwind v4 + styled-jsx Gotcha\n\n`hidden lg:fle","section":"tailwind v4 + styled-jsx gotcha","level":"section"}} +{"timestamp":"2026-02-21T19:43:25.340Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Turbopack Build Bug\n\n`npx next build` crashes w","section":"turbopack build bug","level":"section"}} +{"timestamp":"2026-02-21T19:43:25.340Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-09.md","chunks":4,"sections":4,"filename":"2026-02-09"}} +{"timestamp":"2026-02-21T19:43:25.341Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Theme: Modern Minimal (oklch)\n\n- Background: pu","section":"theme: modern minimal (oklch)","level":"section"}} +{"timestamp":"2026-02-21T19:43:25.343Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Design Direction\n\n- Compact, minimal UI inspire","section":"design direction","level":"section"}} +{"timestamp":"2026-02-21T19:43:25.343Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-14.md","chunks":2,"sections":2,"filename":"2026-02-14"}} +{"timestamp":"2026-02-21T19:43:25.344Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Key Paths\n\n- Theme vars: `app/globals.css`\n- Ap","section":"key paths","level":"section"}} +{"timestamp":"2026-02-21T19:43:25.344Z","level":"info","category":"watcher","message":"Synced Claude memory file","data":{"path":"/home/nicholai/.claude/projects/-mnt-work-dev-cre-sync/memory/MEMORY.md","projectId":"-mnt-work-dev-cre-sync","chunks":5,"sections":5}} +{"timestamp":"2026-02-21T19:43:25.344Z","level":"info","category":"watcher","message":"Synced existing Claude memories","data":{"count":24}} +{"timestamp":"2026-02-21T19:43:25.347Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/MODEL-ROUTING.md","chunks":5,"sections":5,"filename":"MODEL-ROUTING"}} +{"timestamp":"2026-02-21T19:43:25.351Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-10-openagents-tracker.md","chunks":8,"sections":8,"filename":"2026-02-10-openagents-tracker"}} +{"timestamp":"2026-02-21T19:43:25.361Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-10-signet.md","chunks":16,"sections":16,"filename":"2026-02-10-signet"}} +{"timestamp":"2026-02-21T19:43:25.362Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-01-20.md","chunks":2,"sections":0,"filename":"2026-01-20"}} +{"timestamp":"2026-02-21T19:43:25.366Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-17.md","chunks":8,"sections":8,"filename":"2026-02-17"}} +{"timestamp":"2026-02-21T19:43:25.373Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-10.md","chunks":12,"sections":12,"filename":"2026-02-10"}} +{"timestamp":"2026-02-21T19:43:25.378Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-16-signet-architecture.md","chunks":6,"sections":6,"filename":"2026-02-16-signet-architecture"}} +{"timestamp":"2026-02-21T19:43:25.379Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/package-preferences.md","chunks":1,"sections":1,"filename":"package-preferences"}} +{"timestamp":"2026-02-21T19:43:25.379Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-01-31.md","chunks":1,"sections":1,"filename":"2026-01-31"}} +{"timestamp":"2026-02-21T19:43:25.383Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-07.md","chunks":8,"sections":8,"filename":"2026-02-07"}} +{"timestamp":"2026-02-21T19:43:25.386Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/VOICE-WORKFLOW.md","chunks":6,"sections":6,"filename":"VOICE-WORKFLOW"}} +{"timestamp":"2026-02-21T19:43:25.388Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-01-27.md","chunks":4,"sections":4,"filename":"2026-01-27"}} +{"timestamp":"2026-02-21T19:43:25.393Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/TOOLS.md","chunks":7,"sections":7,"filename":"TOOLS"}} +{"timestamp":"2026-02-21T19:43:25.393Z","level":"info","category":"daemon","message":"Imported existing memory files","data":{"files":18,"chunks":107}} +{"timestamp":"2026-02-21T19:43:40.744Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"claude-code"}} +{"timestamp":"2026-02-21T19:43:40.744Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:43:40.744Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:43:40.744Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:43:40.744Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"claude-code"}} +{"timestamp":"2026-02-21T19:43:40.744Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:43:40.745Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"claude-code"}} +{"timestamp":"2026-02-21T19:43:40.745Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:43:40.749Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"claude-code"}} +{"timestamp":"2026-02-21T19:43:40.750Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":2,"durationMs":1}} +{"timestamp":"2026-02-21T19:43:40.750Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"claude-code"}} +{"timestamp":"2026-02-21T19:43:40.750Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:43:40.750Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"claude-code"}} +{"timestamp":"2026-02-21T19:43:40.750Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:43:40.750Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"claude-code"}} +{"timestamp":"2026-02-21T19:43:40.750Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:43:40.751Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:43:40.751Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:43:40.751Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:43:40.751Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:43:40.756Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:43:40.756Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:43:40.761Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:43:40.761Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":1,"durationMs":0}} +{"timestamp":"2026-02-21T19:43:40.766Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"test","project":"/home/user/myproject"}} +{"timestamp":"2026-02-21T19:43:40.767Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":2,"durationMs":1}} +{"timestamp":"2026-02-21T19:43:40.767Z","level":"info","category":"hooks","message":"Pre-compaction hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:43:40.767Z","level":"info","category":"hooks","message":"Pre-compaction hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:43:40.772Z","level":"info","category":"hooks","message":"Pre-compaction hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:43:40.778Z","level":"info","category":"hooks","message":"Pre-compaction hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:43:40.783Z","level":"info","category":"hooks","message":"User prompt submit","data":{"memoryCount":1,"durationMs":0}} +{"timestamp":"2026-02-21T19:43:40.801Z","level":"info","category":"hooks","message":"User prompt submit","data":{"memoryCount":4,"durationMs":0}} +{"timestamp":"2026-02-21T19:43:40.806Z","level":"info","category":"hooks","message":"Memory saved","data":{"id":"61528bb9-e529-42cb-ae94-4e9570e6b788","type":"preference","pinned":false}} +{"timestamp":"2026-02-21T19:43:40.812Z","level":"info","category":"hooks","message":"Memory saved","data":{"id":"11cb26a2-d624-4288-ab96-fe6b94bfea54","type":"rule","pinned":true}} +{"timestamp":"2026-02-21T19:43:40.817Z","level":"info","category":"hooks","message":"Memory saved","data":{"id":"69b93871-faed-4235-b872-b507ba486820","type":"fact","pinned":false}} +{"timestamp":"2026-02-21T19:43:40.817Z","level":"error","category":"hooks","message":"Remember failed","error":{"name":"Error","message":"DbAccessor not initialised — call initDbAccessor() first","stack":"Error: DbAccessor not initialised — call initDbAccessor() first\n at getDbAccessor (/home/nicholai/signet/signetai/packages/daemon/src/db-accessor.ts:267:13)\n at handleRemember (/home/nicholai/signet/signetai/packages/daemon/src/hooks.ts:931:20)\n at (/home/nicholai/signet/signetai/packages/daemon/test/hooks.test.ts:733:18)"}} +{"timestamp":"2026-02-21T19:43:50.327Z","level":"warn","category":"hooks","message":"Failed to parse LLM output as JSON"} +{"timestamp":"2026-02-21T19:43:50.333Z","level":"info","category":"hooks","message":"Synthesis request","data":{"trigger":"manual"}} +{"timestamp":"2026-02-21T19:43:50.338Z","level":"info","category":"hooks","message":"Synthesis request","data":{"trigger":"scheduled"}} +{"timestamp":"2026-02-21T19:43:50.338Z","level":"info","category":"hooks","message":"Synthesis request","data":{"trigger":"manual"}} +{"timestamp":"2026-02-21T19:43:50.338Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:43:50.338Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:43:50.338Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:43:50.338Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:43:50.338Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:43:50.338Z","level":"error","category":"hooks","message":"Failed to get project memories","error":{"name":"Error","message":"DbAccessor not initialised — call initDbAccessor() first","stack":"Error: DbAccessor not initialised — call initDbAccessor() first\n at getDbAccessor (/home/nicholai/signet/signetai/packages/daemon/src/db-accessor.ts:267:13)\n at getProjectMemories (/home/nicholai/signet/signetai/packages/daemon/src/hooks.ts:308:16)\n at handleSessionStart (/home/nicholai/signet/signetai/packages/daemon/src/hooks.ts:563:19)\n at (/home/nicholai/signet/signetai/packages/daemon/test/hooks.test.ts:982:18)"}} +{"timestamp":"2026-02-21T19:43:50.338Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:43:50.338Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:43:50.338Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":0,"durationMs":0}} +{"timestamp":"2026-02-21T19:43:50.358Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:43:50.358Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":1,"durationMs":0}} +{"timestamp":"2026-02-21T19:43:50.363Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"test"}} +{"timestamp":"2026-02-21T19:43:50.363Z","level":"info","category":"hooks","message":"Session start completed","data":{"memoryCount":2,"durationMs":0}} +{"timestamp":"2026-02-21T19:43:50.573Z","level":"info","category":"pipeline","message":"repair: requeued dead jobs","data":{"affected":2,"actor":"test-operator","reason":"test run"}} +{"timestamp":"2026-02-21T19:43:50.576Z","level":"info","category":"pipeline","message":"repair: requeued dead jobs","data":{"affected":3,"actor":"test-operator","reason":"test run"}} +{"timestamp":"2026-02-21T19:43:50.580Z","level":"info","category":"pipeline","message":"repair: released stale leases","data":{"affected":1,"cutoff":"2026-02-21T19:38:50.580Z","actor":"test-operator","reason":"test run"}} +{"timestamp":"2026-02-21T19:43:50.583Z","level":"info","category":"pipeline","message":"repair: FTS consistency check","data":{"memCount":1,"ftsCount":1,"mismatch":false,"repaired":false,"actor":"test-operator"}} +{"timestamp":"2026-02-21T19:43:50.586Z","level":"info","category":"pipeline","message":"repair: FTS consistency check","data":{"memCount":1,"ftsCount":1,"mismatch":false,"repaired":false,"actor":"test-operator"}} +{"timestamp":"2026-02-21T19:43:50.586Z","level":"info","category":"pipeline","message":"repair: retention sweep triggered","data":{"actor":"test-operator","reason":"test run"}} +{"timestamp":"2026-02-21T19:43:50.654Z","level":"info","category":"daemon","message":"Serving dashboard","data":{"path":"/home/nicholai/signet/signetai/packages/cli/dashboard/build"}} +{"timestamp":"2026-02-21T19:43:50.780Z","level":"warn","category":"pipeline","message":"Failed to parse extraction JSON","data":{"preview":"this is not valid json at all"}} +{"timestamp":"2026-02-21T19:43:50.781Z","level":"warn","category":"pipeline","message":"Extraction LLM call failed","data":{"error":"connection refused"}} +{"timestamp":"2026-02-21T19:43:50.816Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"shadow"}} +{"timestamp":"2026-02-21T19:43:50.828Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"ad28b166-a338-49c1-a2da-863b50552cfc","memoryId":"mem-proc","facts":1,"entities":1,"proposals":1,"writeMode":"shadow","added":0,"deduped":0,"skippedLowConfidence":0,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:43:51.017Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:51.022Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"shadow"}} +{"timestamp":"2026-02-21T19:43:51.032Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"b79bcaab-718e-4e5f-8251-9bcc3bedb833","memoryId":"mem-hist","facts":1,"entities":1,"proposals":1,"writeMode":"shadow","added":0,"deduped":0,"skippedLowConfidence":0,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:43:51.221Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:51.225Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"shadow"}} +{"timestamp":"2026-02-21T19:43:51.236Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"ec0fcd64-eeb6-4342-9df0-12ae91c23851","memoryId":"mem-payload","facts":1,"entities":1,"proposals":1,"writeMode":"shadow","added":0,"deduped":0,"skippedLowConfidence":0,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:43:51.425Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:51.429Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"shadow"}} +{"timestamp":"2026-02-21T19:43:51.630Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:51.633Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"shadow"}} +{"timestamp":"2026-02-21T19:43:51.644Z","level":"warn","category":"pipeline","message":"Extraction LLM call failed","data":{"error":"LLM unavailable"}} +{"timestamp":"2026-02-21T19:43:51.644Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"ee735770-aa5f-4494-b93a-48701df9aab9","memoryId":"mem-llm-err","facts":0,"entities":0,"proposals":0,"writeMode":"shadow","added":0,"deduped":0,"skippedLowConfidence":0,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:43:51.833Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:51.837Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"shadow"}} +{"timestamp":"2026-02-21T19:43:51.886Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"7a98a08a-bef4-4094-a447-91771eec8047","memoryId":"mem-slow","facts":0,"entities":0,"proposals":0,"writeMode":"shadow","added":0,"deduped":0,"skippedLowConfidence":0,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:43:51.886Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:51.889Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"shadow"}} +{"timestamp":"2026-02-21T19:43:51.889Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:51.893Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"controlled-write"}} +{"timestamp":"2026-02-21T19:43:51.905Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"162f01a4-6a60-49c5-a006-8642a6f6684f","memoryId":"mem-src-add","facts":1,"entities":1,"proposals":1,"writeMode":"phase-c","added":1,"deduped":0,"skippedLowConfidence":0,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:43:52.143Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:52.147Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"controlled-write"}} +{"timestamp":"2026-02-21T19:43:52.157Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"0dbb84c1-61a5-4128-a6c0-2452cf7051c9","memoryId":"mem-src-add-no-emb","facts":1,"entities":1,"proposals":1,"writeMode":"phase-c","added":1,"deduped":0,"skippedLowConfidence":0,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:43:52.397Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:52.401Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"controlled-write"}} +{"timestamp":"2026-02-21T19:43:52.412Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"64496575-43b7-4278-9daf-ef4618d51e64","memoryId":"mem-src-dedupe-1","facts":1,"entities":0,"proposals":1,"writeMode":"phase-c","added":1,"deduped":0,"skippedLowConfidence":0,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:43:52.422Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"5414a665-6b2c-4349-a409-5a47a1d91d67","memoryId":"mem-src-dedupe-2","facts":1,"entities":0,"proposals":1,"writeMode":"phase-c","added":0,"deduped":1,"skippedLowConfidence":0,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:43:52.751Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:52.755Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"controlled-write"}} +{"timestamp":"2026-02-21T19:43:52.765Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"87bce7b4-343c-4ebc-b8c3-7a391927c632","memoryId":"mem-src-lowconf","facts":1,"entities":0,"proposals":1,"writeMode":"phase-c","added":0,"deduped":0,"skippedLowConfidence":1,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:43:53.006Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:53.010Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"controlled-write"}} +{"timestamp":"2026-02-21T19:43:53.021Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"bf20f825-b869-4efd-9ff5-553c1df26dac","memoryId":"mem-src-empty-normalized","facts":1,"entities":0,"proposals":1,"writeMode":"phase-c","added":0,"deduped":0,"skippedLowConfidence":1,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:43:53.260Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:53.264Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"controlled-write"}} +{"timestamp":"2026-02-21T19:43:53.275Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"4eca7874-4a6b-464a-8607-e53c2da707ac","memoryId":"mem-src-delete","facts":1,"entities":0,"proposals":1,"writeMode":"phase-c","added":0,"deduped":0,"skippedLowConfidence":0,"blockedDestructive":1,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:43:53.564Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:53.568Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"controlled-write"}} +{"timestamp":"2026-02-21T19:43:53.578Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"dc7a538e-ccf1-4cdf-b6fa-c2a83ae78676","memoryId":"mem-src-none","facts":1,"entities":0,"proposals":1,"writeMode":"phase-c","added":0,"deduped":0,"skippedLowConfidence":0,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:43:53.868Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:53.872Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"shadow"}} +{"timestamp":"2026-02-21T19:43:53.883Z","level":"info","category":"pipeline","message":"Extraction job completed","data":{"jobId":"77ab05e2-7994-4dcd-91fc-dde692d4cc3b","memoryId":"mem-src-frozen","facts":1,"entities":1,"proposals":1,"writeMode":"shadow","added":0,"deduped":0,"skippedLowConfidence":0,"blockedDestructive":0,"entitiesInserted":0,"entitiesUpdated":0,"relationsInserted":0,"relationsUpdated":0,"mentionsLinked":0}} +{"timestamp":"2026-02-21T19:43:54.122Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:54.126Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":1,"model":"qwen3:4b","mode":"shadow"}} +{"timestamp":"2026-02-21T19:43:54.137Z","level":"warn","category":"pipeline","message":"Job failed","data":{"jobId":"f66a885b-6a32-4316-ab3c-37493ce039d3","error":"DB write failed","attempt":1}} +{"timestamp":"2026-02-21T19:43:54.427Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:54.431Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":10,"maxRetries":3,"model":"qwen3:4b","mode":"shadow"}} +{"timestamp":"2026-02-21T19:43:54.441Z","level":"warn","category":"pipeline","message":"Job failed","data":{"jobId":"63525fcd-e815-4c2c-af1a-7d5227ef678e","error":"transient failure","attempt":1}} +{"timestamp":"2026-02-21T19:43:54.581Z","level":"info","category":"pipeline","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:54.813Z","level":"info","category":"maintenance","message":"Worker started","data":{"mode":"execute","intervalMs":1800000}} +{"timestamp":"2026-02-21T19:43:54.813Z","level":"info","category":"maintenance","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:54.817Z","level":"info","category":"maintenance","message":"Worker started","data":{"mode":"execute","intervalMs":1800000}} +{"timestamp":"2026-02-21T19:43:54.817Z","level":"info","category":"maintenance","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:54.817Z","level":"info","category":"pipeline","message":"repair: requeued dead jobs","data":{"affected":5,"actor":"maintenance-worker","reason":"autonomous maintenance"}} +{"timestamp":"2026-02-21T19:43:54.817Z","level":"info","category":"maintenance","message":"Cycle complete","data":{"priorScore":"0.92","postScore":"1.00","improved":true,"executed":["requeueDeadJobs"]}} +{"timestamp":"2026-02-21T19:43:54.820Z","level":"info","category":"maintenance","message":"Worker started","data":{"mode":"execute","intervalMs":1800000}} +{"timestamp":"2026-02-21T19:43:54.821Z","level":"info","category":"maintenance","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:54.821Z","level":"info","category":"pipeline","message":"repair: requeued dead jobs","data":{"affected":2,"actor":"maintenance-worker","reason":"autonomous maintenance"}} +{"timestamp":"2026-02-21T19:43:54.821Z","level":"info","category":"maintenance","message":"Cycle complete","data":{"priorScore":"0.92","postScore":"1.00","improved":true,"executed":["requeueDeadJobs"]}} +{"timestamp":"2026-02-21T19:43:54.824Z","level":"info","category":"maintenance","message":"Worker started","data":{"mode":"observe","intervalMs":1800000}} +{"timestamp":"2026-02-21T19:43:54.824Z","level":"info","category":"maintenance","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:54.824Z","level":"info","category":"maintenance","message":"Recommendations (observe-only)","data":{"composite":"0.92","recommendations":["requeueDeadJobs"]}} +{"timestamp":"2026-02-21T19:43:54.827Z","level":"info","category":"maintenance","message":"Worker skipped (disabled or frozen)"} +{"timestamp":"2026-02-21T19:43:54.827Z","level":"info","category":"maintenance","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:54.831Z","level":"info","category":"maintenance","message":"Worker started","data":{"mode":"execute","intervalMs":1800000}} +{"timestamp":"2026-02-21T19:43:54.831Z","level":"info","category":"maintenance","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:54.831Z","level":"info","category":"pipeline","message":"repair: released stale leases","data":{"affected":1,"cutoff":"2026-02-21T19:38:54.831Z","actor":"maintenance-worker","reason":"autonomous maintenance"}} +{"timestamp":"2026-02-21T19:43:54.831Z","level":"info","category":"maintenance","message":"Cycle complete","data":{"priorScore":"0.94","postScore":"0.94","improved":false,"executed":["releaseStaleLeases"]}} +{"timestamp":"2026-02-21T19:43:54.834Z","level":"info","category":"maintenance","message":"Worker started","data":{"mode":"execute","intervalMs":1800000}} +{"timestamp":"2026-02-21T19:43:54.834Z","level":"info","category":"maintenance","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:54.834Z","level":"info","category":"pipeline","message":"repair: FTS consistency check","data":{"memCount":5,"ftsCount":10,"mismatch":true,"repaired":true,"actor":"maintenance-worker"}} +{"timestamp":"2026-02-21T19:43:54.834Z","level":"info","category":"pipeline","message":"repair: retention sweep triggered","data":{"actor":"maintenance-worker","reason":"autonomous maintenance"}} +{"timestamp":"2026-02-21T19:43:54.835Z","level":"info","category":"maintenance","message":"Cycle complete","data":{"priorScore":"0.81","postScore":"0.81","improved":false,"executed":["checkFtsConsistency","triggerRetentionSweep"]}} +{"timestamp":"2026-02-21T19:43:54.840Z","level":"info","category":"retention","message":"Worker started","data":{"intervalMs":999999,"tombstoneDays":30,"historyDays":180}} +{"timestamp":"2026-02-21T19:43:54.840Z","level":"info","category":"retention","message":"Sweep completed","data":{"graphLinksPurged":0,"entitiesOrphaned":0,"embeddingsPurged":0,"tombstonesPurged":1,"historyPurged":0,"completedJobsPurged":0,"deadJobsPurged":0}} +{"timestamp":"2026-02-21T19:43:54.841Z","level":"info","category":"retention","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:54.844Z","level":"info","category":"retention","message":"Worker started","data":{"intervalMs":999999,"tombstoneDays":30,"historyDays":180}} +{"timestamp":"2026-02-21T19:43:54.844Z","level":"info","category":"retention","message":"Sweep completed","data":{"graphLinksPurged":0,"entitiesOrphaned":0,"embeddingsPurged":0,"tombstonesPurged":0,"historyPurged":1,"completedJobsPurged":0,"deadJobsPurged":0}} +{"timestamp":"2026-02-21T19:43:54.844Z","level":"info","category":"retention","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:54.847Z","level":"info","category":"retention","message":"Worker started","data":{"intervalMs":999999,"tombstoneDays":30,"historyDays":180}} +{"timestamp":"2026-02-21T19:43:54.847Z","level":"info","category":"retention","message":"Sweep completed","data":{"graphLinksPurged":0,"entitiesOrphaned":0,"embeddingsPurged":0,"tombstonesPurged":0,"historyPurged":0,"completedJobsPurged":1,"deadJobsPurged":1}} +{"timestamp":"2026-02-21T19:43:54.847Z","level":"info","category":"retention","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:54.850Z","level":"info","category":"retention","message":"Worker started","data":{"intervalMs":999999,"tombstoneDays":30,"historyDays":180}} +{"timestamp":"2026-02-21T19:43:54.851Z","level":"info","category":"retention","message":"Sweep completed","data":{"graphLinksPurged":1,"entitiesOrphaned":1,"embeddingsPurged":0,"tombstonesPurged":1,"historyPurged":0,"completedJobsPurged":0,"deadJobsPurged":0}} +{"timestamp":"2026-02-21T19:43:54.851Z","level":"info","category":"retention","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:54.854Z","level":"info","category":"retention","message":"Worker started","data":{"intervalMs":999999,"tombstoneDays":30,"historyDays":180}} +{"timestamp":"2026-02-21T19:43:54.854Z","level":"info","category":"retention","message":"Sweep completed","data":{"graphLinksPurged":2,"entitiesOrphaned":1,"embeddingsPurged":0,"tombstonesPurged":1,"historyPurged":0,"completedJobsPurged":0,"deadJobsPurged":0}} +{"timestamp":"2026-02-21T19:43:54.854Z","level":"info","category":"retention","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:43:54.857Z","level":"info","category":"retention","message":"Worker started","data":{"intervalMs":999999,"tombstoneDays":30,"historyDays":180}} +{"timestamp":"2026-02-21T19:43:54.857Z","level":"info","category":"retention","message":"Worker stopped"} +{"timestamp":"2026-02-21T19:45:55.182Z","level":"info","category":"daemon","message":"Serving dashboard","data":{"path":"/home/nicholai/node_modules/signetai/dashboard"}} +{"timestamp":"2026-02-21T19:45:55.182Z","level":"info","category":"daemon","message":"Signet Daemon starting"} +{"timestamp":"2026-02-21T19:45:55.182Z","level":"info","category":"daemon","message":"Agents directory","data":{"path":"/home/nicholai/.agents"}} +{"timestamp":"2026-02-21T19:45:55.182Z","level":"info","category":"daemon","message":"Port configured","data":{"port":3850}} +{"timestamp":"2026-02-21T19:45:55.184Z","level":"info","category":"daemon","message":"Process ID","data":{"pid":3396265}} +{"timestamp":"2026-02-21T19:45:55.185Z","level":"info","category":"watcher","message":"File watcher started"} +{"timestamp":"2026-02-21T19:45:55.185Z","level":"info","category":"auth","message":"Running in local mode (no auth)"} +{"timestamp":"2026-02-21T19:45:55.185Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":2000,"maxRetries":3,"model":"haiku","mode":"controlled-write"}} +{"timestamp":"2026-02-21T19:45:55.185Z","level":"info","category":"retention","message":"Worker started","data":{"intervalMs":21600000,"tombstoneDays":30,"historyDays":180}} +{"timestamp":"2026-02-21T19:45:55.185Z","level":"info","category":"maintenance","message":"Worker skipped (disabled or frozen)"} +{"timestamp":"2026-02-21T19:45:55.185Z","level":"info","category":"document-worker","message":"Worker started","data":{"intervalMs":10000,"chunkSize":2000}} +{"timestamp":"2026-02-21T19:45:55.185Z","level":"info","category":"pipeline","message":"Pipeline started","data":{"mode":"controlled-write"}} +{"timestamp":"2026-02-21T19:45:55.185Z","level":"info","category":"git","message":"Auto-sync enabled: every 300s"} +{"timestamp":"2026-02-21T19:45:55.216Z","level":"info","category":"daemon","message":"Server listening","data":{"address":"::1","port":3850}} +{"timestamp":"2026-02-21T19:45:55.216Z","level":"info","category":"daemon","message":"Daemon ready"} +{"timestamp":"2026-02-21T19:45:55.265Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"compass project\n===\n\narchitecture\n---\n\n- compass r","section":"(no section)","level":"section"}} +{"timestamp":"2026-02-21T19:45:55.265Z","level":"info","category":"watcher","message":"Synced Claude memory file","data":{"path":"/home/nicholai/.claude/projects/-mnt-work-dev-client-work-martine-vogel-compass/memory/MEMORY.md","projectId":"-mnt-work-dev-client-work-martine-vogel-compass","chunks":1,"sections":1}} +{"timestamp":"2026-02-21T19:45:55.266Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Depth Anything v3 Nuke Plugin\n\n- repo: /mnt/wor","section":"depth anything v3 nuke plugin","level":"section"}} +{"timestamp":"2026-02-21T19:45:55.267Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-01-26.md","chunks":2,"sections":2,"filename":"2026-01-26"}} +{"timestamp":"2026-02-21T19:45:55.268Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Nuke .cat File Format (critical)\n\n- .cat files ","section":"nuke .cat file format (critical)","level":"section"}} +{"timestamp":"2026-02-21T19:45:55.270Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## TorchScript Lessons (hard-won)\n\n- nn.ModuleList","section":"torchscript lessons (hard-won)","level":"section"}} +{"timestamp":"2026-02-21T19:45:55.272Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-01-24.md","chunks":2,"sections":2,"filename":"2026-01-24"}} +{"timestamp":"2026-02-21T19:45:55.272Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Model Performance Notes\n\n- kimi-k2.5: 2/10 on n","section":"model performance notes","level":"section"}} +{"timestamp":"2026-02-21T19:45:55.273Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Skill\n\n- materia-nuke-node skill at ~/.agents/s","section":"skill","level":"section"}} +{"timestamp":"2026-02-21T19:45:55.273Z","level":"info","category":"watcher","message":"Synced Claude memory file","data":{"path":"/home/nicholai/.claude/projects/-mnt-work-dev-materia/memory/MEMORY.md","projectId":"-mnt-work-dev-materia","chunks":5,"sections":5}} +{"timestamp":"2026-02-21T19:45:55.275Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"compass schedule project\n===\n\nkey patterns\n---\n\n- ","section":"(no section)","level":"section"}} +{"timestamp":"2026-02-21T19:45:55.275Z","level":"info","category":"watcher","message":"Synced Claude memory file","data":{"path":"/home/nicholai/.claude/projects/-mnt-work-dev-client-work-martine-vogel-compass-compass-schedule/memory/MEMORY.md","projectId":"-mnt-work-dev-client-work-martine-vogel-compass-compass-schedule","chunks":1,"sections":1}} +{"timestamp":"2026-02-21T19:45:55.276Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"quickshell port\n===\n\nthe caelestia -> quickshell p","section":"(no section)","level":"paragraph"}} +{"timestamp":"2026-02-21T19:45:55.278Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"status (2026-02-08)\n---\n- deployed and running wit","section":"(no section)","level":"paragraph"}} +{"timestamp":"2026-02-21T19:45:55.278Z","level":"info","category":"watcher","message":"Synced Claude memory file","data":{"path":"/home/nicholai/.claude/projects/-home-nicholai/memory/MEMORY.md","projectId":"-home-nicholai","chunks":2,"sections":0}} +{"timestamp":"2026-02-21T19:45:55.279Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## DB Access Pattern (PR #58 fix)\n\n- `src/lib/db-u","section":"db access pattern (pr #58 fix)","level":"section"}} +{"timestamp":"2026-02-21T19:45:55.281Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Env Access Pattern\n\n- cloudflare workers: env v","section":"env access pattern","level":"section"}} +{"timestamp":"2026-02-21T19:45:55.282Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Lessons Learned\n\n- when removing multiline bloc","section":"lessons learned","level":"section"}} +{"timestamp":"2026-02-21T19:45:55.282Z","level":"info","category":"watcher","message":"Synced Claude memory file","data":{"path":"/home/nicholai/.claude/projects/-mnt-work-dev-client-work-martine-vogel-compass-compass-custom-dashboards/memory/MEMORY.md","projectId":"-mnt-work-dev-client-work-martine-vogel-compass-compass-custom-dashboards","chunks":3,"sections":3}} +{"timestamp":"2026-02-21T19:45:55.283Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Veo 3.1 First-Last Frame Pipeline\n\n- When gener","section":"veo 3.1 first-last frame pipeline","level":"section"}} +{"timestamp":"2026-02-21T19:45:55.285Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"### Nano Banana Pro (Input-Only Moderation)\n\n- Che","section":"nano banana pro (input-only moderation)","level":"section"}} +{"timestamp":"2026-02-21T19:45:55.287Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"### Veo 3.1 (Input AND Output Moderation)\n\n- Moder","section":"veo 3.1 (input and output moderation)","level":"section"}} +{"timestamp":"2026-02-21T19:45:55.289Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## API Format Notes (Gemini API, not Vertex AI)\n\n-","section":"api format notes (gemini api, not vertex ai)","level":"section"}} +{"timestamp":"2026-02-21T19:45:55.290Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Project Location\n\n- Working dir: `/mnt/work/dev","section":"project location","level":"section"}} +{"timestamp":"2026-02-21T19:45:55.290Z","level":"info","category":"watcher","message":"Synced Claude memory file","data":{"path":"/home/nicholai/.claude/projects/-mnt-work-dev-ai-studio-videos/memory/MEMORY.md","projectId":"-mnt-work-dev-ai-studio-videos","chunks":5,"sections":5}} +{"timestamp":"2026-02-21T19:45:55.291Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-15-pre-compaction-flush.md","chunks":13,"sections":13,"filename":"2026-02-15-pre-compaction-flush"}} +{"timestamp":"2026-02-21T19:45:55.293Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"compass project memory\n===\n\nMCP tool architecture ","section":"(no section)","level":"paragraph"}} +{"timestamp":"2026-02-21T19:45:55.293Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"netsuite gotchas:\n- 401 can mean timeout, not auth","section":"(no section)","level":"paragraph"}} +{"timestamp":"2026-02-21T19:45:55.293Z","level":"info","category":"watcher","message":"Synced Claude memory file","data":{"path":"/home/nicholai/.claude/projects/-mnt-work-dev-client-work-martine-vogel-compass-compass/memory/MEMORY.md","projectId":"-mnt-work-dev-client-work-martine-vogel-compass-compass","chunks":2,"sections":0}} +{"timestamp":"2026-02-21T19:45:55.294Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Tailwind v4 + styled-jsx Gotcha\n\n`hidden lg:fle","section":"tailwind v4 + styled-jsx gotcha","level":"section"}} +{"timestamp":"2026-02-21T19:45:55.296Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Turbopack Build Bug\n\n`npx next build` crashes w","section":"turbopack build bug","level":"section"}} +{"timestamp":"2026-02-21T19:45:55.296Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-09.md","chunks":4,"sections":4,"filename":"2026-02-09"}} +{"timestamp":"2026-02-21T19:45:55.297Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Theme: Modern Minimal (oklch)\n\n- Background: pu","section":"theme: modern minimal (oklch)","level":"section"}} +{"timestamp":"2026-02-21T19:45:55.298Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Design Direction\n\n- Compact, minimal UI inspire","section":"design direction","level":"section"}} +{"timestamp":"2026-02-21T19:45:55.299Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-14.md","chunks":2,"sections":2,"filename":"2026-02-14"}} +{"timestamp":"2026-02-21T19:45:55.299Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Key Paths\n\n- Theme vars: `app/globals.css`\n- Ap","section":"key paths","level":"section"}} +{"timestamp":"2026-02-21T19:45:55.299Z","level":"info","category":"watcher","message":"Synced Claude memory file","data":{"path":"/home/nicholai/.claude/projects/-mnt-work-dev-cre-sync/memory/MEMORY.md","projectId":"-mnt-work-dev-cre-sync","chunks":5,"sections":5}} +{"timestamp":"2026-02-21T19:45:55.299Z","level":"info","category":"watcher","message":"Synced existing Claude memories","data":{"count":24}} +{"timestamp":"2026-02-21T19:45:55.302Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/MODEL-ROUTING.md","chunks":5,"sections":5,"filename":"MODEL-ROUTING"}} +{"timestamp":"2026-02-21T19:45:55.307Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-10-openagents-tracker.md","chunks":8,"sections":8,"filename":"2026-02-10-openagents-tracker"}} +{"timestamp":"2026-02-21T19:45:55.315Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-10-signet.md","chunks":16,"sections":16,"filename":"2026-02-10-signet"}} +{"timestamp":"2026-02-21T19:45:55.316Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-01-20.md","chunks":2,"sections":0,"filename":"2026-01-20"}} +{"timestamp":"2026-02-21T19:45:55.322Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-17.md","chunks":8,"sections":8,"filename":"2026-02-17"}} +{"timestamp":"2026-02-21T19:45:55.328Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-10.md","chunks":12,"sections":12,"filename":"2026-02-10"}} +{"timestamp":"2026-02-21T19:45:55.331Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-16-signet-architecture.md","chunks":6,"sections":6,"filename":"2026-02-16-signet-architecture"}} +{"timestamp":"2026-02-21T19:45:55.332Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/package-preferences.md","chunks":1,"sections":1,"filename":"package-preferences"}} +{"timestamp":"2026-02-21T19:45:55.332Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-01-31.md","chunks":1,"sections":1,"filename":"2026-01-31"}} +{"timestamp":"2026-02-21T19:45:55.339Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-07.md","chunks":8,"sections":8,"filename":"2026-02-07"}} +{"timestamp":"2026-02-21T19:45:55.342Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/VOICE-WORKFLOW.md","chunks":6,"sections":6,"filename":"VOICE-WORKFLOW"}} +{"timestamp":"2026-02-21T19:45:55.344Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-01-27.md","chunks":4,"sections":4,"filename":"2026-01-27"}} +{"timestamp":"2026-02-21T19:45:55.347Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/TOOLS.md","chunks":7,"sections":7,"filename":"TOOLS"}} +{"timestamp":"2026-02-21T19:45:55.347Z","level":"info","category":"daemon","message":"Imported existing memory files","data":{"files":18,"chunks":107}} +{"timestamp":"2026-02-21T19:46:39.330Z","level":"info","category":"watcher","message":"File changed","data":{"path":"/home/nicholai/.agents/memory/memories.db-wal"}} diff --git a/.daemon/pid b/.daemon/pid index 74c63c6f0..6ed0453d8 100644 --- a/.daemon/pid +++ b/.daemon/pid @@ -1 +1 @@ -3349379 \ No newline at end of file +3396265 \ No newline at end of file diff --git a/hooks/agent-memory/MIGRATION.md b/hooks/agent-memory/MIGRATION.md new file mode 100644 index 000000000..8bd656524 --- /dev/null +++ b/hooks/agent-memory/MIGRATION.md @@ -0,0 +1,32 @@ +# Signet OpenClaw Runtime Path Migration + +## Plugin vs Legacy Hooks + +Signet supports two runtime paths for OpenClaw integration: + +1. **Plugin path** (preferred): `@signet/adapter-openclaw` runtime + plugin handles all memory operations directly. +2. **Legacy hook path** (compatibility): These handler.js files process + /remember, /recall, and /context commands via daemon hook endpoints. + +## Switching to Plugin Path + +Set the environment variable before starting OpenClaw: + + SIGNET_RUNTIME_PATH=plugin + +This disables legacy hooks so only the plugin handles memory operations. +Both paths cannot be active simultaneously per session — the daemon +enforces this via session claiming. + +## When to Use Legacy Path + +Keep legacy hooks active (the default) if: + +- `@signet/adapter-openclaw` is not configured as an OpenClaw plugin +- You need command-based /remember and /recall without plugin support + +## Safety + +The daemon prevents duplicate capture/recall when both paths are +configured by rejecting session claims from the second path (HTTP 409). diff --git a/hooks/agent-memory/handler.js b/hooks/agent-memory/handler.js index 3bddd1bf6..5247d6785 100644 --- a/hooks/agent-memory/handler.js +++ b/hooks/agent-memory/handler.js @@ -3,8 +3,11 @@ const DAEMON_URL = process.env.SIGNET_DAEMON_URL || "http://localhost:3850"; async function fetchDaemon(path, body) { const res = await fetch(`${DAEMON_URL}${path}`, { method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify(body), + headers: { + "Content-Type": "application/json", + "x-signet-runtime-path": "legacy", + }, + body: JSON.stringify({ ...body, runtimePath: "legacy" }), signal: AbortSignal.timeout(5000), }); if (!res.ok) throw new Error(`daemon ${res.status}`); @@ -12,6 +15,11 @@ async function fetchDaemon(path, body) { } const handler = async (event) => { + // When the plugin runtime path is active, legacy hooks are disabled + // to prevent duplicate capture/recall. Set SIGNET_RUNTIME_PATH=plugin + // in your environment to use the plugin path exclusively. + if (process.env.SIGNET_RUNTIME_PATH === "plugin") return; + if (event.type !== "command") return; const args = event.context?.args || ""; diff --git a/memory/memories.db-shm b/memory/memories.db-shm index 199beaf2b..39916d5be 100644 Binary files a/memory/memories.db-shm and b/memory/memories.db-shm differ diff --git a/memory/memories.db-wal b/memory/memories.db-wal index 0b6c230c5..d5bc53110 100644 Binary files a/memory/memories.db-wal and b/memory/memories.db-wal differ