Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[GUI] Changing the language while an answer streams freezes the shown answer; with Edit/Rewind open it deadlocks the composer

オープン 初心者向け
#4,399 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 3 日以内に返信

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
72/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
javascript
領域
frontend

調査の方向性

serve/web/app.js:1557-1558(言語選択の onchange → showLanguage)から始め、1548-1556 行目の renderChat と、964-966 行目の .st-msg の再生成を読んでください。保護された呼び出し元(openChat/startChat/regenerateAt/undoHistory/リスト切り替え)と比べ、busy と panel がどのように確認されているかを確認してください。さらに chats-ui.js:341 と 391 のパネル処理を読み、closePanel がどのように実行されるべきかを理解してください。完了条件は、busy 中は言語切り替えが拒否されるか、パネルを安全に閉じること、そして 1209 行目で generateReply が取得した要素がストリーム途中で切り離されなくなることです。二回クリックの再現手順で確認してください。

索引モデルが issue の本文から書いたものです。

説明

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.

主要言語
C++
スター
11.6k
フォーク
1k
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

Niko1221/Strata のほかの issue

Niko1221/Strata の issue をすべて見る

似ている issue

C++ の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。