HERMES-GIELIE/api
allenliang2022 4ef9d7c5cb fix(webui): render a server-initiated turn that finished during an SSE gap on a visible tab
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.
2026-06-30 17:13:45 +00:00
..
__init__.py
agent_health.py
agent_sessions.py feat: add Webhooks sidebar filter parity 2026-06-30 17:06:31 +00:00
auth.py
background.py
background_process.py fix(webui): render a server-initiated turn that finished during an SSE gap on a visible tab 2026-06-30 17:13:45 +00:00
clarify.py
commands.py
compression_anchor.py
config.py feat: add Webhooks sidebar filter parity 2026-06-30 17:06:31 +00:00
dashboard_probe.py
extensions.py
gateway_chat.py fix(#5092): continue WebUI goals after gateway turns 2026-06-30 05:04:32 +00:00
gateway_restart.py fix(health): preserve restart failure contract and proofs (#5156) 2026-06-29 03:44:06 +00:00
gateway_watcher.py
goals.py
helpers.py fix(redaction): memoize deterministic API response redactor 2026-06-29 18:22:18 +00:00
kanban_bridge.py
metering.py
models.py feat: add Webhooks sidebar filter parity 2026-06-30 17:06:31 +00:00
oauth.py
onboarding.py
passkeys.py
paths.py
plugin_providers.py
plugins.py
profiles.py
providers.py feat: add Neuralwatt provider support (env var mapping) 2026-06-29 20:41:16 +00:00
request_diagnostics.py
rollback.py
route_approvals.py
route_session_list_cache.py feat: add Webhooks sidebar filter parity 2026-06-30 17:06:31 +00:00
routes.py fix(webui): render a server-initiated turn that finished during an SSE gap on a visible tab 2026-06-30 17:13:45 +00:00
run_journal.py
runner_client.py
runtime_adapter.py
session_discoverability.py
session_events.py
session_lifecycle.py
session_ops.py fix(session): preserve kept tool rows on ambiguous truncate (#5134) 2026-06-30 01:40:07 +00:00
session_recovery.py
skill_usage.py
sse_chunked.py
startup.py
state_sync.py
streaming.py refactor(streaming): split terminal-failure transcript evaluator (#5141) 2026-06-30 18:40:08 +08:00
system_health.py
terminal.py
todo_state.py
turn_journal.py
updates.py fix(updates): resolve git under macOS launchd (#5175) 2026-06-29 04:22:51 +00:00
upload.py fix(auth): enforce active-profile session IDs 2026-06-30 04:28:15 +00:00
usage.py
webui_session_db.py
workspace.py fix(profiles): use profile-scoped resolver for /api/profile/active default_workspace (Codex gate #5169) 2026-06-29 01:45:17 +00:00
workspace_git.py
worktrees.py