Conversation
Expose persisted compression segments through exact lineage APIs and a read-only Desktop timeline. Preserve logical session identity, strict continuation semantics, exact branch provenance, and hidden checkpoints across Gateway and SQLite persistence.
Contributor
|
This was generated by AI during triage. Summary: Problems:
Solution: Checked against |
This was referenced Aug 19, 2026
Closed
19 tasks
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.
What does this PR do?
Hermes already preserves earlier messages when compression rotates a session into a child session, but Desktop only exposes the live tip. This PR adds a compact compression-lineage navigator so users can inspect and branch from exact historical context segments without changing the live runtime.
The selected session row shows the current segment and two recent historical segments. A timeline sheet exposes the complete lineage and lazy-loads one exact, read-only segment at a time.
Related Issue
Related to #48404, #44913, #50192, #79565, and #80680.
Relationship to existing open PRs
The backend files overlap, but the UX and API contract here are complementary rather than a copy of those approaches.
Type of Change
Changes Made
$sessionstree.display_kind=hiddencompaction checkpoints across Desktop payload coercion, optimistic preview, Gateway persistence, SQLite, and reload; user text cannot forge hidden context.How to Test
compression.in_place: false) and which has multiple persisted compression children.parent_session_idis the selected segment and its compaction checkpoint remains hidden in the UI.Automated/local verification:
git diff --check, and added-lines secret scan passed.Broader local suites retain unrelated pre-existing/environment failures outside this diff:
Checklist
Code
fix(scope):,feat(scope):, etc.)pytest tests/ -qand all tests pass (see documented pre-existing/environment failures above)Documentation & Housekeeping
docs/, docstrings) — N/A; behavior is self-contained in Desktop UI/API docstringscli-config.yaml.exampleif I added/changed config keys — N/A; no config keys changedCONTRIBUTING.mdorAGENTS.mdif I changed architecture or workflows — N/A; no contributor workflow changedScreenshots / Logs
The feature was visually dogfooded in a real isolated Electron instance. The timeline sheet displayed all 14 segments, the selected historical transcript remained read-only, and branching/reload persistence was verified against the isolated SQLite copy.
Notes for Reviewers
total/has_more; Desktop follows pages and presents one complete exact segment. Tail-first or virtualized transcript loading can be added separately for unusually large segments.$sessionsand the generic branch tree so logical session identity, grouping, drag/drop, and virtualization semantics stay stable.