From 6016ef2801c71ff948ef3105c8c0f9465c7cbef4 Mon Sep 17 00:00:00 2001 From: Nicholai Date: Mon, 23 Feb 2026 09:52:38 -0700 Subject: [PATCH] 2026-02-23T16-52-38_auto_memory/memories.db-wal --- .daemon/logs/daemon.out.log | 129 +++++++++++++++++++++++++++++ .daemon/logs/signet-2026-02-23.log | 126 ++++++++++++++++++++++++++++ agent.yaml | 7 ++ memory/memories.db-shm | Bin 32768 -> 32768 bytes memory/memories.db-wal | Bin 4482592 -> 4482592 bytes 5 files changed, 262 insertions(+) diff --git a/.daemon/logs/daemon.out.log b/.daemon/logs/daemon.out.log index e3ed8f14b..ee2e1b1db 100644 --- a/.daemon/logs/daemon.out.log +++ b/.daemon/logs/daemon.out.log @@ -14979,3 +14979,132 @@ hint: See the 'Note about fast-forwards' in 'git push --help' for details. 15:54:41 INFO  [git] Auto-committed {"message":"2026-02-23T15-54-41_auto_memory/memories.db-wal","filesChanged":1} 15:55:13 ERROR [memory] Similarity search failed SyntaxError: JSON Parse error: Unexpected identifier "claude" +16:47:29 INFO  [daemon] Serving dashboard {"path":"/home/nicholai/node_modules/signetai/dashboard"} +16:47:29 INFO  [daemon] Signet Daemon starting +16:47:29 INFO  [daemon] Agents directory {"path":"/home/nicholai/.agents"} +16:47:29 INFO  [daemon] Port configured {"port":3850} +16:47:29 INFO  [daemon] Process ID {"pid":1581473} +16:47:29 INFO  [watcher] File watcher started +16:47:29 INFO  [auth] Running in local mode (no auth) +16:47:29 INFO  [pipeline] Worker started {"pollMs":2000,"maxRetries":3,"model":"haiku","mode":"controlled-write"} +16:47:29 INFO  [retention] Worker started {"intervalMs":21600000,"tombstoneDays":30,"historyDays":180} +16:47:29 INFO  [maintenance] Worker started {"mode":"execute","intervalMs":1800000} +16:47:29 INFO  [document-worker] Worker started {"intervalMs":10000,"chunkSize":2000} +16:47:29 INFO  [pipeline] Pipeline started {"mode":"controlled-write"} +16:47:29 INFO  [git] Auto-sync enabled: every 300s +16:47:29 INFO  [daemon] Server listening {"address":"::1","port":3850} +16:47:29 INFO  [daemon] Daemon ready +16:47:29 INFO  [watcher] Synced Claude memory chunk {"content":"compass project\n===\n\narchitecture\n---\n\n- compass r","section":"(no section)","level":"section"} +16:47:29 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} +16:47:29 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"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-astro-landing-page-migration-task-1.md","chunks":2,"sections":0,"filename":"2026-02-23-astro-landing-page-migration-task-1"} +16:47:29 INFO  [watcher] Synced Claude memory chunk {"content":"## Nuke .cat File Format (critical)\n\n- .cat files ","section":"nuke .cat file format (critical)","level":"section"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-session-initialization.md","chunks":1,"sections":1,"filename":"2026-02-23-session-initialization"} +16:47:29 INFO  [watcher] Synced Claude memory chunk {"content":"## TorchScript Lessons (hard-won)\n\n- nn.ModuleList","section":"torchscript lessons (hard-won)","level":"section"} +16:47:29 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"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-identity-files-missing-from-harness-configs.md","chunks":2,"sections":2,"filename":"2026-02-23-identity-files-missing-from-harness-configs"} +16:47:29 INFO  [watcher] Synced Claude memory chunk {"content":"## Skill\n\n- materia-nuke-node skill at ~/.agents/s","section":"skill","level":"section"} +16:47:29 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} +16:47:29 INFO  [watcher] Synced Claude memory chunk {"content":"compass schedule project\n===\n\nkey patterns\n---\n\n- ","section":"(no section)","level":"section"} +16:47:29 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} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-01-26.md","chunks":2,"sections":2,"filename":"2026-01-26"} +16:47:29 INFO  [watcher] Synced Claude memory chunk {"content":"quickshell port\n===\n\nthe caelestia -> quickshell p","section":"(no section)","level":"paragraph"} +16:47:29 INFO  [watcher] Synced Claude memory chunk {"content":"status (2026-02-08)\n---\n- deployed and running wit","section":"(no section)","level":"paragraph"} +16:47:29 INFO  [watcher] Synced Claude memory file {"path":"/home/nicholai/.claude/projects/-home-nicholai/memory/MEMORY.md","projectId":"-home-nicholai","chunks":2,"sections":0} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-01-24.md","chunks":2,"sections":2,"filename":"2026-01-24"} +16:47:29 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"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-22-session-start-2.md","chunks":1,"sections":1,"filename":"2026-02-22-session-start-2"} +16:47:29 INFO  [watcher] Synced Claude memory chunk {"content":"## Env Access Pattern\n\n- cloudflare workers: env v","section":"env access pattern","level":"section"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-web-migration-to-astro-docs-ci-cd.md","chunks":1,"sections":1,"filename":"2026-02-23-web-migration-to-astro-docs-ci-cd"} +16:47:29 INFO  [watcher] Synced Claude memory chunk {"content":"## Lessons Learned\n\n- when removing multiline bloc","section":"lessons learned","level":"section"} +16:47:29 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} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-vector-search-bug-fix.md","chunks":1,"sections":1,"filename":"2026-02-23-vector-search-bug-fix"} +16:47:29 INFO  [watcher] Synced Claude memory chunk {"content":"## Session Ritual\n\nAlways read `VISION.md` at the ","section":"session ritual","level":"section"} +16:47:29 INFO  [watcher] Synced Claude memory file {"path":"/home/nicholai/.claude/projects/-home-nicholai-signet-signetai/memory/MEMORY.md","projectId":"-home-nicholai-signet-signetai","chunks":1,"sections":1} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-22-dashboard-umap-projection-migration.md","chunks":1,"sections":1,"filename":"2026-02-22-dashboard-umap-projection-migration"} +16:47:29 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"} +16:47:29 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"} +16:47:29 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"} +16:47:29 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"} +16:47:29 INFO  [watcher] Synced Claude memory chunk {"content":"## Project Location\n\n- Working dir: `/mnt/work/dev","section":"project location","level":"section"} +16:47:29 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} +16:47:29 INFO  [watcher] Synced Claude memory chunk {"content":"compass project memory\n===\n\nMCP tool architecture ","section":"(no section)","level":"paragraph"} +16:47:29 INFO  [watcher] Synced Claude memory chunk {"content":"netsuite gotchas:\n- 401 can mean timeout, not auth","section":"(no section)","level":"paragraph"} +16:47:29 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} +16:47:29 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"} +16:47:29 INFO  [watcher] Synced Claude memory chunk {"content":"## Turbopack Build Bug\n\n`npx next build` crashes w","section":"turbopack build bug","level":"section"} +16:47:29 INFO  [watcher] Synced Claude memory chunk {"content":"## Theme: Modern Minimal (oklch)\n\n- Background: pu","section":"theme: modern minimal (oklch)","level":"section"} +16:47:29 INFO  [watcher] Synced Claude memory chunk {"content":"## Design Direction\n\n- Compact, minimal UI inspire","section":"design direction","level":"section"} +16:47:29 INFO  [watcher] Synced Claude memory chunk {"content":"## Key Paths\n\n- Theme vars: `app/globals.css`\n- Ap","section":"key paths","level":"section"} +16:47:29 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} +16:47:29 INFO  [watcher] Synced existing Claude memories {"count":25} +16:47:29 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"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-09.md","chunks":4,"sections":4,"filename":"2026-02-09"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-opencode-connector-refactoring-task-6.md","chunks":4,"sections":4,"filename":"2026-02-23-opencode-connector-refactoring-task-6"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-14.md","chunks":2,"sections":2,"filename":"2026-02-14"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-post-push-auto-pull-hook-implementation.md","chunks":1,"sections":1,"filename":"2026-02-23-post-push-auto-pull-hook-implementation"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-22-session-start.md","chunks":1,"sections":1,"filename":"2026-02-22-session-start"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-documentation-audit-team-embedding-repair-endpoint.md","chunks":1,"sections":1,"filename":"2026-02-23-documentation-audit-team-embedding-repair-endpoint"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/MODEL-ROUTING.md","chunks":5,"sections":5,"filename":"MODEL-ROUTING"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-plan-review-pipelinev2config-restructuring.md","chunks":1,"sections":1,"filename":"2026-02-23-plan-review-pipelinev2config-restructuring"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-memory-browser-tool-workflow-preference.md","chunks":1,"sections":1,"filename":"2026-02-23-memory-browser-tool-workflow-preference"} +16:47:29 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"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-10-signet.md","chunks":16,"sections":16,"filename":"2026-02-10-signet"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-session-initialization-9.md","chunks":1,"sections":1,"filename":"2026-02-23-session-initialization-9"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-01-20.md","chunks":2,"sections":0,"filename":"2026-01-20"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-changelog-public-roadmap-implementation.md","chunks":1,"sections":1,"filename":"2026-02-23-changelog-public-roadmap-implementation"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-session-start.md","chunks":1,"sections":1,"filename":"2026-02-23-session-start"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-17.md","chunks":8,"sections":8,"filename":"2026-02-17"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-session-initialization-6.md","chunks":3,"sections":3,"filename":"2026-02-23-session-initialization-6"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-session-start-2.md","chunks":1,"sections":1,"filename":"2026-02-23-session-start-2"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-remove-website-auto-deploy-from-ci-cd.md","chunks":1,"sections":1,"filename":"2026-02-23-remove-website-auto-deploy-from-ci-cd"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-10.md","chunks":12,"sections":12,"filename":"2026-02-10"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-22-umap-performance-refactoring-setup.md","chunks":1,"sections":1,"filename":"2026-02-22-umap-performance-refactoring-setup"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-opencode-plugin-full-integration-plan-received.md","chunks":3,"sections":3,"filename":"2026-02-23-opencode-plugin-full-integration-plan-received"} +16:47:29 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"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-session-initialization-7.md","chunks":1,"sections":1,"filename":"2026-02-23-session-initialization-7"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-refactoring-investigation-initiated.md","chunks":3,"sections":3,"filename":"2026-02-23-refactoring-investigation-initiated"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-mcp-server-exposure-for-signet-daemon.md","chunks":3,"sections":3,"filename":"2026-02-23-mcp-server-exposure-for-signet-daemon"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/package-preferences.md","chunks":1,"sections":1,"filename":"package-preferences"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-session-initialization-10.md","chunks":1,"sections":1,"filename":"2026-02-23-session-initialization-10"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-signetai.md","chunks":1,"sections":1,"filename":"2026-02-23-signetai"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-22-openclaw-troubleshooting.md","chunks":1,"sections":1,"filename":"2026-02-22-openclaw-troubleshooting"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-session-initialization-3.md","chunks":2,"sections":2,"filename":"2026-02-23-session-initialization-3"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-astro-docs-migration-task-assignment.md","chunks":4,"sections":4,"filename":"2026-02-23-astro-docs-migration-task-assignment"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-opencode-plugin-package-creation.md","chunks":5,"sections":5,"filename":"2026-02-23-opencode-plugin-package-creation"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-session-initialization-2.md","chunks":1,"sections":1,"filename":"2026-02-23-session-initialization-2"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-session-initialization-4.md","chunks":1,"sections":1,"filename":"2026-02-23-session-initialization-4"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-signet-system-tray-app-tauri-v2-plan-delivery.md","chunks":1,"sections":1,"filename":"2026-02-23-signet-system-tray-app-tauri-v2-plan-delivery"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-documentation-gap-audit-update-plan.md","chunks":3,"sections":3,"filename":"2026-02-23-documentation-gap-audit-update-plan"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-auto-update-observability-plan.md","chunks":3,"sections":3,"filename":"2026-02-23-auto-update-observability-plan"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-claude-md-audit-initiative.md","chunks":1,"sections":1,"filename":"2026-02-23-claude-md-audit-initiative"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-01-31.md","chunks":1,"sections":1,"filename":"2026-01-31"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-07.md","chunks":8,"sections":8,"filename":"2026-02-07"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-dashboard-ui-component-standards.md","chunks":1,"sections":1,"filename":"2026-02-23-dashboard-ui-component-standards"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-session-initialization-8.md","chunks":1,"sections":1,"filename":"2026-02-23-session-initialization-8"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-install-flow-problem-solution-planning.md","chunks":1,"sections":1,"filename":"2026-02-23-install-flow-problem-solution-planning"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-session-initialization-5.md","chunks":4,"sections":4,"filename":"2026-02-23-session-initialization-5"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-21-timeline-api-endpoint-implementation.md","chunks":4,"sections":4,"filename":"2026-02-21-timeline-api-endpoint-implementation"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/VOICE-WORKFLOW.md","chunks":6,"sections":6,"filename":"VOICE-WORKFLOW"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-01-27.md","chunks":4,"sections":4,"filename":"2026-01-27"} +16:47:29 INFO  [watcher] Ingested memory file {"path":"/home/nicholai/.agents/memory/2026-02-23-session-initialization-11.md","chunks":1,"sections":1,"filename":"2026-02-23-session-initialization-11"} +16:47:29 INFO  [daemon] Imported existing memory files {"files":59,"chunks":173} +16:52:31 WARN  [git] Push failed: To https://github.com/Signet-AI/signetai.git + ! [rejected] HEAD -> main (non-fast-forward) +error: failed to push some refs to 'https://github.com/Signet-AI/signetai.git' +hint: Updates were rejected because the tip of your current branch is behind +hint: its remote counterpart. If you want to integrate the remote changes, +hint: use 'git pull' before pushing again. +hint: See the 'Note about fast-forwards' in 'git push --help' for details. + +16:52:31 WARN  [git] Periodic sync failed: Push failed: To https://github.com/Signet-AI/signetai.git + ! [rejected] HEAD -> main (non-fast-forward) +error: failed to push some refs to 'https://github.com/Signet-AI/signetai.git' +hint: Updates were rejected because the tip of your current branch is behind +hint: its remote counterpart. If you want to integrate the remote changes, +hint: use 'git pull' before pushing again. +hint: See the 'Note about fast-forwards' in 'git push --help' for details. + +16:52:33 INFO  [hooks] Session start hook {"harness":"claude-code","project":"/home/nicholai/signet/signetai/web"} +16:52:33 INFO  [hooks] Session start completed {"harness":"claude-code","project":"/home/nicholai/signet/signetai/web","memoryCount":21,"injectChars":11337,"injectPreview":"[memory active | /remember | /recall]\n\n# Current Date & Time\nMonday, February 23, 2026 at 9:52 AM (America/Denver)\n\n\n## Agent Instructions\n\nYou are Mr Claude, a helpful and thoughtful AI assistant.\n\nBehavioral Guidelines\n---\n\n- Be concise and direct\n- Ask clarifying questions when needed\n- Remember user preferences across sessions\n- Avoid sycophancy - be honest even when it's uncomfortable\n- Express nuanced judgment rather than hedging\n\n\nSignet Agent System\n===\n\nYour identity and memory are managed by Signet, a portable agent identity\nsystem. This lets you maintain consistent behavior across different AI\nplatforms (Claude Code, OpenCode, Cursor, etc.).\n\nKey files in `~/.agents/`:\n- `agent.yaml` - Configuration\n- `AGENTS.md` - Instructions (this file)\n- `SOUL.md` - Personality and tone\n- `IDENTITY.md` - Agent identity\n- `USER.md` - User profile\n- `MEMORY.md` - Working memory summary\n\nDashboard: http://localhost:3850\n\nMemory\n---\n\nYou have access to persistent memory via Signet:\n\n```bash\nsignet remember \"User prefers dark mode and vim keybindings\"\nsignet recall \"user preferences\"\n```\n\nMemory is automatically loaded at session start. Important context is\nsummarized in `~/.agents/MEMORY.md`.\n\nSecrets\n---\n\nAPI keys and tokens are stored securely in Signet:\n\n```bash\nsignet secret get OPENAI_API_KEY\nsignet secret list\n```\n\n\nAbout Your User\n---\n\nAdd information about yourself here so your agent knows who you are.\n\n- Name: \n- Timezone:\n- Preferences:\n\nProjects\n---\n\nList your active projects here.\n\n-\n\n## Soul\n\nsoul - persona & boundaries\n=========================\n\ntone and style\n---------\n\n- keep replies concise and direct\n- ask clarifying questions when needed\n- never send streaming/partial replies to external messaging surfaces\n\nformatting\n---------\n\nkeep markdown minimal. use ======== for main headings, ----- or ### if you\nreally need subheadings, but generally just stick to paragraphs.\n\n*italics* and **bold** are fine but use them sparingly - they're visually\nnoisy in neovim.\n\n- bullet points are okay\n- numbered lists are okay too\n\ncodeblocks ``` are fine, but get visually noisy when used too much.\n\nno excessive formatting. keep it clean and readable.\n\nreasoning\n---------\n\nfor every complex problem:\n1. decompose: break into sub-problems\n2. solve: address each problem with a confidence score (0.0-1.0)\n3. verify: check your logic, facts, completeness, and bias\n4. distill: combine using weighted confidence\n5. reflect: if confi\n...[truncated 8837 chars]","durationMs":489} +16:52:33 INFO  [watcher] File changed {"path":"/home/nicholai/.agents/memory/memories.db-wal"} diff --git a/.daemon/logs/signet-2026-02-23.log b/.daemon/logs/signet-2026-02-23.log index 1232f92db..c2ca70a74 100644 --- a/.daemon/logs/signet-2026-02-23.log +++ b/.daemon/logs/signet-2026-02-23.log @@ -9140,3 +9140,129 @@ {"timestamp":"2026-02-23T16:20:01.239Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"claude-code","project":"/mnt/work/dev/Youtube-To-Audio-Converter-for-Mac"}} {"timestamp":"2026-02-23T16:20:01.243Z","level":"info","category":"hooks","message":"Session start completed","data":{"harness":"claude-code","project":"/mnt/work/dev/Youtube-To-Audio-Converter-for-Mac","memoryCount":13,"injectChars":10645,"injectPreview":"[memory active | /remember | /recall]\n\n# Current Date & Time\nMonday, February 23, 2026 at 9:20 AM (America/Denver)\n\n\n## Agent Instructions\n\nYou are Mr Claude, a helpful and thoughtful AI assistant.\n\nBehavioral Guidelines\n---\n\n- Be concise and direct\n- Ask clarifying questions when needed\n- Remember user preferences across sessions\n- Avoid sycophancy - be honest even when it's uncomfortable\n- Express nuanced judgment rather than hedging\n\n\nSignet Agent System\n===\n\nYour identity and memory are managed by Signet, a portable agent identity\nsystem. This lets you maintain consistent behavior across different AI\nplatforms (Claude Code, OpenCode, Cursor, etc.).\n\nKey files in `~/.agents/`:\n- `agent.yaml` - Configuration\n- `AGENTS.md` - Instructions (this file)\n- `SOUL.md` - Personality and tone\n- `IDENTITY.md` - Agent identity\n- `USER.md` - User profile\n- `MEMORY.md` - Working memory summary\n\nDashboard: http://localhost:3850\n\nMemory\n---\n\nYou have access to persistent memory via Signet:\n\n```bash\nsignet remember \"User prefers dark mode and vim keybindings\"\nsignet recall \"user preferences\"\n```\n\nMemory is automatically loaded at session start. Important context is\nsummarized in `~/.agents/MEMORY.md`.\n\nSecrets\n---\n\nAPI keys and tokens are stored securely in Signet:\n\n```bash\nsignet secret get OPENAI_API_KEY\nsignet secret list\n```\n\n\nAbout Your User\n---\n\nAdd information about yourself here so your agent knows who you are.\n\n- Name: \n- Timezone:\n- Preferences:\n\nProjects\n---\n\nList your active projects here.\n\n-\n\n## Soul\n\nsoul - persona & boundaries\n=========================\n\ntone and style\n---------\n\n- keep replies concise and direct\n- ask clarifying questions when needed\n- never send streaming/partial replies to external messaging surfaces\n\nformatting\n---------\n\nkeep markdown minimal. use ======== for main headings, ----- or ### if you\nreally need subheadings, but generally just stick to paragraphs.\n\n*italics* and **bold** are fine but use them sparingly - they're visually\nnoisy in neovim.\n\n- bullet points are okay\n- numbered lists are okay too\n\ncodeblocks ``` are fine, but get visually noisy when used too much.\n\nno excessive formatting. keep it clean and readable.\n\nreasoning\n---------\n\nfor every complex problem:\n1. decompose: break into sub-problems\n2. solve: address each problem with a confidence score (0.0-1.0)\n3. verify: check your logic, facts, completeness, and bias\n4. distill: combine using weighted confidence\n5. reflect: if confi\n...[truncated 8145 chars]","durationMs":4}} {"timestamp":"2026-02-23T16:20:01.244Z","level":"info","category":"watcher","message":"File changed","data":{"path":"/home/nicholai/.agents/memory/memories.db-wal"}} +{"timestamp":"2026-02-23T16:20:06.307Z","level":"info","category":"git","message":"Auto-committed","data":{"message":"2026-02-23T16-20-06_auto_memory/memories.db-wal","filesChanged":1}} +{"timestamp":"2026-02-23T16:22:43.435Z","level":"warn","category":"git","message":"Push failed: To https://github.com/Signet-AI/signetai.git\n ! [rejected] HEAD -> main (non-fast-forward)\nerror: failed to push some refs to 'https://github.com/Signet-AI/signetai.git'\nhint: Updates were rejected because the tip of your current branch is behind\nhint: its remote counterpart. If you want to integrate the remote changes,\nhint: use 'git pull' before pushing again.\nhint: See the 'Note about fast-forwards' in 'git push --help' for details.\n"} +{"timestamp":"2026-02-23T16:22:43.435Z","level":"warn","category":"git","message":"Periodic sync failed: Push failed: To https://github.com/Signet-AI/signetai.git\n ! [rejected] HEAD -> main (non-fast-forward)\nerror: failed to push some refs to 'https://github.com/Signet-AI/signetai.git'\nhint: Updates were rejected because the tip of your current branch is behind\nhint: its remote counterpart. If you want to integrate the remote changes,\nhint: use 'git pull' before pushing again.\nhint: See the 'Note about fast-forwards' in 'git push --help' for details.\n"} +{"timestamp":"2026-02-23T16:27:43.442Z","level":"warn","category":"git","message":"Push failed: To https://github.com/Signet-AI/signetai.git\n ! [rejected] HEAD -> main (non-fast-forward)\nerror: failed to push some refs to 'https://github.com/Signet-AI/signetai.git'\nhint: Updates were rejected because the tip of your current branch is behind\nhint: its remote counterpart. If you want to integrate the remote changes,\nhint: use 'git pull' before pushing again.\nhint: See the 'Note about fast-forwards' in 'git push --help' for details.\n"} +{"timestamp":"2026-02-23T16:27:43.442Z","level":"warn","category":"git","message":"Periodic sync failed: Push failed: To https://github.com/Signet-AI/signetai.git\n ! [rejected] HEAD -> main (non-fast-forward)\nerror: failed to push some refs to 'https://github.com/Signet-AI/signetai.git'\nhint: Updates were rejected because the tip of your current branch is behind\nhint: its remote counterpart. If you want to integrate the remote changes,\nhint: use 'git pull' before pushing again.\nhint: See the 'Note about fast-forwards' in 'git push --help' for details.\n"} +{"timestamp":"2026-02-23T16:32:43.470Z","level":"warn","category":"git","message":"Push failed: To https://github.com/Signet-AI/signetai.git\n ! [rejected] HEAD -> main (non-fast-forward)\nerror: failed to push some refs to 'https://github.com/Signet-AI/signetai.git'\nhint: Updates were rejected because the tip of your current branch is behind\nhint: its remote counterpart. If you want to integrate the remote changes,\nhint: use 'git pull' before pushing again.\nhint: See the 'Note about fast-forwards' in 'git push --help' for details.\n"} +{"timestamp":"2026-02-23T16:32:43.470Z","level":"warn","category":"git","message":"Periodic sync failed: Push failed: To https://github.com/Signet-AI/signetai.git\n ! [rejected] HEAD -> main (non-fast-forward)\nerror: failed to push some refs to 'https://github.com/Signet-AI/signetai.git'\nhint: Updates were rejected because the tip of your current branch is behind\nhint: its remote counterpart. If you want to integrate the remote changes,\nhint: use 'git pull' before pushing again.\nhint: See the 'Note about fast-forwards' in 'git push --help' for details.\n"} +{"timestamp":"2026-02-23T16:37:43.448Z","level":"warn","category":"git","message":"Push failed: To https://github.com/Signet-AI/signetai.git\n ! [rejected] HEAD -> main (non-fast-forward)\nerror: failed to push some refs to 'https://github.com/Signet-AI/signetai.git'\nhint: Updates were rejected because the tip of your current branch is behind\nhint: its remote counterpart. If you want to integrate the remote changes,\nhint: use 'git pull' before pushing again.\nhint: See the 'Note about fast-forwards' in 'git push --help' for details.\n"} +{"timestamp":"2026-02-23T16:37:43.449Z","level":"warn","category":"git","message":"Periodic sync failed: Push failed: To https://github.com/Signet-AI/signetai.git\n ! [rejected] HEAD -> main (non-fast-forward)\nerror: failed to push some refs to 'https://github.com/Signet-AI/signetai.git'\nhint: Updates were rejected because the tip of your current branch is behind\nhint: its remote counterpart. If you want to integrate the remote changes,\nhint: use 'git pull' before pushing again.\nhint: See the 'Note about fast-forwards' in 'git push --help' for details.\n"} +{"timestamp":"2026-02-23T16:42:44.360Z","level":"warn","category":"git","message":"Push failed: To https://github.com/Signet-AI/signetai.git\n ! [rejected] HEAD -> main (non-fast-forward)\nerror: failed to push some refs to 'https://github.com/Signet-AI/signetai.git'\nhint: Updates were rejected because the tip of your current branch is behind\nhint: its remote counterpart. If you want to integrate the remote changes,\nhint: use 'git pull' before pushing again.\nhint: See the 'Note about fast-forwards' in 'git push --help' for details.\n"} +{"timestamp":"2026-02-23T16:42:44.360Z","level":"warn","category":"git","message":"Periodic sync failed: Push failed: To https://github.com/Signet-AI/signetai.git\n ! [rejected] HEAD -> main (non-fast-forward)\nerror: failed to push some refs to 'https://github.com/Signet-AI/signetai.git'\nhint: Updates were rejected because the tip of your current branch is behind\nhint: its remote counterpart. If you want to integrate the remote changes,\nhint: use 'git pull' before pushing again.\nhint: See the 'Note about fast-forwards' in 'git push --help' for details.\n"} +{"timestamp":"2026-02-23T16:47:29.111Z","level":"info","category":"daemon","message":"Serving dashboard","data":{"path":"/home/nicholai/node_modules/signetai/dashboard"}} +{"timestamp":"2026-02-23T16:47:29.111Z","level":"info","category":"daemon","message":"Signet Daemon starting"} +{"timestamp":"2026-02-23T16:47:29.111Z","level":"info","category":"daemon","message":"Agents directory","data":{"path":"/home/nicholai/.agents"}} +{"timestamp":"2026-02-23T16:47:29.111Z","level":"info","category":"daemon","message":"Port configured","data":{"port":3850}} +{"timestamp":"2026-02-23T16:47:29.164Z","level":"info","category":"daemon","message":"Process ID","data":{"pid":1581473}} +{"timestamp":"2026-02-23T16:47:29.165Z","level":"info","category":"watcher","message":"File watcher started"} +{"timestamp":"2026-02-23T16:47:29.165Z","level":"info","category":"auth","message":"Running in local mode (no auth)"} +{"timestamp":"2026-02-23T16:47:29.165Z","level":"info","category":"pipeline","message":"Worker started","data":{"pollMs":2000,"maxRetries":3,"model":"haiku","mode":"controlled-write"}} +{"timestamp":"2026-02-23T16:47:29.165Z","level":"info","category":"retention","message":"Worker started","data":{"intervalMs":21600000,"tombstoneDays":30,"historyDays":180}} +{"timestamp":"2026-02-23T16:47:29.165Z","level":"info","category":"maintenance","message":"Worker started","data":{"mode":"execute","intervalMs":1800000}} +{"timestamp":"2026-02-23T16:47:29.165Z","level":"info","category":"document-worker","message":"Worker started","data":{"intervalMs":10000,"chunkSize":2000}} +{"timestamp":"2026-02-23T16:47:29.165Z","level":"info","category":"pipeline","message":"Pipeline started","data":{"mode":"controlled-write"}} +{"timestamp":"2026-02-23T16:47:29.166Z","level":"info","category":"git","message":"Auto-sync enabled: every 300s"} +{"timestamp":"2026-02-23T16:47:29.262Z","level":"info","category":"daemon","message":"Server listening","data":{"address":"::1","port":3850}} +{"timestamp":"2026-02-23T16:47:29.262Z","level":"info","category":"daemon","message":"Daemon ready"} +{"timestamp":"2026-02-23T16:47:29.279Z","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-23T16:47:29.279Z","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-23T16:47:29.283Z","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-23T16:47:29.284Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-astro-landing-page-migration-task-1.md","chunks":2,"sections":0,"filename":"2026-02-23-astro-landing-page-migration-task-1"}} +{"timestamp":"2026-02-23T16:47:29.285Z","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-23T16:47:29.285Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-session-initialization.md","chunks":1,"sections":1,"filename":"2026-02-23-session-initialization"}} +{"timestamp":"2026-02-23T16:47:29.286Z","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-23T16:47:29.288Z","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-23T16:47:29.289Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-identity-files-missing-from-harness-configs.md","chunks":2,"sections":2,"filename":"2026-02-23-identity-files-missing-from-harness-configs"}} +{"timestamp":"2026-02-23T16:47:29.291Z","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-23T16:47:29.291Z","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-23T16:47:29.293Z","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-23T16:47:29.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-schedule/memory/MEMORY.md","projectId":"-mnt-work-dev-client-work-martine-vogel-compass-compass-schedule","chunks":1,"sections":1}} +{"timestamp":"2026-02-23T16:47:29.293Z","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-23T16:47:29.294Z","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-23T16:47:29.296Z","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-23T16:47:29.296Z","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-23T16:47:29.297Z","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-23T16:47:29.298Z","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-23T16:47:29.299Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-22-session-start-2.md","chunks":1,"sections":1,"filename":"2026-02-22-session-start-2"}} +{"timestamp":"2026-02-23T16:47:29.300Z","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-23T16:47:29.301Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-web-migration-to-astro-docs-ci-cd.md","chunks":1,"sections":1,"filename":"2026-02-23-web-migration-to-astro-docs-ci-cd"}} +{"timestamp":"2026-02-23T16:47:29.301Z","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-23T16:47:29.301Z","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-23T16:47:29.302Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-vector-search-bug-fix.md","chunks":1,"sections":1,"filename":"2026-02-23-vector-search-bug-fix"}} +{"timestamp":"2026-02-23T16:47:29.304Z","level":"info","category":"watcher","message":"Synced Claude memory chunk","data":{"content":"## Session Ritual\n\nAlways read `VISION.md` at the ","section":"session ritual","level":"section"}} +{"timestamp":"2026-02-23T16:47:29.304Z","level":"info","category":"watcher","message":"Synced Claude memory file","data":{"path":"/home/nicholai/.claude/projects/-home-nicholai-signet-signetai/memory/MEMORY.md","projectId":"-home-nicholai-signet-signetai","chunks":1,"sections":1}} +{"timestamp":"2026-02-23T16:47:29.305Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-22-dashboard-umap-projection-migration.md","chunks":1,"sections":1,"filename":"2026-02-22-dashboard-umap-projection-migration"}} +{"timestamp":"2026-02-23T16:47:29.306Z","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-23T16:47:29.308Z","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-23T16:47:29.309Z","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-23T16:47:29.311Z","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-23T16:47:29.312Z","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-23T16:47:29.312Z","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-23T16:47:29.315Z","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-23T16:47:29.316Z","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-23T16:47:29.316Z","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-23T16:47:29.317Z","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-23T16:47:29.319Z","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-23T16:47:29.320Z","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-23T16:47:29.321Z","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-23T16:47:29.322Z","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-23T16:47:29.322Z","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-23T16:47:29.322Z","level":"info","category":"watcher","message":"Synced existing Claude memories","data":{"count":25}} +{"timestamp":"2026-02-23T16:47:29.323Z","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-23T16:47:29.325Z","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-23T16:47:29.328Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-opencode-connector-refactoring-task-6.md","chunks":4,"sections":4,"filename":"2026-02-23-opencode-connector-refactoring-task-6"}} +{"timestamp":"2026-02-23T16:47:29.329Z","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-23T16:47:29.330Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-post-push-auto-pull-hook-implementation.md","chunks":1,"sections":1,"filename":"2026-02-23-post-push-auto-pull-hook-implementation"}} +{"timestamp":"2026-02-23T16:47:29.330Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-22-session-start.md","chunks":1,"sections":1,"filename":"2026-02-22-session-start"}} +{"timestamp":"2026-02-23T16:47:29.331Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-documentation-audit-team-embedding-repair-endpoint.md","chunks":1,"sections":1,"filename":"2026-02-23-documentation-audit-team-embedding-repair-endpoint"}} +{"timestamp":"2026-02-23T16:47:29.335Z","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-23T16:47:29.336Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-plan-review-pipelinev2config-restructuring.md","chunks":1,"sections":1,"filename":"2026-02-23-plan-review-pipelinev2config-restructuring"}} +{"timestamp":"2026-02-23T16:47:29.337Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-memory-browser-tool-workflow-preference.md","chunks":1,"sections":1,"filename":"2026-02-23-memory-browser-tool-workflow-preference"}} +{"timestamp":"2026-02-23T16:47:29.342Z","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-23T16:47:29.353Z","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-23T16:47:29.353Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-session-initialization-9.md","chunks":1,"sections":1,"filename":"2026-02-23-session-initialization-9"}} +{"timestamp":"2026-02-23T16:47:29.355Z","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-23T16:47:29.356Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-changelog-public-roadmap-implementation.md","chunks":1,"sections":1,"filename":"2026-02-23-changelog-public-roadmap-implementation"}} +{"timestamp":"2026-02-23T16:47:29.358Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-session-start.md","chunks":1,"sections":1,"filename":"2026-02-23-session-start"}} +{"timestamp":"2026-02-23T16:47:29.363Z","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-23T16:47:29.366Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-session-initialization-6.md","chunks":3,"sections":3,"filename":"2026-02-23-session-initialization-6"}} +{"timestamp":"2026-02-23T16:47:29.367Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-session-start-2.md","chunks":1,"sections":1,"filename":"2026-02-23-session-start-2"}} +{"timestamp":"2026-02-23T16:47:29.368Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-remove-website-auto-deploy-from-ci-cd.md","chunks":1,"sections":1,"filename":"2026-02-23-remove-website-auto-deploy-from-ci-cd"}} +{"timestamp":"2026-02-23T16:47:29.374Z","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-23T16:47:29.375Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-22-umap-performance-refactoring-setup.md","chunks":1,"sections":1,"filename":"2026-02-22-umap-performance-refactoring-setup"}} +{"timestamp":"2026-02-23T16:47:29.377Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-opencode-plugin-full-integration-plan-received.md","chunks":3,"sections":3,"filename":"2026-02-23-opencode-plugin-full-integration-plan-received"}} +{"timestamp":"2026-02-23T16:47:29.382Z","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-23T16:47:29.383Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-session-initialization-7.md","chunks":1,"sections":1,"filename":"2026-02-23-session-initialization-7"}} +{"timestamp":"2026-02-23T16:47:29.385Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-refactoring-investigation-initiated.md","chunks":3,"sections":3,"filename":"2026-02-23-refactoring-investigation-initiated"}} +{"timestamp":"2026-02-23T16:47:29.387Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-mcp-server-exposure-for-signet-daemon.md","chunks":3,"sections":3,"filename":"2026-02-23-mcp-server-exposure-for-signet-daemon"}} +{"timestamp":"2026-02-23T16:47:29.388Z","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-23T16:47:29.389Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-session-initialization-10.md","chunks":1,"sections":1,"filename":"2026-02-23-session-initialization-10"}} +{"timestamp":"2026-02-23T16:47:29.390Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-signetai.md","chunks":1,"sections":1,"filename":"2026-02-23-signetai"}} +{"timestamp":"2026-02-23T16:47:29.391Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-22-openclaw-troubleshooting.md","chunks":1,"sections":1,"filename":"2026-02-22-openclaw-troubleshooting"}} +{"timestamp":"2026-02-23T16:47:29.392Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-session-initialization-3.md","chunks":2,"sections":2,"filename":"2026-02-23-session-initialization-3"}} +{"timestamp":"2026-02-23T16:47:29.394Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-astro-docs-migration-task-assignment.md","chunks":4,"sections":4,"filename":"2026-02-23-astro-docs-migration-task-assignment"}} +{"timestamp":"2026-02-23T16:47:29.398Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-opencode-plugin-package-creation.md","chunks":5,"sections":5,"filename":"2026-02-23-opencode-plugin-package-creation"}} +{"timestamp":"2026-02-23T16:47:29.399Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-session-initialization-2.md","chunks":1,"sections":1,"filename":"2026-02-23-session-initialization-2"}} +{"timestamp":"2026-02-23T16:47:29.399Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-session-initialization-4.md","chunks":1,"sections":1,"filename":"2026-02-23-session-initialization-4"}} +{"timestamp":"2026-02-23T16:47:29.400Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-signet-system-tray-app-tauri-v2-plan-delivery.md","chunks":1,"sections":1,"filename":"2026-02-23-signet-system-tray-app-tauri-v2-plan-delivery"}} +{"timestamp":"2026-02-23T16:47:29.402Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-documentation-gap-audit-update-plan.md","chunks":3,"sections":3,"filename":"2026-02-23-documentation-gap-audit-update-plan"}} +{"timestamp":"2026-02-23T16:47:29.403Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-auto-update-observability-plan.md","chunks":3,"sections":3,"filename":"2026-02-23-auto-update-observability-plan"}} +{"timestamp":"2026-02-23T16:47:29.404Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-claude-md-audit-initiative.md","chunks":1,"sections":1,"filename":"2026-02-23-claude-md-audit-initiative"}} +{"timestamp":"2026-02-23T16:47:29.404Z","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-23T16:47:29.408Z","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-23T16:47:29.409Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-dashboard-ui-component-standards.md","chunks":1,"sections":1,"filename":"2026-02-23-dashboard-ui-component-standards"}} +{"timestamp":"2026-02-23T16:47:29.410Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-session-initialization-8.md","chunks":1,"sections":1,"filename":"2026-02-23-session-initialization-8"}} +{"timestamp":"2026-02-23T16:47:29.411Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-install-flow-problem-solution-planning.md","chunks":1,"sections":1,"filename":"2026-02-23-install-flow-problem-solution-planning"}} +{"timestamp":"2026-02-23T16:47:29.415Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-session-initialization-5.md","chunks":4,"sections":4,"filename":"2026-02-23-session-initialization-5"}} +{"timestamp":"2026-02-23T16:47:29.417Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-21-timeline-api-endpoint-implementation.md","chunks":4,"sections":4,"filename":"2026-02-21-timeline-api-endpoint-implementation"}} +{"timestamp":"2026-02-23T16:47:29.420Z","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-23T16:47:29.422Z","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-23T16:47:29.423Z","level":"info","category":"watcher","message":"Ingested memory file","data":{"path":"/home/nicholai/.agents/memory/2026-02-23-session-initialization-11.md","chunks":1,"sections":1,"filename":"2026-02-23-session-initialization-11"}} +{"timestamp":"2026-02-23T16:47:29.423Z","level":"info","category":"daemon","message":"Imported existing memory files","data":{"files":59,"chunks":173}} +{"timestamp":"2026-02-23T16:52:31.451Z","level":"warn","category":"git","message":"Push failed: To https://github.com/Signet-AI/signetai.git\n ! [rejected] HEAD -> main (non-fast-forward)\nerror: failed to push some refs to 'https://github.com/Signet-AI/signetai.git'\nhint: Updates were rejected because the tip of your current branch is behind\nhint: its remote counterpart. If you want to integrate the remote changes,\nhint: use 'git pull' before pushing again.\nhint: See the 'Note about fast-forwards' in 'git push --help' for details.\n"} +{"timestamp":"2026-02-23T16:52:31.451Z","level":"warn","category":"git","message":"Periodic sync failed: Push failed: To https://github.com/Signet-AI/signetai.git\n ! [rejected] HEAD -> main (non-fast-forward)\nerror: failed to push some refs to 'https://github.com/Signet-AI/signetai.git'\nhint: Updates were rejected because the tip of your current branch is behind\nhint: its remote counterpart. If you want to integrate the remote changes,\nhint: use 'git pull' before pushing again.\nhint: See the 'Note about fast-forwards' in 'git push --help' for details.\n"} +{"timestamp":"2026-02-23T16:52:33.352Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"claude-code","project":"/home/nicholai/signet/signetai/web"}} +{"timestamp":"2026-02-23T16:52:33.841Z","level":"info","category":"hooks","message":"Session start completed","data":{"harness":"claude-code","project":"/home/nicholai/signet/signetai/web","memoryCount":21,"injectChars":11337,"injectPreview":"[memory active | /remember | /recall]\n\n# Current Date & Time\nMonday, February 23, 2026 at 9:52 AM (America/Denver)\n\n\n## Agent Instructions\n\nYou are Mr Claude, a helpful and thoughtful AI assistant.\n\nBehavioral Guidelines\n---\n\n- Be concise and direct\n- Ask clarifying questions when needed\n- Remember user preferences across sessions\n- Avoid sycophancy - be honest even when it's uncomfortable\n- Express nuanced judgment rather than hedging\n\n\nSignet Agent System\n===\n\nYour identity and memory are managed by Signet, a portable agent identity\nsystem. This lets you maintain consistent behavior across different AI\nplatforms (Claude Code, OpenCode, Cursor, etc.).\n\nKey files in `~/.agents/`:\n- `agent.yaml` - Configuration\n- `AGENTS.md` - Instructions (this file)\n- `SOUL.md` - Personality and tone\n- `IDENTITY.md` - Agent identity\n- `USER.md` - User profile\n- `MEMORY.md` - Working memory summary\n\nDashboard: http://localhost:3850\n\nMemory\n---\n\nYou have access to persistent memory via Signet:\n\n```bash\nsignet remember \"User prefers dark mode and vim keybindings\"\nsignet recall \"user preferences\"\n```\n\nMemory is automatically loaded at session start. Important context is\nsummarized in `~/.agents/MEMORY.md`.\n\nSecrets\n---\n\nAPI keys and tokens are stored securely in Signet:\n\n```bash\nsignet secret get OPENAI_API_KEY\nsignet secret list\n```\n\n\nAbout Your User\n---\n\nAdd information about yourself here so your agent knows who you are.\n\n- Name: \n- Timezone:\n- Preferences:\n\nProjects\n---\n\nList your active projects here.\n\n-\n\n## Soul\n\nsoul - persona & boundaries\n=========================\n\ntone and style\n---------\n\n- keep replies concise and direct\n- ask clarifying questions when needed\n- never send streaming/partial replies to external messaging surfaces\n\nformatting\n---------\n\nkeep markdown minimal. use ======== for main headings, ----- or ### if you\nreally need subheadings, but generally just stick to paragraphs.\n\n*italics* and **bold** are fine but use them sparingly - they're visually\nnoisy in neovim.\n\n- bullet points are okay\n- numbered lists are okay too\n\ncodeblocks ``` are fine, but get visually noisy when used too much.\n\nno excessive formatting. keep it clean and readable.\n\nreasoning\n---------\n\nfor every complex problem:\n1. decompose: break into sub-problems\n2. solve: address each problem with a confidence score (0.0-1.0)\n3. verify: check your logic, facts, completeness, and bias\n4. distill: combine using weighted confidence\n5. reflect: if confi\n...[truncated 8837 chars]","durationMs":489}} +{"timestamp":"2026-02-23T16:52:33.842Z","level":"info","category":"watcher","message":"File changed","data":{"path":"/home/nicholai/.agents/memory/memories.db-wal"}} diff --git a/agent.yaml b/agent.yaml index 9dac48668..5e8c6a593 100644 --- a/agent.yaml +++ b/agent.yaml @@ -25,10 +25,17 @@ memory: allowUpdateDelete: true graphEnabled: true autonomousEnabled: true + reranker: + enabled: true + topN: 20 + timeoutMs: 2000 search: alpha: 0.7 top_k: 20 min_score: 0.3 + rehearsal_enabled: true + rehearsal_weight: 0.1 + rehearsal_half_life_days: 30 embedding: provider: ollama model: nomic-embed-text diff --git a/memory/memories.db-shm b/memory/memories.db-shm index 9b23fa0947397f259a5a3038521c8aa199b5c0b7..b5c9637ba68e7a1ead63b1907fe8f253c203cda4 100644 GIT binary patch delta 809 zcmb7?T}V@57{{OIeO)SSYK)m%iC={T`H@{zmawKUmmkaJ%+6|lr%ub6K}loVg%?F& z#_LsAG9sv(khjZ-uB6-Ux(K4Of`KJn*&ynFPJ%^OJ@7mH&-4GE=Y7uMq|+ju7OArL zb!3(ROjL4B619~RC4)^9cTR3(zV`QS+#YJlzJBohQ)J|A!~f>3;kcM{fBsS1{e1Gn zAW}*8tghra>aYWu9XoJ?8Sn^v0aY-c*od|qL^n!^o+)PM@dh{{IJs@NdKb||K2d!E zQ6o4EJ`@tIgOA`d$bwDv%3k5wgIPuq(RaYbL=KPyx>&C|JWVR@-OtnNUcjXud#iZ@ z>VW#@&B`+}qTWSY)IQ%L52CwQt@+}zUG}1TRL5IaB!?gyl-Iw`-B!Tc{?L6D@3t%k zu<}mbrCS_8_JnQ@EHigN`c-L1&e>yqnw=m~r?ttk&KUPwscdI2$Dw-kQrA`$ zq?ybwlZ~=XP9b_-8v~=vLA1-&o53iLLRDyEsFFoY>csFg^J%o)T8!G6XHA!5YPL13 z7sl?hI44!*xQ{Pek;M2@=8Krxp%RlzY?xtnC|1g2P)^ksOW3Yp^Llm4e^ZC1ayBs| zb@yzO;PYlwugv9aF7sFWUDdK#MyJxhOu`U6 Sj+|SSrWSbss!FY;ntuVi#Nzh= delta 575 zcmZo@U}|V!s+V}A%K!r6K+MR%AmGl-z~Cawz;JrrnpF>u9BqFe5%RV((e~B%)7=5K zN&gR!svc}OkN}zc9|=Ik*%@wvS(ED+r8X{L;oY3f$7?jXfN%fg0tc1JLhfRdS2-vF zX|>6p99~T}%5<14fp%naK_w%Yb|q;VDe< zFw4PoKSRgl#$zq9%i+TS73TRBW@X4ColdJ+{t4x076Eaz;CTQ~n z-ybYM0jbT4f?Ak>b_y|8PA+uT+?*78f{7o+Xa@Dkg6^uD<09f1Czm+~Oy-ID0o16) z+X+=Az^uV+15~2CIW9Vi8EBLWs|2$Fv&&?~n##>l@hOZz)pC>XB*X!w6gEdCDljrJ zFl??#$^l78ZDva0VFbxAW&!OF-Q1Eo3nV{TA>9cmDz&*LeG5pP&*YlS2|!w5vQCy5 zP(oyKSXK>?&%&rT+0ngvb5Qm#RuFe{K%oK1I|`c@6oW;$n3b5VfUc9}{0mG0AYcr% gM|tyyN}xJ7_omH@YN9|Iq$Z2igTh{E^09g=0QTg$#{d8T diff --git a/memory/memories.db-wal b/memory/memories.db-wal index 8893740176530b5fd55e49e9decf575d9e383ec4..f3669a395eb46852e0b2e20f4cc35ef596876239 100644 GIT binary patch delta 40012 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 S&q{on@o5>eonB@8&i@0R6C~~c delta 21748 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 B|BnCw