This release includes breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+1 more
Summary
AI summaryFixed dashboard PUT crash when updating a single summary field without brief.
Full changelog
Fixed
install.py: generalized hook installation to loop over all hook types (Stop, PreCompact, etc.) instead of hardcoding Stop-onlyuninstall.py: generalized hook removal to iterate all hook type keys, not just Stop_hook_matches()in both install/uninstall: now recognizespre_compact_save.pyalongsideauto_save.pyanddb_save.pytests/test_dashboard.py: addedpytest.importorskip("flask_cors")guard to prevent import errors when flask-cors is not installedsave_summary(): madebriefoptional for updates (COALESCE preserves existing value); still required for new summaries (raises ValueError). Fixes dashboard PUT crash when updating a single summary field withoutbrief.dashboard.py:api_delete_session()now cleans upcontext_checkpoints(linked by TEXTsession_id) alongside the FK child tables. Previously, deleting a session via the dashboard left orphaned checkpoint rows.- README: corrected dedup mechanism description (brief pattern check, not detailed summary null check)
- README: removed
pip install context-memory[dashboard](package not published to PyPI) - README: fixed CLI Tools paths from
scripts/toskills/context-memory/scripts/ - README: updated test count from 351 to 364
recall.md: added missing--formatflag to argument-hint and options listschema-reference.md: addedPRAGMA foreign_keys=ONto documented PRAGMA settingsdb_search.py: fixed stalesearch_tier1()docstring to includecode_snippets_ftsdb_save.py: fixedsave_messages()sequence collision when appending (replace=False) — now queriesMAX(sequence)to continue numbering instead of restarting at 0db_search.py: fixedsearch_tier1()cross-table BM25 score contamination — topic/snippet BM25 scores are no longer mixed with summary scores. Summary BM25 is now the sole ranking signal with a fixed boost per additional matching source. Non-summary matches are bucketed separately after summary matches.
Changed
test_dashboard.py: added regression tests for partial summary updates (outcome/user_note without brief) and checkpoint cleanup on session deletetest_db_save.py: added tests for save_summary update-without-brief and insert-without-brief-raises- Extracted shared
read_hook_input()andextract_text_content(content, max_length=None)todb_utils.py, replacing duplicate implementations inauto_save.pyandpre_compact_save.py __init__.py: added exports forsave_checkpoint,prune_checkpoints,read_hook_input, andextract_text_content- Comprehensive README rewrite: added Architecture section, CI/test badges, CLI Tools section, Testing section; expanded Features, Installation, How It Works, and Web Dashboard sections to match actual codebase capabilities
schema-reference.md: addedcontext_checkpointstable documentation, Schema Migrations section, and checkpoint cleanup note- Updated tier 1 search descriptions in README, SKILL.md, CLAUDE.md, schema-reference.md, mcp_server.py, and db_init.py to reflect summary-ranked multi-source boost behavior
Full Changelog: https://github.com/ErebusEnigma/context-memory/compare/v1.3.0...v1.3.1
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About ErebusEnigma/context-memory
Persistent, searchable context storage across Claude Code sessions using SQLite FTS5. Save sessions with AI-generated summaries, two-tier full-text search, checkpoint recovery, and a web dashboard.
Related context
Related tools
Beta — feedback welcome: [email protected]