tui: vertical session tabs render the working pulse only 10 columns wide
メンテナーはふだん 1 日以内に返信
評価
- 難易度
- 1/5
- 見積もり時間
- 1時間未満
- 初心者へのやさしさ
- 90/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- typescript
- 領域
- cli
調査の方向性
packages/tui/src/component/session-tabs.tsx の VerticalSessionTabs から始め、indicatorWidth 定数と 826-1090 行付近にある 4 つの TabPulse 呼び出し箇所を確認します。水平タブの幅の扱いおよび packages/tui/src/component/tab-pulse.tsx と比較してください。実行中の pulse とセパレーターストリップが垂直レールの全幅にわたることを確認し、水平タブは変更されないようにします。
索引モデルが issue の本文から書いたものです。
説明
Description
With vertical session tabs (tabs.layout: "vertical"), the animated "session is running" pulse is hardcoded to 10 columns instead of the width of the tab. On a ~40-column rail it looks like a stray short dark stripe that crosses only part of the tab — both the separators above/below the tab and the sweep inside its title/detail rows. Horizontal tabs are fine, which makes the vertical rail look broken/inconsistent.
Plugins
superpowers@git+https://github.com/obra/superpowers.git, @cardinal4/opencode-quota@latest (both unrelated to this rendering issue)
OpenCode version
2.0.12
Steps to reproduce
- In
~/.config/opencode/cli.json:"tabs": { "layout": "vertical" }(defaults:indicators: "status",animations: true). - Open a session and send a prompt so the tab stays in the running/thinking state.
- Watch the active tab in the vertical rail: the pulse strip above/below it and the sweep inside its title/detail rows cover only the first 10 columns.
Expected behavior
The pulse/separator strips span the full tab width, as they do in the horizontal tab layout.
Actual behavior
They are clipped to 10 columns, so on a wide rail they read as a short black line.
Additional context
Source (v2.0.12):
const indicatorWidth = 10: https://github.com/anomalyco/opencode/blob/v2.0.12/packages/tui/src/component/session-tabs.tsx#L826- four
TabPulsecall sites use it: L951 (edge="above"), L978 (edge="below"), L1005 (title row), L1090 (detail row) - default width: https://github.com/anomalyco/opencode/blob/v2.0.12/packages/tui/src/component/tab-pulse.tsx#L792 —
width={props.width ?? "100%"} - horizontal tabs pass no
width(session-tabs.tsx L1660), so they already get"100%"
Suggested fix: drop the hardcoded width in VerticalSessionTabs (use the rail width, e.g. width() or "100%"), matching the horizontal layout.
Workaround (for users hitting it): "animations": false in cli.json.
Environment: Arch Linux (kernel 6.18.52-1-lts, x86_64), Alacritty, truecolor, zsh.
- 主要言語
- TypeScript
- スター
- 215k
- フォーク
- 28.9k
- 平均マージ
- 7時間 53分
- マージ済み PR(30日)
- 278
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
anomalyco/opencode のほかの issue
-
pending close triaging
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
anomalyco/opencode#56765 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
anomalyco/opencode#56735 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
anomalyco/opencode#56663 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
pending close triaging
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
anomalyco/opencode#56625 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
anomalyco/opencode#56624 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
anomalyco/opencode の issue をすべて見る
似ている issue
-
bug priority: P2
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 73/100
mattermost/compass-design#106 ·
メンテナーはふだん 1 日以内に返信
-
clawsweeper:needs-maintainer-review clawsweeper:needs-product-decision clawsweeper:no-new-fix-pr clawsweeper:source-repro impact:other issue-rating: 🦞 diamond lobster P2
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
openclaw/openclaw#176671 · コメント 1 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
nordcraftengine/nordcraft#1400 ·
メンテナーはふだん 1 日以内に返信