mypy: clear backend type-check debt so backend-lint mypy step is gating again (538 errors, 89 files) #109

Closed
opened 2026-08-24 02:10:39 +00:00 by Mark · 2 comments
Owner

Context: PR #107 made backend-lint\u2019s ruff strict + format steps green, but the mypy step now runs for the first time in CI and fails with 538 errors across 89 files (pre-existing debt, never green in repo CI history). Per PR #107 scope, mypy was set to non-gating (continue-on-error) until this is fixed.

**Context:** PR #107 made backend-lint\u2019s ruff strict + format steps green, but the mypy step now runs for the first time in CI and fails with **538 errors across 89 files** (pre-existing debt, never green in repo CI history). Per PR #107 scope, mypy was set to non-gating (continue-on-error) until this is fixed.
Author
Owner

mypy preflight (2026-09-04)

t_11d64463 attempted to dispatch a kilo-gsd run for this issue and was blocked by .gsd/gates/pre-dispatch.sh exit 1.

Why: git status --porcelain returns ?? .worktrees/ — the gate ignores .gsd/, .venv/, .kilo/ only, and .worktrees/ is not on that list. The actual dirty path is .worktrees/t_da3205d9, a stale kilo-gsd worktree from a 2026-08-13 plc0415-modules run (branch fix/lint-plc0415-modules @ b5812e4) that was never removed.

This is independent of the labels: the lint-cleanup + blocked:preflight labels cite "dirty ruff state", but the gate does not actually check ruff — it checks worktree cleanliness. The dirty worktree is the only remaining blocker on the current branch (the earlier .forgejo/workflows/* and frontend/src/* dirty paths have been committed).

Operator remediation (any one):

  1. git worktree remove --force /home/b/Projects/osint-hub/.worktrees/t_da3205d9 (cleans the only dirty path)
  2. Stash/commit any in-flight work on issue-70-case-membership-ui, then re-dispatch from a clean worktree rebased on origin/main @ 9931443
  3. Patch .gsd/gates/pre-dispatch.sh to add ^\?\? \.worktrees/ to the allowlist (kilo-gsd worktrees are runner infrastructure)

Scope confirmation: this card targets ~500 mypy errors (assignment/arg-type/attr-defined/misc/return-value/valid-type/call-arg) across ~89 files — actual code work, not a no-op. Unlike sibling cards t_2c23ee7f (no-untyped-def) and t_eb299dc8 (import-untyped), which closed as no-ops because pyproject.toml config suppresses those error classes. The card will only make real progress once the gate clears.

Will retry once the operator clears the gate.

# mypy preflight (2026-09-04) t_11d64463 attempted to dispatch a kilo-gsd run for this issue and was blocked by `.gsd/gates/pre-dispatch.sh` exit 1. **Why:** `git status --porcelain` returns `?? .worktrees/` — the gate ignores `.gsd/`, `.venv/`, `.kilo/` only, and `.worktrees/` is not on that list. The actual dirty path is `.worktrees/t_da3205d9`, a stale kilo-gsd worktree from a 2026-08-13 plc0415-modules run (branch `fix/lint-plc0415-modules` @ b5812e4) that was never removed. **This is independent of the labels:** the `lint-cleanup` + `blocked:preflight` labels cite "dirty ruff state", but the gate does not actually check ruff — it checks worktree cleanliness. The dirty worktree is the only remaining blocker on the current branch (the earlier `.forgejo/workflows/*` and `frontend/src/*` dirty paths have been committed). **Operator remediation (any one):** 1. `git worktree remove --force /home/b/Projects/osint-hub/.worktrees/t_da3205d9` (cleans the only dirty path) 2. Stash/commit any in-flight work on `issue-70-case-membership-ui`, then re-dispatch from a clean worktree rebased on `origin/main @ 9931443` 3. Patch `.gsd/gates/pre-dispatch.sh` to add `^\?\? \.worktrees/` to the allowlist (kilo-gsd worktrees are runner infrastructure) **Scope confirmation:** this card targets ~500 mypy errors (assignment/arg-type/attr-defined/misc/return-value/valid-type/call-arg) across ~89 files — actual code work, not a no-op. Unlike sibling cards t_2c23ee7f (no-untyped-def) and t_eb299dc8 (import-untyped), which closed as no-ops because pyproject.toml config suppresses those error classes. The card will only make real progress once the gate clears. Will retry once the operator clears the gate.
Author
Owner

kilo-gsd-runner for kanban t_3ae0d1aa blocked on pre-dispatch gate: .gsd/gates/pre-dispatch.sh 109 exits 1 because the worktree has untracked .worktrees/t_5df1a1a4/ (left from prior tasker-worker run on annotation debt, awaiting review on PR #118). The in-repo gate does not whitelist .worktrees/. Substrate otherwise clean. Needs gate refactor (whitelist .worktrees/) OR cleanup of the prior worktree once PR #118 lands.

kilo-gsd-runner for kanban t_3ae0d1aa blocked on pre-dispatch gate: `.gsd/gates/pre-dispatch.sh 109` exits 1 because the worktree has untracked `.worktrees/t_5df1a1a4/` (left from prior tasker-worker run on annotation debt, awaiting review on PR #118). The in-repo gate does not whitelist `.worktrees/`. Substrate otherwise clean. Needs gate refactor (whitelist `.worktrees/`) OR cleanup of the prior worktree once PR #118 lands.
Mark closed this issue 2026-09-18 14:50:34 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Mark/osint-hub#109
No description provided.