Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions .planning/GRAPH-OBSERVATIONS-V1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<!-- doc-head: active PPR-7 graph-observations implementation ledger -->
# Graph Observations V1
# Covers: deterministic discovery, governed synthesis, lifecycle, opt-in recall, and rollout evidence.
# Key terms: exact signatures, union-find, support fingerprint, candidate observation, steward gate.
# Read when: implementing, reviewing, testing, or rolling back PPR-7.
# Status: implemented and locally verified; separate PR and CI evidence in progress.
<!-- /doc-head -->

## Fixed boundary

The feature derives optional observations only from current, confirmed,
non-sensitive claims with active evidence and graph-edge supports in one exact
tenant and scope. Components are deterministic; an LLM may summarize an
eligible component but cannot choose membership, cite outside it, promote its
own output, or feed observations back into extraction.

## Work ledger

| Area | Required outcome | Status |
|---|---|---|
| Migration 0020 | Add SQLite observation, support, and leased-job tables; PostgreSQL fails closed. | Implemented; migration tests pass |
| Discovery | Canonical signatures, hub suppression, union-find, bounds, deterministic fingerprints. | Implemented; 48-case evaluator is 100%/100% |
| Synthesis | Strict structured output, three-call cycle cap, provider/global budget, replay-safe `no_signal`. | Implemented; focused failure/cap tests pass |
| Lifecycle | Candidate-only creation, deterministic steward gate, immediate archive/stale on support change. | Implemented; promotion/retirement tests pass |
| Recall | Default byte-equivalent output; separately packed opt-in observations bounded to five. | Implemented; equivalence and opt-in tests pass |
| Surfaces | Python, CLI, MCP, dashboard, and disposable demo parity. | Implemented; focused surface tests pass |
| Evaluation | Versioned 40+ case corpus plus structural, citation, leakage, replay, and retrieval gates. | Local gates pass; PR CI pending |

## Acceptance evidence

- Structural component precision and recall are each at least 95% on the
versioned corpus; observation precision is at least 90% and root-cause
precision at least 85%.
- Citation/support correctness is 100%, with zero cross-tenant, cross-scope,
sensitive, retired, stale, candidate, or observation-generated support.
- Ordinary recall is byte-equivalent when observations are disabled; graph
top-five improves without more than 0.01 overall R@5/MRR regression.
- `improve()` only queues work and remains below 500 ms p95; an hourly scope
cycle performs at most three observation synthesis calls.
- Focused tests, the full non-ML suite, retrieval gates, Ruff, collection,
migration/restore, clean-wheel, supply-chain, and GitNexus checks pass before
a PPR-7 pull request is proposed.

## Local verification evidence

- Offline corpus: 48 cases, structural precision 1.00 and recall 1.00.
- Full non-ML suite: 4,463 passed, 72 skipped, 97 deselected, one expected
failure; Ruff and 4,633-test collection pass.
- Focused restore/retrieval gates: 17 passed; release/supply-chain contract
tests: 86 passed; regenerated release truth verifies.
- Clean wheel builds, passes Twine, installs into a fresh venv, initializes
migration 0020, and completes the observation promotion/recall/staleness demo.
- Feature generation remains disabled by default; the configured Dreaming
extraction/consolidation pair remains Gemini plus GLM.

## Rollout and rollback

Roll out through disposable SQLite and fake/local providers, feature-off wheel
installation, offline shadow evaluation, verified authoritative backup/restore,
then opt-in candidate generation. The 24-hour observation is post-implementation
operational evidence, not a coding prerequisite. Rollback disables generation
and recall, archives candidates, marks confirmed generated observations stale,
and preserves the additive tables and audit history.
11 changes: 6 additions & 5 deletions DOCS-MAP.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
<!-- doc-head: canonical documentation map; P5 verifier passed, PR #189 open -->
<!-- doc-head: canonical documentation map; P5 integrated, PPR-7 active -->
# DOCS-MAP - memorymaster
# Covers: trust verdicts and replacements for every canonical documentation surface.
# Key terms: CURRENT, SUPERSEDED, ABANDONED, GENERATED, roadmap, paper radar, ADR.
# Read when: locating authoritative project documentation before reading doc bodies.
# Updated: 2026-08-12 after repair5 verifier replay and PR #189 creation.
# Rule: PR #189 is open; merge, release, deploy, and PPR-7 remain blocked pending separate review and integration.
# Updated: 2026-08-12 after PR #189 merge, governed runtime deploy, and PPR-7 authorization.
# Rule: PPR-7 is isolated and opt-in; public release and automatic recall remain separately gated.
<!-- /doc-head -->

| File | Verdict | Last change | Reason |
|---|---|---|---|
| CHANGELOG.md | CURRENT | 2026-08-04 | Public release history; v4.6.0 records governed universal capture, measured quality changes, security evidence, and known follow-ups. |
| ROADMAP.md | CURRENT | 2026-08-12 | Sole authoritative roadmap; elapsed P5 evidence, pinned Gemini+GLM replay, repair5 verifier pass, and PR #189 open. |
| ROADMAP.md | CURRENT | 2026-08-12 | Sole authoritative roadmap; P5 is merged and locally deployed, while isolated PPR-7 implementation is active. |
| .planning/GRAPH-OBSERVATIONS-V1.md | CURRENT | 2026-08-12 | Bounded PPR-7 implementation ledger for deterministic supported components, governed synthesis, lifecycle, opt-in recall, and verification. |
| .planning/PAPER-RADAR-REVIEW-2026-08-08.md | CURRENT | 2026-08-08 | Primary-paper ledger covers 57-paper triage, 18 deep reviews, exact MemoryMaster gaps, and ordered PPR-1 through PPR-6 decisions subordinate to ROADMAP.md. |
| .planning/PAPER-RESEARCH-IMPLEMENTATION-2026-08-08.md | CURRENT | 2026-08-08 | Executable status ledger for PPR-1 through PPR-6; records acceptance criteria and evidence without competing with ROADMAP.md. |
| .planning/HERMES-SCOPE-SKILLS-INTEGRATION-2026-08-07.md | CURRENT | 2026-08-12 | Executable Tencent-derived ledger; repair5 passed and PR #189 is open without merge authority. |
Expand All @@ -24,7 +25,7 @@
| .planning/VNEXT-GOVERNED-CAPTURE-SPEC.md | CURRENT | 2026-07-27 | Bounded implementation specification that explicitly implements, and does not compete with, ROADMAP.md. |
| .planning/VNEXT-BASELINE-2026-07-27.md | CURRENT | 2026-07-27 | Reproducible pre-change retrieval, test, latency, package, capture, graph, and scheduler baseline at d33a268. |
| docs/adr/0015-governed-universal-capture-lineage.md | CURRENT | 2026-07-27 | Accepted data-flow decision fixing producer-to-source-to-evidence-to-claim-to-supported-graph lineage and retirement semantics. |
| docs/public-v1.md | CURRENT | 2026-08-08 | Stable facade, capture boundary, additive approved-skill recall, retirement semantics, dashboard inbox, and demo. |
| docs/public-v1.md | CURRENT | 2026-08-12 | Stable facade, capture boundary, opt-in approved skills and observations, retirement semantics, dashboard panels, and demo. |
| .planning/audits/2026-07-27-vnext-governed-capture/audit-delta.md | CURRENT | 2026-08-04 | SQLite activation, LifeAgent retirement, OAuth capture quality, public v4.6.0 release, rollback evidence, and the final seven-day observation gate. |
| docs/archive/IMPROVEMENT_PLAN.md | ABANDONED | 2026-06-20 | The doc serves as a generated audit and roadmap from March 2026 but is not referenced by any current docs; it contains specific version claims and 'P0' bugs that likely represent a historical snapshot rather than a living plan. |
| docs/archive/v315-experiments/E02-results.md | ABANDONED | 2026-06-20 | This is a negative result experiment from a past version (v315) where the code was explicitly reverted and not retained. |
Expand Down
22 changes: 17 additions & 5 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<!-- doc-head: sole authoritative roadmap; P5 verifier passed, PR #189 open -->
<!-- doc-head: sole authoritative roadmap; P5 merged/deployed, PPR-7 active -->
# MemoryMaster roadmap
# Covers: post-v4.6 sequence, Tencent-derived work, paper research, and deferrals.
# Key terms: Hermes, governed skills, paper radar, temporal projection, sustainability.
# Read when: choosing release scope, accepting a feature, or checking deferrals.
# Authority: sole roadmap; planning ledgers implement it and never replace it.
# Safety: SQLite authority and steward promotion remain fixed; PR #189 is open, never authorizing merge, release, deployment, or PPR-7.
# Safety: SQLite authority and steward promotion remain fixed; PPR-7 stays additive, opt-in, and unreleased pending its own evidence.
<!-- /doc-head -->

## Shipped in v4.6.0
Expand Down Expand Up @@ -59,8 +59,15 @@ its governed-claims authority:
- The pinned Gemini Flash Lite plus GLM 5.2 scheduled replay passes: exit 0,
eight extraction/consolidation/application decisions, zero errors, and one
stale crash run recovered. Repair5 independently replays the bounded gate
against the elapsed baseline and passes; [PR #189](https://github.com/wolverin0/memorymaster/pull/189)
is open, while merge, release, deployment, and PPR-7 remain prohibited.
against the elapsed baseline and passes. [PR #189](https://github.com/wolverin0/memorymaster/pull/189)
merged as `d34b80c` and its clean wheel is active in the governed local
runtime with healthy MCP HTTP probes; the scheduled Dreaming pair remains
Gemini Flash Lite plus GLM 5.2.
- PPR-7 governed graph observations are implemented and locally verified on an
isolated feature branch. Implementation is additive, candidate-first, and
opt-in; its separate PR/CI, feature-off deployment, and rollout evidence are
still required before activation. No public release or automatic
ordinary-recall inclusion is implied.
- The invalid earlier window remains incident evidence only because it included
a VM OOM/gateway interruption and did not contain P5.
- Keep v4.6.0 operational while the post-release Obsidian opt-in and OpenCode
Expand All @@ -78,7 +85,12 @@ its governed-claims authority:
progressive approved-skill reuse are implemented, verified, and active.
Windows snapshot/readiness gates, consoleless P5 runtime replacement, VM
package rollback preparation, and live functional probes passed. The repair5
bounded verifier now passes; create a PR only, with no merge or follow-on PPR-7 work.
bounded verifier passed, PR #189 merged, and the governed local runtime was
upgraded with a clean wheel and healthy post-restart probe.
- Review and integrate PPR-7 according to `.planning/GRAPH-OBSERVATIONS-V1.md`;
exact support signatures, deterministic discovery, candidate-only synthesis,
observation-specific steward validation, and explicit recall inclusion are
implemented with local evidence, while PR/CI and feature-off rollout remain.
- Improve personal/local backup guidance beyond the already verified disposable
backup/restore and migration procedure.
- Keep semantic recall optional and disabled unless a local user deliberately
Expand Down
55 changes: 55 additions & 0 deletions benchmarks/fixtures/graph_observations_v1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
{
"corpus_version": "graph-observations-v1",
"algorithm_version": "graph-observations-union-find-v1",
"ontology_version": "personal-v1",
"cases": [
{"id":"dep-01","category":"dependency_chain","template":"eligible","expected":[[1,2,3]]},
{"id":"dep-02","category":"dependency_chain","template":"eligible","expected":[[1,2,3]]},
{"id":"dep-03","category":"dependency_chain","template":"merge","expected":[[1,2,3,4]]},
{"id":"dep-04","category":"dependency_chain","template":"split","expected":[[1,2,3],[4,5,6]]},
{"id":"root-01","category":"root_cause","template":"eligible","expected":[[1,2,3]]},
{"id":"root-02","category":"root_cause","template":"merge","expected":[[1,2,3,4]]},
{"id":"root-03","category":"root_cause","template":"eligible","expected":[[1,2,3]]},
{"id":"root-04","category":"root_cause","template":"split","expected":[[1,2,3],[4,5,6]]},
{"id":"pattern-01","category":"recurring_pattern","template":"eligible","expected":[[1,2,3]]},
{"id":"pattern-02","category":"recurring_pattern","template":"merge","expected":[[1,2,3,4]]},
{"id":"pattern-03","category":"recurring_pattern","template":"eligible","expected":[[1,2,3]]},
{"id":"pattern-04","category":"recurring_pattern","template":"split","expected":[[1,2,3],[4,5,6]]},
{"id":"unrelated-01","category":"unrelated_similarity","template":"unrelated","expected":[]},
{"id":"unrelated-02","category":"unrelated_similarity","template":"unrelated","expected":[]},
{"id":"unrelated-03","category":"unrelated_similarity","template":"one_signature","expected":[]},
{"id":"unrelated-04","category":"unrelated_similarity","template":"insufficient_claims","expected":[]},
{"id":"hub-01","category":"hub","template":"hub","expected":[]},
{"id":"hub-02","category":"hub","template":"hub","expected":[]},
{"id":"hub-03","category":"hub","template":"hub","expected":[]},
{"id":"bounds-01","category":"bounds","template":"oversized","expected":[]},
{"id":"bounds-02","category":"bounds","template":"oversized","expected":[]},
{"id":"conflict-01","category":"conflict","template":"excluded","state":"conflicted","expected":[]},
{"id":"conflict-02","category":"conflict","template":"excluded","state":"candidate","expected":[]},
{"id":"conflict-03","category":"conflict","template":"excluded","state":"stale","expected":[]},
{"id":"retired-01","category":"retired_evidence","template":"excluded","state":"retired","expected":[]},
{"id":"retired-02","category":"retired_evidence","template":"excluded","state":"retired","expected":[]},
{"id":"retired-03","category":"retired_evidence","template":"excluded","state":"retired","expected":[]},
{"id":"scope-01","category":"scope_boundary","template":"cross_scope","expected":[[1,2,3]]},
{"id":"scope-02","category":"scope_boundary","template":"cross_scope","expected":[[1,2,3]]},
{"id":"scope-03","category":"scope_boundary","template":"excluded","state":"wrong_scope","expected":[]},
{"id":"tenant-01","category":"tenant_boundary","template":"cross_tenant","expected":[[1,2,3]]},
{"id":"tenant-02","category":"tenant_boundary","template":"cross_tenant","expected":[[1,2,3]]},
{"id":"tenant-03","category":"tenant_boundary","template":"excluded","state":"wrong_tenant","expected":[]},
{"id":"secret-01","category":"sensitive_data","template":"excluded","state":"sensitive_claim","expected":[]},
{"id":"secret-02","category":"sensitive_data","template":"excluded","state":"sensitive_evidence","expected":[]},
{"id":"secret-03","category":"sensitive_data","template":"excluded","state":"sensitive_source","expected":[]},
{"id":"candidate-01","category":"lifecycle","template":"excluded","state":"candidate","expected":[]},
{"id":"stale-01","category":"lifecycle","template":"excluded","state":"stale","expected":[]},
{"id":"observation-01","category":"feedback_loop","template":"excluded","state":"observation","expected":[]},
{"id":"skill-01","category":"feedback_loop","template":"excluded","state":"skill","expected":[]},
{"id":"summary-01","category":"feedback_loop","template":"excluded","state":"summary","expected":[]},
{"id":"observer-01","category":"feedback_loop","template":"excluded","state":"observer_agent","expected":[]},
{"id":"minimum-01","category":"eligibility","template":"insufficient_claims","expected":[]},
{"id":"minimum-02","category":"eligibility","template":"insufficient_evidence","expected":[]},
{"id":"minimum-03","category":"eligibility","template":"one_signature","expected":[]},
{"id":"symmetric-01","category":"canonicalization","template":"symmetric","expected":[[1,2,3]]},
{"id":"replay-01","category":"determinism","template":"eligible","expected":[[1,2,3]]},
{"id":"replay-02","category":"determinism","template":"merge","expected":[[1,2,3,4]]}
]
}
2 changes: 1 addition & 1 deletion docs/generated/release-truth.json
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@
"console_entrypoints": 8,
"mcp_tools": 50,
"ops_cli_commands": 5,
"pytest_test_functions": 3767
"pytest_test_functions": 3781
},
"feature_profile_matrix": {
"capture_hook": [
Expand Down
2 changes: 1 addition & 1 deletion docs/generated/release-truth.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Do not edit this file by hand. Run `python scripts/generate_release_truth.py`.
- Main CLI commands: **118**
- Operations CLI commands: **5**
- Console entrypoints: **8**
- Pytest source test functions: **3767**
- Pytest source test functions: **3781**

## MCP tools

Expand Down
Loading
Loading