From 05eb7edcee9ecd6884032dfbd41b4cfd5436ded7 Mon Sep 17 00:00:00 2001 From: Nicholai Date: Mon, 23 Feb 2026 10:52:55 -0700 Subject: [PATCH] 2026-02-23T17-52-55_auto_memory/memories.db-wal --- .daemon/logs/daemon.out.log | 20 ++++++++++++++++++++ .daemon/logs/signet-2026-02-23.log | 6 ++++++ memory/memories.db-shm | Bin 32768 -> 32768 bytes memory/memories.db-wal | Bin 4482592 -> 4482592 bytes 4 files changed, 26 insertions(+) diff --git a/.daemon/logs/daemon.out.log b/.daemon/logs/daemon.out.log index 83a6bdbf2..ca1171214 100644 --- a/.daemon/logs/daemon.out.log +++ b/.daemon/logs/daemon.out.log @@ -15557,3 +15557,23 @@ hint: See the 'Note about fast-forwards' in 'git push --help' for details. 17:51:23 INFO  [hooks] Session start hook {"harness":"claude-code","project":"/home/nicholai/signet/signetai"} 17:51:24 INFO  [hooks] Session start completed {"harness":"claude-code","project":"/home/nicholai/signet/signetai","memoryCount":12,"injectChars":11413,"injectPreview":"[memory active | /remember | /recall]\n\n# Current Date & Time\nMonday, February 23, 2026 at 10:51 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 conf\n...[truncated 8913 chars]","durationMs":398} 17:51:24 INFO  [watcher] File changed {"path":"/home/nicholai/.agents/memory/memories.db-wal"} +17:51:29 INFO  [git] Auto-committed {"message":"2026-02-23T17-51-29_auto_memory/memories.db-wal","filesChanged":1} +17:52:29 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. + +17:52:29 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. + +17:52:50 INFO  [hooks] Session start hook {"harness":"claude-code","project":"/home/nicholai/signet/signetai"} +17:52:50 INFO  [hooks] Session start completed {"harness":"claude-code","project":"/home/nicholai/signet/signetai","memoryCount":12,"injectChars":11413,"injectPreview":"[memory active | /remember | /recall]\n\n# Current Date & Time\nMonday, February 23, 2026 at 10: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 conf\n...[truncated 8913 chars]","durationMs":307} +17:52:50 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 085bc4601..3197c86e7 100644 --- a/.daemon/logs/signet-2026-02-23.log +++ b/.daemon/logs/signet-2026-02-23.log @@ -9561,3 +9561,9 @@ {"timestamp":"2026-02-23T17:51:23.970Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"claude-code","project":"/home/nicholai/signet/signetai"}} {"timestamp":"2026-02-23T17:51:24.367Z","level":"info","category":"hooks","message":"Session start completed","data":{"harness":"claude-code","project":"/home/nicholai/signet/signetai","memoryCount":12,"injectChars":11413,"injectPreview":"[memory active | /remember | /recall]\n\n# Current Date & Time\nMonday, February 23, 2026 at 10:51 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 conf\n...[truncated 8913 chars]","durationMs":398}} {"timestamp":"2026-02-23T17:51:24.369Z","level":"info","category":"watcher","message":"File changed","data":{"path":"/home/nicholai/.agents/memory/memories.db-wal"}} +{"timestamp":"2026-02-23T17:51:29.448Z","level":"info","category":"git","message":"Auto-committed","data":{"message":"2026-02-23T17-51-29_auto_memory/memories.db-wal","filesChanged":1}} +{"timestamp":"2026-02-23T17:52:29.878Z","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-23T17:52:29.878Z","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-23T17:52:50.241Z","level":"info","category":"hooks","message":"Session start hook","data":{"harness":"claude-code","project":"/home/nicholai/signet/signetai"}} +{"timestamp":"2026-02-23T17:52:50.547Z","level":"info","category":"hooks","message":"Session start completed","data":{"harness":"claude-code","project":"/home/nicholai/signet/signetai","memoryCount":12,"injectChars":11413,"injectPreview":"[memory active | /remember | /recall]\n\n# Current Date & Time\nMonday, February 23, 2026 at 10: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 conf\n...[truncated 8913 chars]","durationMs":307}} +{"timestamp":"2026-02-23T17:52:50.548Z","level":"info","category":"watcher","message":"File changed","data":{"path":"/home/nicholai/.agents/memory/memories.db-wal"}} diff --git a/memory/memories.db-shm b/memory/memories.db-shm index 6c87a912bf5640e37ce2d7bfbf3b36db04791659..18152e10c1244e0662b5baa6b7c1e46921ba54ab 100644 GIT binary patch delta 350 zcmZo@U}|V!s+V}A%K!p-K+MR%AaDjqyT~#yTwEkISL3e7|$m-1(YnE zJi)h*@i34jz1hl7kA?9xP=O-T&<%U8eIG*fv)CYFlO*#h-X;IZ~!PFy1A0HfJ_umAu6 delta 329 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