Release 2.1.244 (2026-10-16)¶
Bug fixes¶
- land 2.1.244 dependency update with ty 0.0.89 typing fixes (#3284)
-
chore(deps): uv lock --upgrade
-
fix(deps): make ty 0.0.89 typecheck clean
The uv lock --upgrade in #3281 moved ty from 0.0.38 to 0.0.89, which reports new errors and deprecation warnings. Annotate the comprehension-built versions lists in test_repo_init as list[str]; swap NamedTemporaryFile.write in test_release_tracking via monkeypatch.setattr instead of attribute assignment (dropping the mypy ignore); and annotate @contextmanager functions as Generator[X] rather than the deprecated Iterator[X]. No behaviour change. Ref #3282
- carry the failing validation stage's output, count a deps-only failure once (#3285)
- fix(update-deps): carry the failing validation stage's output in a deps failure
A validation failure now shows the output of the vrg-validate stage(s) that failed, isolated from vrg-validate's stdout by its stage markers and followed by its summary, instead of the raw tail of the whole run (#3283). When no failing stage can be isolated, the raw tail is shown under a heading that says so. An empty output renders as an explicit placeholder. The size bounds are unchanged.
- fix(release): count a deps-only failure once in the release summary
When the dependency update fails and no CD publish was deferred, publish-status now repeats the deps failure as a warning on its own row instead of raising a second failure, so the summary reads one failed stage (update-deps) while the warnings list still carries the deps failure (#3283). With a deferred publish it still raises, carrying both messages.
- close a dependency-update PR at preflight once its fix task completes (#3287) A squash-merged fix PR never marks the dependency-update PR merged, so the release gate stayed shut after the fix landed (#3281/#3282/#3284). Preflight now looks up each open deps PR's fix task: closed as COMPLETED -> comment and close the PR, record it on the release context, and name it in the prepare-stage tracking comment. Closed for any other reason, open, or missing keeps blocking (non-completed closure gets its own refusal text). All fix tasks are looked up before any PR is closed; lookup, comment and close failures raise ReleaseError naming the PR's state. --allow-pending-deps applies only to what still blocks; --resume still skips the check. Also corrects the fix-task body, which claimed GitHub marks the deps PR merged.
CI Evidence: All gates passed — full audit bundle available. Download →