fix: reconcile upstream braceless calls and safe evaluation startup
Braceless JavaScript and TypeScript calls now avoid unrelated class methods, and the interactive evaluation script cannot return to a shell that executes the evaluation prompt.
Reconciles the three upstream commits through 8beab37c46b5006231b9201f4b44a1fc7ecd4979. The fork ports the bare-call classifier to its Rust resolver and keeps its existing short installer guidance. The evaluation script explicitly selects the trust dialog's Yes option and launches Claude with exec in the repository directory. Existing disk-backed output and timeout failures remain intact.
Validation on merge commit 4189ea3c's source tree:
- A stronger graph regression fails before the fix with four false method edges; all 21 focused JavaScript/Go controls pass after it.
- Optimized kernel and application builds pass. All eight golden graph checks pass with no dump changes. Full Node 24 suite passes: 803 files, 9,682 tests passed and 40 skipped.
- Precision controls pass on pinned Vite (8/8) and Vitest (1/1). Comparing baseline and candidate graphs loses no call edges; Vite gains one correct braceless call to its declared global
log, and Vitest is unchanged. - Real tmux with a fake Claude reproduces prompt execution by the old shell launch. The new launch prevents it when Claude exits before or during submission. No live Claude UI compatibility run is claimed.
- Shell syntax, test floor, agent-document limit, kernel rules and whitespace checks pass.
README rows checked: upstream merge point updated; resolution behavior updated with the matching docs-site page; existing benchmark/runtime figures are unaffected and were not remeasured. No deployment or performance claim is included. Preserve the upstream parent with a merge commit when landing.
Summary by cubic
Reconciles upstream braceless-call resolution and safe evaluation startup through 8beab37c, porting both to the fork.
Braceless JavaScript and TypeScript calls after if/while/for/do statements now stay bare calls, so they no longer link to unrelated same-named class members in other files. The agent-eval script now explicitly selects the trust dialog's Yes option and launches Claude with exec in the repository directory, so the evaluation prompt can't be typed into a shell after Claude exits.
Summary by CodeRabbit
-
Bug Fixes
- Fixed JavaScript and TypeScript call resolution after braceless
if,while,for, anddostatements. - Calls now avoid incorrectly matching unrelated class methods or properties in other files, while locally defined functions and explicitly targeted methods continue to resolve correctly.
- Improved handling for calls involving
useState-style names, multiline conditions, asynchronous loops, and parenthesized expressions.
- Fixed JavaScript and TypeScript call resolution after braceless
-
Documentation
- Updated resolution documentation and the unreleased changelog with the corrected behavior.