2026-01-25 01:31:03 -06:00
|
|
|
[workspace]
|
|
|
|
|
resolver = "2"
|
|
|
|
|
members = [
|
|
|
|
|
"crates/vestige-core",
|
|
|
|
|
"crates/vestige-mcp",
|
|
|
|
|
"tests/e2e",
|
|
|
|
|
]
|
chore: license AGPL-3.0, zero clippy warnings, CHANGELOG through v1.6.0
License:
- Replace MIT/Apache-2.0 with AGPL-3.0-only across all crates and npm packages
- Replace LICENSE file with official GNU AGPL-3.0 text
- Remove LICENSE-MIT and LICENSE-APACHE
Code quality:
- Fix all 44 clippy warnings (zero remaining)
- Collapsible if statements, redundant closures, manual Option::map
- Remove duplicate #[allow(dead_code)] attributes in deprecated tool modules
- Add Default impl for CognitiveEngine
- Replace manual sort_by with sort_by_key
Documentation:
- Update CHANGELOG with v1.2.0, v1.3.0, v1.5.0, v1.6.0 entries
- Update README with v1.6.0 highlights and accurate stats (52K lines, 1100+ tests)
- Add fastembed-rs/ to .gitignore
- Add fastembed-rs to workspace exclude
1115 tests passing, zero warnings, RUSTFLAGS="-Dwarnings" clean.
2026-02-19 03:00:39 -06:00
|
|
|
exclude = [
|
|
|
|
|
"fastembed-rs",
|
|
|
|
|
]
|
2026-01-25 01:31:03 -06:00
|
|
|
|
|
|
|
|
[workspace.package]
|
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
|
|
|
version = "2.1.25"
|
2026-02-12 03:19:07 -06:00
|
|
|
edition = "2024"
|
2026-01-30 00:55:03 -06:00
|
|
|
license = "AGPL-3.0-only"
|
2026-01-25 01:31:03 -06:00
|
|
|
repository = "https://github.com/samvallad33/vestige"
|
|
|
|
|
authors = ["Sam Valladares"]
|
|
|
|
|
|
|
|
|
|
[workspace.dependencies]
|
|
|
|
|
# Share deps across workspace
|
|
|
|
|
tokio = { version = "1", features = ["full"] }
|
|
|
|
|
serde = { version = "1", features = ["derive"] }
|
|
|
|
|
serde_json = "1"
|
|
|
|
|
thiserror = "2"
|
|
|
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
|
|
|
uuid = { version = "1", features = ["v4", "serde"] }
|
|
|
|
|
tracing = "0.1"
|
|
|
|
|
|
|
|
|
|
[profile.release]
|
|
|
|
|
lto = true
|
|
|
|
|
codegen-units = 1
|
|
|
|
|
panic = "abort"
|
|
|
|
|
strip = true
|
|
|
|
|
opt-level = "z"
|
|
|
|
|
|
|
|
|
|
[profile.dev]
|
|
|
|
|
opt-level = 1
|