Skip to content

feat(cli): redesign TUI — list-first dashboard + in-process auto-refresh#13

Merged
tux86 merged 29 commits into
fix/action-bar-spacingfrom
feat/v2-daemon-ux
Jun 11, 2026
Merged

feat(cli): redesign TUI — list-first dashboard + in-process auto-refresh#13
tux86 merged 29 commits into
fix/action-bar-spacingfrom
feat/v2-daemon-ux

Conversation

@tux86

@tux86 tux86 commented Jun 11, 2026

Copy link
Copy Markdown
Owner

Summary

Full UX/UI overhaul of the SSOmatic terminal app, plus a dependency refresh and README rewrite.

What changed

  • List-first dashboard (k9s-style) replaces the old menu flow: profile rows are the home screen, actions are single keypresses.
  • Fire-gradient ASCII wordmark header (static, no runtime figlet dep).
  • Cursor = highlighted row (no arrow), multi-select removed.
  • a toggles auto-refresh (⟳ marker) — pins a profile so its role credentials are kept fresh expiry-aware while the app is open. (Replaces the old "favorites" naming.)
  • Esc = back on sub-screens (details/settings/login); q quits at the dashboard/top level only. Harmonized, styled footer key-hints across all screens.
  • Per-profile actions: r refresh (with feedback), c copy export block, y copy name, o open AWS console, Enter details, / filter, s settings.
  • Non-interactive CLI: ssomatic status | refresh [profile] | export <profile>.
  • Latest libs (Ink 7, React 19.2, AWS SDK v3, TS 6, ESLint 10) and an npm-facing README rewrite.

Architecture note (important)

This branch initially implemented a persistent background daemon (Unix socket, detach, attach-from-any-terminal) per the original spec. During review it was removed by request in favor of a simpler single-process model: the TUI auto-refreshes ⟳ profiles in-process while open, and quitting exits cleanly (no lingering process/socket). The daemon code, socket IPC, and ssomatic daemon subcommands were deleted.

Tests

bun test 25 pass / 0 fail · bun run lint clean · bun run build ok · tsc --noEmit clean.

Design docs

  • Spec: docs/superpowers/specs/2026-06-11-ssomatic-v2-daemon-ux-design.md
  • Plan: docs/superpowers/plans/2026-06-11-ssomatic-v2-daemon-ux.md
    (Both describe the original daemon design; see the architecture note above for the single-process pivot.)

tux86 added 29 commits June 11, 2026 14:29
Drop defaultInterval; introduce refreshLeadMinutes (default 5) and
autoStartDaemon (default false). Legacy files with defaultInterval are
migrated transparently. settings.ts is sync; index.tsx updated accordingly.
REFRESH_INTERVALS kept as local shim until Task 12/13 interval UI removal.
@tux86 tux86 merged commit cc0179c into fix/action-bar-spacing Jun 11, 2026
1 check 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.

1 participant