Repository navigation
Reset missing-session state for fresh chats - #2004
Merged
Merged
Conversation
|
Merge queue CI: success — run 40551416589, attempt 1. The run summary lists reused suites and executed checks. A green PR check alone does not mean queue validation has passed. |
lihongguang-0014
added a commit
to pcbeingused333/opensquilla
that referenced
this pull request
Oct 29, 2026
TokenRhythm#1986) * fix(webui): keep a running turn's late rows above the queued follow-up A follow-up submitted while a turn is running lands in the transcript as a user row immediately, but the running turn keeps emitting router receipts and text afterwards with the older turn id. Rendering in arrival order placed those rows below the queued bubble, so the router strip and the activity it describes read as the follow-up's work. Group rendered rows by the first position of their turn before returning them. Rows inside one turn keep their arrival order, and rows without a turn key stay where they are. This corrects the strip and row attribution. The live edge is still mounted in the list trailing slot, which always renders after the last message row; moving it into its turn is a separate list-layout change. Refs TokenRhythm#1887 * fix(router): allow saving explicitly selected providers by default (TokenRhythm#1996) * fix(router): enable explicitly selected provider deployments on save * test(router): include provider save in browser workflow inventory * fix(deps): refresh vulnerable locks blocking router regression CI * fix(webui): let wheel gestures leave tool details at the scroll boundary (TokenRhythm#1985) An expanded tool result keeps its own bounded scroll window inside the transcript. Both that window and the code/diff viewport declared `overscroll-behavior: contain`, so a wheel gesture that reached either inner boundary was dropped instead of scrolling the conversation. During a live turn the transcript also stayed pinned to the live edge until the pointer moved onto ordinary text. Use `overscroll-behavior: auto` on both inner windows so the remainder of the gesture chains to the transcript. Scrolling inside a region that still has range keeps moving only that region. Adds a source guard that fails if either rule returns to `contain`. Fixes TokenRhythm#1889 Co-authored-by: angri450 <angri450@users.noreply.github.com> Co-authored-by: Open-Squilla <275096992+Open-Squilla@users.noreply.github.com> * fix(webui): silence routine reasoning replay notifications (TokenRhythm#2000) * fix(webui): contain collapsed activity scroll overflow (TokenRhythm#2003) * docs(readme): sync translated capability rows with the English README (TokenRhythm#2001) The zh-Hans, ja, fr, de, and es READMEs still described the pre-SDK-2.2 MCP extra install (opensquilla[recommended,mcp]) and a Windows sandbox gap that README.md already resolved. The mcp extra is now empty in pyproject.toml, so the documented install command is misleading. Co-authored-by: FENGCHENHAO\fch <204137222@qq.com> * Reset missing-session state for fresh chats (TokenRhythm#2004) * Fix compaction history scan stalls and add lifecycle diagnostics (TokenRhythm#2007) * Fix compaction history scan stalls and add lifecycle diagnostics * Bound scan allocations and observe post-summary settlement * Verify gateway exit diagnostics with inherited output pipes * Remove vulnerable download proxy serializer dependency * Preserve URI parser security floors in proxy tooling * Handle real quit confirmation in profile import acceptance * Handle quit confirmations in desktop acceptance cleanup * Run native close cancellation regression outside parallel CI * Update native close CI partition contract * Preserve internal handoff boundaries when ordering queued turns Group only explicitly anchored user turns within each uninterrupted presentation span. Preserve internal resume rows, incomplete history and legacy order while retaining late completion and router ownership. Co-authored-by: angri450 <angri450@users.noreply.github.com> * Update Vue I18n to address security audit findings --------- Co-authored-by: angri450 <angri450@users.noreply.github.com> Co-authored-by: Open-Squilla <275096992+Open-Squilla@users.noreply.github.com> Co-authored-by: fengchen122123-sudo <fengchen122123@gmail.com> Co-authored-by: FENGCHENHAO\fch <204137222@qq.com> Co-authored-by: lihongguang-0014 <hongguang.li@tokenrhythm.ai>
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.
Scope
Reset the session history missing state when a fresh chat draft replaces a deleted session. This keeps the new workspace conversation composer enabled after deleting the active child session.
Branch target
mainLinked issue
None
Release note
Not needed; bug fix in the Web UI session lifecycle.
Test results
node node_modules/vitest/vitest.mjs run src/composables/chat/useChatSessionRuntime.draft.test.ts src/composables/chat/useChatHistory.test.ts src/views/ChatView.session-missing-wiring.test.ts src/components/chat/AssistantMessage.session-created.test.tsnpm run typecheck:vueuv run pytest tests/test_gateway/test_rpc_sessions.py::TestSessionsDelete::test_delete_valid tests/test_gateway/test_rpc_sessions.py::TestSessionsDelete::test_delete_evicts_only_the_deleted_session_stream tests/test_gateway/test_rpc_sessions_fork.py::test_delete_parent_leaves_forked_child_intact -qSafety notes
The change only resets client-side history state after switching to a new provisional session. It does not alter session deletion semantics or workspace ownership.
Third-party origin
None.