Skip to content

Metrics and Object Browser UI regressions: stale Uptime, malformed legends, and cramped menus #2

Description

@Vonng

Environment

  • SILO Console v2.0.0 at b952a1202869b89e5cc7b821a0b5651f74e09d08
  • SILO server RELEASE.2026-08-04T00-00-00Z
  • Chrome desktop, tested against m.pigsty on 2026-08-05

This groups the closely related dashboard and compact action-menu polish regressions observed during the same acceptance pass.

Findings

1. Info always shows Uptime n/a

On Metrics → Info, the top Uptime tile showed n/a while the server card on the same page showed 13 minutes and Metrics → Usage later showed 27 minutes.

This is deterministic in source: BasicDashboard.tsx destructures lastScan, lastHeal, and upTime from an empty object, so the three tiles always use their n/a defaults.

2. Usage does not follow the redesigned Info presentation

Info uses the new large-card hierarchy, spacing, and typography. Usage falls back to a dense legacy grid of small cards. Switching tabs looks like switching between two design systems even though both describe the same server state.

3. Traffic legends expose template braces

Metrics → Traffic renders legends such as:

{{127.0.0.1:9000,deleteobject}}

The replacement fallback in constructLabelNames replaces bare key text after counting placeholders, which can preserve the surrounding double braces.

4. Chart actions are too small and their menu text is truncated

The chart download control is a 16 px SVG inside a borderless button with zero padding: DownloadWidgetDataButton.tsx. The visible/clickable control is unusually small. On Traffic, opening it rendered both menu rows as Do... even though their accessible text is Download as CSV and Download as PNG.

5. Object Browser Upload menu also clips its label

In a writable bucket, open Upload. Upload File fits, but Upload Folder is displayed as Upload Fol.... The full labels are supplied in UploadFilesButton.tsx; the popup should size to its content rather than the compact trigger.

Expected result / acceptance criteria

  • Info derives Uptime, last scan, and last heal from real state and never contradicts the server card or Usage.
  • Usage follows the same card language and responsive spacing as Info.
  • Traffic legends contain resolved values without literal template braces.
  • Chart action buttons have a conventional pointer target (at least 32 px; preferably 44×44 px for touch).
  • Download and Upload popup menus have a minimum width sufficient for their longest label at 100% zoom.
  • Add focused tests for constructLabelNames with composite labels and screenshots/component tests for both compact menus.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

Projects

Status
Done

Relationships

None yet

Development

No branches or pull requests

Issue actions