You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
cascade: NaN-abort preserves last finite state, never returns NaN shape (codex #554 P2)
The previous guard broke the loop on a non-finite theta/flow, but the shape was
then built from those SAME non-finite values (node_field/edge_field at the
build step) — so the "abort" still leaked NaN/Inf into the perturbation shape
and downstream rankings/stats.
Fix: seed theta/flow with the finite base state and overwrite them each round
ONLY after the new values are confirmed finite (theta_next/flow_next). A
non-finite round now breaks WITHOUT adopting it, so theta/flow/components_final
retain the last finite state and the shape is built from that — never from
NaN/Inf. Matches the islanding-break semantics (which already left a finite
proxy).
New test perturbation_shape_is_always_finite locks the invariant across all
terminal paths (converge / cascade / island); islanding_is_flagged also now
asserts finite shape. clippy --all-targets clean; cascade suite green.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CcpLeEC3XK8Eye53GKBVvi
0 commit comments