Skip to content

v1.13.0 - Memory Lifecycle Hooks & Progressive Disclosure

Choose a tag to compare

@rohitg00 rohitg00 released this 05 Feb 11:27
· 152 commits to main since this release

What's New

Memory Lifecycle Hooks

Automatic memory capture and injection via Claude Code lifecycle hooks:

Hook Trigger Action
SessionStart Session begins Inject relevant learnings
PostToolUse Tool completes Capture outcomes as observations
SessionEnd Session closes Compress observations to learnings

Progressive Disclosure (Token Optimization)

3-layer retrieval system for efficient context usage:

Layer Content ~Tokens
Index Titles, tags, timestamps 50-100
Timeline Context, excerpts, activity ~200
Details Full content, metadata 500-1000

Auto-CLAUDE.md Updates

Sync your most effective learnings to CLAUDE.md:

skillkit memory sync-claude

This populates the ## LEARNED section with high-effectiveness insights.

New CLI Commands

skillkit memory sync-claude   # Update CLAUDE.md with learnings
skillkit memory index         # View memory index (Layer 1)

API Additions

MemoryHookManager

import { MemoryHookManager } from '@skillkit/core'

const manager = new MemoryHookManager(projectPath)
await manager.onSessionStart()
await manager.onToolUse({ tool_name: 'Write', ... })
await manager.onSessionEnd()

ProgressiveDisclosureManager

import { ProgressiveDisclosureManager } from '@skillkit/core'

const pdm = new ProgressiveDisclosureManager(projectPath)
const index = pdm.getIndex({ includeGlobal: true })
const result = pdm.smartRetrieve('auth patterns', 2000)

ClaudeMdUpdater

import { ClaudeMdUpdater } from '@skillkit/core'

const updater = new ClaudeMdUpdater(projectPath)
updater.update({ minEffectiveness: 70 })

Changes

  • Add Claude Code lifecycle hooks (SessionStart, PostToolUse, SessionEnd)
  • Implement 3-layer progressive disclosure for token-optimized retrieval
  • Add CLAUDE.md auto-updater to populate LEARNED section
  • Add auto-compression threshold trigger in observation store
  • Cross-platform path handling using path.basename()
  • Nullish coalescing for maxResults defaults
  • Guard against non-positive tokenBudget
  • Thread minRelevance option through findRelevantIds()
  • Remove 139 lines of unnecessary inline comments (code cleanup)
  • Update documentation with new memory features

Full Changelog: v1.12.0...v1.13.0