refactor: rename memory_entity→knowledge_node, knowledge graph edge→knowledge_edge
CI / CI (pull_request) Failing after 11m15s

Resolves table name collision between:
- memory_edge (provenance DAG: child_sha/parent_sha) — KEPT
- knowledge_edge (knowledge graph: source_id/target_id) — NEW NAME

Changes:
- memory_entity → knowledge_node (all .rs + migrations 003-009)
- knowledge graph memory_edge → knowledge_edge
- memory_entity_version → knowledge_node_version
- memory_edge_version → knowledge_edge_version
- Added knowledge_node + knowledge_edge to init_schema()
- Converted versioning.rs from sqlx::query_as! to runtime queries
  (avoids stale sqlx offline cache dependency)
- Fixed UUID cast: $1::UUID for String→UUID column binds
- Fixed column names: source_entity_id→source_id, target_entity_id→target_id

Production DB: knowledge_node + knowledge_edge tables created,
memory_entity VIEW points to knowledge_node for backward compat.
This commit is contained in:
2026-09-15 15:22:41 +09:00
parent b514c43d6b
commit 7d49a2aaef
36 changed files with 263 additions and 283 deletions
@@ -9,8 +9,8 @@ CREATE TABLE IF NOT EXISTS exact_dedup_record (
project_id VARCHAR(255) NOT NULL,
-- Source and target edges
source_edge_id UUID NOT NULL REFERENCES memory_edge(id) ON DELETE CASCADE,
target_edge_id UUID NOT NULL REFERENCES memory_edge(id) ON DELETE CASCADE,
source_edge_id UUID NOT NULL REFERENCES knowledge_edge(id) ON DELETE CASCADE,
target_edge_id UUID NOT NULL REFERENCES knowledge_edge(id) ON DELETE CASCADE,
-- Match criteria (all must match for exact dedup)
source_match BOOLEAN NOT NULL,
@@ -51,8 +51,8 @@ CREATE TABLE IF NOT EXISTS stale_gc_record (
project_id VARCHAR(255) NOT NULL,
-- Entity or edge marked for GC
entity_id UUID REFERENCES memory_entity(id) ON DELETE CASCADE,
edge_id UUID REFERENCES memory_edge(id) ON DELETE CASCADE,
entity_id UUID REFERENCES knowledge_node(id) ON DELETE CASCADE,
edge_id UUID REFERENCES knowledge_edge(id) ON DELETE CASCADE,
-- Staleness criteria
age_days INT NOT NULL,
@@ -96,8 +96,8 @@ CREATE TABLE IF NOT EXISTS semantic_dedup_record (
project_id VARCHAR(255) NOT NULL,
-- Source and target edges
source_edge_id UUID NOT NULL REFERENCES memory_edge(id) ON DELETE CASCADE,
target_edge_id UUID NOT NULL REFERENCES memory_edge(id) ON DELETE CASCADE,
source_edge_id UUID NOT NULL REFERENCES knowledge_edge(id) ON DELETE CASCADE,
target_edge_id UUID NOT NULL REFERENCES knowledge_edge(id) ON DELETE CASCADE,
-- Pre-filter score (0-1, eliminates 60-70% of candidates)
prefilter_score FLOAT NOT NULL,
@@ -119,7 +119,7 @@ CREATE TABLE IF NOT EXISTS semantic_dedup_record (
-- Merge strategy (if auto-merged)
merge_strategy VARCHAR(50), -- 'keep_superset', 'keep_newer', 'keep_higher_confidence'
merged_edge_id UUID REFERENCES memory_edge(id) ON DELETE SET NULL,
merged_edge_id UUID REFERENCES knowledge_edge(id) ON DELETE SET NULL,
-- Metadata
detected_at TIMESTAMPTZ DEFAULT NOW(),