feat: live-refresh stack detail container and health state (#1712)

* feat: live-refresh stack detail container and health state

Keep the open stack's container cards in sync with Docker via state-invalidate events and a visibility-aware poll, without reloading compose, env, or logs.

* fix: remove unused _ms parameter from visibilityInterval mock

Fixes the @typescript-eslint/no-unused-vars ESLint error in CI lint job.

* fix: stop stack detail live-refresh when leaving the editor

Gate poll and invalidate handling on editor visibility, refresh the
current selection after a mid-flight stack switch, and skip starting
visibilityInterval when the tab is already hidden.

* fix: avoid return in finally for stack detail live-refresh

Satisfy no-unsafe-finally by gating the trailing refresh with a positive
condition instead of early returns inside the finally block.
This commit is contained in:
Anso
2026-07-28 09:24:18 -04:00
committed by GitHub
parent 681ecc7047
commit 60092dd462
11 changed files with 946 additions and 16 deletions
@@ -241,6 +241,8 @@ export function MobileStackDetail(props: EditorViewProps) {
containersLoadStatus={props.containersLoadStatus}
containersLoadError={props.containersLoadError}
onRetryContainersLoad={props.onRetryContainersLoad}
syncStale={props.containersSyncStale}
onRetrySync={props.onRetrySync}
key={`${activeNode?.id ?? 'local'}:${stackName}`}
/>
</div>