All notable changes to StackMemory will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- First stable release of StackMemory
- Licensed under BSL 1.1 (converts to MIT after 4 years)
- 652 tests passing, TypeScript strict mode, Node 20+ required
- FTS5 full-text search with BM25 ranking and hybrid scoring
- sqlite-vec embedding support with multi-provider architecture (Xenova, OpenAI)
- Memory monitor daemon with auto-capture/clear cycle
- Prompt Forge (GEPA) with AGENT.md watcher and extensions system
- Skills system: spec generator, Linear task runner, agent prompt consolidation
- DiffMem integration for long-term user memory
- Retrieval signals, garbage collection, cold storage, multi-repo support
- Node.js 20+ runtime version check at CLI startup
- Claude Code hooks: auto-init on wrapper launch
- Removed SMS/WhatsApp/Twilio integration (replaced with terminal bell notification)
- Removed ngrok dependency
- Reduced
as anycasts by 71% (153 to 44) with proper TypeScript interfaces - Consolidated test suite from 719 to 652 focused tests
- CI/CD: Node 20+22 matrix, fixed deprecated actions, added concurrency groups
- Build: clean dist before build, removed source maps from tarball (2.1MB to 735KB)
- License changed from MIT to BSL 1.1
- Schema unification between FrameDatabase and SQLiteAdapter
- FTS5 empty query fallback to LIKE search
- Pre-publish script git dirty check race condition
- Embedding provider initPromise reset on failure
- SQLite pragma conflict in skills CLI
- CLI test timeout flakes via module import caching
- Feature flags cleanup (removed stale whatsapp flag)
- Removed dead feature stubs and scripts
- Input validation improvements across CLI commands
- Phase 4: Two-Tier Storage System (STA-414)
- Local storage tiers: Young (<24h), Mature (1-7d), Old (7-30d)
- Remote storage: S3 + TimeSeries DB integration
- Compression strategies: LZ4 for mature, ZSTD for old data
- Background migration engine with configurable triggers
- Offline queue with persistent retry logic
- CLI commands: storage status, migrate, cleanup, config, test
- Frame manager test using non-existent getEvents method
- Linear API authentication issues (env variable conflicts)
- SQL syntax errors for SQLite INDEX creation
- ESM import issues (missing .js extensions)
- Repository structure reorganization
- Documentation moved to /docs and /docs/archives
- Test scripts moved to /scripts directory
- Linear cleanup files archived to /archive/linear-cleanup-2026
- Cleaner root directory structure
- Storage compression ratios: LZ4 ~2.5x, ZSTD ~3.5x
- Test suite: 467 passing tests, improved from 19 failures
- Build time: ~90ms with esbuild
- Session cleanup: Removed 1,032 old sessions (4.1MB saved)
- Advanced Frame Handoff Workflows (STA-100)
- Claude Skills system for enhanced workflow automation
- Recovery Checkpoint Manager for work state preservation
- Context Archaeologist for deep historical search
- Frame Handoff Orchestrator for streamlined team handoffs
- Context commands (push/pop/show) hanging indefinitely
- Database path resolution in test scripts
- Context bridge initialization blocking CLI operations
- FrameManager now accepts options object with
skipContextBridgeflag - CLI commands skip async context bridge for synchronous operation
- Database path standardized to project-local
.stackmemory/context.db
- Context operations: ~400ms (previously hung indefinitely)
- Task operations: 89-98% faster than manual alternatives
- Database operations: Consistent ~500ms response time
- Dual Stack Manager for seamless context transitions
- Context Bridge for real-time synchronization
- Clear survival system for preserving context across resets
- Quality gates and post-task validation hooks
- Context overflow handling with graceful management
- Ledger system providing 10-15x context compression
- Automatic thresholds (60% warning, 70% critical, 85% force-save)
- Perfect restoration after /clear operations
- Linear OAuth authentication implementation
- Bidirectional sync between Linear and StackMemory
- Auto-sync background synchronization
- Webhook support for real-time Linear updates
- Phase 3 Collaboration features complete
- Shared team stacks with dual architecture
- Frame handoff mechanism
- Team collaboration features
- Shared context system
- Hybrid digest generation (60% deterministic, 40% AI)
- Smart trace detection and bundling
- Configurable scoring with weight profiles
- Railway storage optimization (3-tier: Redis/Buckets/GCS)
- Phase 2 Intelligence Layer complete
- LLM-driven context retrieval
- Summary generator with compression
- Hierarchical retrieval system
- Context Retriever orchestration
- Pebbles Task Store with Git-tracked JSONL
- Task-aware context system
- Task priorities (low, medium, high, urgent)
- Task states (pending, in_progress, completed, blocked, cancelled)
- Initial release with Phase 1 Core Runtime
- Frame-based call stack architecture
- SQLite database storage
- MCP server with 20+ tools
- Basic Claude Code integration
- Project initialization and management
- Context reestablishment: 95% faster (5min → 15s)
- Task completion: 40% faster
- Rework rate: 80% reduction (25% → 5%)
- Context accuracy: 58% improvement (60% → 95%)
- Database size: ~588KB for typical project
- Task storage: ~214KB for 250 tasks
- Compression ratio: 10-15x for context
- Frame depth support: 10,000+ levels
- MCP Tools: 20+ available
- Linear Integration: Fully bidirectional
- Git Integration: Repository-aware
- Claude Code: Full auto-trigger support
- Run
npm install -g @stackmemoryai/stackmemory@latest - Execute
stackmemory initin your project - Configure Linear integration with
stackmemory linear:auth - Enable Claude Skills with
stackmemory skills:enable
- Backup
.stackmemory/context.db - Update to latest version
- Run database migration:
stackmemory migrate - Reconfigure MCP server settings
- FrameManager constructor signature changed (now accepts options object)
- Context bridge initialization is now optional
- CLI commands require STACKMEMORY_CLI environment variable
- Database schema updated for LLM retrieval
- Frame digest format changed to hybrid structure
- Scoring system now uses configurable weights
- Direct contextBridge initialization in FrameManager (use options instead)
- Synchronous context operations without skipContextBridge flag
- Simple text digests (replaced with hybrid digests)
- Fixed scoring weights (replaced with profiles)
For issues, questions, or contributions:
- GitHub Issues: https://github.com/stackmemoryai/stackmemory/issues
- Documentation: https://docs.stackmemory.ai
- Discord: https://discord.gg/stackmemory