mirror of
https://github.com/NanmiCoder/claude-code-haha.git
synced 2026-10-10 11:53:10 +08:00
1aefc402ce
The check landed scoped to src/server/ws because blanking desynced on 6 of 2149 files and a desync reports a live import as dead. All four causes are fixed, so the scope is now every source root no compiler checks — src, scripts and adapters — and 0 of 2541 files desync. The bugs, each with a regression test that places the import's only reference after the construct so a desync makes it go dead: - The token before a slash was read back out of the raw source, so the last word of a preceding comment decided whether `/` opened a regex. In useIssueFlagBanner.ts `// …correction tone` made the next line's regex lex as a division, and its apostrophe opened a string that ate the line. A comment is whitespace to the grammar; it now contributes nothing. - That token accumulated across whitespace, so `return false` became one token named `returnfalse` and the following `return /re/` no longer looked like a keyword. This is what broke markdownImages.ts and dead-imports.ts itself. - `input! / 10` divides but `!/re/.test(x)` negates, and both put `!` before the slash. What precedes the `!` settles it. - Character classes and quotes inside regular expressions, fixed earlier. desktop/ stays out of scope: its tsconfig already sets noUnusedLocals, and scanning it anyway finds nothing — the cross-check that this agrees with a real compiler. `blankingIsSound` still refuses to analyse a file whose blanked form no longer parses, so a future desync is reported, not acted on. Routing follows the scope: policyPrefixes now names adapters/, scripts/ and src/ instead of the three scripts/ subdirectories and src/server/ws/. The check reads these files rather than importing them, so the import graph cannot select the lane on its own. `does not widen docs, policy, or coverage lanes` split in two — its fixture selects the policy lane through its own files now, so the dependent-must-not-widen invariant moved to a desktop fixture that still shows it. Verified by mutation, each reverted from an explicit backup: planting `plantedProbeSymbol` into one file per root reported all four and failed check:policy; reverting each of the three lexer fixes failed exactly its own regression test; removing 'src/' from policyPrefixes failed the routing test and made change-policy report policy=false for a src-only diff. check:policy is 223 pass / 0 fail in 8.6s, up from 2s — the scan is 3.8s over 2150 files and the planted-import test covers every one of them.