feat(bench): 3 TypeScript cascade scenarios (#104) [re-targeted to main]#126
Merged
Conversation
PR-B of the cascade expansion: three TS code cascades (graded by `node --test`, Node >=22.18 type-strip), each a new drift archetype that surf detects via a structural/literal change (not an identifier swap). - cascade-serialize-key-order-ts-code (T2, serialization) — canonicalString key order insertion -> sorted (Object.keys().sort() added); the visible signer must reproduce the canonical string. - cascade-default-timeout-ts-code (T1, timeouts) — totalDeadlineMs default param 30000 -> 5000; the visible caller reports the default budget. - cascade-validate-guard-ts-code (T2, validation) — isValidName dropped its `length > 0` guard (empty names now accepted); the visible intake filter must mirror the rule. Each: graders probe the real hidden dependency for ground truth, task.md is neutral, author.py seals a genuine "changed" divergence, and validate_scenario proves grader polarity. Verified offline: validate_scenario --all green (7/7), a mock run over the three is error-free, uv run pytest passes (38). Stacked on PR-A (#124) for the validate_scenario tooling + edit_path; will retarget to main once #124 merges. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This was referenced Jun 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Re-opens PR #125 against
main. The original #125 was stacked on #124 and, due to merge ordering, merged into its stacked base (feat/104a) rather thanmain— so its 3 TS scenarios never reachedmain. This branch is the same content, rebased onto the mergedmain, targetingmaindirectly.3 TypeScript code cascades (graded by
node --test), each a new drift archetypesurfdetects via a structural/literal change:cascade-serialize-key-order-ts-codecascade-default-timeout-ts-code30000→5000cascade-validate-guard-ts-codelength > 0guardVerification (offline)
python tools/validate_scenario.py --all— 7/7 green (4 Python on main + these 3).uv run pytest— 38 passed;cargo fmt --all --checkclean.Cascade family: 4 → 11 with this merged. PR-C (3 QA cascades) reaches ~14.
🤖 Generated with Claude Code