すべてのトピック(Horizon テーマ)でネストされた返信を有効にしたところ、再現可能な状態バグに遭遇しました。これはモバイルとデスクトップの両方で発生します。
トピックを開いて読み、次に「推奨/関連トピック」ブロック経由で別のトピックにジャンプすると(クライアントサイドナビゲーション、リロードなし)、直前に離れたトピックの返信が画面に残り、新しいトピックの最初のブランチの下にネストされて表示されることがあります。さらに、新しいトピックで削除された投稿の下にも付着して表示されます。他のトピックに移動し続けても消えず、完全なページリロードを行うとしか解消しません。
重要な点として、これは断続的に発生します。「関連」ブロック経由の最初の移動は通常問題なく、何度かクリックしても大丈夫です。このバグが現れるのは、関連トピックブロックを連続して 2 回以上移動した後だけです。
再現手順:
- ネストされた返信があるトピックを開く。
- 「推奨/関連」ブロック経由で別のトピックを開く(リロードなし)、これを連続して数回繰り返す。
- ブロックを連続して 2 回以上移動した後、以前のトピックの返信が現在のトピックの最初のブランチの下にネストされて表示される。場合によっては、そこで削除された投稿の下にも表示される。
- これらはハードリロードを行うまで、アプリ内のさらなるナビゲーションを通じて維持される。
コンソールに JS エラーは表示されないため、Network タブを確認したところ、以前のトピックが単に破棄されていないようです。
- 検査中のページはトピック 724(/n/vibriruet-pri-troganii…/724?sort=old)です。
- 724 にいる間、以前のトピックのデータへのリクエストがまだログに残っています:509.json?sort=old&track_visit=true。
- 生メッセージバスポーリングには Referer …/n/pinki-tolchki-…-na-nissane-kube/509 が含まれています。つまり、トピック 509 のメッセージバスサブスクリプションが 724 に再設定されていません。
つまり、クライアントサイドナビゲーション時に、ネストされたルートが元のトピックの投稿ストリーム/メッセージバスサブスクリプションをリセットしていないようです。これはモバイルで最初に発見されましたが、デスクトップでも同様に動作します。
Discourse バージョン: 2026.6.0-latest (27f76aa897)
必要であればスクリーンレコーディングを添付するか、さらに調査いたします。
「いいね!」 3
chapoi
2
@Andry_Osminin これは Horizon テーマでのみ発生するものでしょうか、それとも Foundation でも同じでしょうか?
まだ良好な再現手順を特定できていませんが、@markvanlan さんへのビジュアライゼーション関連のメンションです。
「いいね!」 2
Horizon 上ではのみ再現しますが、Foundation ではトピック間で返信の分岐が引き継がれている様子が見られませんでした。
ただし、Foundation に単に存在しないというわけではなく、ナビゲーションの仕組みに起因するものと思われます。私が気づいた違いは以下の通りです。
- Horizon: 関連トピックをクリックするか、リストからトピックを開くと、読み込みインジケーターなしで即座にトピックが表示されます。この即時ナビゲーションが、連続して 2 回以上クリックした際に分岐の引き継ぎが現れるタイミングです。
- Foundation: トピックも最初は即座に表示されます(Horizon と同様)が、その後約 200〜400 ミリ秒後にアニメーション付きのドットが表示される読み込み画面が現れ、トピックが再度読み込まれます。つまり、高速な開封の直後に、自分自身でトリガーされる 2 回目の読み込みが発生します。
つまり、このバグは、以前のトピックの状態がリセットされない「即時」ナビゲーションに特化して表面化しているようです。Foundation では、その後の読み込みが状態をリセットし、問題を隠蔽しているようです。言い換えれば、Horizon では即時のネストされたトピックナビゲーションが、以前のトピックの投稿ストリームやメッセージバス購読をリセットしませんが、Foundation のフローではその 2 回目の読み込みを通じてリセットが行われます。
別件ですが、Horizon でテスト中に、ネストされたビューでたまに小さなレイアウトシフトが発生します。トピックを開いてスクロールを下げると、画面が返信部分に達した瞬間に、ごく短いマイクロシフトが発生することがあります。毎回ではありませんが、かなり頻繁に起こります。関連している可能性もありますが、別の小さな問題である可能性もあります。念のため報告しておきます。
「いいね!」 2
別の小さな問題に遭遇しました。ネストされた状態特有なのか、Horizon 固有の問題なのかはわかりませんが、フラットモードでは発生しませんでした。トピックの統計行が、ある極端なケースで誤ってレイアウトされてしまいます。ユーザー数が「ユーザー」数を表示するには少なすぎ、かつ読み完了時間が表示されない場合、閲覧数カウンターが 1 行に収まり、通常のスタイル化された統計ブロック(数字付き)ではなく、異なる色でレンダリングされてしまいます。スクリーンショット 1 は通常の状態、スクリーンショット 2 はその極端なケースです。バグを別々のトピックに分けることを好むようであれば、喜んでこの件を独立したトピックに分割します。
「いいね!」 1
Horizon の問題に対する修正が見つかったと思います。モバイルのネストされたトピック表示に大きく影響する今後の PR に含める予定です。今日中にリリースできることを願っています。
「いいね!」 3
この件、こんなに早く取りかかっていただきありがとうございます!#40548(「ネストされた投稿の登録取り外しの修正」)で修正を見つけましたが、PR はまだドラフト状態のようですので、焦る必要は全くありません。
確認させてください——いつ頃マージされる見込みでしょうか?準備が整えば、私のインスタンスでテストすることも喜んで行います。もしお役に立てるようであれば、ぜひお知らせください。
「いいね!」 1
アンドリーさん、こんにちは。
その修正は、私が取り組んでいるモバイル UX の大規模なリファクタリングに含めました。今、予期せぬ問題を引き起こしていないか確認するために、最終的な QA を行っています。今日か明日にはマージできることを願っています。
「いいね!」 1
PR をマージしました👍 更新後、問題ないか教えてください。views ラベルの奇妙なフォーマットについては忘れません。すぐに修正します。
「いいね!」 2
#40652 を取り込んでいただきありがとうございます。現在、ツリーに #40652 を含んだ 2f2676180 状態で、./launcher を完全再ビルドし、シークレットモードで確認しましたが、キャッシュの問題ではありません。それでも、表示が引き継がれてしまいます。
私の環境での再現手順(ソート順を「古い順」に設定):最初のトピックの最初の分岐とその下の 2 つの返信が、ページをリロードせずにトピック間を移動する限り、常に次のトピックに引き継がれ、そこでの最初の分岐の下に表示されてしまいます。ページ全体をリロードすると解消します。
バグとは無関係なアイデアですが:誰かが自分の投稿に返信する際、階層を一段深くせず、同じ階層の直下に配置するのはどうでしょうか。一部のアプリではそのように実装されており、スレッドが深くなりすぎるのを防げます。単なる提案です。
更新およびテスト済みです。完璧に動作し、トピック間の漏れがなくなりました
。本当にありがとうございます!これで、フォーラム全体にネストされた返信を導入できます。
「いいね!」 2