Skip to content

#1260 Retire the dead lint deferrals and clear run-core and foreman - #1265

Merged
williamthorsen merged 3 commits into
mainfrom
1260
Aug 10, 2026
Merged

#1260 Retire the dead lint deferrals and clear run-core and foreman#1265
williamthorsen merged 3 commits into
mainfrom
1260

Conversation

@williamthorsen

@williamthorsen williamthorsen commented Aug 10, 2026

Copy link
Copy Markdown
Owner

What

Fixes deferred lint violations in the lifecycle, run-core, and foreman packages and removes the cap on the severity of associated rules when a strict-lint check is run.

Why

A deferred rule sits at warn, and the lint check runs with no --max-warnings, so it gates nothing: fresh violations accumulate unnoticed and the list stops meaning anything. Fourteen entries across the per-package lists had stopped naming a violation at all, and one of them was reviving a rule the shared config had already turned off, manufacturing seven warnings out of nothing.

Details

♻️ Refactoring

  • The eleven .catch() rejection captures in run-core's run-data-parser.unit.test.ts route through a file-local captureRejection helper. error stays unknown, so every downstream instanceof narrowing and property assertion is untouched; the helper's trailing throw names an unexpected resolution that previously surfaced as a confusing toBeInstanceOf mismatch.
  • run-directory-scanner's two discovery branches collapse to a ternary with a single
    entries.push tail, and ticketsDir becomes hasTicketsDir — it held a boolean but read as a path.
  • foreman's vitest.setup.ts installs its matchMedia and ResizeObserver stubs through
    Object.defineProperties, each from a typeof globalThis.x-annotated const that preserves the type checking the bare assignment had. vi.stubGlobal, the obvious substitute, would have been stripped by the vi.unstubAllGlobals() that two foreman suites run in afterEach, leaving Mantine to render without matchMedia.
  • FakeEventSource.dispatch binds its listener list above the loop, and the manual resolver extraction in useFleetSnapshot.unit.test.ts becomes Promise.withResolvers.

⚙️ Tooling

  • lifecycle, run-core, and foreman lose all three deferral touchpoints: .config/eslint/deferred-lint-rules.ts, the { files, rules } block in eslint.config.ts, and .config/strict-lint.config.ts. The repo root's advisoryRuleSeverities ceiling governs them by cascade, which strict-lint --debug confirms for every directory in each package.
  • agents drops five entries and kb one, leaving each list at exactly the rules its package still violates: eleven for agents, nine for kb.
  • unicorn/prefer-simple-condition-first leaves every list. It is off in eslint-config-typescript 8.7.0, so an entry holding it at warn was re-enabling it.
  • The commented-out *malformed* fixture-ignore patterns leave lifecycle's and run-core's globalIgnores; neither package holds such a fixture.

Closes #1260

Removes every deferred lint rule that reported no violations, along with `unicorn/prefer-simple-condition-first`, which the shared preset already disables. lifecycle no longer carries a deferred-rule list or a package strict-lint config; agents and kb keep theirs, three warnings lighter each.
Clears run-core's remaining lint warnings. The package no longer carries a deferred-rule list or a package strict-lint config, so every rule the deferral held at `warn` now fails a strict-lint check.
Clears foreman's remaining lint warnings. The package no longer carries a deferred-rule list or a package strict-lint config, so every rule the deferral held at `warn` now fails a strict-lint check.
@williamthorsen williamthorsen added the refactoring Improvement to code without change in functionality label Aug 10, 2026
@github-actions

Copy link
Copy Markdown

Dependency audit

Production dependency audit passed.

@williamthorsen williamthorsen self-assigned this Aug 10, 2026
@williamthorsen
williamthorsen marked this pull request as ready for review August 10, 2026 03:25
@williamthorsen
williamthorsen merged commit 70f17b8 into main Aug 10, 2026
3 checks passed
@williamthorsen
williamthorsen deleted the 1260 branch August 10, 2026 03:34
williamthorsen added a commit that referenced this pull request Aug 13, 2026
…e-v0.3.0 codeassembly-v0.9.0 factory-v0.2.6 codeassembly-mcp-v0.2.5

codeassembly-v0.9.0
- #1288 feat: State mutability and name the lede reader at the artifact type lists (#1303)
- #1285 fix: Require plain bullets for checklists on both update-jira-ticket paths (#1302)
- deps: Upgrade all deps to latest version
- #1290 tooling: Upgrade eslint-config-typescript to 10 and complete manifest metadata (#1301)
- #1294 feat: Specify artifact mutability and its sanctioned exceptions (#1297)
- #1293 fix: Present and classify discretionary findings as actionable (#1295)
- #1289 tooling: Remove shelled nmr calls from package manifests (#1291)
- #1280 feat: Add a refresh path that edits an existing AGENTS.md instead of redrafting it (#1287)
- #1055 feat: Replace the lede doctrine with corpus-derived guidance and retire the changelog-writer (#1286)
- deps: Upgrade all deps to latest version
- #1264 refactor: Consolidate error-message extraction on toolbelt.errors' describeError (#1284)
- #1263 refactor: Retire the deferred-lint mechanism and adopt toolbelt.errors in agents (#1279)
- #1262 refactor: Hoist unreadable for-of expressions and promote the lint rule to an error (#1276)
- #1267 fix: Extend the no-hard-wrapping instruction to every GitHub composer (#1275)
- #1177 fix: Rewrite links, tokens, and template variables in a Markdown file support entry (#1273)
- #1176 feat: Add a ticketing-preferences hook to the skills that split and create tickets (#1268)
- #1252 fix: Keep a skill's own sections out of injected guidance (#1266)
- #1260 refactor: Fix lint and retire rule deferrals (#1265)
- #1247 feat: Add a personal tooling-preferences rulebook (#1257)
- #1251 feat: Let a rulebook declare that a guidance hook is how it is reached (#1259)
- #1246 feat: Guard home-domain writes and record their provenance (#1254)
- #1175 feat: Link new tickets to their blockers and parents (#1249)

factory-v0.2.6
- deps: Upgrade all deps to latest version
- #1290 tooling: Upgrade eslint-config-typescript to 10 and complete manifest metadata (#1301)
- deps: Upgrade all deps to latest version
- deps: Upgrade all deps to latest version
- #1264 refactor: Consolidate error-message extraction on toolbelt.errors' describeError (#1284)

kb-v0.6.0
- deps: Upgrade all deps to latest version
- #1290 tooling: Upgrade eslint-config-typescript to 10 and complete manifest metadata (#1301)
- #1289 tooling: Remove shelled nmr calls from package manifests (#1291)
- #1264 refactor: Consolidate error-message extraction on toolbelt.errors' describeError (#1284)
- #1261 feat: Attach causes to kb's loader errors and retire its lint deferral (#1272)
- #1260 refactor: Fix lint and retire rule deferrals (#1265)

codeassembly-lifecycle-v0.4.0
- #1290 tooling: Upgrade eslint-config-typescript to 10 and complete manifest metadata (#1301)
- #1289 tooling: Remove shelled nmr calls from package manifests (#1291)
- #1261 feat: Attach causes to kb's loader errors and retire its lint deferral (#1272)
- #1260 refactor: Fix lint and retire rule deferrals (#1265)

codeassembly-mcp-v0.2.5
- deps: Upgrade all deps to latest version
- #1290 tooling: Upgrade eslint-config-typescript to 10 and complete manifest metadata (#1301)
- #1289 tooling: Remove shelled nmr calls from package manifests (#1291)
- #1264 refactor: Consolidate error-message extraction on toolbelt.errors' describeError (#1284)

codeassembly-run-core-v0.3.0
- deps: Upgrade all deps to latest version
- #1290 tooling: Upgrade eslint-config-typescript to 10 and complete manifest metadata (#1301)
- #1289 tooling: Remove shelled nmr calls from package manifests (#1291)
- #1264 refactor: Consolidate error-message extraction on toolbelt.errors' describeError (#1284)
- #1261 feat: Attach causes to kb's loader errors and retire its lint deferral (#1272)
- #1260 refactor: Fix lint and retire rule deferrals (#1265)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

refactoring Improvement to code without change in functionality scope:foreman scope:lifecycle scope:run-core

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Retire the dead lint deferrals and clear run-core and foreman

1 participant