fix(ui): local mode Activity panel polish — border off-by-one, P/E gauge alignment, @hostname suppression, ANE row always-on, and Processes header restyle#166
Conversation
…nment Fix bottom border emitting panel_width+1 columns instead of panel_width by changing the dash loop from 0..(inner_width+1) to 0..inner_width. Compute one shared bar_width in draw_pe_cluster_bars using the larger block section so P-CPU and E-CPU gauges end at the same column.
Drop the Nominal/Fair/Serious/Critical thermal badge from the GPU Temp row in the GPU Metrics panel. The row already shows a numeric die temperature in degrees C, and the badge was the only row with a trailing badge, causing the GPU Temp sparkline to be shorter than the rows above.
Add show_hostname parameter to print_gpu_info, print_cpu_info, print_memory_info, and print_storage_info. In local mode, skip the @ hostname segment entirely so the rest of the line shifts left to fill the gap. Also skip advancing the hostname scroll animation in local mode to avoid wasting CPU on invisible marquee animation.
Replace has_ane_data (which gated on ane_utilization > 0) with show_ane_row that returns true whenever Apple Silicon is detected. An ANE at 0 W is a meaningful idle reading, and the row reflects real hardware layout even when the Neural Engine is completely idle. Add show_npu_row scaffolding that returns false for future Intel NPU telemetry support.
Replace bare "Processes:" text with a styled horizontal rule that matches the rest of the UI: "── Processes ──────────────"
Implementation Review SummaryIntent
Verification
Detailed findingsAll seven issue requirements are correctly and completely implemented: Fix 1 - Border off-by-one ( Fix 2 - P/E gauge shared bar_width ( Fix 3 - Thermal badge removal ( Fix 4 - GPU Temp sparkline width (resolved by Fix 3): With Fix 5 - Hostname suppression (4 renderers + Fix 6 - ANE always-on + NPU scaffolding ( Fix 7 - Processes header restyle ( Minor observations (LOW, not blocking)
Remaining ItemsNone -- all seven fixes are correctly implemented with no issues found. |
The lint only fires for Option/Result returns, not bool. The attribute was a no-op and misleading about the function's return type semantics.
Security & Performance Review -- PR #166ScopeReviewed all 9 changed files (171 additions, 111 deletions) for security vulnerabilities, performance regressions, and code quality issues. FindingsFIXED -- LOW: Dead clippy allow attribute (commit 3759566)
INFO -- LOW: Minor block-width formula inconsistency In INFO -- Pre-existing: Byte-index slice on Unicode header
Verified Clean
Overall AssessmentThis PR is well-written. The changes are straightforward UI polish with proper use of |
…nderers Cover the new show_hostname: bool parameter added to print_cpu_info, print_memory_info, and print_storage_info in the local-mode polish PR. Each renderer gains smoke tests verifying hostname appears when show_hostname is true and is suppressed when false, plus scrolling and narrow-width cases. 18 new tests (343 total, all passing).
Summary
Fixes #165 — seven small but visible issues in the local-mode Activity panel and device list rendering on Apple Silicon.
panel_width + 1columns instead ofpanel_width, which also broke the GPU Metrics panel alignment on the same row.bar_widthindraw_pe_cluster_barsusing the larger block section so P-CPU and E-CPU gauges end at the same column.show_hostname: boolparameter toprint_gpu_info,print_cpu_info,print_memory_info, andprint_storage_info. Skip@ hostnamein local mode. Also skip hostname scroll animation in local mode.has_ane_data(gated onane_utilization > 0) withshow_ane_rowreturning true whenever Apple Silicon is detected. Addshow_npu_rowscaffolding for future Intel NPU support.Processes:with styled title rule── Processes ──────────.Test plan
cargo fmt --checkpassescargo clippypasses with no warningscargo testpasses (325 tests, 0 failures)@ hostnamenot shown on GPU/CPU/Memory/Disk rows in local mode