mirror of
https://github.com/langgenius/dify.git
synced 2026-10-04 13:47:55 +08:00
continue_adjusting/revert/retry_after_revert all return to build.initial_plan without resetting the already-built graph. Re-walking find_resources -> confirm_resources -> approve_plan then re-emits the same fixed create_node/connect intents, and the second apply_repair raised ValueError on the colliding node id, dead-ending the session at build.plan_approval. Fix: before applying, read the current draft graph and drop any create_node whose node_id already exists or connect whose (from, to) edge already exists, so a re-approve after a loop-back is a no-op apply_repair rather than a crash. built_node_ids is still set from the full 4-node set regardless of what was actually applied this pass. Adds an end-to-end loop test via the real Runner covering both the continue_adjusting and retry_after_revert paths, asserting the session reaches build.execution with the graph still at 4 nodes / 3 edges. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>