Skip to content

feat(ui): add native full-width desktop status bar - #2

Merged
matthias-scale merged 35 commits into
fork/pr-basefrom
feat/native-status-bar-fork-isolated
Jul 30, 2026
Merged

feat(ui): add native full-width desktop status bar#2
matthias-scale merged 35 commits into
fork/pr-basefrom
feat/native-status-bar-fork-isolated

Conversation

@matthias-scale

@matthias-scale matthias-scale commented Jul 29, 2026

Copy link
Copy Markdown
Owner

Intent and provenance

Port RaviTharuma’s native full-width Herdr status row from source head af5ac9d9b1f6425be600cbb904fda905ea882eb9 onto the maintained fork without mutating upstream PR herdrdev#1742.

  • Target base: fork/pr-base
  • Current head: cf171dcc4a8c19b5b3b45e6ad6c48d0a3e477a66
  • Source author: Ravi Tharuma <RaviTharuma@users.noreply.github.com>
  • Provenance merge: 9371011c5bc036c1bbeec77416f3e86e551ca58d retains the exact source commit as its second parent.

Binding UI contract

The follow-up contract supersedes the source field set:

  • One full-width row remains above the sidebar/tab surface.
  • All content is right-aligned; the entire left side stays blank.
  • Visible fields, in order: folder → branch → device name → CPU → memory.
  • Session identity and workspace/tab/pane numbers remain internal-only.
  • Network details, username, Herdr version, battery, date, and time are neither rendered nor collected for this row.
  • Optional context elides folder, branch, then device. CPU and memory remain required at ordinary desktop widths and fall back to CPU --% and MEM --/-- GiB.

Acceptance criteria and evidence

  • Exact source provenance retainedaf5ac9d9b1f6425be600cbb904fda905ea882eb9 is in the branch ancestry with RaviTharuma attribution; this PR targets fork/pr-base.
  • One full-width desktop row without geometry regressions — characterization covers sidebar/tab/terminal placement, mobile exclusion, mouse targets, collapsed/compact, multipane, and empty states.
  • Folder, branch, device, CPU, and memory only; entirely right-aligned — renderer and negative assertions reject username, network, session identity, and Herdr version.
  • CPU/MEM formatting and responsive behavior — 135 focused status tests pass, including stable GiB/% units, unavailable fallbacks, 120-column visibility, and derived required-width elision.
  • Bounded non-blocking collection — renderer performs no I/O; sampling uses a two-second cadence, one in-flight sample, four-second staleness, and native/local platform sources with no public-IP request.
  • Independent review — Codex and Gemini both report PASS for the final correction; no P0/P1/P2 findings.
  • Exact-head cross-platform CI and composition — GitHub Linux/macOS/Windows/Nix/website checks must pass at the current head; after status lands, fork PR feat(ui): focus the sidebar around a spaces tree with per-workspace agent disclosure #1 is merged with the new base and the combined branch receives full checks and independent review.

Verification

Merge boundary

This PR contains teammate-authored work. Merge approval must be pinned to this exact PR head after all checks and review gates are green. Any later push invalidates that approval.

RaviTharuma and others added 13 commits July 22, 2026 20:01
Compile a powerline-style status row into the Herdr TUI above the
sidebar/tabs. Collect host, user, network, memory, CPU, and battery
metrics in Rust (no tmux/powerline shell scripts), map segment colors
to the active theme, and drop tail segments responsively on narrow
widths.

Includes layout wiring, platform collectors, and characterization
tests for full-width placement plus fixture identity/metrics render.
@matthias-scale
matthias-scale changed the base branch from master to fork/pr-base July 29, 2026 22:36
@matthias-scale

matthias-scale commented Jul 30, 2026

Copy link
Copy Markdown
Owner Author

/acode review pass — admin-merging

✅ Auto-merging — 38 files / 3068 LOC, no risky touch, agents clean. Canary catches escapes at 10%.

QA scenarios (post-promote sanity)

  • Desktop 200x50: status row occupies row 0 at full client width; left 102 columns blank, content terminates at the final column (right-aligned)
  • Field order and contents: folder (…/tmp/herdr-qa-cf171dcc/repo) -> branch (feat/native-status-…) -> device (Matthiass-MBP) -> CPU 65% -> MEM 46.7/64.0 GiB, positions strictly ascending
  • Negative field assertions on the rendered row: no username, no Herdr version, no IP/network quad, no battery, no clock time, no date, no workspace/tab/pane numbers
  • Live-data provenance: rendered hostname matches hostname -s and MEM total 64.0 GiB matches sysctl hw.memsize; CPU value varied across samples (52% -> 65% -> 41%), proving live sampling rather than a stub
  • Format assertions: CPU matches /CPU \d{1,3}%/ and MEM matches /MEM \d+.\d/\d+.\d GiB/
  • Responsive width sweep 160/120/100/80/60/40/24: all five fields visible down to 100 cols (120-col visibility confirmed), folder elides first at 80 cols leaving branch+device+CPU+MEM, and the row is excluded entirely at mobile widths (<=60)
  • No geometry regression: sidebar and tab surface render immediately below the status row across every tested width
  • Unit corroboration: just test-one status -> 135 tests run, 135 passed, matching the PR's stated evidence
  • CI at exact head: build, check (ubuntu/macos/windows), Windows ConPTY package, flake check, conventional-commits, check-contributor all pass at cf171dc

Evidence-only advisory (non-blocking)

  • Unavailable-metrics fallback (CPU --% / MEM --/-- GiB): The fallback strings could not be forced on a live macOS run because sampling always returned real CPU/memory values. Verified only through the unit suite (135/135 pass), not through a driven session. All other contract fields were asserted against the real rendered row. (P2, not agent-fixable; retained for human follow-up)

Resolved — 8/8 CI green · 0/0 threads · agents clean
  • CI: build, check-contributor, Windows ConPTY package, check (macos-latest), check (ubuntu-latest), check (windows-latest), conventional-commits, flake check
  • Review threads: 0/0 resolved
  • Review-pass agents: QA PASS, API contract 0 finding(s), 1 evidence-only advisory/advisories, follow-ups triaged
  • Risk classifier: no risky touch (no billing/auth/migrations/RLS/new-UI-flow); 38 files / 3068 LOC (≤10 / ≤1000)

Generated by /amerge against cf171dcc. Re-runs on this SHA edit this comment.

@matthias-scale
matthias-scale merged commit 02bf459 into fork/pr-base Jul 30, 2026
9 checks passed
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.

3 participants