fix(lint): migrate biome.json to Biome 2.4.0 schema — restore broken lint (LAC-2877)#39
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
lacymorrow
force-pushed
the
lac-2877/biome-2-schema-migration
branch
from
July 20, 2026 14:01
0a92cbc to
2eb0fd5
Compare
|
Failed to generate code suggestions for PR |
…or-level lint issues (LAC-2877) - Run 'biome migrate' to update schema 1.9.4 -> 2.4.0 (files.ignore -> files.includes, organizeImports -> assist) - Preserve old noConsoleLog intent: migrate emitted noConsole allow:[log] (inverted); set plain noConsole: warn instead - Exclude public/workers/** (compiled TS output) from linting - Downgrade noArrayIndexKey to warn to match existing warn-level suspicious rules - Fix error-level diagnostics: suppression category (noVar moved to suspicious), useIterableCallbackReturn, noAssignInExpressions/noImplicitAnyLet via matchAll, noRedeclare (rename shadowing AccordionItem interface), a11y overlay div -> button, redundant alt text, aria-label without role - Documented suppressions for escaped dangerouslySetInnerHTML (escapeXML: true) and div[role=status] keeping HTMLDivElement ref Co-Authored-By: Paperclip <noreply@paperclip.ing>
lacymorrow
force-pushed
the
lac-2877/biome-2-schema-migration
branch
from
July 20, 2026 14:07
2eb0fd5 to
07b9481
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Paperclip issue
LAC-2877 — found during LAC-2792.
Problem
package.jsonpins@biomejs/biome@2.4.0butbiome.jsonwas still on the 1.9.4 schema (plus removed keys likefiles.ignore). Everybiomeinvocation exited with a configuration error, sobun run lint:biome/lint:fix:biomewere dead. No CI job runs lint, so this failed silently for local/agent tooling only.Changes
Config (
biome.json)biome migrate(1.9.4 → 2.4.0):files.ignore→files.includesnegations,organizeImports→assist.actions.source.organizeImports.migrateconvertednoConsoleLog: warnintonoConsole { allow: ["log"] }, which inverts the original intent (would allowconsole.logand flag everything else). Biome 2 has no "flag only log" mode, so set plainnoConsole: "warn"(superset of old intent, still warn-level).public/workers/**—logger-worker.jsis compiled TS output (__awaiterboilerplate) and shouldn't be linted.noArrayIndexKeyerror → warn, consistent with this config's existing warn-level suspicious rules (noExplicitAny,noNonNullAssertion); the 6 hits are static/decorative lists with no stable IDs.Code — fixed all remaining error-level diagnostics surfaced by Biome 2.x
tests/setup.ts: suppression referencedlint/style/noVar, which moved tolint/suspicious/noVarin 2.x (parse error).src/lib/utils/extract-headings.ts: replacedwhile ((match = regex.exec(...)))withfor...of matchAll(fixesnoAssignInExpressions+noImplicitAnyLet); braced aforEachcallback (useIterableCallbackReturn).scripts/nextjs-list-pages.ts: braced threeforEachcallbacks (useIterableCallbackReturn).accordion-list.tsx: renamed exportedAccordionIteminterface →AccordionListItem— it shadowed the importedAccordionItemcomponent (noRedeclare). No external importers (verified via grep).component-details.tsx: backdropdiv[role=button]→ real<button type="button" aria-label="Close">(useSemanticElements).loader-atoms.tsx: addedrole="status"soaria-labelis valid (useAriaPropsSupportedByRole); documented suppression foruseSemanticElements(an<output>element would change the exportedHTMLDivElementref type).terminal.tsx: documented suppression fornoDangerouslySetInnerHtml— the converter is constructed withescapeXML: true, so input is escaped and only ansi-to-html's own color spans are injected.masonry.tsx: alt text no longer contains the redundant word "image" (noRedundantAlt).Scoped out (explicitly)
noExplicitAny,noConsole,noArrayIndexKey) — non-blocking, exit code 0; existed conceptually under the 1.9.4 config too.biome check --writewould apply (~194 files) — orthogonal to restoring lint.Testing
Found 1 error: The configuration schema version does not match the CLI version 2.4.0).bun run lint:biome→ exit 0,Checked 271 files… Found 395 warnings, 6 infos, 0 errors.biome check .loads config cleanly (no deserialize errors).bun run typecheck→ exit 0.bun run test→ 4/4 pass.