v0.19.0 — type checking: mypy clean + CI gate
·
2 commits
to main
since this release
[0.19.0] — 2026-06-15 — Type checking: mypy clean + CI gate
Added
mypygate in CI (uv run mypy, config in[tool.mypy]). The codebase is now
type-clean (0 errors) — the 80 real issues mypy found were FIXED, not silenced:- source classes now declare
kind: Kind(was barestr) so they satisfy the
Sourceprotocol; - the recipe self-heal paths narrow
recipe/hrecipewith asserts (the invariant
is real — those paths run only when a recipe is set); default_statuskeepsnowtyped (the_ensure_utc(now) or ...form);corereturns the properFetchStatus/FetchErrorKindliterals;with_retryacceptsCallable[..., Response]so the loop-capture idiom
lambda x=x: …type-checks;- the LLM-extracted
kindsimplifies to"tender" if … else "incentive"(noAny); - plus a handful of small Optional-narrowing fixes. Only two justified
# type: ignoreremain (httpx's overloadedstream(**kwargs)and the header dict).
- source classes now declare
mypyadded to thedevgroup.
Notes
- No runtime behaviour change (asserts are invariant guards; the
kindand status
logic are equivalent). This completes the CI-hardening chapter the external review
asked for (lint + format + tests + coverage + security + audit + types).