Release XX (v0.51.668): WebUI<->Desktop session reconciliation (#4834, fixes #4833) - #4954
Merged
Merged
Conversation
Contributor
|
| Filename | Overview |
|---|---|
| api/models.py | Adds read-only state.db sidebar metadata, guarded WebUI-origin overlays, and recovery for sidecars missing from the index. |
| api/routes.py | Updates session-list cache behavior so stale follower payloads can be reused and hidden-CLI views still notice state.db changes. |
| tests/test_session_sidebar_cache.py | Adds cache-state isolation and tests for singleflight and stale follower behavior. |
| tests/test_streaming_session_sidebar.py | Adds coverage for recovering a messageful sidecar that is missing from the sidebar index. |
| tests/test_webui_state_db_context_reconciliation.py | Adds persistence checks for externally appended messages included in the next WebUI turn. |
| tests/test_webui_state_db_reconciliation.py | Adds tests for sidebar overlay counts, Desktop append reconciliation, and full session-load deduplication. |
| CHANGELOG.md | Adds the release note for v0.51.668. |
Reviews (1): Last reviewed commit: "Release XX (v0.51.668): WebUI<->Desktop ..." | Re-trigger Greptile
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release XX (v0.51.668) — WebUI stays in sync after the Desktop app continues a session
Ships #4834 (@franksong2702, T1) — fixes #4833. Anchor-B (continue a WebUI session from the official Hermes Desktop app) + Anchor-A (session state is core).
What it fixes
After the Desktop app continues a WebUI-origin session (appending settled rows to the shared Agent
state.db) and you return to WebUI, the sidebar/detail showed a stale/incomplete transcript and the next WebUI turn's context missed the externally-appended settled messages. Fix: batch-read state.db count+max-ts in the sidebar override helper + overlay newer WebUI-origin state.db onto stale sidecar rows only when the DB strictly grew; make /api/sessions cache stamps observe state.db even when CLI sessions are hidden (active-stream hold-down preserved). Read-only, metadata-only — no Desktop change, no live-stream mirroring.Gate (converged after a prior bounce)
The reconciliation LOGIC was already validated SAFE by the prior dual-gate (read-only/content-free overlay). The bounce was a parallel test-isolation regression (
test_session_list_cache_follower_wait_stage_when_rebuild_inflightfailed under xdist because the always-on state.db stamp perturbed shared cache state). The re-push isolated the cache tests + a try/int() coercion fix.state_db_source=='webui'+ strictly-grew (no resurrection), full transcript still via append-only reconciliation.follower_waitregression test now PASSES under the full parallel run; 1 unrelated known order-flake passes in isolation).Credit @franksong2702.