A visible tab can permanently miss a server-initiated turn (self-wake / cron / restart hook) when its per-session SSE is momentarily down at the emit instant. server_turn_started is a fire-and-forget broadcast with no replay buffer; if the turn also finishes before the tab reconnects, the on-subscribe self-heal finds no live run in ACTIVE_RUNS and replays nothing, so the transcript stays stale until a hard refresh. Extend the self-heal: the (re)subscribing tab reports its last-known message_count (?known_count); when there is no live run to replay, the handler compares the persisted count and, if the server is ahead, emits a lightweight session-updated frame. The frontend syncs incrementally via the #5189 keepStaleUntilLoaded swap-in-place loadSession path (no clear+refetch, so the #5177/#5189 blank-gap jump is not reintroduced). Idle-only and pane-scoped; emits only when the server is strictly ahead. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| agent_health.py | ||
| agent_sessions.py | ||
| auth.py | ||
| background.py | ||
| background_process.py | ||
| clarify.py | ||
| commands.py | ||
| compression_anchor.py | ||
| config.py | ||
| dashboard_probe.py | ||
| extensions.py | ||
| gateway_chat.py | ||
| gateway_restart.py | ||
| gateway_watcher.py | ||
| goals.py | ||
| helpers.py | ||
| kanban_bridge.py | ||
| metering.py | ||
| models.py | ||
| oauth.py | ||
| onboarding.py | ||
| passkeys.py | ||
| paths.py | ||
| plugin_providers.py | ||
| plugins.py | ||
| profiles.py | ||
| providers.py | ||
| request_diagnostics.py | ||
| rollback.py | ||
| route_approvals.py | ||
| route_session_list_cache.py | ||
| routes.py | ||
| run_journal.py | ||
| runner_client.py | ||
| runtime_adapter.py | ||
| session_discoverability.py | ||
| session_events.py | ||
| session_lifecycle.py | ||
| session_ops.py | ||
| session_recovery.py | ||
| skill_usage.py | ||
| sse_chunked.py | ||
| startup.py | ||
| state_sync.py | ||
| streaming.py | ||
| system_health.py | ||
| terminal.py | ||
| todo_state.py | ||
| turn_journal.py | ||
| updates.py | ||
| upload.py | ||
| usage.py | ||
| webui_session_db.py | ||
| workspace.py | ||
| workspace_git.py | ||
| worktrees.py | ||