Skip to content

feat: 端末が狭いとき一覧の worktree 名列を非表示にする - #22

Merged
takecchi merged 2 commits into
mainfrom
feat/hide-worktree-name-narrow
Jul 19, 2026
Merged

feat: 端末が狭いとき一覧の worktree 名列を非表示にする#22
takecchi merged 2 commits into
mainfrom
feat/hide-worktree-name-narrow

Conversation

@takecchi

Copy link
Copy Markdown
Owner

概要

セッション一覧の行に表示している worktree(ブランチ)名の列を、端末の横幅が狭いときは非表示にします。

狭い端末では caret / attention / title / badge / model / elapsed / PR の固定・準固定列だけで幅が埋まり、ブランチ列を出すと title が過度に切り詰められていました。端末桁数が閾値(MIN_BRANCH_COLUMN_COLUMNS = 80)未満のときはブランチ列ごと省き、その幅を title に譲ります。

変更点

  • src/core/layout.ts
    • 純関数 showsBranchColumn(columns) と定数 MIN_BRANCH_COLUMN_COLUMNS を追加(表示判定はロジックとして core に集約)
  • src/ui/session-list.tsx
    • showsBranchColumn(columns) の結果でブランチ列を条件描画(幅は既存の useWindowSize().columns を利用)
  • src/core/layout.spec.ts
    • showsBranchColumn の境界値テストを追加

設計メモ

  • 表示可否の判定は UI で計算せず、core の純関数へ委譲(architecture.md / ink-components.md の方針に準拠)。
  • PR バッジ列は従来どおり行末の固定幅列のまま。ブランチ列の有無に依存しないため、マウス当たり判定への影響なし。

テスト計画

  • showsBranchColumn の境界値ユニットテスト(79→false / 80→true など)
  • npm run typecheck / Biome lint(変更ファイルは警告なし)
  • 全テストスイート(471 passed)
  • 手動確認: 端末幅を 80 未満/以上でリサイズし、ブランチ列の表示切替と title の伸縮を確認

takecchi added 2 commits July 19, 2026 19:16
端末の横幅が狭いと title/badge/model 等の固定列で幅が埋まり、
worktree(ブランチ)名の列を出すと title が過度に切り詰められる。
端末桁数が閾値未満のときはブランチ列ごと省き、title に幅を譲る。

- core/layout.ts に純関数 showsBranchColumn / MIN_BRANCH_COLUMN_COLUMNS を追加
- session-list.tsx でブランチ列を showBranch で条件描画
@takecchi
takecchi merged commit fbf031e into main Jul 19, 2026
1 check passed
@takecchi
takecchi deleted the feat/hide-worktree-name-narrow branch July 19, 2026 10:31
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