Skip to content

Give WLED devices WLED instructions in step 3 - #26

Merged
bharvey88 merged 1 commit into
mainfrom
fix/m1-wled-step-three
Jul 27, 2026
Merged

Give WLED devices WLED instructions in step 3#26
bharvey88 merged 1 commit into
mainfrom
fix/m1-wled-step-three

Conversation

@bharvey88

Copy link
Copy Markdown
Collaborator

Step 3 was hardcoded ESPHome copy: discovered ESPHome device, dashboard_import,
Take control in the ESPHome Dashboard. None of that applies to the M-1, which
runs WLED.

Step 3 now resolves the firmware ecosystem per variant, the same way repos and
installers already resolve: optional per-variant "platforms" map, then the
device-level "platform", then esphome. The M-1 sets platform: "wled" and gets
the WLED onboarding (WLED-AP fallback, discovered WLED integration, WLED web UI
for effects, Manual OTA Update for later firmware). Every other device has no
platform field and renders exactly the markup it did before.

The M-1 hardware can run ESPHome, we just do not offer a build yet. When we do,
adding the manifest as a variant plus one "platforms" entry switches step 3 back
to the ESPHome instructions for that variant, with no code change. Step 3 moved
into a re-rendered #step3-slot so it follows the variant toggle in both
directions.

Validator gained check_platform and check_platforms_shape: an unknown platform
value or a platforms key naming a nonexistent variant is an error, since either
would silently show the wrong ecosystem's instructions.

Tests: a WLED device must not show any ESPHome adoption text, and a synthesized
mixed-platform device (devices.json intercepted) must swap step 3 both ways on
the variant toggle, so the future ESPHome path is covered before it ships.

Verified: scripts/validate_registry.py OK, 44 python tests, 28 playwright tests,
0 skipped.

🤖 Generated with Claude Code

Step 3 was hardcoded ESPHome copy: discovered ESPHome device, dashboard_import,
Take control in the ESPHome Dashboard. None of that applies to the M-1, which
runs WLED.

Step 3 now resolves the firmware ecosystem per variant, the same way repos and
installers already resolve: optional per-variant "platforms" map, then the
device-level "platform", then esphome. The M-1 sets platform: "wled" and gets
the WLED onboarding (WLED-AP fallback, discovered WLED integration, WLED web UI
for effects, Manual OTA Update for later firmware). Every other device has no
platform field and renders exactly the markup it did before.

The M-1 hardware can run ESPHome, we just do not offer a build yet. When we do,
adding the manifest as a variant plus one "platforms" entry switches step 3 back
to the ESPHome instructions for that variant, with no code change. Step 3 moved
into a re-rendered #step3-slot so it follows the variant toggle in both
directions.

Validator gained check_platform and check_platforms_shape: an unknown platform
value or a platforms key naming a nonexistent variant is an error, since either
would silently show the wrong ecosystem's instructions.

Tests: a WLED device must not show any ESPHome adoption text, and a synthesized
mixed-platform device (devices.json intercepted) must swap step 3 both ways on
the variant toggle, so the future ESPHome path is covered before it ships.

Verified: scripts/validate_registry.py OK, 44 python tests, 28 playwright tests,
0 skipped.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@bharvey88, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 35 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 4f75e870-b00b-456f-bd7f-d9b63b4c7dc0

📥 Commits

Reviewing files that changed from the base of the PR and between f3eb93b and 351c73b.

📒 Files selected for processing (7)
  • AGENTS.md
  • devices.json
  • docs/m1-wled-migration.md
  • js/views/device.js
  • scripts/test_validate_registry.py
  • scripts/validate_registry.py
  • tests/installer.spec.js
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/m1-wled-step-three

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@bharvey88
bharvey88 merged commit cfd3acc into main Jul 27, 2026
3 checks passed
@bharvey88
bharvey88 deleted the fix/m1-wled-step-three branch July 27, 2026 18:15
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.

1 participant