Sourced from pyrefly's releases.
Pyrefly v0.63.1
Full Changelog: https://github.com/facebook/pyrefly/compare/0.63.0...0.63.1
Pyrefly v0.63.0
Status : BETA Release date: April 27, 2026
Pyrefly v0.63.0 bundles 129 commits from 26 contributors.
✨ New & Improved
Area What's new Type Checking - Enum member types are preserved even when the metaclass conflicts with EnumMeta, reducing noise in projects using custom metaclasses with enums. - ConstrainedTypeVars no longer get pinned to a specific constraint when matched againstAny, preventing false positives. - Self/cls annotations on all methods and classmethods are validated to ensure they reference the defining class or a superclass, catching more annotation errors.Language Server - The LSP now reports unused-ignorediagnostics when configured to do so, helping you clean up stale suppression comments. - Completions for attribute override definitions are available in class bodies, surfacing base-class members filtered by fuzzy match. - The LSP server no longer crashes on Jupyter notebook cell URIs (vscode-notebook-cell:), with full support for resolving notebook cell paths and position offsets. - Workspace symbol search uses the correct location for re-exported symbols, preventing panics on multi-byte UTF-8 characters. - Inlay hints are clickable for built-in types liketuple,dict, andstr, enabling go-to-definition directly from hint overlays.Error Messages - A new unnecessary-type-conversionlint warns whenstr(),int(), orfloat()is called on an argument that is already of that exact type.Reporting & Coverage - Public symbol filtering is available via pyrefly report --public-only, using cross-module tracing to report only public symbols.Performance - TypedDict subset checks are now cached on the Solver, reducing CPU time by ~5.3x and wall time by ~6.7x on pydantic (from 9.5s to 1.4s). Configuration & Initialization - pyrefly initsupports--dry-runfor safe previews without writing files, and--print-configfor machine-readable TOML output.
🐛 bug fixes
We closed 9 bug issues this release 👏
- #3099: Fixed an issue where property setters and deleters inflated typable counts in
pyrefly reportby incorrectly counting their trivial-> Nonereturn types.- #3098: Fixed an issue where overloads in
pyrefly reportwere not deduplicated, causing parameters and callable signatures to be counted multiple times and inflate coverage metrics.- #3067: Fixed an issue where the type display path was dropping the unpack marker (
*) for directTypeVarTuplearguments, causingShapeto render bare instead of*Shape.- #3040: Fixed an issue where properties on metaclasses were not taking precedence over properties on the class during class-level attribute access, causing false
bad-assignmentandbad-returnerrors.- #3150: Fixed an issue where type aliases were inflating type coverage in
pyrefly reportby being counted as typable entities.- #3041: Fixed a panic during workspace/symbol requests on re-exported symbols with multi-byte UTF-8 characters, caused by using the canonical module's byte offset against the re-exporting file's buffer.
- #3109: Added a new
unnecessary-type-conversionlint that warns whenstr(),int(), orfloat()is called on an argument that is already of that exact type, making the conversion redundant.- #3187: Fixed a panic in
pyrefly reportwhen@no_type_checkdecorator was used, caused by a missing key lookup for skipped parameter annotations.- #3090: Improved the unused-coroutine error message when an
awaitexpression already hasawaitbut produces a coroutine due to an incorrect return type annotation on the function definition.Thank-you to all our contributors who found these bugs and reported them! Did you know this is one of the most helpful contributions you can make to an open-source project? If you find any bugs in Pyrefly we want to know about them! Please open a bug report issue here
📦 Upgrade
pip install --upgrade pyrefly==0.63.0
... (truncated)
e765bc6
bump version599bee3
better inlay hints docsa4ff846
Add module uri to module tsp types (#3250)625877b
Implement multi-connection architecture (#3218)252c52a
move process_event into own block18bb101
factor out snapshot_changed_notification447f5f9
add set_experimental to server84bdff6
Consolidate response helpers and extract parse_tsp_request66b487b
Rename TspServer to TspConnection43ec5ac
Add IPC transport for TSP connections (#3217)