Context
From the Rhiza quality assessment. [tool.mypy] already exists in pyproject.toml but is not strict — it only sets ignore_missing_imports, warn_unused_ignores, warn_redundant_casts. The active typecheck gate (ty) passes, but local annotations are not enforced (ruff ANN is also unselected — that part is Rhiza-owned config).
Subcategory / score
Type safety 8 → 10 — lowest non-maxed score; config is already present, so this is a high-leverage change.
Where
pyproject.toml [tool.mypy] (lines ~77–82) — add strict = true, then resolve resulting errors in src/.
Acceptance criterion
Done when mypy --strict src/ (the configured invocation) passes with no errors and make fmt / make test remain green.
Scope: locally-owned (pyproject.toml, src/).
Context
From the Rhiza quality assessment.
[tool.mypy]already exists inpyproject.tomlbut is not strict — it only setsignore_missing_imports,warn_unused_ignores,warn_redundant_casts. The active typecheck gate (ty) passes, but local annotations are not enforced (ruffANNis also unselected — that part is Rhiza-owned config).Subcategory / score
Type safety 8 → 10 — lowest non-maxed score; config is already present, so this is a high-leverage change.
Where
pyproject.toml[tool.mypy](lines ~77–82) — addstrict = true, then resolve resulting errors insrc/.Acceptance criterion
Done when
mypy --strict src/(the configured invocation) passes with no errors andmake fmt/make testremain green.Scope: locally-owned (
pyproject.toml,src/).