Skip to content

Fleet pill opens a per-machine panel; TUI leader shows ⌘X on macOS - #66

Merged
mayoalexander merged 1 commit into
iris/1.18.23from
adopt/fleet-panel-leader
Sep 17, 2026
Merged

mayoalexander merged 1 commit into
iris/1.18.23from
adopt/fleet-panel-leader

Conversation

@mayoalexander

Copy link
Copy Markdown

Adopted from another session's uncommitted work in the shared iris-code checkout, rebased onto current iris/1.18.23 (applied cleanly). One bug fixed on the way in.

What it does

  • Fleet panel. The titlebar's 2/5 pill had a one-line tooltip, so which machine is down was invisible. It now opens a panel on hover, focus or click, listing each node's state. The dot is a three-state verdict: grey while loading, danger when the fleet is unreachable, green only when measured with something up. Measured-but-all-down is muted, not danger, because reachable-and-dead is a different fact from unreachable.
  • TUI leader. Defaults to ["super+x", "ctrl+x"] on macOS.

The bug fixed on adoption

LeaderDefault changed from a string to a function that returns an array on macOS, and its one caller did LeaderDefault() as string. The cast silenced tsc and changed nothing at runtime: the TUI leader hint would have printed super+x,ctrl+x. It now takes the first binding, using the same [0] rule the configured path already applies.

Tests

Under plain bun test this file can't run at all (solid-js/web resolves to its server build). That's pre-existing, identical on base, and means the new tests had never executed. Under CI's real invocation (--conditions=solid --preload ./happydom.ts): 11 pass. Mutation-verified: a loading fleet wearing green fails, and all-down reading as danger fails. App + TUI typecheck clean.

CI note: Blacksmith runners are wedged, so unit/e2e never run. Local verification is the gate.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JwiqN8M84qimu1TjZGSsdQ

… ⌘X on macOS

Adopted from another session's uncommitted work in the shared iris-code checkout,
rebased onto current iris/1.18.23 (applied cleanly on 1243af2). One bug fixed on
the way in; everything else is theirs.

FLEET PANEL. The titlebar's "2/5" pill had a one-line tooltip, so the question a
fleet count exists to answer — WHICH machine is down — needed someone to ask. It
now opens a panel on hover, focus or click listing each node with its own state.
The dot is a three-state verdict matching fleetLabel's three facts: grey while
loading, danger when the fleet itself is unreachable, green only when measured
with something up. Measured-but-all-down is muted, NOT danger — reachable and dead
are different facts.

TUI LEADER. On macOS the default leader is now ["super+x", "ctrl+x"].

THE BUG, in the adopted keymap change: LeaderDefault went from a string constant
to a function that returns an ARRAY on macOS, and the one caller did
`LeaderDefault() as string`. The cast silenced tsc and changed nothing at runtime,
so the TUI's leader hint would have printed the array's toString —
"super+x,ctrl+x". Typecheck was green on it; typecheck cannot see through `as`.
Now takes the first binding, the same `[0]` rule the configured path already uses,
and stringifies a KeyStroke element the same way rather than via String(), which
would give "[object Object]".

WORTH KNOWING ABOUT THESE TESTS: under plain `bun test` this file cannot run at all —
solid-js/web resolves to its SERVER build and throws `Export named 'use' not found`
before a single test executes. That is pre-existing (identical on the base commit)
and it means the three new fleetDotClass tests had never actually run when written.
Under CI's real invocation (`--conditions=solid --preload ./happydom.ts`) all 11
pass. Mutation-verified: a loading fleet wearing green fails 1, all-down reading as
danger fails 1.

app + tui typecheck clean.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JwiqN8M84qimu1TjZGSsdQ
@mayoalexander
mayoalexander merged commit ab0a764 into iris/1.18.23 Sep 17, 2026
1 of 6 checks passed
@mayoalexander
mayoalexander deleted the adopt/fleet-panel-leader branch September 17, 2026 03:46
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.

1 participant