Repository navigation
Delete the dead UpsertNodeWithParent / save_node_with_parent path - #3048
Conversation
…oses #3040) Nothing calls it — no frontend, CLI, agent, skill, sync or cloud caller; autosave uses create_node/update_node. Its separate create branch skipped the canonical create pipeline's validation and transaction, so rather than harden unused code, remove it in every layer: - proto: UpsertNodeWithParent RPC + UpsertNodeWithParentRequest - daemon: upsert_node_with_parent handler - Tauri: save_node_with_parent command, SaveNodeWithParentInput, registration - core: NodeService::upsert_node_with_parent and its upsert-only tests The collection-member reparent guard lives in the store's move_node and stays covered via the service move_node test. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Pragmatic Code Review — Initial ReviewThis is a pure deletion: 8 files, +7 / −380. Requirements Check (#3040)
What I checked
Findings🟢 This is a clear improvement. It deletes a path nobody calls, along with its separate create branch that skipped validation (YAGNI; one canonical way to create a node). 🟡 Nit: the reflowed comment is vague. 🟡 Nit, outside this repo: Recommendation: APPROVE |
malibio
left a comment
There was a problem hiding this comment.
Automated pragmatic-code-review: APPROVE (posted as a comment — GitHub blocks self-approval). Full findings in the review comment above.
…omment Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Review feedback addressed (2bacc7a)✅ Both nits addressed:
The follow-up commit changes only a comment. It was pushed with Re-review: not needed. |
Closes #3040
Why
UpsertNodeWithParent/save_node_with_parenthas no callers anywhere:nodespace-syncornodespace-cloud;create_node/update_node;Its separate create branch skipped the canonical create pipeline's validation and transaction. Rather than harden code nothing runs, this deletes it.
What's removed
UpsertNodeWithParentRPC andUpsertNodeWithParentRequestupsert_node_with_parenthandlersave_node_with_parentcommand,SaveNodeWithParentInput, and the command registrationNodeService::upsert_node_with_parentand its three upsert-only testsThe collection-member reparent guard lives in the store's
move_node.test_reparenting_a_collection_member_is_rejectedstill covers it via the service'smove_node; only its upsert leg was dropped.Verification
cargo check --workspace --testspasses with no errors or warnings.architecture-benchmarksscaling threshold (1.63 vs 1.5) while Rust tests ran concurrently. A retry on a quiet machine passed.🤖 Generated with Claude Code