Immutable
release. Only release title and notes can be modified.
Release Notes
Released on 2026-06-22.
Bug fixes
- Avoid shadowing hints for attribute assignments (#26164)
- Fix dict.pop overloads to accept arbitrary keys with defaults (#26241)
- Normalize recursive
TypeOfacross multiple union arms (#26230) - Normalize recursive
TypeOfgrowth during cycle recovery (#26163) - Normalize recursive protocol growth during cycle recovery (#26246)
- Preserve generic alias identity during cycle recovery (#26166)
- Recover from dynamic class code generator cycles (#26167)
LSP server
- Add a go-to destination for
Divergent(#26162) - Publish diagnostics for all open files after a single file is saved (#25929)
- Render Markdown for reStructuredText fields in docstrings on hover (#25903)
CLI
- Make
error-on-warningthe default (#26157)
Diagnostics
- Make rendering of fix diffs more concise (#26161)
Performance
- Avoid allocating disabled error context trees (#26191)
- Avoid lookup maps for small place tables (#26177)
- Avoid moving boxed use-def map builders (#26211)
- Avoid transient AST ID merge map (#26185)
- Batch signature typevar freshness scans (#26196)
- Box large semantic index builders (#26186)
- Build frozen definition maps directly (#26188)
- Compact use-def binding interner keys (#26193)
- Consume condition flow snapshots (#26189)
- Lazily allocate reachability caches (#26194)
- Remove redundant use-def state shrinking (#26206)
- Reuse the first union bindings buffer (#26225)
- Short-circuit terminal narrowing constraints (#26215)
- Solve simple constraint conjunctions directly (#25879)
- Store cycle-detector cache entries inline (#26183)
- Stream indexed AST construction (#26184)
- Suppress discarded TypedDict diagnostics (#26250)
- Use SmallVec for
CycleDetector::seen(#26181) - Use a SmallVec for seen type aliases (#26187)
Core type checking
- Raise limit for number of non-recursive union literals (#25212)
- Preserve gradual behavior for explicit Any subclasses (#26034)
- Preserve metaclasses when inheriting from intersection-typed bases (#26145)
- Recognize exhaustive matches over finite tuples (#26132)
Contributors
Install ty 0.0.52
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ty/releases/download/0.0.52/ty-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/ty/releases/download/0.0.52/ty-installer.ps1 | iex"Download ty 0.0.52
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo astral-sh/tyYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>