Files
orca/mobile/scripts
Neil 755c1562c3 fix(lint): enable anti-slop/no-pass-through-type-alias
`anti-slop/no-pass-through-type-alias` rejects a type alias whose entire
right-hand side is a bare reference to another named type, including the
generic form where every type parameter is forwarded positionally and
unchanged (`type A<T> = B<T>`). Those aliases add a second name for one
type: readers have to resolve the indirection, "go to definition" lands on
a rename rather than the shape, and the two names drift apart in review.

Flipped the rule from "off" to "error" in `config/oxlint-anti-slop.json`
and fixed all 195 violations reported across `src`, `config`, `tests`, and
`mobile`.

Fix approach, in order of preference per site:

- Delete the alias and use the target type directly at every reference,
  updating imports. This covers the large majority of the 195.
- Where the alias name was the better or more widely used name, rename the
  target declaration to the alias name instead of renaming call sites (for
  example `GitUncommittedEntry` -> `GitStatusEntry` in
  `src/shared/git-status-types.ts`).
- Where a pass-through sat in front of a type that was itself only used
  through that alias, collapse the pair into a single declaration that
  keeps the real shape (intersection, `Pick`/`Omit`, or union) under one
  name.

No alias was converted into an equivalent `interface X extends Y` to dodge
the rule, and no new pass-through was introduced.

No suppressions were added. The vendored anti-slop plugin source under
`config/oxlint-plugins/anti-slop/` is excluded from the audit by the
`--ignore-pattern` flag in `audit:anti-slop`, and stays byte-identical to
upstream.

Verified:

- `npx oxlint --config config/oxlint-anti-slop.json --ignore-pattern
  'config/oxlint-plugins/anti-slop/**' src config tests mobile` exits 0 (195 -> 0; baseline counted on a scratch worktree of
  `nwparker/2x-lint` with the rule flipped on).
- `node config/scripts/run-typecheck-projects-in-parallel.mjs` exits 0.
- `cd mobile && pnpm typecheck` exits 0 (the parallel script covers only the
  three desktop tsconfigs).
- Root vitest over the changed files and their sibling tests: 210 files,
  4072 passed, 1 skipped.
- Mobile vitest over the changed files and their sibling tests: 36 files,
  445 passed.
- `npx oxlint` with the repo's default config over every changed file
  (root and mobile) exits 0.
- `npx oxfmt --write` run over the changed files in both workspaces.
2026-09-14 17:14:11 -07:00
..