Skip to content

feat(ui): land dashboard refactor#4746

Draft
robertsLando wants to merge 26 commits into
masterfrom
dashboard-neo
Draft

feat(ui): land dashboard refactor#4746
robertsLando wants to merge 26 commits into
masterfrom
dashboard-neo

Conversation

@robertsLando

Copy link
Copy Markdown
Member

Landing PR for the dashboard refactor staged on the dashboard-neo integration branch.

Opened as a draft to serve as the review surface and landing gate for the whole dashboard rework. It should stay in draft until the branch is complete and synced with master.

Scope

dashboard-neo is currently 24 commits ahead / 6 behind master121 files, +16,468 / −2,029.

It collects these already-merged sub-PRs (all merged into dashboard-neo, not into master):

⚠️ Issue closure

Because every sub-PR above targeted dashboard-neo rather than the default branch, their closing keywords never fired and no issue links were created — see GitHub's docs: "If the pull request targets any other branch, then these keywords are ignored, no links are created, and merging the PR has no effect on the issues."

Merging this PR will not retroactively close them, and since allow_merge_commit is disabled, a squash landing discards the individual commit messages too.

Audit result: I scanned every commit on this branch. The only #N references are the sub-PR numbers themselves (squash-merge suffixes) — no issue is currently declared as fixed by this branch.

Action required before this leaves draft: add a Closes #N line to this PR body for every issue the dashboard rework actually resolves. This PR targets the default branch, so its links will fire correctly on merge.

  • Audit the dashboard rework for issues it resolves and list them here as Closes #N
  • Sync dashboard-neo with master (currently 6 behind)
  • Full UI smoke test of the reworked dashboard
  • Mark ready for review

Related: the backend refactor is staged the same way on backend-refactor and tracked in #4745.

AlCalzone and others added 26 commits May 27, 2026 14:24
This PR is the first of many that will modernize the frontend design of
Z-Wave JS UI:

<img width="1148" height="941" alt="grafik"
src="https://github.com/user-attachments/assets/27852513-f81e-4c04-8f4c-43308ef65bc3"
/>

The current PR sets up the design tokens (--zw-*) and Vuetify defaults
that the rest of the dashboard rework builds on, so the atoms and
components arriving in later commits can just consume the vocabulary
instead of redeclaring colours, radii, and component chrome at every
call site. Also switches the legacy input family from underlined to
outlined+compact so the old pages already look at home next to the new
dashboard while we migrate.

This PR also starts the transition to vuetify0 as a headless UI
framework, which makes maintaining a custom design language much easier.

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Introduces Lucide icon ESM imports for the new dashboard, with named
aliases and a closed ICON_SIZE vocabulary so call sites can't pick
arbitrary pixel sizes. Material Icons stays registered for the legacy
settings/dialog pages, so this only affects new dashboard components.

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Brings 31 upstream commits (post 11.18.0 → 11.21.1) into the dashboard
redesign: security hardening, backend correctness fixes, zwave-js@15.25.0 /
@zwave-js/server@3.10.0, the multicast/broadcast groups feature, and old-UI
fixes. The redesign is additive, so only three files conflicted:

- api/lib/ZwaveClient.ts: both sides added `interviewProgress`. Kept master's
  real granular implementation (driver `interview progress` events) and dropped
  the dashboard's synthesized stopgap; preserved the unrelated `logsDir` change.
- package-lock.json: regenerated against the merged package.json.
- test/lib/utils.test.ts: master created a chai/sinon/esmock version while the
  branch had a vitest one. Reconciled into a single vitest file covering the
  full superset of cases. Also converted the new test/lib/importConfig.test.ts
  (chai → vitest).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…nges

- Suppress the interview activity for Dead/Asleep nodes (mirrors master's
  showInterviewProgress guard), so a stalled interview no longer shows a
  misleading progress indicator. Now that master reports real granular
  interview progress, the readout is accurate.
- Filter virtual nodes (broadcast/multicast groups) out of the dashboard
  device list; they belong in their own dedicated view (deferred).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…rd view footer (#4703)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@robertsLando

Copy link
Copy Markdown
Member Author

cc @AlCalzone

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.

2 participants