claude_memory 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.claude/memory.sqlite3 +0 -0
- data/.claude/rules/claude_memory.generated.md +42 -64
- data/.claude/skills/release/SKILL.md +44 -6
- data/.claude/skills/study-repo/SKILL.md +15 -0
- data/.claude-plugin/commands/audit-memory.md +68 -0
- data/.claude-plugin/marketplace.json +1 -1
- data/.claude-plugin/plugin.json +1 -1
- data/CHANGELOG.md +26 -0
- data/CLAUDE.md +9 -2
- data/README.md +29 -1
- data/db/migrations/018_add_otel_telemetry.rb +81 -0
- data/docs/1_0_punchlist.md +318 -66
- data/docs/api_stability.md +341 -0
- data/docs/audit_runbook.md +209 -0
- data/docs/claude_monitoring.md +956 -0
- data/docs/improvements.md +148 -9
- data/docs/influence/ai-memory-systems-2026.md +403 -0
- data/docs/memory_audit_2026-05-21.md +303 -0
- data/docs/plugin.md +1 -1
- data/lib/claude_memory/audit/checks.rb +239 -0
- data/lib/claude_memory/audit/finding.rb +33 -0
- data/lib/claude_memory/audit/runner.rb +73 -0
- data/lib/claude_memory/commands/audit_command.rb +117 -0
- data/lib/claude_memory/commands/dashboard_command.rb +2 -1
- data/lib/claude_memory/commands/import_auto_memory_command.rb +180 -0
- data/lib/claude_memory/commands/otel_command.rb +240 -0
- data/lib/claude_memory/commands/registry.rb +4 -1
- data/lib/claude_memory/configuration.rb +60 -0
- data/lib/claude_memory/core/fact_query_builder.rb +1 -0
- data/lib/claude_memory/dashboard/api.rb +8 -0
- data/lib/claude_memory/dashboard/index.html +140 -1
- data/lib/claude_memory/dashboard/prompt_journey.rb +48 -0
- data/lib/claude_memory/dashboard/server.rb +86 -0
- data/lib/claude_memory/dashboard/telemetry.rb +156 -0
- data/lib/claude_memory/deprecations.rb +106 -0
- data/lib/claude_memory/distill/reference_material_detector.rb +37 -4
- data/lib/claude_memory/hook/auto_memory_mirror.rb +7 -3
- data/lib/claude_memory/hook/context_injector.rb +11 -2
- data/lib/claude_memory/mcp/tool_definitions.rb +3 -3
- data/lib/claude_memory/otel/attributes.rb +118 -0
- data/lib/claude_memory/otel/constants.rb +32 -0
- data/lib/claude_memory/otel/ingestor.rb +54 -0
- data/lib/claude_memory/otel/otlp_json_envelope.rb +254 -0
- data/lib/claude_memory/otel/prompt_scope.rb +108 -0
- data/lib/claude_memory/otel/settings_writer.rb +122 -0
- data/lib/claude_memory/otel/status.rb +58 -0
- data/lib/claude_memory/recall/staleness_annotator.rb +73 -0
- data/lib/claude_memory/resolve/predicate_policy.rb +17 -1
- data/lib/claude_memory/resolve/resolver.rb +30 -3
- data/lib/claude_memory/shortcuts.rb +61 -18
- data/lib/claude_memory/store/prompt_journey_query.rb +87 -0
- data/lib/claude_memory/store/schema_manager.rb +1 -1
- data/lib/claude_memory/store/sqlite_store.rb +136 -0
- data/lib/claude_memory/sweep/maintenance.rb +31 -1
- data/lib/claude_memory/sweep/sweeper.rb +6 -0
- data/lib/claude_memory/version.rb +1 -1
- data/lib/claude_memory.rb +18 -0
- metadata +26 -1
|
@@ -17,7 +17,10 @@ module ClaudeMemory
|
|
|
17
17
|
proposed_fact_ttl_days: 14,
|
|
18
18
|
disputed_fact_ttl_days: 30,
|
|
19
19
|
content_retention_days: 30,
|
|
20
|
-
mcp_tool_call_retention_days: 90
|
|
20
|
+
mcp_tool_call_retention_days: 90,
|
|
21
|
+
otel_metric_retention_days: 30,
|
|
22
|
+
otel_event_retention_days: 14,
|
|
23
|
+
otel_trace_retention_days: 7
|
|
21
24
|
}.freeze
|
|
22
25
|
|
|
23
26
|
attr_reader :store
|
|
@@ -249,6 +252,33 @@ module ClaudeMemory
|
|
|
249
252
|
@store.mcp_tool_calls.where { called_at < cutoff }.delete
|
|
250
253
|
end
|
|
251
254
|
|
|
255
|
+
# Delete OTel metric data points older than retention window.
|
|
256
|
+
# Returns: Integer count of deleted rows (0 if table missing).
|
|
257
|
+
def prune_old_otel_metrics
|
|
258
|
+
return 0 unless @store.db.table_exists?(:otel_metrics)
|
|
259
|
+
|
|
260
|
+
cutoff = cutoff_time(@config[:otel_metric_retention_days])
|
|
261
|
+
@store.otel_metrics.where { recorded_at < cutoff }.delete
|
|
262
|
+
end
|
|
263
|
+
|
|
264
|
+
# Delete OTel log-style events older than retention window.
|
|
265
|
+
# Returns: Integer count of deleted rows (0 if table missing).
|
|
266
|
+
def prune_old_otel_events
|
|
267
|
+
return 0 unless @store.db.table_exists?(:otel_events)
|
|
268
|
+
|
|
269
|
+
cutoff = cutoff_time(@config[:otel_event_retention_days])
|
|
270
|
+
@store.otel_events.where { occurred_at < cutoff }.delete
|
|
271
|
+
end
|
|
272
|
+
|
|
273
|
+
# Delete OTel trace spans older than retention window.
|
|
274
|
+
# Returns: Integer count of deleted rows (0 if table missing).
|
|
275
|
+
def prune_old_otel_traces
|
|
276
|
+
return 0 unless @store.db.table_exists?(:otel_traces)
|
|
277
|
+
|
|
278
|
+
cutoff = cutoff_time(@config[:otel_trace_retention_days])
|
|
279
|
+
@store.otel_traces.where { recorded_at < cutoff }.delete
|
|
280
|
+
end
|
|
281
|
+
|
|
252
282
|
# Checkpoint the SQLite WAL file for compaction.
|
|
253
283
|
# Returns: true
|
|
254
284
|
def checkpoint_wal
|
|
@@ -8,6 +8,9 @@ module ClaudeMemory
|
|
|
8
8
|
disputed_fact_ttl_days: 30,
|
|
9
9
|
content_retention_days: 30,
|
|
10
10
|
mcp_tool_call_retention_days: 90,
|
|
11
|
+
otel_metric_retention_days: 30,
|
|
12
|
+
otel_event_retention_days: 14,
|
|
13
|
+
otel_trace_retention_days: 7,
|
|
11
14
|
default_budget_seconds: 5
|
|
12
15
|
}.freeze
|
|
13
16
|
|
|
@@ -43,6 +46,9 @@ module ClaudeMemory
|
|
|
43
46
|
run_if_within_budget { @stats[:orphaned_provenance_deleted] = maintenance.prune_orphaned_provenance }
|
|
44
47
|
run_if_within_budget { @stats[:old_content_pruned] = maintenance.prune_old_content }
|
|
45
48
|
run_if_within_budget { @stats[:mcp_tool_calls_pruned] = maintenance.prune_old_mcp_tool_calls }
|
|
49
|
+
run_if_within_budget { @stats[:otel_metrics_pruned] = maintenance.prune_old_otel_metrics }
|
|
50
|
+
run_if_within_budget { @stats[:otel_events_pruned] = maintenance.prune_old_otel_events }
|
|
51
|
+
run_if_within_budget { @stats[:otel_traces_pruned] = maintenance.prune_old_otel_traces }
|
|
46
52
|
run_if_within_budget { @stats[:vec_backfilled] = maintenance.backfill_vec_index }
|
|
47
53
|
run_if_within_budget { @stats[:vec_cleaned] = maintenance.cleanup_vec_expired }
|
|
48
54
|
run_if_within_budget { @stats[:wal_checkpointed] = maintenance.checkpoint_wal }
|
data/lib/claude_memory.rb
CHANGED
|
@@ -77,6 +77,14 @@ require_relative "claude_memory/commands/dedupe_conflicts_command"
|
|
|
77
77
|
require_relative "claude_memory/commands/reclassify_references_command"
|
|
78
78
|
require_relative "claude_memory/commands/census_command"
|
|
79
79
|
require_relative "claude_memory/commands/dashboard_command"
|
|
80
|
+
require_relative "claude_memory/otel/constants"
|
|
81
|
+
require_relative "claude_memory/otel/attributes"
|
|
82
|
+
require_relative "claude_memory/otel/otlp_json_envelope"
|
|
83
|
+
require_relative "claude_memory/otel/ingestor"
|
|
84
|
+
require_relative "claude_memory/otel/settings_writer"
|
|
85
|
+
require_relative "claude_memory/otel/status"
|
|
86
|
+
require_relative "claude_memory/otel/prompt_scope"
|
|
87
|
+
require_relative "claude_memory/store/prompt_journey_query"
|
|
80
88
|
require_relative "claude_memory/dashboard/fact_presenter"
|
|
81
89
|
require_relative "claude_memory/dashboard/scoped_fact_resolver"
|
|
82
90
|
require_relative "claude_memory/dashboard/conflicts"
|
|
@@ -87,13 +95,22 @@ require_relative "claude_memory/dashboard/knowledge"
|
|
|
87
95
|
require_relative "claude_memory/dashboard/reuse"
|
|
88
96
|
require_relative "claude_memory/dashboard/timeline"
|
|
89
97
|
require_relative "claude_memory/dashboard/health"
|
|
98
|
+
require_relative "claude_memory/dashboard/telemetry"
|
|
99
|
+
require_relative "claude_memory/dashboard/prompt_journey"
|
|
90
100
|
require_relative "claude_memory/dashboard/api"
|
|
91
101
|
require_relative "claude_memory/dashboard/server"
|
|
92
102
|
require_relative "claude_memory/commands/digest_command"
|
|
93
103
|
require_relative "claude_memory/commands/show_command"
|
|
104
|
+
require_relative "claude_memory/commands/otel_command"
|
|
105
|
+
require_relative "claude_memory/commands/import_auto_memory_command"
|
|
106
|
+
require_relative "claude_memory/audit/finding"
|
|
107
|
+
require_relative "claude_memory/audit/checks"
|
|
108
|
+
require_relative "claude_memory/audit/runner"
|
|
109
|
+
require_relative "claude_memory/commands/audit_command"
|
|
94
110
|
require_relative "claude_memory/commands/registry"
|
|
95
111
|
require_relative "claude_memory/cli"
|
|
96
112
|
require_relative "claude_memory/configuration"
|
|
113
|
+
require_relative "claude_memory/deprecations"
|
|
97
114
|
require_relative "claude_memory/distill/distiller"
|
|
98
115
|
require_relative "claude_memory/distill/extraction"
|
|
99
116
|
require_relative "claude_memory/distill/null_distiller"
|
|
@@ -149,6 +166,7 @@ require_relative "claude_memory/recall/query_core"
|
|
|
149
166
|
require_relative "claude_memory/recall/legacy_engine"
|
|
150
167
|
require_relative "claude_memory/recall/dual_engine"
|
|
151
168
|
require_relative "claude_memory/recall/stale_detector"
|
|
169
|
+
require_relative "claude_memory/recall/staleness_annotator"
|
|
152
170
|
require_relative "claude_memory/recall"
|
|
153
171
|
require_relative "claude_memory/shortcuts"
|
|
154
172
|
require_relative "claude_memory/resolve/predicate_policy"
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: claude_memory
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.12.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Valentino Stoll
|
|
@@ -82,6 +82,7 @@ executables:
|
|
|
82
82
|
extensions: []
|
|
83
83
|
extra_rdoc_files: []
|
|
84
84
|
files:
|
|
85
|
+
- ".claude-plugin/commands/audit-memory.md"
|
|
85
86
|
- ".claude-plugin/commands/distill-transcripts.md"
|
|
86
87
|
- ".claude-plugin/commands/memory-recall.md"
|
|
87
88
|
- ".claude-plugin/marketplace.json"
|
|
@@ -144,16 +145,20 @@ files:
|
|
|
144
145
|
- db/migrations/015_add_activity_events.rb
|
|
145
146
|
- db/migrations/016_add_moment_feedback.rb
|
|
146
147
|
- db/migrations/017_add_last_recalled_at.rb
|
|
148
|
+
- db/migrations/018_add_otel_telemetry.rb
|
|
147
149
|
- docs/1_0_punchlist.md
|
|
148
150
|
- docs/EXAMPLES.md
|
|
149
151
|
- docs/GETTING_STARTED.md
|
|
150
152
|
- docs/RELEASE_NOTES_v0.2.0.md
|
|
151
153
|
- docs/RUBY_COMMUNITY_POST_v0.2.0.md
|
|
152
154
|
- docs/SOCIAL_MEDIA_v0.2.0.md
|
|
155
|
+
- docs/api_stability.md
|
|
153
156
|
- docs/architecture.md
|
|
154
157
|
- docs/audit-queries.md
|
|
158
|
+
- docs/audit_runbook.md
|
|
155
159
|
- docs/auto_init_design.md
|
|
156
160
|
- docs/ci_integration.md
|
|
161
|
+
- docs/claude_monitoring.md
|
|
157
162
|
- docs/dashboard.md
|
|
158
163
|
- docs/demo.md
|
|
159
164
|
- docs/eval_week1_summary.md
|
|
@@ -162,6 +167,7 @@ files:
|
|
|
162
167
|
- docs/expert_review.md
|
|
163
168
|
- docs/improvements.md
|
|
164
169
|
- docs/influence/.gitkeep
|
|
170
|
+
- docs/influence/ai-memory-systems-2026.md
|
|
165
171
|
- docs/influence/claude-mem.md
|
|
166
172
|
- docs/influence/claude-supermemory.md
|
|
167
173
|
- docs/influence/cq.md
|
|
@@ -170,6 +176,7 @@ files:
|
|
|
170
176
|
- docs/influence/kbs.md
|
|
171
177
|
- docs/influence/lossless-claw.md
|
|
172
178
|
- docs/influence/qmd.md
|
|
179
|
+
- docs/memory_audit_2026-05-21.md
|
|
173
180
|
- docs/organizational_memory_playbook.md
|
|
174
181
|
- docs/plans/feature_adoption_plan.md
|
|
175
182
|
- docs/plans/feature_adoption_plan_revised.md
|
|
@@ -184,7 +191,11 @@ files:
|
|
|
184
191
|
- lefthook.yml
|
|
185
192
|
- lib/claude_memory.rb
|
|
186
193
|
- lib/claude_memory/activity_log.rb
|
|
194
|
+
- lib/claude_memory/audit/checks.rb
|
|
195
|
+
- lib/claude_memory/audit/finding.rb
|
|
196
|
+
- lib/claude_memory/audit/runner.rb
|
|
187
197
|
- lib/claude_memory/cli.rb
|
|
198
|
+
- lib/claude_memory/commands/audit_command.rb
|
|
188
199
|
- lib/claude_memory/commands/base_command.rb
|
|
189
200
|
- lib/claude_memory/commands/census_command.rb
|
|
190
201
|
- lib/claude_memory/commands/changes_command.rb
|
|
@@ -209,6 +220,7 @@ files:
|
|
|
209
220
|
- lib/claude_memory/commands/git_lfs_command.rb
|
|
210
221
|
- lib/claude_memory/commands/help_command.rb
|
|
211
222
|
- lib/claude_memory/commands/hook_command.rb
|
|
223
|
+
- lib/claude_memory/commands/import_auto_memory_command.rb
|
|
212
224
|
- lib/claude_memory/commands/index_command.rb
|
|
213
225
|
- lib/claude_memory/commands/ingest_command.rb
|
|
214
226
|
- lib/claude_memory/commands/init_command.rb
|
|
@@ -219,6 +231,7 @@ files:
|
|
|
219
231
|
- lib/claude_memory/commands/initializers/memory_instructions_writer.rb
|
|
220
232
|
- lib/claude_memory/commands/initializers/project_initializer.rb
|
|
221
233
|
- lib/claude_memory/commands/install_skill_command.rb
|
|
234
|
+
- lib/claude_memory/commands/otel_command.rb
|
|
222
235
|
- lib/claude_memory/commands/promote_command.rb
|
|
223
236
|
- lib/claude_memory/commands/publish_command.rb
|
|
224
237
|
- lib/claude_memory/commands/recall_command.rb
|
|
@@ -266,11 +279,14 @@ files:
|
|
|
266
279
|
- lib/claude_memory/dashboard/index.html
|
|
267
280
|
- lib/claude_memory/dashboard/knowledge.rb
|
|
268
281
|
- lib/claude_memory/dashboard/moments.rb
|
|
282
|
+
- lib/claude_memory/dashboard/prompt_journey.rb
|
|
269
283
|
- lib/claude_memory/dashboard/reuse.rb
|
|
270
284
|
- lib/claude_memory/dashboard/scoped_fact_resolver.rb
|
|
271
285
|
- lib/claude_memory/dashboard/server.rb
|
|
286
|
+
- lib/claude_memory/dashboard/telemetry.rb
|
|
272
287
|
- lib/claude_memory/dashboard/timeline.rb
|
|
273
288
|
- lib/claude_memory/dashboard/trust.rb
|
|
289
|
+
- lib/claude_memory/deprecations.rb
|
|
274
290
|
- lib/claude_memory/distill/bare_conclusion_detector.rb
|
|
275
291
|
- lib/claude_memory/distill/distiller.rb
|
|
276
292
|
- lib/claude_memory/distill/extraction.rb
|
|
@@ -330,6 +346,13 @@ files:
|
|
|
330
346
|
- lib/claude_memory/mcp/tool_definitions.rb
|
|
331
347
|
- lib/claude_memory/mcp/tool_helpers.rb
|
|
332
348
|
- lib/claude_memory/mcp/tools.rb
|
|
349
|
+
- lib/claude_memory/otel/attributes.rb
|
|
350
|
+
- lib/claude_memory/otel/constants.rb
|
|
351
|
+
- lib/claude_memory/otel/ingestor.rb
|
|
352
|
+
- lib/claude_memory/otel/otlp_json_envelope.rb
|
|
353
|
+
- lib/claude_memory/otel/prompt_scope.rb
|
|
354
|
+
- lib/claude_memory/otel/settings_writer.rb
|
|
355
|
+
- lib/claude_memory/otel/status.rb
|
|
333
356
|
- lib/claude_memory/publish.rb
|
|
334
357
|
- lib/claude_memory/recall.rb
|
|
335
358
|
- lib/claude_memory/recall/dual_engine.rb
|
|
@@ -338,11 +361,13 @@ files:
|
|
|
338
361
|
- lib/claude_memory/recall/legacy_engine.rb
|
|
339
362
|
- lib/claude_memory/recall/query_core.rb
|
|
340
363
|
- lib/claude_memory/recall/stale_detector.rb
|
|
364
|
+
- lib/claude_memory/recall/staleness_annotator.rb
|
|
341
365
|
- lib/claude_memory/resolve/predicate_policy.rb
|
|
342
366
|
- lib/claude_memory/resolve/resolver.rb
|
|
343
367
|
- lib/claude_memory/shortcuts.rb
|
|
344
368
|
- lib/claude_memory/store/llm_cache.rb
|
|
345
369
|
- lib/claude_memory/store/metrics_aggregator.rb
|
|
370
|
+
- lib/claude_memory/store/prompt_journey_query.rb
|
|
346
371
|
- lib/claude_memory/store/retry_handler.rb
|
|
347
372
|
- lib/claude_memory/store/schema_manager.rb
|
|
348
373
|
- lib/claude_memory/store/sqlite_store.rb
|