Skip to content

feat(mobile): truthful live-list connection and refresh states - #1

Open
iscekic wants to merge 11 commits into
kwf-bench-basefrom
kwf/deliver-the-work-described-b-d6ef
Open

feat(mobile): truthful live-list connection and refresh states#1
iscekic wants to merge 11 commits into
kwf-bench-basefrom
kwf/deliver-the-work-described-b-d6ef

Conversation

@iscekic

@iscekic iscekic commented Aug 31, 2026

Copy link
Copy Markdown
Owner

What changed

  • The Agents live list separates the phone's connection state from the agent's run state. A disconnected phone shows Connecting…, Reconnecting…, or Connection lost with a Retry action. It never implies the agent stopped.
  • Stored-history loading or a history error never blocks live rows or the New Task button.
  • On first load with no cache, the list shows row-shaped skeletons. It never shows a false empty list.
  • On refresh with cache, the rows stay visible and a small Updating indicator shows.
  • On reconnection, the rows stay and the list shows Reconnecting….
  • The list declares empty only after a query completes successfully, and the empty state names the context: personal or organization.
  • On a failed refresh, the rows stay and an inline Retry refreshes them.
  • Offline, reconnecting, refreshing, empty, and error states stay visibly distinct.
  • Cached rows from one organization never show under another organization's header.
  • Row dimensions stay stable: the connection strip reserves a fixed height so the list never shifts, and reduced motion is respected.
  • A startup phase shows only when a backend event proves it. The live list never invents startup progress.

Why

The live list previously conflated the socket state with the agent's state, blocked on history, and announced refresh failures with a toast that offered no inline retry. This change makes the connection and refresh states truthful and keeps useful rows on screen through every transition.

Verification

  • Driver checks: per-slice checks passed.
  • mobile-device verifier: passed.

Live rows stay visible and the strip shows the connection state when the phone drops.

case.mp4.trim.mp4

A pull refresh keeps the rows and shows the Updating indicator, then clears when the fetch settles.

case.mp4.trim.mp4

A failed refresh keeps the rows and shows the refresh-failed label with a working inline Retry.

case.mp4.trim.mp4

A completed empty query names the context (personal or organization).

updating.mp4.trim.mp4

@iscekic iscekic self-assigned this Aug 31, 2026
@iscekic iscekic changed the title feat(mobile): inline connection and refresh strip for the agents session list fix(mobile): preserve live sessions during connection changes Aug 31, 2026
@iscekic iscekic changed the title fix(mobile): preserve live sessions during connection changes feat(mobile): truthful live-list connection and refresh states Sep 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant