UI improvements tracker #32

Closed
opened 2026-03-31 07:31:11 +00:00 by timur · 2 comments
Owner

Purpose

This issue tracks incremental UI improvements to the hero_proc dashboard. Each improvement is documented as a comment below, and can be addressed independently.


Current Issues

1. Actions tab: duplicate entries and missing metadata

The Actions table currently shows confusing duplicate entries. For each service, there are two rows — one for the service itself and one for a _action suffix variant:

hero_aibroker_server        exec    -    -    -
hero_aibroker_server_action  exec    -    -    -
hero_aibroker_ui            exec    -    -    -
hero_aibroker_ui_action      exec    -    -    -
hero_broker_server          exec    -    -    -
hero_broker_server_action    exec    -    -    -
hero_inspector_server  process  exec    -    -    -
hero_inspector_ui      process  exec    -    -    -
hero_os_server_action        exec    -    -    -
hero_os_ui_action            exec    -    -    -
hero_proxy_server_action     exec    -    -    -
hero_proxy_ui_action         exec    -    -    -
hero_runner_server_action    exec    -    -    -
hero_runner_ui_action        exec    -    -    -

Problems:

  • Some services show only *_action (e.g., hero_os_server_action) while others show both the service and its _action (e.g., hero_aibroker_server + hero_aibroker_server_action)
  • Only hero_inspector_server and hero_inspector_ui show a type column value (process) — all others are blank
  • It's unclear what the difference between hero_aibroker_server and hero_aibroker_server_action is supposed to be
  • The relationship between actions and services is not obvious

Expected: Each action should have a clear identity. The type column should always be populated. If _action variants are generated automatically from service registrations, this should be explained or they should be hidden/merged.

2. Runs tab: missing action name column

The Runs tab shows:

  • Run ID
  • Status
  • Start time
  • Duration

But there is no column showing which action was run. The run ID alone gives no indication of what script or action produced the run. Users must click into each run to find out what it was.

Expected: Add an "Action" column showing the action name (e.g., startup.hero_runner.install_and_run) so users can see at a glance what each run corresponds to.

3. Runs tab: all runs stuck at "starting" status

Runs that are actively executing (or have completed) show status starting instead of running or completed. The status never transitions beyond starting.

Expected: Run status should progress through: startingrunningcompleted (or failed). The status should reflect the actual state of the underlying process.


How to Use This Issue

New UI improvements will be added as comments below. Each comment should include:

  • What: Description of the issue or improvement
  • Where: Which tab/component is affected
  • Expected: What the correct behavior should be
  • Screenshot (if applicable)
## Purpose This issue tracks incremental UI improvements to the hero_proc dashboard. Each improvement is documented as a comment below, and can be addressed independently. --- ## Current Issues ### 1. Actions tab: duplicate entries and missing metadata The Actions table currently shows confusing duplicate entries. For each service, there are two rows — one for the service itself and one for a `_action` suffix variant: ``` hero_aibroker_server exec - - - hero_aibroker_server_action exec - - - hero_aibroker_ui exec - - - hero_aibroker_ui_action exec - - - hero_broker_server exec - - - hero_broker_server_action exec - - - hero_inspector_server process exec - - - hero_inspector_ui process exec - - - hero_os_server_action exec - - - hero_os_ui_action exec - - - hero_proxy_server_action exec - - - hero_proxy_ui_action exec - - - hero_runner_server_action exec - - - hero_runner_ui_action exec - - - ``` **Problems:** - Some services show only `*_action` (e.g., `hero_os_server_action`) while others show both the service and its `_action` (e.g., `hero_aibroker_server` + `hero_aibroker_server_action`) - Only `hero_inspector_server` and `hero_inspector_ui` show a type column value (`process`) — all others are blank - It's unclear what the difference between `hero_aibroker_server` and `hero_aibroker_server_action` is supposed to be - The relationship between actions and services is not obvious **Expected:** Each action should have a clear identity. The `type` column should always be populated. If `_action` variants are generated automatically from service registrations, this should be explained or they should be hidden/merged. ### 2. Runs tab: missing action name column The Runs tab shows: - Run ID - Status - Start time - Duration But there is **no column showing which action was run**. The run ID alone gives no indication of what script or action produced the run. Users must click into each run to find out what it was. **Expected:** Add an "Action" column showing the action name (e.g., `startup.hero_runner.install_and_run`) so users can see at a glance what each run corresponds to. ### 3. Runs tab: all runs stuck at "starting" status Runs that are actively executing (or have completed) show status `starting` instead of `running` or `completed`. The status never transitions beyond `starting`. **Expected:** Run status should progress through: `starting` → `running` → `completed` (or `failed`). The status should reflect the actual state of the underlying process. --- ## How to Use This Issue New UI improvements will be added as comments below. Each comment should include: - **What**: Description of the issue or improvement - **Where**: Which tab/component is affected - **Expected**: What the correct behavior should be - **Screenshot** (if applicable)
Author
Owner

Addressed all three issues in commit 7b5386a:

1. Actions tab: duplicate entries and missing metadata

  • Filtered out _action suffix entries (auto-generated by quick_service) from the Actions table
  • Type column now shows "one-shot" badge for non-process actions instead of being empty
  • Badge count reflects filtered list

2. Runs tab: missing action name column

  • Added Action column to the Runs table
  • Modified list_runs_with_job_counts() SQL to JOIN through run_jobs → jobs and collect GROUP_CONCAT(DISTINCT j.action)
  • run.list RPC response now includes action_names array per run
  • Search also matches against action names

3. Runs tab: runs stuck at "starting"

  • Added Running variant to RunStatus enum
  • Supervisor's check_run_completions() now transitions runs from Starting → Running when any job is actively executing
  • Runs in Running state are also checked for completion (not just Starting)
  • finished_at timestamp is only set when reaching a terminal state

Files changed:

  • crates/hero_proc_lib/src/db/runs/model.rs — RunStatus enum + SQL query
  • crates/hero_proc_lib/src/db/factory.rs — return type update
  • crates/hero_proc_server/src/rpc/run.rs — RPC response + status parsing
  • crates/hero_proc_server/src/supervisor/mod.rs — status transition logic
  • crates/hero_proc_ui/static/js/dashboard.js — UI rendering
  • crates/hero_proc_ui/templates/index.html — table header
Addressed all three issues in commit `7b5386a`: ### 1. Actions tab: duplicate entries and missing metadata - Filtered out `_action` suffix entries (auto-generated by `quick_service`) from the Actions table - Type column now shows **"one-shot"** badge for non-process actions instead of being empty - Badge count reflects filtered list ### 2. Runs tab: missing action name column - Added `Action` column to the Runs table - Modified `list_runs_with_job_counts()` SQL to JOIN through `run_jobs → jobs` and collect `GROUP_CONCAT(DISTINCT j.action)` - `run.list` RPC response now includes `action_names` array per run - Search also matches against action names ### 3. Runs tab: runs stuck at "starting" - Added `Running` variant to `RunStatus` enum - Supervisor's `check_run_completions()` now transitions runs from `Starting → Running` when any job is actively executing - Runs in `Running` state are also checked for completion (not just `Starting`) - `finished_at` timestamp is only set when reaching a terminal state **Files changed:** - `crates/hero_proc_lib/src/db/runs/model.rs` — RunStatus enum + SQL query - `crates/hero_proc_lib/src/db/factory.rs` — return type update - `crates/hero_proc_server/src/rpc/run.rs` — RPC response + status parsing - `crates/hero_proc_server/src/supervisor/mod.rs` — status transition logic - `crates/hero_proc_ui/static/js/dashboard.js` — UI rendering - `crates/hero_proc_ui/templates/index.html` — table header
Author
Owner

Resolved

All 3 sub-issues addressed:

  1. Actions tab: Filtered _action suffix duplicates, shows "one-shot" badge — commit 7b5386a
  2. Runs tab: Added Action column via SQL JOIN with GROUP_CONCAT(DISTINCT j.action) — commit 7b5386a
  3. Runs stuck at starting: Added Running variant to RunStatus enum with supervisor transition logic — commit 7b5386a

Closing.

## Resolved All 3 sub-issues addressed: 1. **Actions tab**: Filtered `_action` suffix duplicates, shows "one-shot" badge — commit `7b5386a` 2. **Runs tab**: Added Action column via SQL JOIN with `GROUP_CONCAT(DISTINCT j.action)` — commit `7b5386a` 3. **Runs stuck at starting**: Added `Running` variant to `RunStatus` enum with supervisor transition logic — commit `7b5386a` Closing.
timur closed this issue 2026-04-01 10:35:15 +00:00
Sign in to join this conversation.
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
lhumina_code/hero_proc#32
No description provided.