From 3923641db5581959f148f0c0a3f56e4191ef072c Mon Sep 17 00:00:00 2001 From: Nicholai Date: Mon, 2 Mar 2026 04:09:13 -0700 Subject: [PATCH] 2026-03-02T11-09-13_auto_memory/memories.db-wal, memory/debug.log, MEMORY.m --- memory/MEMORY.md | 71 +++++++++++++++++------------------------ memory/debug.log | 2 ++ memory/memories.db-wal | Bin 6806272 -> 6806272 bytes 3 files changed, 31 insertions(+), 42 deletions(-) diff --git a/memory/MEMORY.md b/memory/MEMORY.md index bc6b26522..b805fa130 100644 --- a/memory/MEMORY.md +++ b/memory/MEMORY.md @@ -1,59 +1,46 @@ - + Current Context -Working on Signet AI memory pipeline enhancements, focusing on debugging observability, embedding health tracking, and conversation continuity improvements. +The current focus is split between building a new utility site (`chatgpt-to-claude.com`) designed to facilitate ChatGPT-to-Claude memory migration and enhancing the core Signet CLI/daemon capabilities. Marketing efforts are active on Reddit, targeting OpenAI user sentiment with a specific stylistic approach. Active Projects -1. Signet Debug Harness (HIGH PRIORITY - LONG-TERM) -Status: Planning/Initial Scaffolding -Location: New package to be added to workspace -Context: Building a conversational interface for full pipeline observability, inspired by pi-mono's event-driven architecture and extension system -Next Steps: -- Scaffolding `packages/harness` package -- Building daemon client for real-time pipeline monitoring -- Implementing observer mode and multiple visualization modes (inline, hidden, split pane) -- Integrating pi-mono's extension API to mirror Signet's hook types +1. chatgpt-to-claude.com Migration Utility + Location: New Astro/React project (generated via `/astro-portfolio-site`). + Status: Architecture planned, scaffolding complete (wizard orchestrator, 4-step wizard components, homepage, design system). Blog infrastructure and SEO pages are drafted. + Next Steps: Finalize the actual blog post content (Tutorial style, SEO optimized, keyword heavy for migration intent), ensure the migration wizard handles the ChatGPT-to-Claude bulk export/import logic, and deploy for domain verification. -2. Incremental Embedding Refresh Tracker (HIGH PRIORITY - ACTIVE) -Status: Implementation in progress -Location: `packages/core/src/embedding-tracker.ts`, daemon integration in `packages/daemon/src/daemon.ts` -Context: Background polling loop to detect stale/missing embeddings when content changes or model switches -Next Steps: -- Add `PipelineEmbeddingTrackerConfig` type and parsing -- Create tracker module with `trackStaleEmbeddings()` function -- Wire tracker into daemon lifecycle (start after pipeline, stop in cleanup) -- Enhance `/status` endpoint to report tracker status +2. Signet CLI & Daemon Development + Location: `/home/nicholai/signet/signetai` (main branch). + Status: CLI structure (~4600 LOC in `cli.ts`) is robust. The `experimental.session.compacting` hook is implemented. The Skills HTTP API routing structure is being designed in `packages/daemon/src/routes/skills.ts`. + Next Steps: Implement the remaining HTTP routes for the Skills API (GET, POST, DELETE), ensure test coverage for new routing logic, and finalize the checkpoint database separation logic. -3. Pre-Compaction Capture (MEDIUM PRIORITY - ACTIVE) -Status: Phase 2 in progress -Location: `packages/session-manager/src/continuity-state.ts`, `packages/session-manager/src/session-checkpoints.ts` -Context: Improving conversation continuity at compaction boundaries -Next Steps: -- Add `pendingPromptSnippets` to continuity state -- Modify `recordPrompt()` to store keyword-only snippets -- Update `consumeState()` to snapshot and reset snippets -- Add session_end checkpoint trigger and digest formatters with snippet enrichment +3. Marketing & Community Engagement + Location: Reddit (r/OpenAI, r/ChatGPT), Facebook Business Manager. + Status: Facebook meta-tag successfully committed and verified. Reddit engagement is live; a successful interaction with an OpenAI user regarding data deletion anxieties was pivoted to highlight Signet's local-first value proposition using the established Reddit style guide. + Next Steps: Monitor Reddit engagement metrics, continue authentic engagement without heavy marketing fluff, and prepare assets for the migration site launch. Recent Work -- Debug Harness Planning: User requested observability tool; began architectural planning inspired by pi-mono's approach -- Embedding Tracker: Added types to `core/src/types.ts`, created `embedding-tracker.ts` module, updated `memory-config.ts` for tracker configuration, started daemon wiring -- Pre-Compaction: Enhanced checkpoint system to capture periodic snapshots; now adding passive capture for compaction boundaries with prompt snippet enrichment + Site Scaffolding: Successfully generated a new Astro portfolio site with a custom design system and React components to handle the migration wizard functionality. The wizard architecture (orchestrator + 4-step components) was completed and integrated into the homepage layout. + Content Writing: Drafted a migration tutorial blog post focusing on genuine utility and SEO keywords ("switch from ChatGPT to Claude", "import memory"). The content was written to be authentic and informative, avoiding "product-launch" language. + Git & Deployment: Resolved a Facebook domain verification issue where git hooks were interfering with file staging. Fixed by staging and committing files separately. + CLI Routing: Defined the endpoints for the Skills API (list, install, remove) and began implementation of `packages/daemon/src/routes/skills.ts`. + Marketing Tone Adjustment: Rejected an initial "shitty sounding" marketing draft for Reddit. Established and adhered to the `REDDIT_STYLE_GUIDE.md` (authentic, direct, dev-voice, local-first pitch). Technical Notes -- Project Structure: Monorepo with `packages/core`, `packages/daemon`, `packages/session-manager` -- Key Files Modified: `daemon.ts`, `memory-config.ts`, `continuity-state.ts`, `session-checkpoints.ts` -- Integration Points: Pipeline hooks, connector pre-compaction, status endpoints -- Models: Using local LLMs; embedding health critical for RAG performance -- Configuration: Pipeline configuration loaded via `loadPipelineConfig()` with support for multiple feature flags + Tech Stack: Astro for the migration site (server-side rendering capabilities for SEO), React for interactive components (Wizard), Node.js for Signet CLI. + Signet Architecture: The CLI relies on a daemon process managed via `cli.ts`. The daemon handles background tasks like memory compaction (`experimental.session.compacting`). + Database: Memory and checkpoints are managed via SQLite/DB structures. The separation of checkpoints from main memory logs is a known architectural consideration. + Marketing Strategy: SEO targets "migration intent" keywords. The blog content aims for high keyword density without sacrificing readability. + UI Constraints: The wizard must remain simple. "No complex UI" and "minimal icons" are preferred over heavy aesthetics. Rules & Warnings -- Pipeline Hooks: Claude Code connector lacks PreCompaction hook; this is the #1 continuity pain point -- Checkpoint Data: Phase 1 used keyword-only data; Phase 2 adds prompt snippets for richer context -- File Paths: Working in `packages/` directory structure; verify exports from core barrel before use -- Daemon Lifecycle: Trackers must start after pipeline init and stop in cleanup -- Checkpoint Triggers: Ensure `"session_end"` added to CheckpointTrigger union for proper formatting \ No newline at end of file + UI/UX: Keep the wizard simple and direct. Avoid complex interactions or heavy iconography; focus on utility and clarity. + Marketing Tone: On Reddit, use an authentic, "dev voice" ("built something called") rather than a marketing voice ("launching our product"). Be opinionated but helpful. Avoid fluff. + Git Workflow: Be vigilant with Git hooks that might block file additions (e.g., Facebook meta-tag). If hooks fail, stage and commit files manually rather than forcing them. + Development: Stick to the main branch. The `experimental.session.compacting` hook is active and functional. + Code Structure: Adhere to the existing CLI structure in `cli.ts`. Ensure new daemon routes in `packages/daemon` match the established API patterns. \ No newline at end of file diff --git a/memory/debug.log b/memory/debug.log index bd5453b2b..b89666e63 100644 --- a/memory/debug.log +++ b/memory/debug.log @@ -745,3 +745,5 @@ We are synthesizing a WORKING MEMORY document for Nicholai. Focus is on CURRENT 2026-03-02T04:07:37.463072 [regenerate] starting regeneration 2026-03-02T04:07:40.985919 [regenerate] found 636 transcripts, 50 memories 2026-03-02T04:07:40.986027 [regenerate] trying model: glm-4.7-flash +2026-03-02T04:09:07.632143 [regenerate] success with glm-4.7-flash (4586 chars) +2026-03-02T04:09:07.632516 [regenerate] wrote 4623 chars to MEMORY.md diff --git a/memory/memories.db-wal b/memory/memories.db-wal index b7b99c260bf5902f8cecfdb5542e714d8021a513..9fb9cb198be79ad89776c1fc783066ccaaf53405 100644 GIT binary patch delta 1455 zcmZA1drXs87zXg(Cz*-8usP;S?t>NDW7)PUaE=Y*V&$#F1@uiZHf@jcqX+yUX)ULfbX@{c-X>-0un}qB%Fvy1c@XIh?qo?Xd)p}vXCqyF(j5OCUIm5WkeZ|`BAwy z9)Ed$a_YYRdq(l(r$ZOs*TzKyM+whZ34H6gU0*l*O&R5J;R3PS~&U z^V^hLthBczXvvx2$l}+U{Enp>liTuDV9D9w#GpOyGnxFCQR=k@Ejbqwu}lxU>e>YE zle2*(J;4cO`A-jr&lf$S()PfT-0t8=e4$hj_rv8@I_S((1%oek$s(# zKX1EgOzOS;>Fn^q=1)HI{Cv&ZuaClszhB+J9Vlz0N+UZA+c+&qEIurw%JOg=o!2KL zR*l)cw6cMnGU;c2Y`vfJF|BN3r+ul1TDtWQGO6PPJDnLKUIAacid?Dw3&=fWj(v-9h zjC*ZYj*ZSYg-wJsMH|8SYf#1S2sDL_gfzu7p1tQEQ&z)#Q`kgEQ&N|=e_9pv0H6<7FChit`sKvwfXzeZG z2GykaG98#nTOfV%Kf%-$J6v6PYC2M;;!6)(May70tbmn}05V8~BzPKp=-BNQVq~2Gp(PymIn1q@IG z#jq8ghi$;Xb}&K-?0{0(3A?}qWw0B{;RUDwGrS0u@Dfx(HPk>YyiBd4SL|Q^3*EU9 A%K!iX delta 45515 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 bn{XV)q2bVR7&uHE7LN3IkH7P6U;2LlhBDNm