Streaming long Markdown links repeatedly reflow tables
まだ誰も着手していません。
- 主要言語
- Shell
- スター
- 11.2k
- フォーク
- 1.9k
- 平均マージ
- 14時間 16分
- マージ済み PR(30日)
- 6
説明
Describe the bug
While a response is streaming, inline Markdown links inside tables cause repeated table re-layout and visually disruptive jumping.
For a Markdown link such as [foo](https://very-long-url...) inside a table, the URL arrives character by character. Each character appears to trigger another table layout/render pass using the incomplete raw Markdown. The columns continuously resize and wrap; once the closing ) arrives, the whole link collapses to its visible text (foo) and the table jumps again.
This makes tables containing several long links very slow and visually unstable even though the final rendered table may look correct.
Affected version
GitHub Copilot CLI 1.0.77.
Steps to reproduce the behavior
-
Start GitHub Copilot CLI in interactive mode.
-
Enter this prompt:
Render a Markdown table with several rows. Each row must contain an inline Markdown link whose destination URL is at least 150 characters long.
-
Watch the table while the response streams.
-
Observe columns repeatedly resizing and wrapping while each link destination arrives.
-
Observe another layout jump when each completed link collapses to its visible text.
Expected behavior
Streaming incomplete Markdown should not cause a full table re-layout on every character. Table columns should remain visually stable while link destinations stream, then render using the visible link text when complete.
Additional context
- OS: macOS 26.5.2
- CPU architecture: arm64
- Shell: zsh
- Video: https://github.com/user-attachments/assets/98bc24df-27e5-47f6-aab2-345dd3e995e2
The video uses a trivial example. The effect becomes much more disruptive with additional columns and rows. The demo also rendered unusually quickly; normal rendering is approximately 0.3-0.5 times this speed.
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
interactive-mode のストリーミング Markdown テーブル描画パスから始め、複数のテーブル行にある長いインラインリンクで問題を再現します。URL 文字が到着するにつれて繰り返されるレイアウトパスを追跡します。未完成のリンクがテーブル全体の煩雑な再レイアウトを引き起こさなくなり、完成したリンクが表示テキストを使って描画されれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- markdown, shell
- 領域
- cli, performance
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 静か
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 58/100