v1.21.0
v1.21.0 — B1 contradicts 矛盾边+置信 (2026-09-09)
First competitive-borrow B1 (Cognee-inspired, per docs/analysis/COMPETITIVE-REFERENCE.md). Strengthens the governance moat: contradictions become confidence-bearing contradicts graph edges, not just records.
Added
- migration v11:
contradictionstable +claim_a_confidence/claim_b_confidence(4-level, defaultunverified) +receipt(Ed25519 receipt id) columns (idempotent). ContradictionRecordcarries both claims' 4-level confidence + receipt;_create_recordcapturesclaim.confidenceat detection.get_contradiction_edges()— contradictions surface as traversablecontradictsgraph edges (source/target/edge_type/confidence_a/confidence_b/receipt/resolved) forsaw_graph/saw_blast_radius/saw_navigate.store_contradiction/ContradictionsSink/record_to_payloadwrite 11 columns;_row_to_recordreads by column name (ALTER-robust).
Fixed
saw_conflictsMCP tool latent bug: accessed non-existentc.resolved/c.resolution_strategy→AttributeErrorswallowed to{"error"}for every contradiction. Now uses real attrs + emits both claims' confidence + receipt..gitignore: narrow.claude/skills/un-ignore tosaw-tools/only (machine-localcsp-*harness skills stay ignored) + ignore.cursor/(ruff re-clean).
Release Gate
pytest 2338 passed / 7 skipped / 0 failed · coverage 68.15% · ruff 0 · vitest 64 pass · migration v11 verified on fresh DB · zero regressions.
Installation
pipx install smart-agent-wiki --force # or: pip install smart-agent-wiki==1.21.0
saw --versionDifferentiation
Cogee models contradictions as graph edges with confidence — SAW lands them as contradicts edges with 4-level confidence (vs Cogee's continuous score) + Ed25519 receipt closure (Cogee has no audit receipt). Reinforces the trust+governance+sovereignty moat.
Deferred (gated, not code bugs)
AUDIT-F-05 activity persist (PRD rule 6) · AUDIT-F-06 banner SPEC drift · AUDIT-F-07 desktop signing / vLLM CI / Playwright (infra) · remaining competitive-borrow candidates → v1.22.0+.
Full changelog: CHANGELOG.md. PRD: docs/prd/PRD-contradicts-edges-v1.21.0.md.