Skip to content

Commit a14f2a2

Browse files
committed
[Release] v0.8.0
Three-layer distillation pipeline, recall enhancements, hook improvements, and major internal quality refactoring.
1 parent 4e4a4a6 commit a14f2a2

7 files changed

Lines changed: 96 additions & 9 deletions

File tree

.claude-plugin/marketplace.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"plugins": [
88
{
99
"name": "claude-memory",
10-
"version": "0.7.1",
10+
"version": "0.8.0",
1111
"source": "./",
1212
"description": "Long-term self-managed memory for Claude Code with fact extraction, truth maintenance, and provenance tracking",
1313
"repository": "https://github.com/codenamev/claude_memory"

.claude-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "claude-memory",
3-
"version": "0.7.1",
3+
"version": "0.8.0",
44
"description": "Long-term self-managed memory for Claude Code with fact extraction, truth maintenance, and provenance tracking",
55
"author": {
66
"name": "Valentino Stoll",

.claude/settings.json

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,15 @@
99
"timeout": 5
1010
}
1111
]
12+
},
13+
{
14+
"hooks": [
15+
{
16+
"type": "command",
17+
"command": "claude-memory hook ingest --db /Users/valentinostoll/src/claude_memory/.claude/memory.sqlite3",
18+
"timeout": 5
19+
}
20+
]
1221
}
1322
],
1423
"SessionStart": [
@@ -36,6 +45,20 @@
3645
"timeout": 30
3746
}
3847
]
48+
},
49+
{
50+
"hooks": [
51+
{
52+
"type": "command",
53+
"command": "claude-memory hook ingest --db /Users/valentinostoll/src/claude_memory/.claude/memory.sqlite3",
54+
"timeout": 30
55+
},
56+
{
57+
"type": "command",
58+
"command": "claude-memory hook sweep --db /Users/valentinostoll/src/claude_memory/.claude/memory.sqlite3",
59+
"timeout": 30
60+
}
61+
]
3962
}
4063
],
4164
"SessionEnd": [
@@ -52,6 +75,20 @@
5275
"timeout": 30
5376
}
5477
]
78+
},
79+
{
80+
"hooks": [
81+
{
82+
"type": "command",
83+
"command": "claude-memory hook ingest --db /Users/valentinostoll/src/claude_memory/.claude/memory.sqlite3",
84+
"timeout": 30
85+
},
86+
{
87+
"type": "command",
88+
"command": "claude-memory hook sweep --db /Users/valentinostoll/src/claude_memory/.claude/memory.sqlite3",
89+
"timeout": 30
90+
}
91+
]
5592
}
5693
],
5794
"TaskCompleted": [
@@ -63,6 +100,15 @@
63100
"timeout": 10
64101
}
65102
]
103+
},
104+
{
105+
"hooks": [
106+
{
107+
"type": "command",
108+
"command": "claude-memory hook ingest --db /Users/valentinostoll/src/claude_memory/.claude/memory.sqlite3",
109+
"timeout": 10
110+
}
111+
]
66112
}
67113
],
68114
"TeammateIdle": [
@@ -74,7 +120,16 @@
74120
"timeout": 15
75121
}
76122
]
123+
},
124+
{
125+
"hooks": [
126+
{
127+
"type": "command",
128+
"command": "claude-memory hook ingest --db /Users/valentinostoll/src/claude_memory/.claude/memory.sqlite3",
129+
"timeout": 15
130+
}
131+
]
77132
}
78133
]
79134
}
80-
}
135+
}

.claude/settings.local.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,6 @@
5151
"Skill(improve:*)"
5252
]
5353
},
54-
"enableAllProjectMcpServers": true
54+
"enableAllProjectMcpServers": true,
55+
"outputStyle": "memory-aware"
5556
}

CHANGELOG.md

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,53 @@ All notable changes to this project will be documented in this file.
44

55
## [Unreleased]
66

7+
## [0.8.0] - 2026-03-30
8+
79
### Added
810

911
**Three-Layer Distillation Pipeline**
1012
- Automatic distillation via NullDistiller in ingest pipeline (Layer 1: regex-based, P95 < 5ms)
1113
- Context hook injection for LLM-based extraction at SessionStart (Layer 2: Claude Code as distiller, zero extra cost)
1214
- `/distill-transcripts` skill for manual deep extraction (Layer 3: on-demand, depth-aware prompts)
13-
- `memory.undistilled` MCP tool to list content items not yet deeply distilled
14-
- `memory.mark_distilled` MCP tool to mark content items as distilled after extraction
15+
- `memory.undistilled` and `memory.mark_distilled` MCP tools for distillation tracking
16+
- `Hook::DistillationRunner` extracted from Handler for context hook injection
1517
- `TaskCompleted` and `TeammateIdle` hook events for ingest triggers
1618
- Distillation metrics backfill on database initialization
1719
- Doctor check for undistilled content
20+
- Pending distillation count in `memory.status` output
21+
22+
**Recall Enhancements**
23+
- Intent parameter for recall query disambiguation (#3)
24+
- Retrieval score traces for semantic search (#5)
25+
- Configurable embedding providers with dimension checking
26+
27+
**Hook Enhancements**
28+
- `statusMessage` on all hooks for descriptive spinner text during hook execution
29+
- `StopFailure` hook to capture transcript data even on session errors (rate limits, server errors)
30+
- `Notification` hook with `idle_prompt` matcher for opportunistic sweep during idle
31+
32+
**New Commands & Skills**
33+
- `install-skill` command and `memory-recall` agent (#8, #12)
34+
- Shell completion command for bash and zsh (#18)
1835

1936
**Distillation Benchmark Results**
2037
- NullDistiller: Concept Recall 0.952, Fact Precision/Recall 1.000 (31 test cases)
2138
- Claude Code LLM: Concept Recall 0.902 (all 41 cases), 0.900 on semantic cases (vs 0.333 for regex)
2239
- Average 1.6 facts stored per case across LLM extraction
40+
- E2E distillation recall benchmark and extraction quality benchmarks
41+
- Concept-based matching for distiller-agnostic benchmark comparison
42+
43+
### Fixed
44+
45+
- `--allowedTools` added to `ClaudeCliRunner` for MCP tool permissions
46+
- Test isolation for context hook when global database has facts
47+
48+
### Internal
49+
- Extracted `RetryHandler` and `SchemaManager` modules from `SQLiteStore`
50+
- Extracted `Recall` into engine strategy pattern with `DualEngine`, `LegacyEngine`, and shared `QueryCore`
51+
- Extracted `Tools` god object into 6 handler modules
52+
- Added 36 specs for 5 previously untested files
53+
- All 3 god objects eliminated, 0 files over 500 lines
2354

2455
## [0.7.1] - 2026-03-17
2556

Gemfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PATH
22
remote: .
33
specs:
4-
claude_memory (0.7.1)
4+
claude_memory (0.8.0)
55
extralite (~> 2.14)
66
sequel (~> 5.0)
77
sqlite-vec (~> 0.1)
@@ -137,7 +137,7 @@ DEPENDENCIES
137137
CHECKSUMS
138138
ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383
139139
bigdecimal (4.0.1) sha256=8b07d3d065a9f921c80ceaea7c9d4ae596697295b584c296fe599dd0ad01c4a7
140-
claude_memory (0.7.1)
140+
claude_memory (0.8.0)
141141
date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0
142142
diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
143143
erb (6.0.1) sha256=28ecdd99c5472aebd5674d6061e3c6b0a45c049578b071e5a52c2a7f13c197e5

lib/claude_memory/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# frozen_string_literal: true
22

33
module ClaudeMemory
4-
VERSION = "0.7.1"
4+
VERSION = "0.8.0"
55
end

0 commit comments

Comments
 (0)