[HOMEASSIST-6] Shared build and deploy pipeline to ha/www with panel registration #6

Merged
chris merged 9 commits from feature/HOMEASSIST-6 into main 2026-10-03 21:50:59 -06:00
Owner

Ticket

HOMEASSIST-6 Dashboards: shared build and deploy pipeline to ha/www with panel registration

Summary

  • panelBuildConfig() in packages/ui gives a library-mode ES build with React bundled in and process.env.NODE_ENV defined as production.
  • bun run build [dashboard] [--watch] builds the panel. Flags pass through the dispatcher, and the workspace name goes before any flags.
  • bun run deploy <dashboard> builds, then copies to $HA_WWW_DIR/<dashboard>/<panel>.<hash>.js. It keeps the newest previous hash, prunes older ones, validates the dashboard name and prints the module_url.
  • The map dashboard is rewired: build is now the panel build, the old SPA build is build:harness, and the old deploy path ha-map/ is replaced by map/.
  • The new root README documents the panel_custom snippet (module_url, sidebar_title, sidebar_icon, require_admin), the restart step and a migration note.
  • Trade-off: the hashed module_url in configuration.yaml must be updated and HA restarted when the bundle content changes.
  • Verification: typecheck, lint and format:check are clean; tests ui 119, map 12, scripts 57; a manual deploy against a temp HA_WWW_DIR worked. It was not verified against a live HA.

🤖 Generated with Claude Code

https://claude.ai/code/session_01A6WV37dDVNs4Zhq7RQB4ku

## Ticket [HOMEASSIST-6](http://192.168.2.100:7123/home/browse/HOMEASSIST-6/) Dashboards: shared build and deploy pipeline to ha/www with panel registration ## Summary - `panelBuildConfig()` in packages/ui gives a library-mode ES build with React bundled in and `process.env.NODE_ENV` defined as production. - `bun run build [dashboard] [--watch]` builds the panel. Flags pass through the dispatcher, and the workspace name goes before any flags. - `bun run deploy <dashboard>` builds, then copies to `$HA_WWW_DIR/<dashboard>/<panel>.<hash>.js`. It keeps the newest previous hash, prunes older ones, validates the dashboard name and prints the `module_url`. - The `map` dashboard is rewired: `build` is now the panel build, the old SPA build is `build:harness`, and the old deploy path `ha-map/` is replaced by `map/`. - The new root README documents the `panel_custom` snippet (module_url, sidebar_title, sidebar_icon, require_admin), the restart step and a migration note. - Trade-off: the hashed `module_url` in configuration.yaml must be updated and HA restarted when the bundle content changes. - Verification: typecheck, lint and format:check are clean; tests ui 119, map 12, scripts 57; a manual deploy against a temp `HA_WWW_DIR` worked. It was not verified against a live HA. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01A6WV37dDVNs4Zhq7RQB4ku
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A6WV37dDVNs4Zhq7RQB4ku
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A6WV37dDVNs4Zhq7RQB4ku
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A6WV37dDVNs4Zhq7RQB4ku
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A6WV37dDVNs4Zhq7RQB4ku
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A6WV37dDVNs4Zhq7RQB4ku
Replace process.env.NODE_ENV, inline dynamic imports, fix outDir, and share the map panel name.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A6WV37dDVNs4Zhq7RQB4ku
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A6WV37dDVNs4Zhq7RQB4ku
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A6WV37dDVNs4Zhq7RQB4ku
[HOMEASSIST-6] Drop the misplaced-workspace check and fix stale comments.
Some checks failed
ticket-done / done (pull_request) Failing after 1s
7ae6547cb8
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A6WV37dDVNs4Zhq7RQB4ku
chris merged commit a1fa0432fb into main 2026-10-03 21:50:59 -06:00
chris deleted branch feature/HOMEASSIST-6 2026-10-03 21:50:59 -06:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
chris/home-assistant-dashboards!6
No description provided.