Convert nodeRect {x,y,w,h} to {x,y,x2,y2} in dragPathStillClear so corridor stickiness keeps anti-flicker while live avoidance fires when a node body actually hits a link. Add contract tests; ignore local 進度.md.