land: typescript-sync-diagnostics

Merged
AF
14h ago
+902-15

Accepted agent delivery; branch-keyed search descriptor included.


Summary by cubic

Fixes scoped aft_inspect on TypeScript 5 reporting a file clean before its type check finished. The TypeScript server's push protocol merges independently arriving diagnostic categories, so its first empty push wasn't proof of a clean file; the sweep now asks the server's synchronous tsserver commands for complete syntactic, semantic, and suggestion diagnostics.

Bug Fixes

  • Complete request-local answers stay in the inspect output — later partial pushes can't replace them, and warm status-bar counts and TypeScript 7 native pulls are unchanged.
  • Unsupported, malformed, timed-out, or changed-document sync requests leave the file pending and add a named coverage gap instead of a clean result.
  • Files excluded by their tsconfig skip the sync requests entirely and retain their existing exclusion gap.

RetriggerView in GreptileConfidence Score: 5/5

The PR appears safe to merge; no outstanding findings remain.

Summary

Scoped TypeScript 5 inspection now requests all three diagnostic categories and keeps those answers separate from later push updates.

  • Scoped TypeScript inspection waits for all three diagnostic groups.
  • Scoped TypeScript checks skip files outside their tsconfig.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Scoped TypeScript file] --> B{Excluded by tsconfig?}
    B -->|Yes| C[Keep exclusion gap]
    B -->|No, push-only server| D[Request syntax, semantic, and suggestion diagnostics]
    D --> E{Complete reply and unchanged document?}
    E -->|Yes| F[Use request-local diagnostics]
    E -->|No| G[Keep file pending with named gap]
    H[Later push updates] --> I[Warm diagnostic store]

Reviews (3) · Last reviewed commit: "mason: normalize sync fixture paths on W..." · Reviewed by Greptile