diff --git a/CHANGELOG.md b/CHANGELOG.md index 9bb6f5e..2af2baf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,13 +1,31 @@ # Changelog # Covers: public MemoryMaster releases and their user-visible changes. -# Key terms: governed capture, recall, lineage, ontology, Docker, LongMemEval. +# Key terms: graph observations, compiled profile, governed capture, recall, lineage. # Read when: upgrading MemoryMaster or preparing release notes and migrations. -# Current release: 4.6.0, personal-first governed universal capture. +# Current release: 4.7.0, governed graph observations and compiled user profile. # Format: Keep a Changelog with Semantic Versioning. -# Updated: 2026-08-04 for post-v4.6.0 OAuth capture and Obsidian fixes. +# Updated: 2026-08-13 for graph observations, compiled profile, and activation fixes. ## [Unreleased] +## [4.7.0] - 2026-08-13 + +MemoryMaster 4.7 adds deterministic, evidence-supported graph observations and +an evidence-bound compiled user-profile projection. Observations remain opt-in +for recall, generated profile text remains a disposable view, SQLite remains +authoritative, and Gemini plus GLM are the activated provider path. + +### Added + +- Deterministic graph-component discovery, bounded observation synthesis, + immutable support manifests, steward promotion, lifecycle staleness, and + opt-in Python/CLI/MCP recall with a separate token-budgeted section. +- A resumable GLM map/reduce compiled profile with exact transcript supports, + independent-session gating, bounded generated output, and SessionStart + injection that never treats profile facts as agent instructions. +- Additive SQLite migrations 20 and 21, dashboard visibility, queue diagnostics, + disposable lifecycle demonstrations, and scheduled Dreaming integration. + ### Fixed - Capture claim and graph jobs can now reuse the configured OpenCode OAuth @@ -18,6 +36,9 @@ - MCP claim ingestion no longer creates or updates an Obsidian vault unless `MEMORYMASTER_WIKI_ABSORB=1`; explicit opt-in logging and synthesis now share the configured vault path. +- Compiled-profile mapping derives transient IDs deterministically when GLM + emits numeric IDs, uses bounded prompts and provider timeouts, and no longer + exits silently while logging the SessionStart candidate count. ## [4.6.0] - 2026-08-04 diff --git a/docs/generated/release-truth.json b/docs/generated/release-truth.json index 4c79af5..05507e7 100644 --- a/docs/generated/release-truth.json +++ b/docs/generated/release-truth.json @@ -134,7 +134,7 @@ "console_entrypoints": 8, "mcp_tools": 50, "ops_cli_commands": 5, - "pytest_test_functions": 3793 + "pytest_test_functions": 3795 }, "feature_profile_matrix": { "capture_hook": [ @@ -255,5 +255,5 @@ "mcp" ] }, - "version": "4.6.0" + "version": "4.7.0" } diff --git a/docs/generated/release-truth.md b/docs/generated/release-truth.md index 46e53e7..b07647e 100644 --- a/docs/generated/release-truth.md +++ b/docs/generated/release-truth.md @@ -1,13 +1,19 @@ -# Generated release truth + +# Generated Release Truth +# Covers: package version and counted public CLI, MCP, and setup surfaces. +# Key terms: generated, release, package, commands, setup profiles. +# Read when: verifying a release artifact or investigating truth drift. +# Source: scripts/generate_release_truth.py; never edit this output by hand. + Do not edit this file by hand. Run `python scripts/generate_release_truth.py`. -- Package version: `4.6.0` +- Package version: `4.7.0` - MCP tools: **50** - Main CLI commands: **118** - Operations CLI commands: **5** - Console entrypoints: **8** -- Pytest source test functions: **3793** +- Pytest source test functions: **3795** ## MCP tools diff --git a/pyproject.toml b/pyproject.toml index c8d54d9..20e0d5f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "memorymaster" -version = "4.6.0" +version = "4.7.0" description = "Production-grade memory reliability system for AI coding agents. Lifecycle-managed claims with citations, conflict detection, steward governance, and MCP integration." license = {text = "MIT"} authors = [{name = "wolverin0"}] diff --git a/scripts/generate_release_truth.py b/scripts/generate_release_truth.py index c230d0a..5ca2087 100644 --- a/scripts/generate_release_truth.py +++ b/scripts/generate_release_truth.py @@ -89,7 +89,13 @@ def _release_truth() -> dict[str, Any]: def _markdown(data: dict[str, Any]) -> str: counts = data["counts"] lines = [ - "# Generated release truth", + "", + "# Generated Release Truth", + "# Covers: package version and counted public CLI, MCP, and setup surfaces.", + "# Key terms: generated, release, package, commands, setup profiles.", + "# Read when: verifying a release artifact or investigating truth drift.", + "# Source: scripts/generate_release_truth.py; never edit this output by hand.", + "", "", "Do not edit this file by hand. Run `python scripts/generate_release_truth.py`.", "",