fix(ui): declare cn 0.2.6 and verify the bump #34 shipped - #35
Merged
Merged
Conversation
The @shadcn/lint install moved the resolved cn from 0.2.5 to 0.2.6 through the lockfile: the plugin depends on cn@0.2.6 exactly, the caret ranges here admitted it, and bun deduped the workspace onto one copy. The declared ranges said 0.2.5 while node_modules ran 0.2.6. This makes the declaration match, and verifies the bump that already shipped. 0.2.6 is not a CLI-only release. dist/index.js and dist/engine.js are byte-identical to 0.2.5, dist/tables.js is not, and GROUP_COUNT goes 379 to 384: five new groups for custom animations, containment, legacy gradients and missing Tailwind v4 utilities. Replaying the 307 real cn() call sites of the repository reports no difference. Every ordered pair of the 1411 class tokens it recognizes reports 28, all of them one shape: two animation classes that 0.2.5 kept and 0.2.6 collapses. Recognition gains 6 tokens and loses none. The grouping is the fix, not a regression, because both classes set animation in Tailwind v4 and keeping both let stylesheet order decide. None of it is reachable. Three source lines carry two animation classes: two ternaries in ai-search.tsx, where only one branch ever reaches cn, and the data-open/data-closed pairs in alert-dialog and popover, which sit under different variants and do not conflict. utils.test.ts flattened one of those ternaries into a single call, so it pinned a merge that cannot happen and failed on the correct fix. It now carries one row per branch, and both branches agree across 0.2.5, 0.2.6 and tailwind-merge 3. Its six stale where: paths, left behind by the Feature-Sliced Design move, point at the real files again.
The glob already skipped the hook for a documentation-only commit. A commit whose only source file sits under an ignored path — packages/ui is ignored by oxlint.config.ts — still matched the glob, handed oxlint a file it refuses to lint, and got exit 1 with "No files found to lint". --no-error-on-unmatched-pattern is the flag for that case; a real violation in a lintable file still fails, verified with a debugger statement.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
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.
Summary
Declares
cn0.2.6 in the two packages that depend on it, and verifies the bump that #34 already shipped by accident:@shadcn/lintdepends oncn@0.2.6exactly, the caret ranges admitted it, and Bun deduped the workspace onto one copy — sonode_modulesran 0.2.6 while both manifests still said 0.2.5. Look atpackages/ui/src/lib/utils.test.tsfirst: it caught the change, and it was pinning a merge that cannot happen at runtime.Motivation
dist/index.jsanddist/engine.jsare byte-identical to 0.2.5,dist/tables.jsis not, andGROUP_COUNTgoes 379 → 384.where:paths in that corpus went stale in the Feature-Sliced Design move and now point at the real files again.Drawbacks
dev; the evidence arrives after the fact, not before.Prior art
cnreplaced clsx + tailwind-merge, and it records the previous output verbatim.animatevalidator accepts only built-in names, so it cannot groupanimate-fd-*. Grouping them is the 0.2.6 fix, since both setanimationin Tailwind v4.--no-error-on-unmatched-patternis oxlint's own flag for the empty-input case, not a wrapper script.Notes
animate-fd-fade-in→fd-fade-in, and the dialog →ask-ai-open.cn()call sites replayed through 0.2.5 and 0.2.6 report 0 differences; all 1 989 510 ordered pairs of the 1 411 recognized class tokens report 28, every one of them two animation classes collapsing; recognition gains 6 tokens and loses 0.ai-search.tsx, where only one branch reachescn, and thedata-open/data-closedpairs inalert-dialog.tsxandpopover.tsx, which sit under different variants.apps/fumadocspages: none. A dependency bump that changes no documented behavior needs no docs page;packages/ui/AGENTS.mdgains the rule that acnupgrade is a restyle until the corpus says otherwise.bun run check,bun run check-types,bun run check:fsd,bun run docs:check(38 pages, 0 errors, 0 warnings),bun run build, and all three suites — 16 + 294 + 134 pass.packages/ui, whichoxlint.config.tsignores. Verified it still fails on a real violation.