[GUI] Changing the language while an answer streams freezes the shown answer; with Edit/Rewind open it deadlocks the composer
Maintainers usually reply within 3 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 72/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- javascript
- Domain
- frontend
Research direction
Start at serve/web/app.js:1557-1558 (the language select's onchange → showLanguage), then read renderChat at lines 1548-1556 and the .st-msg recreation at 964-966. Compare with the guarded call sites (openChat/startChat/regenerateAt/undoHistory/list-toggle) to see how busy/panel are checked, and read the panel handling at chats-ui.js:341 and 391 to learn how closePanel is meant to run. Done means the language switch either refuses while busy or closes the panel safely, and generateReply's captured element at line 1209 is no longer detached mid-stream; verify with the two-click reproduction.
Written by the indexing model from the issue text.
Description
Problem: on the served web chat page, the About tab is reachable while an answer is streaming, and the language select's onchange → showLanguage() (serve/web/app.js:1557-1558) → renderChat() (lines 1548-1556) destroys and recreates every .st-msg node (lines 964-966) with NO busy/panel guard. Every other renderChat() call site guards (openChat/startChat/regenerateAt/undoHistory/list-toggle check busy/panel) — showLanguage is the only unguarded one. Two consequences: (a) generateReply keeps painting into the element it captured (line 1209), now detached — the shown answer freezes at mid-stream text until the next render (the stored chat is fine); (b) an open Edit/Rewind panel lives INSIDE the destroyed message node (chats-ui.js:341/391), so panel.el is detached while panel stays set — closePanel() is only reachable from the panel's own buttons (now gone) or New chat: the textarea and send button stay disabled ("Save or cancel what is open above to continue") with nothing on screen to cancel.
Environment:
Strata Version: 0.2.7 (source checkout at tag v0.2.7, commit 5e8a4cca; the file discussed is byte-identical to the tag)
OS: Linux x86-64
Reported from the Strata-Mnemosyne fork's merged tree; the offending code is upstream's own.
Reproduce: start a long answer → About tab → change Language → back to Chat: the answer shows frozen text until the next send. Variant: open "Rewind to here", change the language → composer disabled with no visible panel; escaping needs New chat or a reload.
Expected: the language switch behaves like the other re-renders (refuse, or close the panel safely while busy).
Reproduction status: unconfirmed static analysis (no browser on this box; call-site audit as described). What would verify: the two clicks above.
- Dominant language
- C++
- Stars
- 11.6k
- Forks
- 1k
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Niko1221/Strata
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Niko1221/Strata#4779 · 2 comments ·
Maintainers usually reply within 3 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 3 days
-
[GUI] npm test deletes the person's model folder: models-folder.test.mjs removes <drive>\StrataOpen
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 3 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 3 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Niko1221/Strata#4630 · 1 comment ·
Maintainers usually reply within 3 days
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
godotengine/godot#125004 ·
Maintainers usually reply within 1 day
-
44-x-y bug :beetle:
Difficulty 1/5 Under an hour Newbie friendliness 82/100
electron/electron#55528 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
gabime/spdlog#3698 · 1 comment ·
Maintainers usually reply within 5 days
-
ai_p2 bug comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
ClickHouse/ClickHouse#128306 · 1 comment ·
Maintainers usually reply within 1 day
-
70 Instance - Raid - Outland
Difficulty 1/5 Under an hour Newbie friendliness 85/100
azerothcore/azerothcore-wotlk#28328 ·
Maintainers usually reply within 1 day