Bug: S-expression plans produce lowercase node types (source, compound) but code was checking uppercase (SOURCE, COMPOUND). Fix: Use .upper() for node type comparisons. Add TestNodeTypeCaseSensitivity tests to catch this regression. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>