vestige/apps/dashboard
Sam Valladares c23d7a309c
feat(merge-supersede): Phase 3 — diff-previewed, reversible merge/supersede controls (v2.1.25) (#75)
Adds opt-in, preview-first combine/dedupe/supersede on a never-delete
(bitemporal) store. The default is review, never silent mutation. Every applied
operation is recorded as a reversible, auditable event with provenance — a git
reflog for your agent's memory.

Core (vestige-core):
- advanced::merge_supersede — pure Fellegi-Sunter two-threshold scoring
  (embedding + tag + token Jaccard), match/possible/non_match classification,
  plan/diff and operation-log types, merge-composition helpers. Unit-tested.
- storage: merge_candidates, plan_merge, plan_supersede, apply_plan, merge_undo,
  protect/pin, and per-project merge_policy (persisted in fsrs_config, env
  overridable). Supersede invalidates bitemporally (valid_until + superseded_by,
  Graphiti-style "invalidate, don't delete") and keeps the old node queryable.
- Migration V14: merge_plans + merge_operations tables, knowledge_nodes.protected
  and .superseded_by columns + indexes. Idempotent on replay (duplicate-column
  guarded ADD COLUMNs).

MCP (vestige-mcp):
- Seven new tools registered + dispatched: merge_candidates, plan_merge,
  plan_supersede, apply_plan, merge_undo, protect, merge_policy.
- apply_plan requires confirm=true for possible/non_match plans; match plans
  auto-apply only when policy.auto_apply is set (default off).

Tests: candidate-threshold classification, plan-preview makes no mutation,
apply+undo reversibility, supersede bitemporal invalidation preserves old-node
queryability, protect blocks merge-away, low-confidence requires confirm, policy
roundtrip, migration V14 + idempotent replay. All 796 scoped tests pass; clippy
-D warnings clean on touched crates.

Docs: docs/MERGE_SUPERSEDE.md + CHANGELOG entry. Version bump 2.1.23 -> 2.1.25.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 12:55:31 -05:00
..
build Release v2.1.23 Receipt Lock hardening 2026-05-27 19:03:16 -05:00
e2e v2.0.8 Pulse — Reasoning Theater + Pulse Toast + Terrarium + Intel Mac (#44) 2026-04-23 02:21:11 -05:00
src Release v2.1.23 Receipt Lock hardening 2026-05-27 19:03:16 -05:00
static feat: Vestige v2.0.0 "Cognitive Leap" — 3D dashboard, HyDE search, WebSocket events 2026-02-22 03:07:25 -06:00
.env.example v2.1.2 Honest Memory 2026-05-06 02:22:24 -05:00
package-lock.json Release v2.1.23 Receipt Lock hardening 2026-05-27 19:03:16 -05:00
package.json feat(merge-supersede): Phase 3 — diff-previewed, reversible merge/supersede controls (v2.1.25) (#75) 2026-06-12 12:55:31 -05:00
playwright.config.ts feat: live memory materialization — nodes spawn in 3D graph in real-time 2026-03-03 14:04:31 -06:00
svelte.config.js Prepare agent-neutral hardening release 2026-05-24 16:09:44 -05:00
tsconfig.json feat: live memory materialization — nodes spawn in 3D graph in real-time 2026-03-03 14:04:31 -06:00
vite.config.ts feat: live memory materialization — nodes spawn in 3D graph in real-time 2026-03-03 14:04:31 -06:00