Skip to content

fix(sessions): keep settled catalog visible while order pins refresh - #3581

Closed
PowerDi wants to merge 1 commit into
GCWing:mainfrom
PowerDi:fix/sessions-catalog-flicker
Closed

PowerDi wants to merge 1 commit into
GCWing:mainfrom
PowerDi:fix/sessions-catalog-flicker

Conversation

@PowerDi

@PowerDi PowerDi commented Oct 28, 2026

Copy link
Copy Markdown

Summary

Keep the last acknowledged session catalog visible while updated ordering timestamps start a replacement reader. The sidebar retains its count and expansion controls until the replacement settles, while pagination still restarts with the new pins.

Type and Areas

Bug fix; Web UI session sidebar.

Motivation / Impact

Starting or finishing a session changes its ordering pins. Previously, that immediately cleared the catalog's paged, complete, and total state, causing the session count and expansion controls to flicker. Separate the selected view's identity from the pinned request identity, retain its settled display state, and update the known-row baseline as replacement pages hydrate.

Workspace, source, ordering, client-side view, discovery refresh, and device activation changes still invalidate the display immediately. Failed requests remain visible as failures, and legacy-host fallback clears the saved total.

Verification

AI-assisted; lightly tested through automated checks, without a native UI recording or live remote connection.

  • Focused session catalog, view, store, and API tests: 20 files, 389 tests passed:
    node src/web-ui/scripts/run-vitest.mjs run --root src/web-ui src/app/components/NavPanel/sections/sessions src/app/components/NavPanel/workspaceSessionView.test.ts src/flow_chat/store/FlowChatStore.test.ts src/infrastructure/api/service-api/SessionAPI.test.ts --maxWorkers=50%
  • pnpm --dir src/web-ui exec tsc --noEmit
  • The check:web stages passed individually after preparing ignored frontend assets: canvas:sdk:check, typography:audit:test, typography:audit, appearance:contract-audit, theme:color-audit:test, theme:color-audit:all, and theme:visual-contract.
  • git diff --check

Regression cases cover every render during multi-page pin refresh, hydration count stability, repeated and reverted pins, stale replies, failed requests, view changes, and legacy-host fallback.

Reviewer Notes

Local DOM/store/API fixtures exercise simulated Peer Device activation and old-host behavior. Live SSH/Docker remote workspaces, relay remote control, live Peer Device connections, and Detached Dispatch were not exercised. Wire and persisted shapes are unchanged.

Checklist

  • This PR is focused and does not include secrets, temporary prompts, generated scratch files, or unrelated artifacts.
  • Relevant verification is recorded above, or skipped checks are explained.
  • User-facing strings, docs, and locales are updated where applicable (no copy changes).

@PowerDi PowerDi closed this Oct 28, 2026
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