Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
c10591f
feat(368): add agent settings core - validator, display names, DB mig…
Kewton Feb 25, 2026
6dc16ec
refactor(368): improve code quality and consistency
Kewton Feb 25, 2026
bf64ec5
docs(368): add design policy, review reports, and update CLAUDE.md
Kewton Feb 25, 2026
f81b038
feat(368): add Agent settings UI, dynamic terminal tabs, and hardcode…
Kewton Feb 25, 2026
ff6fe04
refactor(368): improve type safety and eliminate DRY violations in ag…
Kewton Feb 25, 2026
ef7984d
docs(368): update CLAUDE.md and add iteration-2 progress reports
Kewton Feb 25, 2026
3212918
fix(368): rewrite Gemini CLI to interactive REPL mode
Kewton Feb 25, 2026
0682527
fix(368): auto-handle Gemini trust folder dialog on first run
Kewton Feb 25, 2026
f58f563
fix(368): rewrite vibe-local to interactive REPL mode and fix sidebar…
Kewton Feb 25, 2026
843d673
feat(368): add Ollama model selection for vibe-local
Kewton Feb 25, 2026
816502a
feat(368): add Gemini/vibe-local support for CMATE schedule execution
Kewton Feb 25, 2026
c2ccc40
docs(368): update documentation for agent settings and Gemini/vibe-lo…
Kewton Feb 25, 2026
e91cde9
refactor(368): harden security for Gemini/vibe-local CLI integration
Kewton Feb 25, 2026
8f8fa4f
fix(security): harden worktree patch validation and agent settings sync
Kewton Feb 25, 2026
073da28
fix(368): add stripBoxDrawing() for Gemini CLI box-bordered prompt de…
Kewton Feb 25, 2026
7d1f147
refactor: harden prompt handling and polling consistency
Kewton Feb 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,9 @@ tests/
| `src/hooks/useAutoYes.ts` | Auto-Yesクライアント側フック(重複応答防止対応。**Issue #287: promptType/defaultOptionNumber送信** - prompt-response APIリクエストにpromptType/defaultOptionNumberを含め、promptCheck再検証失敗時のフォールバック対応。**Issue #306: generatePromptKey()使用** - promptKey生成をprompt-key.tsの共通ユーティリティに統一) |
| `src/lib/prompt-response-body-builder.ts` | プロンプト応答リクエストボディ構築ユーティリティ(Issue #287: buildPromptResponseBody()関数でpromptType/defaultOptionNumberを含むリクエストボディを生成、DRY原則対応、useAutoYes/WorktreeDetailRefactoredから共通化) |
| `src/lib/cli-tools/` | CLIツール抽象化(Strategy パターン) |
| `src/lib/cli-tools/types.ts` | CLIツール型定義(Issue #368: CLI_TOOL_IDS=['claude','codex','gemini','vibe-local']、CLIToolType、CLI_TOOL_DISPLAY_NAMES、getCliToolDisplayName()で表示名共通化、isCliToolType()型ガード、getCliToolDisplayNameSafe()フォールバック付きラッパー) |
| `src/lib/cli-tools/vibe-local.ts` | Vibe Local CLIツール実装(Issue #368: VibeLocalTool、BaseCLITool継承、tmuxセッション管理) |
| `src/lib/selected-agents-validator.ts` | エージェント選択バリデーター(Issue #368: validateAgentsPair()共通コア、parseSelectedAgents()DB読取用・フォールバック付き、validateSelectedAgentsInput()API入力用、DEFAULT_SELECTED_AGENTS=['claude','codex']) |
| `src/lib/cli-tools/codex.ts` | Codex CLI tmuxセッション管理(Issue #212: 複数行メッセージのPasted text検知+Enter再送、getErrorMessage()ヘルパー抽出) |
| `src/lib/session-cleanup.ts` | セッション/ポーラー/スケジューラー停止の一元管理(Facade パターン。**Issue #294: stopScheduleForWorktree()呼び出し追加**) |
| `src/lib/env-sanitizer.ts` | 環境変数サニタイズユーティリティ(Issue #294: SENSITIVE_ENV_KEYS配列[CLAUDECODE, CM_AUTH_TOKEN_HASH, CM_AUTH_EXPIRE, CM_HTTPS_KEY, CM_HTTPS_CERT, CM_ALLOWED_IPS, CM_TRUST_PROXY, CM_DB_PATH] + sanitizeEnvForChildProcess()関数。S1-001/S4-001: CLAUDECODE除去ロジックの一元管理) |
Expand Down Expand Up @@ -200,7 +203,9 @@ tests/
| `src/components/worktree/ContextMenu.tsx` | ファイル/ディレクトリコンテキストメニュー(Issue #162: 「移動」メニュー項目追加、FolderInputアイコン、onMoveコールバック。Issue #299: z-50除去、Z_INDEX.CONTEXT_MENU使用) |
| `src/components/worktree/FileViewer.tsx` | ファイルビューア(Issue #162: コピーボタン追加、Copy/Checkアイコン切替、useMemo最適化、画像ファイル非表示。**Issue #302: 動画表示分岐追加、canCopyロジック修正(isVideo除外)**) |
| `src/components/worktree/FileTreeView.tsx` | ファイルツリー表示(Issue #162: birthtime表示、formatRelativeTime()ロケール対応、sm:inline条件表示。Issue #300: 非空状態にツールバー追加、data-testid=file-tree-toolbar/toolbar-new-file-button/toolbar-new-directory-button、onNewFile('')/onNewDirectory('')でルートレベル作成) |
| `src/components/worktree/WorktreeDetailRefactored.tsx` | Worktree詳細画面(Issue #162: handleMoveハンドラー追加、MoveDialog統合、useFileOperations呼び出し。Issue #300: handleNewFile/handleNewDirectory/handleRename/handleDelete/handleFileInputChangeの5箇所でencodeURIComponentをencodePathForUrl()に置換) |
| `src/components/worktree/AgentSettingsPane.tsx` | エージェント選択UIコンポーネント(Issue #368: checkbox UIで2ツールまで選択、2選択済み時未選択項目disabled、PATCH APIで永続化、getCliToolDisplayName()使用、MAX_SELECTED_AGENTS=2定数、useRef安定コールバック) |
| `src/components/worktree/NotesAndLogsPane.tsx` | Notes/Logs/Agentサブタブコンテナ(Issue #368: SubTab型に'agent'追加、AgentSettingsPane描画、SUB_TABS設定配列でDRY化) |
| `src/components/worktree/WorktreeDetailRefactored.tsx` | Worktree詳細画面(Issue #162: handleMoveハンドラー追加、MoveDialog統合、useFileOperations呼び出し。Issue #300: handleNewFile/handleNewDirectory/handleRename/handleDelete/handleFileInputChangeの5箇所でencodeURIComponentをencodePathForUrl()に置換。Issue #368: selectedAgents stateをAPIから取得、デスクトップ/モバイルのハードコード配列を動的置換、activeCliTab sync useEffect) |
| `src/components/worktree/MemoCard.tsx` | メモカードコンポーネント(インライン編集・自動保存・削除ボタン。**Issue #321: コピーボタン追加**、Copy/Checkアイコン切替(2秒)、useRefタイマークリーンアップ(S1-002)、COPY_FEEDBACK_DURATION_MS定数、サイレントエラーハンドリング) |
| `src/components/worktree/MemoPane.tsx` | メモ一覧コンテナ(最大5件、GET/POST/DELETE操作、ローディング・エラー状態管理) |
| `src/components/worktree/MemoAddButton.tsx` | メモ追加ボタン(残件数表示、上限時disabled、ローディングインジケーター) |
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"issue_description": "Gemini CLIが非インタラクティブモード(echo | gemini)でメッセージ送信しているため、コマンドが即座に完了してシェルプロンプトに戻り、レスポンスポーラーが出力を正しく検出できない。ターミナルUIでGeminiタブがローディング状態のまま停止する。",
"error_logs": [],
"affected_files": [
"src/lib/cli-tools/gemini.ts"
],
"reproduction_steps": [
"1. Worktree詳細画面でGeminiタブを選択",
"2. メッセージを送信",
"3. echo 'message' | gemini が実行されるが即座に終了",
"4. レスポンスポーラーが出力を検出できずローディングのまま"
],
"environment": {
"os": "macOS",
"gemini_version": "0.30.0",
"gemini_path": "/opt/homebrew/bin/gemini"
},
"severity_hint": "high",
"related_issue": 368
}
Loading