From 8d11046e4669818fc17ffedf98629571c1d14c95 Mon Sep 17 00:00:00 2001 From: Nicholai Date: Sun, 1 Mar 2026 04:08:39 -0700 Subject: [PATCH] 2026-03-01T11-08-39_auto_MEMORY.md, memory/debug.log, memory/memories.db-wa --- memory/MEMORY.md | 71 +++++++++++++++++++++++++---------------- memory/debug.log | 2 ++ memory/memories.db-wal | Bin 5285992 -> 5285992 bytes 3 files changed, 45 insertions(+), 28 deletions(-) diff --git a/memory/MEMORY.md b/memory/MEMORY.md index cc9423465..bc6b26522 100644 --- a/memory/MEMORY.md +++ b/memory/MEMORY.md @@ -1,44 +1,59 @@ - + Current Context -The current focus is on stabilizing the Signet dashboard (Astro/React stack) after resolving a critical Svelte 5 reactivity bug, while maintaining the ongoing implementation of the Skills API module and integration of Pipeline configurations. + +Working on Signet AI memory pipeline enhancements, focusing on debugging observability, embedding health tracking, and conversation continuity improvements. Active Projects -1. Signet Dashboard Bug Fixes - Location: `dashboard/` (specifically `SettingsTab.svelte`) - Status: Completed & Verified. - Details: Resolved a `effect_update_depth_exceeded` error that prevented collapsible sections in the Settings tab from being clickable. The issue was a reactivity cycle where the `$effect` tracked a reactive `configFiles` prop while mutating `$state`. - Next Steps: Ensure the fix is stable in production and monitor for similar reactivity issues in other Svelte components. +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 -2. Skills Module Implementation - Location: `packages/daemon/src/routes/skills.ts` - Status: Designed/Architected. - Details: Developing RESTful HTTP API endpoints for skills management (GET, POST, DELETE). The module is designed with zero database dependencies. - Next Steps: Implement the route handlers and test daemon change verification steps. +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 -3. Pipeline Configuration Integration - Location: `isaac-research-chain` (destination repo) - Status: Pending. - Details: Integrating the PipelineV2Config, which currently uses a flat structure, into the target repository. - Next Steps: Execute the merge process for the PipelineV2Config. +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 Recent Work - Svelte 5 Reactivity Fix: Identified and patched the reactivity bug in `SettingsTab.svelte`. The fix involves wrapping the `st.init(configFiles)` call in `untrack()` to prevent the `$effect` from creating a dependency loop that triggered infinite re-initialization of the store. The dashboard and daemon have been restarted and verified to be functioning correctly with Playwright. - Daemon Management: Performed daemon restarts and testing to validate the Settings tab fix. Ensured `bun.lockb` and environment variables are correctly configured. - Agent Configuration: Clarified the path for agent profile storage (`~/.agents/`) to ensure correct file system interactions. +- 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 Technical Notes - Stack: The application frontend uses Astro for the static site shell and React components for dynamic UI elements. The core daemon logic is written in TypeScript. - Deployment Target: The static site builds are intended for deployment at `https://www.signetai.sh`. - Agent Config Path: All agent profile configurations must be stored in `~/.agents/` and sourced from `AGENTS.md`, not `~/.signet/`. - UI Development Constraints: Strict rule—UI work (Svelte, React, Tailwind) must not be delegated to subagents. Must be handled directly by the assistant with direct reference passing. +- 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 Rules & Warnings - UI Work Prohibition: Never delegate UI debugging or coding tasks (Svelte/React components, styling) to subagents. The assistant must execute these tasks manually. - Daemon Verification: Before deploying daemon changes, ensure full verification is performed to prevent runtime errors. - Path Correctness: Always use `~/.agents/` for agent configuration files. -- Svelte 5 Awareness: Be vigilant about Svelte 5 reactivity features. Issues often arise when `$state` is initialized inside closures or when `$effect` creates circular dependencies with reactive props. Use `untrack()` when necessary to break those loops. \ No newline at end of file +- 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 diff --git a/memory/debug.log b/memory/debug.log index afbb148dd..3f9a76ca3 100644 --- a/memory/debug.log +++ b/memory/debug.log @@ -740,3 +740,5 @@ We are synthesizing a WORKING MEMORY document for Nicholai. Focus is on CURRENT 2026-03-01T04:08:06.703539 [regenerate] starting regeneration 2026-03-01T04:08:10.297136 [regenerate] found 654 transcripts, 50 memories 2026-03-01T04:08:10.297250 [regenerate] trying model: glm-4.7-flash +2026-03-01T04:08:30.861258 [regenerate] success with glm-4.7-flash (3308 chars) +2026-03-01T04:08:30.861479 [regenerate] wrote 3345 chars to MEMORY.md diff --git a/memory/memories.db-wal b/memory/memories.db-wal index 531b8f43f1bcdeb49310e8af124249f6f56aa077..9e687642e89ddefb7f0490e732e3fe1c8d0c16c8 100644 GIT binary patch delta 3804 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