feat: 一覧の詳細を codiva 内蔵ビューへ復帰(claude CLI 連携を廃止) - #17
Merged
Conversation
codiva 側の機能(ログ描画・追加指示・スクロール・マージ/破棄)が揃ったため、 Phase 7 で導入した claude CLI 連携をやめ、一覧で Enter/→ したときに codiva 内蔵の 詳細ビューで稼働中の SDK セッションへ直結する方式へ戻す。 ■ 内蔵詳細ビュー(新規に書き直し) - ui/session-detail.tsx: SDK セッション直結。ヘッダ(タイトル/バッジ/進捗/コスト/エラー) + 末尾ビューポートのログ + streamingText プレビュー + 追加指示コンポーザ(manager.send) - Tab で入力↔操作パネル、操作パネルで m/d = マージ/破棄。単一 useInput の state machine - バッファ編集は ref 経由で逐次適用(連打・ペースト・エスケープ列の stale closure 回避) - core/scroll.ts(+spec)と layout.ts の logViewportRows/DETAIL_CHROME_ROWS を復元(純粋) ■ ビュー切替 - app.tsx に View(list ⇔ detail)状態機械を再導入。SessionList は onOpen(id) でナビゲート - Enter/→ で詳細へ、Esc で一覧へ ■ claude CLI 連携を完全削除 - utils/claude-cli.ts(+spec)・ExternalRunner/runExternal/openExternal - Session.detach()・detached イベント・external ステータス (types/status-reducer/persistence/progress-badge/i18n から撤去) ■ i18n - detail グループを復活(ja/en 対) - list.helpList を「詳細を開く」へ、list.openNotReady と badge.external を削除 ■ テスト - 統合テスト追加(tests/app.test.tsx): Enter で詳細を開き Esc で戻る / 詳細から追加指示を送る / 詳細の操作パネルからマージ - 全361テスト緑・lint/typecheck/build 緑 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
main の新機能(テーマのアクセントパレット/状態色・セッション別モデル表示・ PRバッジ・一覧の内部スクロール・スラッシュコマンド)と、本ブランチの 「claude CLI 連携を廃止し内蔵詳細ビューへ復帰」を統合。 衝突の解決方針: - status-reducer.spec / progress-badge / i18n / types: `external`/`detached` は本ブランチの意図どおり削除、main の `pr`・状態色(statusColor.failed)は維持 - i18n list: `openNotReady` は削除、内部スクロールの `moreAbove`/`moreBelow` は 維持、`detail` グループを復活。helpList は「詳細を開く」+「p: PRを開く」を両立 - layout(.spec): `logViewportRows`/`DETAIL_CHROME_ROWS`(詳細ビュー)と `listView`(内部スクロール)を両方保持 - app / index / session-list: view 状態機械(list⇔detail, onOpen)を維持しつつ、 main の model / onOpenPr を配線。runExternal/ExternalRunner/openExternal は削除 - docs/TASKS: main のスラッシュコマンドを Phase 8、内蔵詳細ビュー復帰を Phase 9 に整理 検証: typecheck / lint / build 緑、全450テスト緑(core・utils とも coverage 80%超)
5 tasks
takecchi
added a commit
that referenced
this pull request
Jul 19, 2026
## 概要 Completed になっていて GitHub 上に PR が出ているのに、codiva の一覧で `#n` バッジが表示されないバグを修正する。 ## 原因 セッションは `codiva/<slug>` という worktree ブランチ上で作成される。一方、実際に PR 化される作業は git ワークフロー規約に従い **別ブランチ(`feat/…` / `fix/…` 等)を切ってから** push / PR することが多い。この場合 worktree の HEAD は `codiva/<slug>` から外れているため、PR 検出に使っている ``` gh pr view <state.branch> # = codiva/<slug> ``` ではヒットせず、`lookupPr` が `undefined` を返し続け、`#n` バッジが**一度も**表示されなかった。 実際にマージ済みの履歴でも、ブランチ名が `codiva/…` の PR (#17–#20) はバッジが出るが、`feat/…`・`fix/…` の PR (#21–#23) では出ない、という差が出ていた。 ## 修正 `lookupPr` を次のように変更: 1. まず worktree の**現在の HEAD ブランチ**を `git rev-parse --abbrev-ref HEAD` で解決し、そのブランチで `gh pr view` する(作業とPRが実際に載っているブランチ)。 2. そこで見つからなければ、従来どおり記録済みの `codiva/<slug>` ブランチにフォールバック。 3. detached HEAD(`HEAD` / 空)や `git`/`gh` の失敗時は best-effort で `undefined`(従来挙動を維持、セッションを妨げない)。 `git` も `gh` も既存の `ExecLike` (execFile ラッパ) 経由で、引数は argv 渡し(シェル連結なし)。`refreshPrs` 側のシグネチャは不変。 ## テスト計画 - [x] `src/utils/pr.spec.ts` を拡充(7 ケース) - HEAD ブランチで解決する / 記録ブランチにフォールバックする - HEAD == 記録ブランチのときは `gh` 呼び出しが1回だけ - git 失敗 / detached HEAD で記録ブランチを使う - どのブランチにも PR がない → `undefined` - 不正・部分 JSON → `undefined` - [x] `npm test`(470 passed) - [x] `npm run typecheck` - [x] `npm run lint`(本変更ファイルは警告なし) - [ ] 手動確認: worktree 内で `git checkout -b feat/x` → PR 作成後、一覧に `#n` が出ること
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要
一覧で Enter/→ したときの挙動を、外部
claude --resume起動(Phase 7 の CLI 連携)からcodiva 内蔵の詳細ビューへ戻します。codiva 側の機能(ログ描画・追加指示・スクロール・
マージ/破棄)が揃ったため、稼働中の SDK セッションに直結して codiva 内で完結させます。
変更点
内蔵詳細ビュー(新規に書き直し)
ui/session-detail.tsx: SDK セッション直結。ヘッダ(タイトル/バッジ/進捗/コスト/エラー)+ 末尾ビューポートのログ +
streamingTextプレビュー + 追加指示コンポーザ(manager.send)m/d= マージ/破棄。単一useInputの state machinecore/scroll.ts(+spec)とlayout.tsのlogViewportRows/DETAIL_CHROME_ROWSを復元(純粋)ビュー切替
app.tsxにView(list ⇔ detail)状態機械を再導入。SessionListはonOpen(id)でナビゲートclaude CLI 連携を完全削除
utils/claude-cli.ts(+spec)・ExternalRunner/runExternal/openExternalSession.detach()・detachedイベント・externalステータス(types / status-reducer / persistence / progress-badge / i18n から撤去)
i18n
detailグループを復活(ja/en 対)list.helpListを「詳細を開く」へ、list.openNotReadyとbadge.externalを削除ドキュメント
docs/ARCHITECTURE.md/docs/TASKS.md(Phase 8)/.claude/rules/ink-components.mdを実装に合わせて更新テスト計画
npm run typecheck緑npm run lint緑(既存の warning のみ)npm run build緑npm test全 361 件緑(core/utils カバレッジ 80% 以上を維持)tests/app.test.tsx): Enter で詳細を開き Esc で戻る / 詳細から追加指示を送る / 詳細の操作パネルからマージ🤖 Generated with Claude Code