Skip to content

Improve TUI resilience, responsiveness, and EOS client robustness#41

Draft
lobis wants to merge 1 commit into
mainfrom
agent/improve-tui-resilience
Draft

Improve TUI resilience, responsiveness, and EOS client robustness#41
lobis wants to merge 1 commit into
mainfrom
agent/improve-tui-resilience

Conversation

@lobis

@lobis lobis commented Jul 14, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add scoped, single-flight auto-refresh with request generations so stale async responses cannot overwrite newer state
  • make the TUI responsive across narrow terminals with compact chrome, contextual help, exact-height panels, and safer modal fallbacks
  • improve Stats navigation, selection preservation, command history, refresh/error visibility, and mutation workflows
  • harden EOS JSON parsing, sparse namespace merging, SSH MGM discovery, QDB compatibility, IO-shaping diagnostics, inspector retries, and session-log security
  • add extensive regression coverage for refresh races, responsive layouts, parsing edge cases, sparse payloads, and log security

Why

The TUI previously refreshed more data than the active screen required, allowed delayed requests to race with newer state, and could clip panels or mutation guidance on small terminals. EOS CLI output and SSH/QDB environments also expose noisy and version-dependent edge cases that needed stricter handling.

These changes make the interface faster and more predictable during normal operations while protecting mutations and cached state from stale asynchronous results.

User impact

  • automatic refresh can be configured with --refresh / EOS_TUI_REFRESH_INTERVAL and paused with P
  • active data stays visible while refreshes run, with per-view freshness and error status
  • contextual ? help, compact startup, and responsive layouts work down to 16x20 terminals
  • Stats and list/detail navigation are clearer and preserve selection across reloads
  • remote discovery and EOS CLI parsing are more robust without reintroducing runtime gRPC dependencies

Validation

  • go test ./... -count=3
  • go test -race ./...
  • go vet ./...
  • go build ./...
  • nine live integration tests against lobis-eos-dev
  • live 16x20 PTY checks for startup, filesystem panels, compact help, safe modal behavior, and clean exit
  • deployed and checksum-verified on lobis-eos-dev and eospilot

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