Repository navigation
Migrate to oxfmt oxlint - #4068
Merged
Merged
Conversation
- Replace XO (ESLint) with oxlint (type-aware via oxlint-tsgolint) — .oxlintrc.json - Replace Prettier with oxfmt — .oxfmtrc.json (import/tailwind sorting land in follow-up commits) - Replace eslint-plugin-better-tailwindcss with native oxlint-tailwindcss plugin - Upgrade TypeScript 6.0.3 -> 7.0.2 (native tsc; no separate tsgo package) - Update scripts (lint/lint:ci/format/format:check), turbo globalDependencies, lefthook - Add oxc VS Code extension recommendation + settings; .git-blame-ignore-revs - Remove 12 dead lint-disable directives Deferred (flagged for follow-up): no-floating-promises (46 findings) off; react/react-compiler set to warn (experimental rule diverges from eslint plugin); no-useless-default-assignment + unbound-method off (net-new, need code changes). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Enable oxfmt sortImports with internalPattern covering all @/ path aliases (@app, @ui, @public, @background, @helpers, @PopUp, @store). Mechanical import reordering only — no logic changes. SHA added to .git-blame-ignore-revs in a follow-up commit. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Enable oxfmt sortTailwindcss (stylesheet = packages/ui globals.css, functions clsx/cn/cva). Mechanical class reordering only — no logic changes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Drop root tailwindcss devDep (was the peer for eslint-plugin-better-tailwindcss, now removed; oxlint-tailwindcss bundles its own, apps keep theirs via catalog) - contributing.md: replace XO/Prettier VS Code extension links with the Oxc extension - Remove .git-blame-ignore-revs (opted out of blame-ignore for the sort commits) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Extension version is updated from |
Code Review by Qodo
1. Web setup imports from @playwright/test
|
- next 16.2.10 -> 16.3.0-canary.83 and enable experimental.useTypeScriptCli: TS7's native package drops the JS compiler API that Next's default backend uses to read tsconfig paths, breaking `next build`. useTypeScriptCli runs the local tsc (via tsc --showConfig) instead. First stable Next with this is 16.3; revert off the canary once 16.3 GA ships. (vercel/next.js#95639) - .vscode: use the TypeScript native-preview language server (js/ts.experimental .useTsgo + js/ts.tsdk.path) and recommend TypeScriptTeam.native-preview; drop the obsolete typescript.tsdk (TS7 has no tsserver.js) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Two Next 16.3 (canary) behavior changes surfaced at dev runtime: - Footer awaits headers() (per-request timezone), which under cacheComponents blocks prerendering of `/`. Wrap it in <Suspense> with a height-reserving FooterSkeleton so the static shell prerenders and the footer streams. - Next 16.3 auto-generates apps/web/AGENTS.md + CLAUDE.md; the repo keeps a single root AGENTS.md, so set agentRules: false and remove the generated files. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
amitsingh-007
commented
Jul 12, 2026
amitsingh-007
commented
Jul 12, 2026
…omment - .oxfmtrc.json: sortPackageJson true (sorts all 7 package.json files) - .lefthook.yml: condense pre-commit comment to a single line Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Check if the Pull Request fulfils these requirements
Greptile Summary
This PR replaces the XO + Prettier toolchain with oxlint and oxfmt (Rust-based linter and formatter) across the entire monorepo. It also upgrades TypeScript from 6.0.3 to 7.0.2 and Next.js from 16.2.10 to
16.3.0-canary.83(required to support TS7 viaexperimental.useTypeScriptCli).xo.config.ts,.prettierrc.json, and.prettierignoreare removed;.oxlintrc.jsonand.oxfmtrc.jsonare added. Pre-commit hooks are updated in.lefthook.ymlto run oxlint--fixthen oxfmt sequentially (sequential order avoids write races on the same files).sortImportsconfig — no logic changes were made.16.3.0-canary.83is used becauseexperimental.useTypeScriptCli, which requires Next ≥ 16.3, is needed to work around TypeScript 7 dropping the JS compiler API; this is documented in anext.config.tscomment.Confidence Score: 5/5
Safe to merge — all 172 source file changes are import-order reformatting only, with no logic touched.
The migration is purely additive tooling change. Every source file diff is limited to import ordering; no business logic, auth, data handling, or API contracts changed. The configuration files correctly replicate the rule set from the old XO config.
pnpm-workspace.yaml — the next: 16.3.0-canary.83 entry is worth revisiting once a stable 16.3 ships.
Reviews (3): Last reviewed commit: "chore: address PR review — enable sortPa..." | Re-trigger Greptile