Skip to content

[DAS-Dashboard#1166] Improvements in dashboard visuals and bug fixes - #299

Merged
levisingularity merged 14 commits into
masterfrom
1166/visual-improvements-dashboard-page
Jul 8, 2026
Merged

[DAS-Dashboard#1166] Improvements in dashboard visuals and bug fixes#299
levisingularity merged 14 commits into
masterfrom
1166/visual-improvements-dashboard-page

Conversation

@levisingularity

Copy link
Copy Markdown
Collaborator

Bug Fixes

  • Fixed an issue where the Agents section was not displaying the status of all machines present in the architecture.

Adjustments & Improvements

  • Improved the overall page layout and applied visual refinements across the dashboard.

  • Added a Start button for agents in the Agents table.

  • Updated the Agents table to always display all configured agents, regardless of whether they are currently active.

  • Refined labels and descriptions in the Agents table and charts to improve clarity:

    • Memory usage is now displayed in GB.
    • Machine CPU usage is labeled as Machine Load.
    • Container CPU usage is labeled as CPU (Container %).
    • Disk usage is explicitly identified as referring to the root mount only.

* General dashboard polish, including layout, styling, colors, and button improvements.
* Updated memory chart labels to display values in GB and CPU chart labels to display "CPU % / Container".
* Updated agent table labels: memory is now displayed in GB, and CPU usage is displayed as "CPU % / Container".
* Updated machine status labels: memory is now displayed in GB, CPU is labeled as "Machine Load", and disk usage now indicates that the reported volume corresponds to the root mount.
* Enhanced the Agents section with improved visual highlighting for the selected agent.
- updated system metrics to display values in GB
- implemented a method for mapping hosts and their respective services
- gave the existing methods a tiny polish/removed complexity and duplicate calls.
- Integration with back-end mapping changes
- Agent table is returning all services that belong to a specific machine, regardless of being active or not.
- adjusted container memory usage calculation
- adjusted memory labels from MB to GB (forgot to adjust earlier)
- integrated 'start service' button
…the servers in the architecture and fetches multiple agent data.
@coderabbitai

coderabbitai Bot commented Jul 7, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

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

Next review available in: 28 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: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 3a633ff9-5213-4f8b-b405-f79f8a7fb2cc

📥 Commits

Reviewing files that changed from the base of the PR and between 26ad2f1 and fcb6aec.

📒 Files selected for processing (3)
  • das-cli/src/commands/system/system_cli.py
  • das-cli/src/common/systemutils/sys_info.py
  • das-cli/tests/integration/test_system.bats

Walkthrough

Adds a configurable stream cooldown and GB-based metric labels to das-cli, refactors dashboard host/config mapping around normalized service rows, and rewires the dashboard frontend to consume multi-host metrics, merged services, and updated service actions/layouts.

Changes

CLI System Status Cooldown and Unit Conversion

Layer / File(s) Summary
Cooldown wiring and stream timing
das-cli/src/commands/system/system_cli.py
Adds --cooldown/-c, validates it in stream mode, and uses it for stream refresh timing and machine polling cadence.
GB labels and metric conversion
das-cli/src/commands/system/system_cli.py, das-cli/src/common/container_manager/system_containers_manager.py, das-cli/src/common/systemutils/sys_info.py
Changes machine, disk, and agent labels to GB-based output and updates the underlying Docker and psutil collectors to return GB-scaled values.

Dashboard Backend Host and Config Mapping

Layer / File(s) Summary
Service catalog and row shaping
das-dashboard/backend/shared/utils/service_inventory.py, das-dashboard/backend/shared/internal/constants.py
Adds service catalog metadata, pattern resolution, normalized service rows, and a local dashboard host constant.
Web configuration mapping
das-dashboard/backend/shared/internal/web_configuration.py
Rewrites service and host mapping, updates the command-router mapping, and gates cluster-node registration on cluster enablement.
Config hosts, save response, and startup init
das-dashboard/backend/controllers/config_controllers.py, das-dashboard/backend/services/config_services.py, das-dashboard/backend/main.py
Loads config hosts in a thread pool, returns mapped dashboard hosts, includes hosts in save responses, and initializes das-cli config on startup when available.
Container fallback and atom DB nodes
das-dashboard/backend/services/container_services.py, das-dashboard/backend/shared/builders/atom_db_builder.py
Adds command-name fallback for container resolution and stops node mapping when cluster mode is disabled.

Dashboard Frontend Metrics, Layout, and Service Actions

Layer / File(s) Summary
Service inventory and metric helpers
das-dashboard/src/utils/serviceInventory.js, das-dashboard/src/utils/NormalizeMetrics.js
Adds merged-service helpers, infra-status detection, CPU/memory cell formatters, host-to-machine mapping, and GB-only memory labels.
Metrics hooks and dashboard context
das-dashboard/src/hooks/UseAllMachinesMetrics.js, das-dashboard/src/hooks/UseDashboardMetrics.js, das-dashboard/src/components/global_providers/DashboardContextProvider.jsx
Streams per-host metrics, aggregates history, returns merged services, and exposes multi-host state through the dashboard context.
Architecture view and service charts
das-dashboard/src/components/dashboard/ArchitectureView/*
Switches ArchitectureView to id-based service cards from merged services and updates chart/card components to use host-scoped metrics and palette styling.
Main content, charts, and loading states
das-dashboard/src/components/dashboard/MainContent/*
Derives chart state from merged services and machine stats, wraps charts in a shared panel, and updates loading, server drawer, server tab, and server info UI for the new GB-based display.
Services table and sidebar actions
das-dashboard/src/components/dashboard/MainContent/servicestable/*, das-dashboard/src/components/dashboard/MainContent/sidebar/*
Adds start actions, service-key selection, and cell formatting, while the sidebar now derives infra status from merged services and uses the revised layout/styled components.
Dashboard page layout
das-dashboard/src/pages/dashboard/Dashboard.jsx, das-dashboard/src/pages/dashboard/Dashboard.styled.js
Moves the dashboard page to styled containers, computes page titles/subtitles from connection and view state, and renders the new soft alert block.
Setup workflow and README
das-dashboard/src/pages/setup_das/SetupDas.jsx, das-dashboard/src/pages/setup_das/SetupDasStyled.js, das-dashboard/README.md
Updates dashboard base values after save/load, adds new palette tokens, and replaces the README with setup-oriented instructions.

Estimated code review effort: 4 (Complex) | ~75 minutes

Sequence Diagram(s)

sequenceDiagram
  participant ConfigController
  participant WebConfiguration
  participant ConfigServices
  participant DashboardContextProvider
  participant useAllMachinesMetrics
  participant DashboardPage

  ConfigController->>WebConfiguration: load_config_dictionary + map_dashboard_hosts
  ConfigServices->>WebConfiguration: map_hosts_from_config(nested_config)
  DashboardContextProvider->>useAllMachinesMetrics: pass machines
  useAllMachinesMetrics-->>DashboardContextProvider: merged services and per-host metrics
  DashboardContextProvider-->>DashboardPage: context with mergedServices, aggregatedMetricsByHost, machineStatsByHost
  DashboardPage->>DashboardPage: render view title, alert, and content from context
Loading

Possibly related issues

Possibly related PRs

  • singnet/das-toolbox#298: Shares the /config/hosts and sync_dashboard_config backend changes in config_controllers.py and config_services.py.

Suggested reviewers: andre-senna


Caution

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

  • Ignore

❌ Failed checks (1 error, 1 inconclusive)

Check name Status Explanation Resolution
Tests For Behavior Changes ❌ Error Production logic changed in system_cli/sys_info and dashboard config APIs, but no tests were added/updated; existing system.bats still asserts old labels and the PR description gives no test-omissi... Add/update bats or pytest/component tests for the new stream cooldown, GB labels, host/config responses, and agent start/selection behavior, or state clearly why tests were omitted.
Title check ❓ Inconclusive The title is related to the dashboard changes, but it's too generic to clearly state the main fix or UI update. Use a more specific title, e.g. "Improve dashboard visuals and fix Agents machine status display".
✅ Passed checks (3 passed)
Check name Status Explanation
Description check ✅ Passed The description matches the changeset, covering the Agents bug fix, Start button, table expansion, and label/unit updates.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 1166/visual-improvements-dashboard-page

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.

coderabbitai[bot]

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

@levisingularity

Copy link
Copy Markdown
Collaborator Author

@coderabbitai Full Review.

@coderabbitai

coderabbitai Bot commented Jul 8, 2026

Copy link
Copy Markdown

@levisingularity Sure, I'll perform a full review of all the changes in this PR.

✅ Action performed

Full review finished.


Your plan includes PR reviews subject to rate limits. More reviews will be available in 34 minutes.

@levisingularity
levisingularity merged commit 1f786d7 into master Jul 8, 2026
4 checks passed
@levisingularity
levisingularity deleted the 1166/visual-improvements-dashboard-page branch July 8, 2026 16:51
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