Skip to content

Commit fbd7c76

Browse files
kt3kclaude
andcommitted
chore: backfill microsoft/typescript-go digests for 2026-04-20–04-30
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 02e6845 commit fbd7c76

11 files changed

Lines changed: 295 additions & 0 deletions
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
date: 2026-04-20
3+
repo: microsoft/typescript-go
4+
size: M
5+
title: "Declaration emit and auto-imports improved"
6+
excerpt: "JS declaration emit now remaps type nodes more accurately, auto-import realpaths follow symlinked deps, and rename ranges are tighter."
7+
commits: 7
8+
authors: [jakebailey, andrewbranch, auvred]
9+
commit_authors: {"98f57c9": jakebailey, "59360d9": jakebailey, "5a4e6db": jakebailey, "27b6dd1": andrewbranch, "dfa7a1d": auvred}
10+
---
11+
12+
### **JS declaration emit now remaps JS type nodes** (74841e4)
13+
Declaration emit now tries to convert JS type nodes back into TypeScript-construct equivalents before falling back to full serialization. This fixes a class of `.d.ts` output issues for JS sources, including cleaner emitted types in the updated baselines.
14+
15+
### **Auto-import realpath resolution now follows symlinked packages** (27b6dd1)
16+
The module auto-import path mapping was expanded to handle symlinked dependencies reached through `node_modules`, caching per-package directory realpaths instead of repeatedly resolving every file. That prevents duplicate cache keys for the same physical file and avoids the memory blowups seen in barrel/re-export-heavy projects.
17+
18+
### **`prepareRename` now returns a more accurate range** (dfa7a1d)
19+
Rename handling now starts from the node's true start position instead of the raw node position. This makes the LSP `prepareRename` response line up better with what users actually need to rename.
20+
21+
### Other misc changes
22+
- Added submodule triaged baseline support and existence checks; reorganized accepted/triaged baseline handling (59360d9, 98f57c9)
23+
- Switched small CI jobs to `ubuntu-slim` and bumped GitHub Actions dependencies (5a4e6db, 76ce739)
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
date: 2026-04-21
3+
repo: microsoft/typescript-go
4+
size: L
5+
title: "Crash fixes and hover/resolution polish"
6+
excerpt: "Multiple crash fixes landed across hover, token lookup, module resolution, and LSP behavior, plus one Unicode bug fix."
7+
commits: 10
8+
authors: [jakebailey]
9+
commit_authors: {"21b262e": jakebailey, "ef89a24": jakebailey}
10+
---
11+
12+
### **Fix invalid UTF-8 line/character mapping** (2de4a3f)
13+
`LineAndCharacterToPosition` now scans with `utf8.DecodeRuneInString`, so malformed UTF-8 advances by its real byte size instead of `utf8.RuneLen(RuneError)`'s 3-byte assumption. This fixes incorrect offsets for invalid sequences and tightens the LSP position conversion path.
14+
15+
### **Fix declaration-space crash for merged export assignments** (39c4ad2)
16+
The checker now only treats export-assigned entity-name expressions as aliases when the symbol is actually marked alias. That avoids a crash while resolving declaration spaces for merged symbols that resolve to an export assignment.
17+
18+
### **Mark opened files changed when didOpen text differs from disk** (21b262e)
19+
The project/session logic now detects when a `didOpen` payload doesn't match the on-disk contents and marks the file as changed. This prevents stale program state and fixes a crash path in semantic tokens when CRLF editor text diverges from LF-loaded source.
20+
21+
### **Fix hover type-argument preservation and related crashes** (6b8645e, ef89a24, 60169b3)
22+
Hover/quickinfo generation was refactored to preserve type arguments for qualified names and instantiation-like expressions instead of silently dropping them. The day also includes crash fixes for hovering namespace/interface heritage cases and for empty-enum verbosity handling.
23+
24+
### **Fix token lookup on reparsed subtrees** (6b79498)
25+
`getTokenAtPosition` now avoids using reparsed nodes as the previous subtree and skips reparsed list members when choosing a preceding token. That closes a crash when token navigation walks updated syntax trees.
26+
27+
### **Fix paths resolution for `.d.ts` via `.ts` extension** (9d97c2f)
28+
Module resolution now tracks when an extension comes from config-driven paths/package resolution rather than the source specifier, preventing the checker from misclassifying it as a TS extension from the import text. This fixes a crash in `paths` mappings that point at declaration files through `.ts`-style substitutions.
29+
30+
### Other misc changes
31+
- Baseline triage and accepted baseline moves.
32+
- Semantic tokens temporarily disabled in the server.
33+
- Added regression tests and baseline updates for hover/completion/resolution edge cases.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
---
2+
date: 2026-04-22
3+
repo: microsoft/typescript-go
4+
size: L
5+
title: "Checker fixes and native preview packaging"
6+
excerpt: "Major type-checker and language-service fixes landed alongside a native-preview packaging move and cache/hover refinements."
7+
commits: 12
8+
authors: [jakebailey, andrewbranch, RyanCavanaugh]
9+
commit_authors: {"e7283bb": jakebailey, "c4663ad": jakebailey, "88b5b78": RyanCavanaugh, "effd0f8": andrewbranch, "d128e3d": andrewbranch}
10+
---
11+
12+
### **Improve recursion identity for direct type instantiations** (33b9297)
13+
This tightens how the checker identifies recursive instantiations originating from type nodes, so directly-instantiated references don’t get mistaken for the same recursion path as symbol-based types. It also updates deep tuple/array recursion baselines, indicating a correctness fix for previously problematic nested types.
14+
15+
### **Move @typescript/api and @typescript/ast into @typescript/native-preview** (effd0f8)
16+
The publishing layout is being consolidated around `@typescript/native-preview`, with the API/AST packages moved under that package’s source tree and build/test tasks retargeted accordingly. This is a notable packaging and build-system change that affects how the JS-facing native preview artifacts are generated and published.
17+
18+
### **Fix auto-imports inserting `import` in CJS files when `moduleDetection` is `force`** (8eb3c6c)
19+
Auto-import code actions now choose `require()`-style inserts in CommonJS contexts even when module detection and Node module kinds are involved. That prevents invalid or surprising ES import insertion in JS/CJS files and broadens the test coverage around module-format detection.
20+
21+
### **Reenable semantic tokens** (c4663ad)
22+
Semantic tokens support is turned back on in the LSP server. This should restore richer editor highlighting/semantic coloring where it had been disabled.
23+
24+
### **Include member resolution status in `getLiteralTypeFromProperties` cache key** (967095e)
25+
The checker now tracks whether object members are still unresolved when caching literal types from properties, avoiding stale cache hits during member resolution. That addresses a subtle correctness bug around `keyof`/property-based type computation on unresolved base members.
26+
27+
### **Cancel auto-import cache warming when file changes arrive** (d128e3d)
28+
The project session now keeps a cancellable handle for auto-import cache warming and aborts that work on open/change/close/watch events. This reduces wasted background work and avoids warming results that are immediately invalidated by edits.
29+
30+
### **Fix hover crash on classes with anonymous base class** (ae8ae79)
31+
Hover rendering now handles anonymous class heritage more safely by falling back to a written identifier for internal class symbols. That prevents crashes in quick info for classes extending anonymous bases and improves the generated hover baselines.
32+
33+
### **Fix conditional instantiation cache key mismatch for unresolved conditional types** (5f57ade)
34+
Conditional-type instantiations now use the conditional-type cache key instead of a plain type-list key when seeding the instantiation cache. This prevents incorrect reuse of unresolved conditional types and fixes a subtle type-resolution bug.
35+
36+
### **Avoid crash in getReferencedSymbolsForNode on export assignments in malformed sources** (3f37555)
37+
Reference खोज now bails out when `export =` symbols have no parent, instead of walking into malformed module structure. This hardens document-highlighting/reference lookup against broken `.d.ts` input.
38+
39+
### Other misc changes
40+
- tsconfig number parsing fix and baseline update (e7283bb)
41+
- Hover code-block language changed from `tsx` to `typescript` plus baseline updates (e006950)
42+
- Submodule diff triage/relocation updates (88b5b78)
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---
2+
date: 2026-04-23
3+
repo: microsoft/typescript-go
4+
size: L
5+
title: "Auto-imports, hover, and code actions refined"
6+
excerpt: "Notable fixes landed across auto-imports, hover rendering, iteration diagnostics, and VS Code extension auto-insert behavior."
7+
commits: 16
8+
authors: [andrewbranch, jakebailey, RyanCavanaugh]
9+
commit_authors: {"ba858e5": andrewbranch, "5b5c713": jakebailey, "2e7b0e5": jakebailey, "88f8ad1": jakebailey}
10+
---
11+
12+
### **VS closing-tag auto-insertion now uses the new onAutoInsert path** (44e13b7)
13+
The extension switches from the old tag-closing feature to a dedicated `textDocument/_vs_onAutoInsert` handler, with matching protocol and server updates. This should make closing-tag insertion behave more predictably in VS Code and simplifies the feature wiring.
14+
15+
### **JS/JSX inference now aligns with TypeScript defaults** (fd9bbdb, 88f8ad1)
16+
The checker removes the JS-only `any` default used during overload inference, then restores it after the behavior change is documented, indicating an intentional compatibility shift was still being worked through the same day. The net effect is a meaningful change in how generic type arguments are inferred in JS files, with examples like `Object.entries` now tracking `unknown` instead of `any` in the new behavior path.
17+
18+
### **Iterable-union errors now surface more accurately** (911ba0b)
19+
Union iteration checks now stop as soon as any constituent isn’t iterable, instead of combining diagnostics too early. That fixes incorrect or missing error propagation for `for...of`, destructuring, and index access on unions like `A[] | B`.
20+
21+
### **Hover expansion prints heritage clauses as declared** (4f599c6, 5351378, 5ee9d71)
22+
Hover/quick info rendering was adjusted so expandable hovers preserve the declared order of heritage clause elements and print property access expressions correctly. These are user-facing presentation fixes that make symbol hovers easier to read and less surprising for mixins, merged interfaces, and aliased exports.
23+
24+
### **Auto-import packages now include `compilerOptions.types`** (ba858e5)
25+
Auto-import package discovery now respects `compilerOptions.types`, so package suggestions better match the project’s configured type environment. That helps avoid offering imports from packages the project doesn’t intend to see.
26+
27+
### **Module resolution trims a trailing directory separator** (2e7b0e5)
28+
A resolver fix removes an extra trailing separator when looking up modules from a specific `node_modules` directory. This is a targeted bug fix for path handling in module resolution.
29+
30+
### **Stack telemetry redaction is less aggressive** (5b5c713)
31+
The stack sanitizer got a workaround to avoid over-redacting generic-looking secrets in telemetry output. This preserves more useful diagnostic detail while still keeping sensitive data protected.
32+
33+
### **Hover/codefix and declaration-experience bugs were cleaned up** (dc17525, a94f221, fd9bbdb)
34+
Several user-visible correctness fixes landed for isolated declarations code actions, object-equality diagnostics, and related test coverage. Together they improve the quality of quick fixes and reduce false or duplicated suggestions in editor workflows.
35+
36+
### Other misc changes
37+
- Extension menu/config cleanup and session refactors
38+
- CLI/LSP launch template wiring
39+
- Dependency/test/baseline updates across compiler, LSP, and fourslash suites
40+
- Documentation note added for `.js -> .d.ts` emit changes
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
---
2+
date: 2026-04-24
3+
repo: microsoft/typescript-go
4+
size: L
5+
title: "Trace logging, ATA toggle, and auto-import fixes"
6+
excerpt: "Tracing was added across the checker and compiler, VS Code gains ATA controls, and auto-import symlink races were fixed and retested."
7+
commits: 9
8+
authors: [jakebailey, RyanCavanaugh, andrewbranch, ericnorris]
9+
commit_authors: {"eb04840": andrewbranch}
10+
---
11+
12+
### **Add --generateTrace support across checker/compiler** (7abf963)
13+
Tracing is now wired through core checker, compiler, and tsc paths so runs can record phase-level events and type activity. This should make it much easier to diagnose performance hotspots and correctness issues in the compiler pipeline.
14+
15+
### **Restore JS/TS ATA settings handling in the VS Code extension** (e391e41)
16+
The extension now reads both the unified `js/ts` ATA setting and the older `typescript.disableAutomaticTypeAcquisition` flag, with the unified setting taking precedence. This keeps automatic type acquisition behavior aligned with VS Code configuration and avoids surprising regressions for inferred projects.
17+
18+
### **Fix auto-import cache races for symlinked workspace packages** (eb04840)
19+
Auto-import indexing and program updates were hardened against race conditions, and a regression test was added for editing a symlinked package source file and immediately seeing the new export in completions. This matters for monorepos because stale or racy auto-import state can hide newly added symbols.
20+
21+
### **Other misc changes**
22+
- Accepted/triaged baseline updates for JSX factory-call output, `let` declaration emit, and several `.js`/`.d.ts` diffs.
23+
- Reverted the previous symlinked-package auto-import cache invalidation change after the follow-up fix.
24+
- Added VS Code extension settings for extra tsdk locations and server debug info.
25+
- Misc test/baseline churn around auto-import and JSX acceptance.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
date: 2026-04-25
3+
repo: microsoft/typescript-go
4+
size: N
5+
title: "No changes"
6+
excerpt: ""
7+
commits: 0
8+
---
9+
10+
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
date: 2026-04-26
3+
repo: microsoft/typescript-go
4+
size: N
5+
title: "No changes"
6+
excerpt: ""
7+
commits: 0
8+
---
9+
10+
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
date: 2026-04-27
3+
repo: microsoft/typescript-go
4+
size: L
5+
title: "JS declarations and IDE fixes land"
6+
excerpt: "Large day for TypeScript-Go: declaration emit grows smarter, quick info improves for optional members, and several crash fixes land."
7+
commits: 7
8+
---
9+
10+
### **JS declaration emit now tracks `this` assignments and `require()` forms** (34cf1ba)
11+
Declaration emit was expanded to collect `this.x` assignments from constructors and static blocks, and to rewrite common `require()` patterns into equivalent TS declarations. This improves the fidelity of generated `.d.ts` output for JavaScript sources, especially around CommonJS interop and class member inference.
12+
13+
### **Quick info now shows optional member signatures correctly** (f549afa)
14+
Hover/signature display for optional members was tightened up so getters, setters, overloaded members, and optional call signatures present more accurate information. The update also removes a set of previously failing quick-info cases, which should translate into fewer misleading hovers in editors.
15+
16+
### **Reparse JSDoc annotations on getter accessors** (b5cece1)
17+
The parser now preserves JSDoc type annotations for `get` accessors during reparse, instead of dropping or misreading them. That fixes a class of JS declaration reuse bugs where accessor types were previously emitted incorrectly.
18+
19+
### **Prevent signature-help panic on `import.defer`** (6bf24cc)
20+
Signature help now bails out to the untyped-call path for `import.defer(...)`, avoiding a panic in the checker. This is a targeted stability fix for an editor-facing feature that could otherwise crash on a valid call form.
21+
22+
### **Fix rename on unresolved reexports** (78b1ba1)
23+
Rename handling no longer assumes the original symbol is always present when expanding reexported names. That closes a panic path and keeps rename working on unresolved reexports by preserving the needed `as` aliasing.
24+
25+
### **Fix go-to-implementation crashes on invalid CommonJS exports** (c5039e6)
26+
Go-to-implementation now stops cleanly when it encounters a missing imported symbol while tracing exports, instead of crashing. The new tests cover several malformed or unreachable export/reexport shapes in both TS and JS.
27+
28+
### **Refresh diagnostics after folder deletions more reliably** (463a747)
29+
File open/close/save no longer unconditionally cancel diagnostics refresh, which fixes a missed-refresh bug around deleting sibling folders. The session tests show diagnostics still get refreshed after folder removal, including when other files are opened afterward.
30+
31+
### Other misc changes
32+
- Repaired a manual fourslash test list entry for quick-info coverage.
33+
- Minor internal cleanup and baseline updates around JSDoc/hover tests.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
date: 2026-04-28
3+
repo: microsoft/typescript-go
4+
size: M
5+
title: "Type hints and quick info get sharper"
6+
excerpt: "Several fixes improve widened assignments, hover/type display, and restart reliability, with one broader checker refactor restored."
7+
commits: 6
8+
authors: [ekazakov14, jakebailey]
9+
commit_authors: {"2a3f6d2": ekazakov14, "de302e0": jakebailey}
10+
---
11+
12+
### **Fix widened assignment declarations before reporting them** (85f9b3c)
13+
The checker now widens the final type after collecting assignment-declaration candidates, rather than widening only one branch of the union logic. This corrects cases like `this` property assignments where the inferred result was too narrow.
14+
15+
### **Show generic type paths correctly in hover/quick info** (3499951)
16+
Type-node serialization and printing now handle property access expressions such as `f<T>.C`, which appear in pseudo-types for generic type paths. That makes hover text for instantiated members much more accurate and avoids broken or incomplete quick info.
17+
18+
### **Improve hover output for missing generic parameters** (245ae95)
19+
When the language service can’t resolve instantiated type-argument nodes, it now falls back to the type parameter declarations instead of dropping them. The printer was also adjusted so these parameters render in quick info, fixing missing generic details in class and interface hovers.
20+
21+
### **Recover from extension restart shutdown timeouts** (2a3f6d2)
22+
The VS Code extension now falls back to a full client start if `restart()` fails during shutdown. That makes language-server restarts more resilient instead of failing outright on timeout-related shutdown issues.
23+
24+
### **Restore lost checker and auto-import PRs** (de302e0)
25+
This brings back several previously lost fixes, including new `ObjectFlags.FromTypeNode` tracking and related checker/relater changes. It also revives auto-import and nested-type test coverage, so the restored behavior is exercised again.
26+
27+
### **Restore mapped-type indexing diagnostics** (14a12d0)
28+
The checker’s `maybeMappedType` logic was corrected and now uses stricter assignability checks, which changes the emitted diagnostic for type-literal index misuse. The updated error now includes the mapped-type suggestion where appropriate.
29+
30+
### Other misc changes
31+
- Fourslash skip list cleanup and test unskips
32+
- Baseline updates for quick info and compiler submodule tests

0 commit comments

Comments
 (0)