Repository navigation
chore(skills): catalog what the ledger-live 0.1.67 upgrade taught - #937
Merged
Merged
Conversation
Findings from upgrading ledger-live (ui-react 0.1.64 -> 0.1.67, ui-rnative 0.1.67 -> 0.1.70, design-core 0.1.32 -> 0.1.34), checked against the published dists: - C34: default replacement for BellNotification / ShieldCheckNotification (base icon inside a red DotIndicator, as a local icon component). - C52, C35: className now lands on the wrapper span while data-state stays on the input and inner span, so data-[state=...] overrides silently stop applying; detect them and flag the Lumen gap. - T7: only named leading-* values emit no CSS; leading-none / px / arbitrary are static and leading-<n> reads Lumen's px spacing. Note the classes are pre-existing dead code and removing them is a visual no-op. - S5, C35, C52: remove clsx / tailwind-merge / Radix declarations that only satisfied the old peers. - lumen-api-diff: re-fetch when a cached package/ has no package.json. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: zel-kass <zakary.el-idrissi-kassimi@ledger.fr>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The focused catalog updates and cache guard have no identified blocking issues.
No open issues 🎉
What changed in this PR
Updates Lumen’s consumer-upgrade tooling and migration catalog with lessons from the ledger-live upgrade. Changes are limited to internal skills; no published library code changes.
Changes:
- Clarifies icon replacements, state-styling limitations, Tailwind typography behavior, and unused dependency cleanup.
- Retries package fetching when a cached extraction lacks
package.json.
| File | Description |
|---|---|
.claude/skills/lumen-consumer-upgrade/scripts/lumen-api-diff.mjs |
Checks for the package manifest before reusing a cached extraction. |
.claude/skills/lumen-consumer-upgrade/references/breaking-changes.md |
Refines migration detection and remediation guidance. |
Review effort: Balanced
gamegee
approved these changes
Oct 27, 2026
This branch was successfully deployed
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.



Context
Upgrading ledger-live from ui-react 0.1.64 → 0.1.67, ui-rnative 0.1.67 → 0.1.70, design-core 0.1.32 → 0.1.34, utils-shared 0.1.16 → 0.1.18 and lint-plugin 0.1.0 → 0.1.1 with
/lumen-consumer-upgradeshowed a few rows that were incomplete or misleading. This PR feeds that back into the catalog. Every claim was checked against the published dists (and, for T7, by compiling ledger-live's real Tailwind v4 setup).Technical details
BellNotification/ShieldCheckNotificationnow have a default replacement: the base icon (Bell,ShieldCheck) inside<DotIndicator appearance="red" size="md">, as a small local icon component that takes the icon props so it still fitsIconButton/Spoticon. Still "confirm with design".classNamelands on the wrapper<span>, whiledata-state(anddata-disabledfor Switch) live on the hidden<input>and the inner span. Anydata-[state=checked]:…override silently stops applying. Detection now catches it, the rows are marked 👁 🔇, and the fix says there is no supported way to restyle the checked state (a Lumen gap).leading-\w+over-matched. Only the named keywords (tight,snug,normal,relaxed,loose) emit no CSS;leading-none,leading-pxandleading-[…]are static, andleading-<n>resolves to Lumen's px spacing (leading-6= 6px). The row also notes these classes are pre-existing dead code, and that removing them is a visual no-op sincecnkeeps the component's own typography class (cn('body-2','font-semibold')keeps both).clsx,tailwind-merge,@radix-ui/react-switchand@radix-ui/react-checkboxin every dependency field, pnpm catalog and knip ignore lists only to satisfy the old peers. The rows now say to remove them wherever nothing imports them (design-core 0.1.34 depends on clsx + tailwind-merge itself).fetchVersionchecked only forpackage/, so a cache dir left by an interrupted run crashed with ENOENT onpackage.json. It now checkspackage/package.json.Not added to the catalog (no natural row for a best practice): consumers shouldn't import from
@ledgerhq/lumen-utils-shareddirectly. For example, theFormattedValuetype is re-exported from both@ledgerhq/lumen-ui-react(0.1.67) and@ledgerhq/lumen-ui-rnative(0.1.70).No version plan: only
.claude/skillschanges.🤖 Generated with Claude Code