Skip to content

feat(tui): PR バッジをアイコン+件数に畳み、ホバーで番号一覧を表示する#459

Merged
kkyosuke merged 2 commits into
mainfrom
usagi/sidemenu-iui
Jun 27, 2026
Merged

feat(tui): PR バッジをアイコン+件数に畳み、ホバーで番号一覧を表示する#459
kkyosuke merged 2 commits into
mainfrom
usagi/sidemenu-iui

Conversation

@kkyosuke

Copy link
Copy Markdown
Owner

目的

サイドバー 2 行目で PR を #442 #447 #451 #452 のように全部展開していたため、PR 列が幅を食い、Agent 状態が ▶ runni… のようにクリップされていた(添付スクショの症状)。表示するものが全部出ても綺麗に収まるよう調整する。

変更内容

1. PR バッジをアイコン+件数に集約(クリップ解消)

  • pr_cell / pr_width を、#N 全展開から PR アイコン(nerd font)+件数(例: 4 本なら 4、1 本でも 1)に変更。PR 列が ~19 桁 → ~3 桁に縮み、▶ running などがクリップされなくなる。
  • detail_cols の優先度(diff/PR を残し Agent をクリップ)はそのままでも、PR が小さくなったことで 更新時刻 / ↑↓ / diff / PR / Agent が 36 桁の detail 行に収まる。

2. ホバーで PR 番号一覧をポップアップ

  • 切替・在席でフル幅サイドバーの PR を持つセッション行にマウスを重ねる と、#442 #447 … の番号一覧を小枠(タイトル PR)でその行の脇にポップアップ。別の行/空き領域へ動かす or キー入力で消える。
  • 入力層: ENABLE_MOUSE?1003h(任意モーション追跡)と Input::Hover を追加。term_reader::mouse_event がボタンなしモーションを Input::Hover として返す。
  • 状態: HomeState::pr_hover(変化時のみ再描画、キー入力でクリア)。
  • 描画: sidebar_pr_hover_at(PR クリックと同じ判定を共有)/ pr_hover_popup / widgets::overlay_at
  • URL を開くのは従来どおり没入中のクリック。役割分担(一覧=ホバー / 開く=クリック)を維持。

3. ドキュメント

  • document/design/05-home.md の PR バッジ節・2 行目クラスタ・モックアップ・マウスレポート(DECSET 1003)・実装ポインタを更新。

テスト・確認方法

  • cargo fmt / cargo clippy --all-targets -- -D warnings / cargo test(2272 passed)。
  • カバレッジ lines・functions 100%(scripts/coverage.sh)。
  • 追加テスト: PR バッジの折り畳み、mouse_event のモーション→Hover 解析、sidebar_pr_hover_atpr_hover_popup の折り返し、overlay_atrender_frame のホバー時ポップアップ、event ループの Hover 処理。
  • ホバー検知にはマウスレポートが要るため、それを無視する端末(Apple Terminal.app 等)ではポップアップは出ない(既存のクリック制約と同じ)。

🤖 Generated with Claude Code

test and others added 2 commits June 28, 2026 07:44
サイドバー 2 行目で PR を `#442 #447 #451 #452` と全部展開していたため、
PR 列が幅を食って Agent 状態が `▶ runni…` のようにクリップされていた。

- PR バッジを PR アイコン(nerd font)+件数の 1 つに集約(pr_cell / pr_width)。
  detail 行が縮み、running などのラベルがクリップされなくなる。
- 個々の PR 番号は切替・在席でその行にマウスを重ねるとポップアップ表示。
  - 入力層に ?1003h(任意モーション追跡) と Input::Hover を追加。
  - HomeState::pr_hover で対象を保持(変化時のみ再描画、キー入力でクリア)。
  - sidebar_pr_hover_at / pr_hover_popup / widgets::overlay_at で行の脇に重ねる。
- URL を開くのは従来どおり没入中のクリック。役割分担を維持。
- document/design/05-home.md を更新。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
# Conflicts:
#	document/design/05-home.md
@github-actions

Copy link
Copy Markdown

📊 Test Coverage

🚀 いまのカバレッジ (Lines): 100.00% — この調子でいこう!

🎉✨ パーフェクト!全ファイル Lines カバレッジ 100% を達成しました 🏆🐰

@kkyosuke kkyosuke merged commit 7c904cd into main Jun 27, 2026
4 checks passed
@kkyosuke kkyosuke deleted the usagi/sidemenu-iui branch June 27, 2026 23:22
kkyosuke pushed a commit that referenced this pull request Jun 28, 2026
PR #459(PR バッジをアイコン+件数に畳みホバーで番号一覧を表示)と本ブランチ
(#457: PR は #N クリックのみ・行ダブルクリックでセッション切替)が同じサイドバー
PR バッジの挙動を逆向きに変更していたため、ユーザー判断で次の方針に統合した:

- 表示・ホバーは main(#459)の畳んだ <icon> <count> バッジ + 番号一覧ポップアップを採用。
- クリックは「バッジそのもの」をクリックしたときだけ全 PR を開く
  (sidebar_pr_links_at を列精密なヒットテスト sidebar_pr_badge_at 経由に変更)。
  行の余白クリックは PR を開かず、#457 の行ダブルクリック→セッション切替に開放。
- ホバーは従来どおり行全体が対象 (sidebar_pr_worktree_at)。
- 没入ペインのポインタ形状(#460)とダブルクリック状態は加算的に共存。
- design/home の 03-sidebar.md / 04-keys.md を統合後の挙動に合わせて更新。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant