Skip to content

#1200 Retire mcp's lint deferrals and prune the dead root entries - #1205

Merged
williamthorsen merged 6 commits into
mainfrom
1200
Aug 5, 2026
Merged

#1200 Retire mcp's lint deferrals and prune the dead root entries#1205
williamthorsen merged 6 commits into
mainfrom
1200

Conversation

@williamthorsen

@williamthorsen williamthorsen commented Aug 5, 2026

Copy link
Copy Markdown
Owner

What

Fixes deferred lint violations in the MCP package and restores the severity of the associated rules to "error" when a strict-lint check is run.

Why

The mcp package downgraded four unicorn rules to warnings, so 11 real violations sat unaddressed and any new one would have joined them unnoticed. Three entries in the repo-root list suppressed nothing at all, leaving the list a misleading record of what the repo actually defers.

Details

♻️ Refactoring

  • The stale-build warning's latch moves out of module scope into a closure owned by createStaleWarningGate(), making it per server instance. The eager set before the async staleness check is preserved, so concurrent tool calls still emit at most one warning.
  • The SIGINT handler awaits server.close() inside try/catch in place of a trailing .catch().

🧪 Tests

  • The staleness suite's fake-package helper takes its temp directory from mkdtemp, which gives the OS-guaranteed uniqueness the module-level counter was approximating.
  • Seven ⚠️ regex literals in the staleness suite use \u{…} code point escapes with the u flag.
  • The protocol suite's cleanup queue drains by copy-then-clear rather than splice(0).

⚙️ Tooling

  • packages/mcp/.config/ is gone: both the ESLint deferral list and the strict-lint config whose only job was consuming it. packages/mcp/eslint.config.ts reduces to the base config plus its ignore list. The package inherits the root ceilings, which bound promotion of a warning and leave a rule the ESLint config sets to error at error.
  • The root deferral list drops unicorn/no-computed-property-existence-check, unicorn/no-top-level-side-effects, and unicorn/prefer-await. The two retained rules cover 12 live warnings, all in demos/catwalk/scenarios.js.

Closes #1200

The stale-build warning latches per server rather than per process, so each server reports a stale build once on its own first tool call.
Each fake package directory is created by the OS with a guaranteed-unique name, so concurrent runs of the staleness suite cannot collide.
The four unicorn rules the package deferred to warnings now fail the build, and the package declares no lint ceilings of its own, inheriting the repo-wide ones.
Three unicorn rules that root-level files no longer violate fail the build instead of warning.
@williamthorsen williamthorsen added tooling Development tools scope:mcp labels Aug 5, 2026
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

Dependency audit

Production dependency audit passed.

@williamthorsen williamthorsen self-assigned this Aug 5, 2026
@williamthorsen
williamthorsen marked this pull request as ready for review August 5, 2026 16:14
@williamthorsen
williamthorsen merged commit 192e201 into main Aug 5, 2026
3 checks passed
@williamthorsen
williamthorsen deleted the 1200 branch August 5, 2026 16:16
williamthorsen added a commit that referenced this pull request Aug 7, 2026
…ssembly-mcp-v0.2.4 codeassembly-v0.6.0

codeassembly-v0.6.0
- #794 feat: Guide kb-add note placement with the store's declared taxonomy (#1223)
- #1111 feat: Declare which harnesses sync targets (#1221)
- #1214 feat: Allow an artifact to belong to more than one collection (#1219)
- #1186 drop!: Dissolve `common-mistakes` into its consumers' guidance (#1217)
- deps: Upgrade all deps to latest version
- #1203 fix: Bar acceptance-criteria revision prompts to genuine conflicts (#1212)
- #1196 feat: Add the .kb/taxonomy.yaml format with drift reporting and back-fill (#1210)
- #1165 feat: Make a vetted subset of the library declarable (#1207)
- #1197 feat: Report the retired `harnesses:` frontmatter key from `validate` (#1204)
- #963 feat!: Rename the harness id to rovo and qualify the frontmatter key (#1199)
- #1188 drop!: Retire the bundled Bitbucket inline-comment script (#1198)
- #1187 feat: Gate the boolean prefix on a test and add the tail rule it rests on (#1195)

factory-v0.2.4
- deps: Upgrade all deps to latest version
- deps: Upgrade all deps to latest version
- #1209 refactor: Clear factory's remaining lint violations and retire both deferral lists (#1216)
- #1208 refactor: Clear the visualizations lint violations and retire six rule deferrals (#1213)

kb-v0.4.0
- #794 feat: Guide kb-add note placement with the store's declared taxonomy (#1223)
- #1196 feat: Add the .kb/taxonomy.yaml format with drift reporting and back-fill (#1210)

codeassembly-lifecycle-v0.3.0
- #963 feat!: Rename the harness id to rovo and qualify the frontmatter key (#1199)

codeassembly-mcp-v0.2.4
- #1206 refactor: Retire fleet's lint deferrals (#1211)
- #1200 tooling: Retire mcp's lint deferrals and prune the dead root entries (#1205)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

scope:mcp tooling Development tools

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix lint suppressed by mcp's deferrals and prune dead root deferrals

1 participant