chore: config cleanup and dependency upgrades#42
Conversation
Settings: - Expand deny array to multi-line format for readability - Disable pr-review-toolkit plugin Minor configuration tidy-up to improve settings file maintainability. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…status Search hints: - Remove user:1234 author search syntax hint - Add isaccepted:yes hint for filtering by accepted answer status Adjusts available search syntax hints to prioritise answer status filtering over author-based searches.
Routing: - Add permanent redirect from /questions to / in next.config.ts DevFlow serves the questions list at root rather than /questions. This redirect handles the alternative URL path consistently.
Permissions: - Sort allow list alphabetically (Bash commands, then mcp entries) - Remove WebFetch domain permissions (no longer needed) Plugins: - Enable code-simplifier plugin - Rename marketplace from my-claude-plugins to my-claude-marketplace - Remove unused plugin entries (playwright-skill, frontend-design, tailwindcss) Cleans up accumulated configuration drift and aligns plugin names with the renamed marketplace repository. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Dependencies: - @clerk/nextjs 6.36.5 → 6.36.8 - @clerk/themes 2.4.46 → 2.4.48 - next 16.1.1 → 16.1.3 Dev Dependencies: - @clerk/testing 1.13.26 → 1.13.29 - @types/node 25.0.3 → 25.0.9 - baseline-browser-mapping 2.9.11 → 2.9.15 - lefthook 2.0.13 → 2.0.15 - shadcn 3.6.2 → 3.7.0 - vite-tsconfig-paths 6.0.3 → 6.0.4 - vitest 4.0.16 → 4.0.17 Routine patch-level updates to keep dependencies current. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Dependencies: - Bump minimum versions for all packages to latest stable - Notable: Next.js 16.1.6, React 19.2.4, Biome 2.3.14, Playwright 1.58.1, jsdom 28.0.0 Configuration: - Move CLAUDE.md to .claude/CLAUDE.md - Add cacheComponents breaking change notes - Reorganise VS Code settings into logical sections - Update Biome schema to 2.3.14 Aligns pinned minimums with installed versions so package.json accurately reflects the tested baseline. Config reorganisation groups related settings for readability. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Include diff hunk in fetched comment for better evaluation context - Rename output file to `x_coderabbit_COMMENT_ID.md` for clarity - Add instructions for replying to CodeRabbit via GitHub API The diff context helps evaluate whether a suggestion is relevant without needing to manually locate the surrounding code. The reply workflow enables closing the feedback loop directly from the CLI. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds argument support, reorders steps to read rules before applying template, and tidies wording for clarity. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace `.markdownlint.yaml` with `.markdownlint-cli2.yaml` to align with nextjs-base and use the native config format for markdownlint-cli2. Adds `ignores` for node_modules, MD028 (blockquotes), and MD032 (list blanks). Drops MD029 (ordered list style) which is no longer needed. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Dependencies: - Bump minor/patch versions across all packages - Update Biome schema reference to 2.4.10 Style: - Sort component exports alphabetically (Biome auto-fix) Brings all dependencies to latest within their semver ranges before tackling upcoming major version upgrades. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copied from nextjs-base to keep MCP tooling consistent across projects. Uses API_KEY_MCP_REF environment variable for authentication. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ut.tsx - Upgrade @vercel/analytics 1.6.1 → 2.0.1 - Upgrade @vercel/speed-insights 1.3.1 → 2.0.0 - Add <Analytics /> and <SpeedInsights /> components to root layout v2 requires explicit component mounting rather than automatic injection. No behavioural change; same telemetry, new API surface. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Dev dependency upgrades: - @vitejs/plugin-react 5→6 (now uses @rolldown/plugin-babel) - TypeScript 5.9→6.0 - jsdom 28→29 - Remove vite-tsconfig-paths in favour of built-in resolve.tsconfigPaths Vitest config updated to match the new plugin-react v6 API which externalises Babel via @rolldown/plugin-babel and exposes a reactCompilerPreset helper. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Major version bump from 0.563 to 1.7.0. All 10 icon imports verified present and working in the new version. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Dependencies:
- Upgrade shadcn CLI from v3.8.5 to v4.1.2
- Replace 5 individual @radix-ui/react-* packages with unified radix-ui
- Slot usage updated from direct import to Slot.Root API
Radix migration (8 files in components/ui/):
- Rewrite all imports from @radix-ui/react-{dialog,popover,separator,
slot,tooltip} to named imports from radix-ui
- Run via `npx shadcn@latest migrate radix`
Accessibility:
- Add visually hidden SheetDescription to mobile nav sheet to satisfy
Radix Dialog aria-describedby requirement (WAI-ARIA best practice)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Component API migration: - Replace SignedIn/SignedOut with Show component across navigation - Move ClerkProvider inside <body> (Core 3 requirement) - Rename appearance.layout to appearance.options on sign-in/up Package changes: - @clerk/nextjs 6.39.1 → 7.0.7 - @clerk/testing 1.14.4 → 2.0.7 - @clerk/themes replaced by @clerk/ui (theme import path updated) - CSS import updated from @clerk/themes/shadcn.css to @clerk/ui/themes/shadcn.css Documentation: - Reformat CLAUDE.md tech stack to match nextjs-base convention Core 3 is a major Clerk SDK release that unifies conditional rendering under a single Show component and repositions ClerkProvider for cache component support. All 17 E2E tests (including authenticated flows) pass. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Moves project documentation to a dotfile directory. Updates all references across config and markdown files: biome.json, .gitignore, .claude/settings.json, .claude/commands/commit.md, README.md, sidebar.md, and two internal cross-references within .xdocs/ itself. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Summary by CodeRabbitRelease Notes
WalkthroughThis pull request consolidates dependency upgrades (Clerk, Radix UI, Next.js, React, analytics libraries), migrates project documentation paths ( Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 12
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.claude/commands/commit.md:
- Line 56: Update the incorrect git convention text in
.claude/commands/commit.md: replace the claim that the body line length is
"60-65 characters" with the correct standard of 72 characters for body lines and
note 50 characters for the subject line (i.e., subject ≈50, body wrap at 72).
Locate the sentence referencing "60-65" and amend it to state "50 for the
subject line and 72 for body text" to reflect the proper git commit message
conventions.
- Line 33: Replace the awkward placeholder "[2-3 terse sentences of why /
benefit / impact]" with a grammatically correct phrasing such as "2-3 terse
sentences about why / benefit / impact" or "Explain why / the benefit / the
impact in 2-3 terse sentences" in the commit.md content so the instruction reads
naturally; update the exact placeholder string in .claude/commands/commit.md
(the line containing "[2-3 terse sentences of why / benefit / impact]") to one
of these alternatives.
In @.xdocs/figma/nav-over-breakpoints.md:
- Line 3: Update the image reference in .xdocs/figma/nav-over-breakpoints.md to
use a relative path to the same directory instead of the current
`.xdocs/figma/nav-over-breakpoints.jpg` absolute-ish path; replace the link
target with `./nav-over-breakpoints.jpg` (or `nav-over-breakpoints.jpg`) so
standard Markdown renderers resolve the image correctly in the same folder.
In @.xdocs/my_notes/so-links.md:
- Line 91: The sentence "Data flow gap: The UI submits to /search?q=horse but
the page just displays "horse" — no actual searching happens." joins two
independent clauses with "but" and needs a comma before "but"; update that line
to read ".../search?q=horse, but the page just displays..." so it follows
standard punctuation rules.
- Line 7: Edit the sentence in .xdocs/my_notes/so-links.md to correct the verb
and remove the duplicated word: change "I have just implement the UI for
"search" on both desktop and and mobile. these changes are currently staged." to
use the past participle ("implemented") and remove the extra "and" and
capitalize the sentence start so it reads something like "I have just
implemented the UI for 'search' on both desktop and mobile. These changes are
currently staged."
- Line 5: Replace the phrase "high level details" with the hyphenated compound
adjective "high-level details" in the line containing "Reference: high level
details on convex choice `.xdocs/my_notes/what-db.md`" so the sentence reads
"Reference: high-level details on convex choice `.xdocs/my_notes/what-db.md`".
- Line 13: Fix the subject-verb agreement and capitalization in the question
string "Q1. Is my search ui components at all ready for data, what is in place
already (if anything at all)?" by changing it to "Q1. Are my search UI
components at all ready for data, and what is in place already (if anything at
all)?" — locate the exact sentence in the document and replace the verb "Is"
with "Are" and "ui" with "UI", and add "and" to improve readability.
- Around line 175-181: The ordered list inside the <homepage_requirements>
section is using 3., 4., 5. instead of starting at 1; update the list entries
(the three lines beginning "Implement number of questions...", "Implement
pagination...", and "Refactor question card...") to use sequential numbering
(1., 2., 3.) or use "1." for every item so Markdown renders them as a proper
ordered list; ensure the list indentation and any nested bullet formatting
remain unchanged.
- Line 15: The phrase "test driven development" in the Q3 line is missing the
hyphen; update the phrase to "test-driven development" wherever it appears
(e.g., in the line beginning "Q3. If and only if the recommendation to Q2...")
to use the correct compound-adjective form.
In `@app/layout.tsx`:
- Around line 31-34: The external Devicon stylesheet link in app/layout.tsx
currently uses a non-deterministic CDN target ("@latest"); update the href on
the <link rel="stylesheet"> element to pin to the stable version v2.17.0
(replace the devicon@latest URL with the devicon@2.17.0 URL) so the stylesheet
is versioned and deterministic across deploys.
In `@components/search/search-hints-data.ts`:
- Line 7: The hint entry with syntax "isaccepted:yes" advertises unsupported
behavior—either remove that object from the hints array in search-hints-data.ts
(delete the { syntax: "isaccepted:yes", description: ... } entry) or implement
the feature end-to-end: add an accepted field to the data schema, update the
search hook to parse key:value tokens (e.g., "isaccepted:yes") and filter
results accordingly, and replace the TODO in the search results page to use the
new filter; pick one approach and ensure tests/fixtures and any UI text stay
consistent.
In `@next.config.ts`:
- Around line 4-13: Add a short inline comment inside the async redirects()
block clarifying that the redirect is an exact-match for source "/questions" and
will not affect dynamic routes like "/questions/[id]" or subpaths like
"/questions/ask"; update the comment near the redirects() function or the
specific redirect object (source: "/questions", destination: "/") to explicitly
state the exact-match intent for future maintainability.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 4355535e-b682-4d65-ada5-11adb4868651
⛔ Files ignored due to path filters (36)
.xdocs/DONE/2026-01-01-right-sidebar/current.jpgis excluded by!**/*.jpg.xdocs/DONE/2026-01-01-right-sidebar/pic1-target.jpgis excluded by!**/*.jpg.xdocs/DONE/2026-01-01-right-sidebar/tags.jpgis excluded by!**/*.jpg.xdocs/figma/_all.pngis excluded by!**/*.png.xdocs/figma/_colors.pngis excluded by!**/*.png.xdocs/figma/_typography.pngis excluded by!**/*.png.xdocs/figma/auth/dark-signin1_nobg.pngis excluded by!**/*.png.xdocs/figma/auth/dark-signin1_withbg.jpgis excluded by!**/*.jpg.xdocs/figma/auth/dark-signin2_nobg.pngis excluded by!**/*.png.xdocs/figma/auth/dark-signin2_withbg.jpgis excluded by!**/*.jpg.xdocs/figma/auth/dark-signup_nobg.pngis excluded by!**/*.png.xdocs/figma/auth/dark-signup_withbg.jpgis excluded by!**/*.jpg.xdocs/figma/auth/flows.jpgis excluded by!**/*.jpg.xdocs/figma/auth/light-signin1_nobg.pngis excluded by!**/*.png.xdocs/figma/auth/light-signin1_withbg.jpgis excluded by!**/*.jpg.xdocs/figma/auth/light-signin2_nobg.pngis excluded by!**/*.png.xdocs/figma/auth/light-signin2_withbg.jpgis excluded by!**/*.jpg.xdocs/figma/auth/light-signup_nobg.pngis excluded by!**/*.png.xdocs/figma/auth/light-signup_withbg.jpgis excluded by!**/*.jpg.xdocs/figma/dark-bg.jpgis excluded by!**/*.jpg.xdocs/figma/dark-home.pngis excluded by!**/*.png.xdocs/figma/dark-profile.pngis excluded by!**/*.png.xdocs/figma/dark-qna.pngis excluded by!**/*.png.xdocs/figma/dark-search.pngis excluded by!**/*.png.xdocs/figma/grok-screenshot.jpgis excluded by!**/*.jpg.xdocs/figma/light-bg.jpgis excluded by!**/*.jpg.xdocs/figma/light-home.pngis excluded by!**/*.png.xdocs/figma/light-profile.pngis excluded by!**/*.png.xdocs/figma/light-qna.pngis excluded by!**/*.png.xdocs/figma/light-search.pngis excluded by!**/*.png.xdocs/figma/mobile/dark-nav_close.pngis excluded by!**/*.png.xdocs/figma/mobile/dark-nav_open.pngis excluded by!**/*.png.xdocs/figma/mobile/light-nav_close.pngis excluded by!**/*.png.xdocs/figma/mobile/light-nav_open.pngis excluded by!**/*.png.xdocs/figma/nav-over-breakpoints.jpgis excluded by!**/*.jpgpackage-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (63)
.claude/CLAUDE.md.claude/commands/coderabbit.md.claude/commands/commit.md.claude/settings.json.gitignore.markdownlint-cli2.yaml.markdownlint.yaml.mcp.json.vscode/settings.json.xdocs/DONE/2025-12-14-eval-auth-ui-customise.md.xdocs/DONE/2025-12-17-make-mobile-nav.md.xdocs/DONE/2025-12-17-page-spacing.md.xdocs/DONE/2025-12-25-layout-refactor.md.xdocs/DONE/2026-01-01-right-sidebar/devicon-readme.md.xdocs/DONE/2026-01-01-right-sidebar/devicon.json.xdocs/DONE/2026-01-01-right-sidebar/handover-1.md.xdocs/DONE/2026-01-01-right-sidebar/handover-2.md.xdocs/DONE/authentication.md.xdocs/DONE/navigation.md.xdocs/DONE/search.md.xdocs/figma/nav-over-breakpoints.md.xdocs/my_notes/WORDS.md.xdocs/my_notes/caching-explained-1.md.xdocs/my_notes/caching-explained-2.md.xdocs/my_notes/homepage.md.xdocs/my_notes/micro-interactions.md.xdocs/my_notes/prompt-QA.md.xdocs/my_notes/searchbox.md.xdocs/my_notes/secrets-reference.md.xdocs/my_notes/so-links.md.xdocs/my_notes/theme_resources.md.xdocs/my_notes/votes_scores.md.xdocs/my_notes/what-db.md.xdocs/my_notes/zustand.md.xdocs/reference/README.md.xdocs/reference/default.theme.css.xdocs/reference/preflight.css.xdocs/textbook/auth.md.xdocs/textbook/state.md.xdocs/textbook/url-state.mdREADME.mdapp/globals.cssapp/layout.tsxbiome.jsoncomponents/auth/clerk-signin.tsxcomponents/auth/clerk-signup.tsxcomponents/navigation/desktop-topbar.tsxcomponents/navigation/left-sidebar.tsxcomponents/navigation/mobile-nav.tsxcomponents/providers/clerk-provider.tsxcomponents/search/search-hints-data.tscomponents/ui/badge.tsxcomponents/ui/button.tsxcomponents/ui/dialog.tsxcomponents/ui/popover.tsxcomponents/ui/separator.tsxcomponents/ui/sheet.tsxcomponents/ui/sidebar.tsxcomponents/ui/tooltip.tsxnext.config.tspackage.jsonsidebar.mdvitest.config.ts
💤 Files with no reviewable changes (1)
- .markdownlint.yaml
Summary
Housekeeping branch: upgrades all dependencies to their latest major versions and cleans up project configuration/tooling. No new features or bug fixes — purely maintenance.
Major Dependency Upgrades
@clerk/nextjs+@clerk/themes)@clerk/nextjs+@clerk/ui)SignedIn/SignedOut→Showcomponent;appearance.layout→appearance.options; ClerkProvider moved inside<body>@radix-ui/react-*packagesradix-uipackageSlot→Slot.Root@rolldown/plugin-babel+reactCompilerPreset; dropsvite-tsconfig-pathsfor built-inresolve.tsconfigPaths<Analytics />and<SpeedInsights />in layoutPlus minor/patch bumps across everything else (Next.js, React, Playwright, lefthook, markdownlint-cli2, etc.).
Layout Restructuring (Clerk v7 / Core 3)
app/layout.tsxreorganised:<html>and<body>moved outside<ClerkProvider>and<Suspense>, which are now nested inside<body>. This is a Core 3 requirement.<Analytics />and<SpeedInsights />added as explicit components.Configuration Cleanup
.claude/CLAUDE.md; tech stack section reformatted;cacheComponentsbreaking-change notes addedx_docs/renamed to.xdocs/(dotfile convention) — all references updated across biome.json, .gitignore, settings, README, sidebar.md.markdownlint.yaml→.markdownlint-cli2.yaml(native cli2 format, addsignoresand tweaks disabled rules).mcp.json— Ref MCP server added.claude/settings.json— allow list sorted alphabetically, WebFetch domain permissions removed, plugin list cleaned up (marketplace renamed, stale plugins removed, code-simplifier enabled).claude/commands/commit.md— argument support added, steps reordered, wording tightened.claude/commands/coderabbit.md— diff hunk context included in fetched comments, reply-to-CodeRabbit workflow addedTwo Small Functional Changes
next.config.ts: permanent redirect from/questions→/search-hints-data.ts:user:1234hint replaced withisaccepted:yesAccessibility Fix
SheetDescription(visually hidden) added to mobile nav to satisfy Radix Dialog'saria-describedbyrequirementTest plan
🤖 Generated with Claude Code