fix(session): preserve sidecar order in display merges#3085
Merged
1 commit merged intoMay 28, 2026
Merged
Conversation
20f8c7c
Collaborator
|
Shipped in v0.51.155 / Release EA (stage-batch37, commit 20f8c7c). Thanks for the contribution! |
AJV20
pushed a commit
to AJV20/hermes-webui
that referenced
this pull request
May 28, 2026
# Conflicts: # CHANGELOG.md
AJV20
pushed a commit
to AJV20/hermes-webui
that referenced
this pull request
May 28, 2026
3-PR very low-risk cleanup: - nesquena#3039 api(): timeoutToast:false opt-in for passive pollers - nesquena#3085 _merged_session_messages_for_display: preserve sidecar order when longer - nesquena#3086 subsecond timestamps for gateway turns + compaction batches
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.
Thinking Path
A Telegram/messaging session can have a WebUI sidecar transcript plus mirrored Agent/state rows. When many sidecar rows share the same timestamp precision, the existing display merge can sort by
(timestamp, role, content)and change transcript order.What Changed
Why It Matters
This prevents valid messaging transcripts from rendering as if assistant replies vanished or moved when timestamp precision collapses during sidecar/state reconciliation.
Verification
python3 -m pytest tests/test_issue2472_fork_from_here_messaging.py -q -o addopts=-> 7 passedpython3 -m py_compile api/routes.py-> passedgit diff --check-> passedContract Routing
Task type: runtime/session display bugfix
Touched areas:
api/routes.py, messaging/session display merge testsRelevant public docs:
AGENTS.mdCONTRIBUTING.mddocs/CONTRACTS.mdScope boundaries: no contract document changes; this preserves the existing display transcript invariant instead of redefining it.
Evidence needed before claiming done: regression test plus focused route compile/diff checks.
Risks / Follow-ups
Low risk. The sidecar-order path only applies when the sidecar transcript is at least as complete as the mirrored state transcript. Separate timestamp-write hardening is handled in a companion PR.
Model Used
OpenAI Codex provider,
gpt-5.5, via Hermes/TARS with local git/pytest/gh tooling and an independent reviewer subagent.