Repository navigation
chore: make main pass biome and typecheck so CI can be required - #206
Merged
Merged
Conversation
Apply biome formatting and lint autofixes, upgrade framer-motion within v11 to fix React 19 JSX type errors, and fix the remaining type errors so the lint-and-typecheck job passes on main. Exclude the auto-synced openapi.json from biome's size limit.
The lint-and-typecheck job pinned Node 18.18.0, but the project requires ^24.4.0 and TypeScript 7 cannot load on Node 18, so typecheck failed on every run.
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.
Why
Vanta flags merged PRs that bypassed automated checks. Today
mainhas no required status checks, so PRs could merge withlint-and-typecheckfailing (for example, one PR merged with 81 biome errors) or with no checks at all (fork PRs that never got a workflow run).Requiring the check on
mainis the fix, butmaincurrently fails it, so requiring it now would block every PR. This PR makesmaingreen first. The branch protection change follows once this lands.Changes
useTemplate,useOptionalChain,forEachtofor...of, etc.).framer-motionbumped within^11to^11.18.2. The old 11.3.19 has JSX types that break under React 19 and caused about 20 of the type errors.app/api/og/route.ts: wrapBufferinUint8ArrayforResponsebodies.lib/ghost.ts: explicit return types ongetPostsByTagandgetTags.components/ContactForm.tsx: accept"other", whichContactFormModalalready passes.components/SecondaryFeatures.tsx:Feature.nameisReactNode, since desktop passes a<Tab>.components/navigation.tsx: export the constant so the file is a module (it collided with the DOMnavigationglobal). Nothing imports it.components/ui/ripple.tsx: type the sponsors array.lib/hooks/use-debounce.ts: React 19useRefneeds an initial value.biome.json: ignoreapps/docs/public/openapi.json, which is auto-synced and exceeds Biome's 1 MiB limit.Verification
pnpm biome ci: passes (172 files).pnpm typecheck: passes.next buildand a visual check of the blog and contact modal.