* main: (36 commits)
[ty] Reduce diagnostic range for `invalid-metaclass` (#24145)
[ty] Simplify TypeVar assignability/subtyping logic (#24138)
[ty] Prevent tainted loop bindings in cycle normalization (#24143)
[ty] Add precisely-typed overloads for `TypedDict` update (#24101)
[ty] Fix folding ranges of comments separated by statements (#24132)
Bump ecosystem-analyzer pin (#24136)
Bump ecosystem-analyzer pin (#24135)
Simplify `NewType` handling in `relation.rs` (#24109)
[ty] Add more tests for `NewType` subtyping (#24115)
[ty] Add `NewType`s to the property tests (#24113)
[ty] Prepare test files for unreachable code change (#24133)
`analyze graph`: resolve string imports that reference attributes, not just modules (#24058)
Update Artifact GitHub Actions dependencies (#24116)
Update taiki-e/install-action action to v2.68.33 (#24130)
Update taiki-e/install-action action to v2.68.32 (#24123)
Update Rust crate serde_with to v3.18.0 (#24126)
Update Swatinem/rust-cache action to v2.9.1 (#24127)
Update Rust crate quick-junit to 0.6.0 (#24125)
Update Rust crate clap to v4.6.0 (#24124)
Update Rust crate tracing-subscriber to v0.3.23 (#24122)
...
Summary
Closes astral-sh/ty#3116.