Skip to content

chore(skills): catalog what the ledger-live 0.1.67 upgrade taught - #937

Merged
zel-kass merged 1 commit into
mainfrom
chore/consumer-upgrade-ledger-live-learnings
Oct 27, 2026
Merged

zel-kass merged 1 commit into
mainfrom
chore/consumer-upgrade-ledger-live-learnings

Conversation

@zel-kass

Copy link
Copy Markdown
Contributor

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-upgrade showed 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

  • C34: the removed BellNotification / ShieldCheckNotification now 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 fits IconButton / Spot icon. Still "confirm with design".
  • C52 (Checkbox) and C35 (Switch): in 0.1.66+ className lands on the wrapper <span>, while data-state (and data-disabled for Switch) live on the hidden <input> and the inner span. Any data-[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).
  • T7: leading-\w+ over-matched. Only the named keywords (tight, snug, normal, relaxed, loose) emit no CSS; leading-none, leading-px and leading-[…] are static, and leading-<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 since cn keeps the component's own typography class (cn('body-2','font-semibold') keeps both).
  • S5, C35, C52: consumers declared clsx, tailwind-merge, @radix-ui/react-switch and @radix-ui/react-checkbox in 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).
  • lumen-api-diff.mjs: fetchVersion checked only for package/, so a cache dir left by an interrupted run crashed with ENOENT on package.json. It now checks package/package.json.

Not added to the catalog (no natural row for a best practice): consumers shouldn't import from @ledgerhq/lumen-utils-shared directly. For example, the FormattedValue type 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/skills changes.

🤖 Generated with Claude Code

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>
@zel-kass
zel-kass requested a review from a team as a code owner October 26, 2026 14:52
Copilot AI balanced review requested due to automatic review settings October 26, 2026 14:52
@vercel

vercel Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
ldls Ready Ready Preview Oct 26, 2026 2:54pm UTC
ldls-react-native Ready Ready Preview Oct 26, 2026 2:54pm UTC

Request Review

@sonarqubecloud

Copy link
Copy Markdown

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 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

@zel-kass
zel-kass merged commit 9a95898 into main Oct 27, 2026
22 checks passed
@zel-kass
zel-kass deleted the chore/consumer-upgrade-ledger-live-learnings branch October 27, 2026 10:18

This branch was successfully deployed

2 active deployments
Preview – ldls-react-native — 4463175d Deployed Oct 26, 2026 by vercel[bot]
Preview – ldls — 4463175d Deployed Oct 26, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants