* integrated terminal
* ci
* persist terminal
* Done! I've moved the TerminalPanelContainer from the main panel area to the right sidebar. Here's a summary of the changes:
- Added `isTerminalVisible: boolean` to global state (defaults to `true`)
- Added `toggleTerminal()` and `setTerminalVisible(value)` actions
- Added `isTerminalVisible` to the persisted state and the `useWorkspacePanelState` hook
- Imported `TerminalPanelContainer` and `useUiPreferencesStore`
- Restructured the component to always include a terminal section at the bottom (when not in create mode and `isTerminalVisible` is true)
- Dynamic flex ratios:
- With upper content + terminal: flex-4 (content) / flex-2 (git) / flex-4 (terminal)
- Without upper content + terminal: flex-3 (git) / flex-7 (terminal)
- When terminal is hidden: original ratios preserved
- Removed the `TerminalPanelContainer` import
- Removed the TERMINAL case from the right main panel rendering
- Added `isTerminalVisible` to `ActionVisibilityContext` interface
- Updated `ToggleTerminalMode` action to use `toggleTerminal()` and check `isTerminalVisible`
- Added `isTerminalVisible` from `panelState` to the visibility context
The terminal now appears permanently at the bottom of the right sidebar (when visible), and the toggle button collapses/expands just the terminal section within the sidebar. The visibility state is persisted to localStorage.
* Frontend ESLint passes with no errors. The backend Rust error (`crates/utils/src/shell.rs:31`) is a pre-existing issue in the codebase, not related to my changes.
* `cargo check` passes now. The fix was adding `.to_path_buf()` to convert the `&Path` reference to an owned `PathBuf`.
* The code compiles. Done! I've added three environment variables in `crates/local-deployment/src/pty.rs:73-75`:
1. `ZDOTDIR=/nonexistent` - prevents zsh from loading `~/.zshrc`
2. `PS1="$ "` - sets the bash prompt
3. `PROMPT="$ "` - sets the zsh prompt
The terminal prompt will now show just `$ ` instead of `lkw@Louiss-MacBook-Pro vibe-kanban %`. Run `pnpm run dev:qa` and open the terminal panel to verify.
* Cleanup script changes for workspace 928e696e-5f40-4603-9227-798f0520e07f
* Done! The fix is simpler - using `cmd.arg("-f")` to tell zsh/bash to skip loading config files. This:
1. Removes the `ZDOTDIR=/nonexistent` that was causing errors
2. Adds `-f` flag which skips `.zshrc`/`.bashrc` loading
3. Keeps `PS1` and `PROMPT` env vars which will now be respected
Run `pnpm run dev:qa` and open the terminal to verify the prompt shows `$ `.
* Cleanup script changes for workspace 928e696e-5f40-4603-9227-798f0520e07f
* I've implemented the terminal theme integration. Here's a summary of the changes:
## Changes Made
**1. Created `frontend/src/utils/terminalTheme.ts`**
- `hslToHex()` function to convert HSL CSS variable format (`"210 40% 98%"`) to hex colors
- `getCssVariable()` helper to read CSS variables from the `.new-design` element
- `getTerminalTheme()` function that builds an xterm.js `ITheme` object from CSS variables:
- Uses `--console-background` and `--console-foreground` for main colors
- Uses `--console-success` and `--console-error` for green/red ANSI colors
- Provides appropriate ANSI color palettes for both light and dark modes
**2. Updated `frontend/src/components/ui-new/terminal/XTermInstance.tsx`**
- Imported `useTheme` hook and `getTerminalTheme` utility
- Replaced hardcoded Tokyo Night theme with dynamic `getTerminalTheme()` call
- Added effect to update terminal theme when app theme changes (`terminal.options.theme = getTerminalTheme()`)
The terminal will now:
- Initialize with colors matching the current theme
- Automatically update colors when switching between light and dark mode
- Use the console color variables defined in `index.css`
* Cleanup script changes for workspace 928e696e-5f40-4603-9227-798f0520e07f
* Now I understand the issue clearly. Here are the relevant variables:
| Variable | Light Mode | Dark Mode | Purpose |
|----------|------------|-----------|---------|
| `--_primary` | `0 0% 5%` (dark) | `240 4.8% 95.9%` (light) | Button background - **inverted** |
| `--_console-background` | `0 0% 100%` (white) | `0 0% 0%` (black) | Terminal background - **correct** |
| `--_console-foreground` | `0 0% 5%` (dark) | `210 40% 98%` (light) | Terminal text - **correct** |
| `--bg-primary` | `0 0% 100%` (white) | `0 0% 13%` (dark gray) | Page background |
The code was changed to use `--primary` but that's the wrong variable. For the terminal, you should use:
- `--console-background` / `--_console-background` for the background
- `--console-foreground` / `--_console-foreground` for the text
Or if you prefer to match other UI elements:
- `--bg-primary` for background
- `--text-high` for foreground text
Which approach would you prefer? The original `--console-*` variables were specifically designed for terminal styling, or we can use `--bg-primary`/`--text-high` to match the general UI background.
* Cleanup script changes for workspace 928e696e-5f40-4603-9227-798f0520e07f
* Done. The terminal will now use `--bg-primary` for the background and `--text-high` for the foreground text. This means:
- **Light mode**: White background (`0 0% 100%`) with dark text (`0 0% 5%`)
- **Dark mode**: Dark gray background (`0 0% 13%`) with light text (`0 0% 96%`)
* Done. The terminal will now use `--bg-secondary` for the background and `--text-high` for the foreground text. This means:
- **Light mode**: Light gray background (`0 0% 95%`) with dark text (`0 0% 5%`)
- **Dark mode**: Darker gray background (`0 0% 11%`) with light text (`0 0% 96%`)
* Let me know if you find any issues during testing or need adjustments!
* Cleanup script changes for workspace 928e696e-5f40-4603-9227-798f0520e07f
* terminal
* sidebar cleanup
* fix chat collapse
Amp-Thread-ID: https://ampcode.com/threads/T-019bc754-8db9-712a-a915-58d74d210cad
Co-authored-by: Amp <amp@ampcode.com>
* for the terminal on windows we need to default to powershell if avalibale for the pty (vibe-kanban 049dbf73)
only if powershell.exe cannot be resolved, we should use cmd.
* he colour theme used for the terminal ui isn't visible enough in light mode (vibe-kanban 5f50878a)
t I think we either don't override the ANSI colour mapping with our own, or it's not contrasted enough
* fmt
---------
Co-authored-by: Gabriel Gordon-Hall <ggordonhall@gmail.com>
Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: Solomon <abcpro11051@disroot.org>
291 lines
12 KiB
JSON
291 lines
12 KiB
JSON
{
|
||
"folderPicker": {
|
||
"legend": "フォルダ名をクリックして移動 • アクションボタンで選択",
|
||
"manualPathLabel": "パスを手動入力:",
|
||
"go": "移動",
|
||
"searchLabel": "現在のディレクトリを検索:",
|
||
"selectCurrent": "現在を選択",
|
||
"gitRepo": "git リポジトリ",
|
||
"selectPath": "パスを選択"
|
||
},
|
||
"branchSelector": {
|
||
"badges": {
|
||
"current": "現在",
|
||
"remote": "リモート"
|
||
},
|
||
"currentDisabled": "現在のブランチは選択できません",
|
||
"empty": "ブランチが見つかりません",
|
||
"placeholder": "ブランチを選択",
|
||
"searchPlaceholder": "ブランチを検索..."
|
||
},
|
||
"breadcrumb": {
|
||
"more": "More"
|
||
},
|
||
"buttons": {
|
||
"cancel": "キャンセル",
|
||
"close": "閉じる",
|
||
"connect": "接続",
|
||
"continue": "続行",
|
||
"create": "作成",
|
||
"delete": "削除",
|
||
"disconnect": "切断",
|
||
"edit": "編集",
|
||
"manage": "管理",
|
||
"replay": "再生",
|
||
"reset": "リセット",
|
||
"save": "保存",
|
||
"send": "送信"
|
||
},
|
||
"conversation": {
|
||
"args": "引数",
|
||
"deniedByUser": "{{toolName}} がユーザーによって拒否されました",
|
||
"output": "出力",
|
||
"plan": "計画",
|
||
"planToggle": {
|
||
"hide": "計画を非表示",
|
||
"show": "計画を表示"
|
||
},
|
||
"result": "結果",
|
||
"toolDetailsToggle": {
|
||
"hide": "詳細を非表示",
|
||
"show": "詳細を表示"
|
||
},
|
||
"taskCompleted": "タスク完了",
|
||
"ran": "実行",
|
||
"tool": "ツール",
|
||
"toolSummary": {
|
||
"read": "{{path}} を読み込み",
|
||
"searched": "「{{query}}」を検索",
|
||
"fetched": "{{url}} を取得",
|
||
"ranCommand": "コマンドを実行",
|
||
"createdTask": "タスクを作成: {{description}}",
|
||
"todoOperation": "{{operation}} Todo"
|
||
},
|
||
"fixScript": "スクリプトを修正"
|
||
},
|
||
"language": {
|
||
"browserDefault": "ブラウザ設定"
|
||
},
|
||
"states": {
|
||
"error": "エラー",
|
||
"loading": "読み込み中...",
|
||
"loadingHistory": "履歴を読み込み中",
|
||
"reconnecting": "再接続中",
|
||
"saving": "保存中...",
|
||
"success": "成功"
|
||
},
|
||
"orgMembers": {
|
||
"moreCount": "他 {{count}} 人"
|
||
},
|
||
"orgSwitcher": {
|
||
"title": "組織を切り替える",
|
||
"description": "切り替える組織を選択してください。",
|
||
"loadError": "組織の読み込みに失敗しました。もう一度お試しください。",
|
||
"noOrganizations": "あなたはどの組織にも所属していません。",
|
||
"menuItem": "組織",
|
||
"loadingPlaceholder": "組織を読み込み中...",
|
||
"selectPlaceholder": "組織を選択",
|
||
"currentBadge": " (現在)"
|
||
},
|
||
"navbar": {
|
||
"tryNewUI": "新しいUIを試す"
|
||
},
|
||
"signOut": "サインアウト",
|
||
"devMode": {
|
||
"banner": "開発モード - これは開発ビルドです"
|
||
},
|
||
"oauth": {
|
||
"title": "Vibe Kanbanにサインイン",
|
||
"description": "サインインして組織に参加し、チームとタスクを共有します",
|
||
"continueWithGitHub": "GitHubで続行",
|
||
"continueWithGoogle": "Googleで続行",
|
||
"waitingTitle": "認証を完了",
|
||
"waitingDescription": "認証用のポップアップウィンドウが開きました",
|
||
"waitingForAuth": "認証を待っています...",
|
||
"popupInstructions": "ポップアップウィンドウが開かない場合は、ポップアップブロックの設定を確認してください。",
|
||
"back": "戻る",
|
||
"successTitle": "認証成功!",
|
||
"welcomeBack": "おかえりなさい、{{name}}",
|
||
"errorTitle": "認証失敗",
|
||
"errorDescription": "アカウントの認証中に問題が発生しました",
|
||
"tryAgain": "再試行"
|
||
},
|
||
"toolbar": {
|
||
"sortBy": "並べ替え",
|
||
"groupBy": "グループ化"
|
||
},
|
||
"sorting": {
|
||
"ascending": "昇順",
|
||
"descending": "降順"
|
||
},
|
||
"grouping": {
|
||
"date": "日付",
|
||
"assignee": "担当者",
|
||
"label": "ラベル"
|
||
},
|
||
"workspaces": {
|
||
"title": "ワークスペース",
|
||
"searchPlaceholder": "検索...",
|
||
"active": "アクティブ",
|
||
"archived": "アーカイブ済み",
|
||
"loading": "読み込み中...",
|
||
"selectToStart": "ワークスペースを選択して開始",
|
||
"draft": "下書き",
|
||
"viewArchive": "アーカイブを表示",
|
||
"backToActive": "アクティブに戻る",
|
||
"noArchived": "アーカイブされたワークスペースはありません",
|
||
"pin": "ピン留め",
|
||
"unpin": "ピン留め解除",
|
||
"archive": "アーカイブ",
|
||
"more": "その他の操作",
|
||
"rename": {
|
||
"title": "ワークスペースの名前を変更",
|
||
"description": "このワークスペースの新しい名前を入力してください。",
|
||
"nameLabel": "名前",
|
||
"placeholder": "ワークスペース名を入力",
|
||
"action": "名前を変更",
|
||
"renaming": "名前を変更中..."
|
||
}
|
||
},
|
||
"fileTree": {
|
||
"searchPlaceholder": "ファイルを検索...",
|
||
"noResults": "一致するファイルがありません",
|
||
"title": "ファイル",
|
||
"showGitHubComments": "GitHubコメントを表示",
|
||
"hideGitHubComments": "GitHubコメントを非表示"
|
||
},
|
||
"sections": {
|
||
"changes": "変更",
|
||
"repositories": "リポジトリ",
|
||
"addRepositories": "リポジトリを追加",
|
||
"project": "プロジェクト",
|
||
"processes": "プロセス",
|
||
"devServer": "開発サーバー",
|
||
"advanced": "詳細設定",
|
||
"workingBranch": "作業ブランチ",
|
||
"recent": "最近",
|
||
"other": "その他",
|
||
"devServerPreview": "開発サーバープレビュー",
|
||
"terminal": "ターミナル"
|
||
},
|
||
"repos": {
|
||
"loading": "リポジトリを読み込み中...",
|
||
"noRecentRepos": "最近のリポジトリが見つかりません",
|
||
"noReposAdded": "リポジトリが追加されていません",
|
||
"noReposAddedHint": "下のオプションからこのワークスペースにリポジトリを追加してください"
|
||
},
|
||
"actions": {
|
||
"browseRepos": "ディスク上のリポジトリを参照",
|
||
"createNewRepo": "ディスク上に新しいリポジトリを作成",
|
||
"viewInChangesPanel": "変更パネルで表示",
|
||
"copyPath": "パスをコピー",
|
||
"copyWorktreePath": "ワークツリーパスをコピー",
|
||
"openInIde": "IDEで開く",
|
||
"repoSettings": "リポジトリ設定",
|
||
"cancel": "キャンセル",
|
||
"saveChanges": "変更を保存",
|
||
"copied": "コピーしました"
|
||
},
|
||
"comments": {
|
||
"addReviewComment": "レビューコメントを追加",
|
||
"addPlaceholder": "コメントを追加...",
|
||
"editPlaceholder": "コメントを編集..."
|
||
},
|
||
"confirm": {
|
||
"defaultConfirm": "確認",
|
||
"defaultCancel": "キャンセル"
|
||
},
|
||
"empty": {
|
||
"noChanges": "表示する変更がありません"
|
||
},
|
||
"commandBar": {
|
||
"noResults": "結果が見つかりません。",
|
||
"back": "戻る",
|
||
"defaultPlaceholder": "コマンドを入力または検索..."
|
||
},
|
||
"chatBox": {
|
||
"variants": "バリアント"
|
||
},
|
||
"projects": {
|
||
"noProjectFound": "プロジェクトが見つかりません",
|
||
"createFirstPrompt": "タスクを開始するには、まずプロジェクトを作成してください。",
|
||
"createNew": "新しいプロジェクトを作成",
|
||
"noProjectsFound": "プロジェクトが見つかりません"
|
||
},
|
||
"betaWorkspaces": {
|
||
"title": "新しいUIを試す",
|
||
"intro": "Vibe KanbanのUIをゼロから再構築しました。あなたは試用に招待されています。",
|
||
"newUiDescription": "新しいUIは日常業務に最適化されています:エージェントの管理、変更のプレビュー、コードのレビュー。また、旧UIでは利用できない機能も利用可能になります:",
|
||
"newFeatures": {
|
||
"multiRepo": "複数のリポジトリを同時に編集",
|
||
"multiAgent": "単一のワークスペースで複数のエージェント会話(異なるエージェント間でも)を実行",
|
||
"commandBar": "コマンドバーでより高速なナビゲーション"
|
||
},
|
||
"oldUiDescription": "現時点では、いくつかの機能は現在のUIに残っています:",
|
||
"oldFeatures": {
|
||
"kanban": "カンバンボードでのタスク管理",
|
||
"settings": "設定の変更",
|
||
"projects": "プロジェクトの管理"
|
||
},
|
||
"transition": "今後数週間の移行期間中は、両方のUIを行き来します。",
|
||
"optOutNote": "オプトアウトしたい場合は、設定からいつでも現在のUIに戻すことができます。",
|
||
"joinBeta": "ベータに参加",
|
||
"maybeLater": "後で"
|
||
},
|
||
"workspacesGuide": {
|
||
"welcome": {
|
||
"title": "ようこそ",
|
||
"content": "Vibe Kanbanの新しいUIであるWorkspacesへようこそ。早期フィードバックのために一部のユーザーに先行公開しています。ナビバーのフィードバックアイコンからいつでもご意見をお聞かせください。"
|
||
},
|
||
"commandBar": {
|
||
"title": "コマンドバー",
|
||
"content": "コマンドバーはナビゲーションの中心となるハブです。CMD+Kで開いて、ワークスペースで利用可能なすべてのアクションを検索・アクセスできます。"
|
||
},
|
||
"contextBar": {
|
||
"title": "コンテキストバー",
|
||
"content": "コンテキストバーでペイン間をすばやく切り替えられます。使いやすい場所にドラッグして配置できます。"
|
||
},
|
||
"sidebar": {
|
||
"title": "ワークスペースサイドバー",
|
||
"content": "すべてのワークスペースの状態を一目で確認できます。通知により注意が必要なワークスペースがハイライトされます。マージ済みのワークスペースをアーカイブしてサイドバーを整理しましょう。"
|
||
},
|
||
"multiRepo": {
|
||
"title": "マルチリポジトリ対応",
|
||
"content": "1つのワークスペースに複数のリポジトリを追加できます。別のリポジトリで作業しながら他のリポジトリのコードを参照したり、複数のリポジトリにまたがる変更を同時に実装できます。"
|
||
},
|
||
"sessions": {
|
||
"title": "複数セッション",
|
||
"content": "1つのワークスペース内で複数のエージェント会話セッションを作成できます(異なるエージェントとのセッションも含む)。これにより会話の制限を回避したり、別スレッドでレビューエージェントを起動できます。"
|
||
},
|
||
"preview": {
|
||
"title": "変更のプレビュー",
|
||
"content": "コンテキストを切り替えることなく、内蔵ブラウザで作業をプレビューできます。デスクトップ、モバイル、カスタムビューポートサイズでテストできます。"
|
||
},
|
||
"diffs": {
|
||
"title": "差分とコメント",
|
||
"content": "再設計された差分パネルには変更のファイルツリーが含まれています。差分に直接コメントしてエージェントにフィードバックを送ったり、ワークスペースがPRにリンクされている場合はGitHubコメントを表示できます。"
|
||
},
|
||
"classicUi": {
|
||
"title": "クラシックUIに戻る",
|
||
"content": "ナビバー左側の終了アイコンをクリックすると、クラシックカンバンボードに戻ります。新しいUIを完全に無効にするには、設定の「ベータ機能」にある「Workspacesベータを有効にする」オプションを更新してください。"
|
||
}
|
||
},
|
||
"logs": {
|
||
"searchLogs": "ログを検索",
|
||
"selectProcessToView": "プロセスを選択してログを表示"
|
||
},
|
||
"processes": {
|
||
"noProcesses": "プロセスがありません"
|
||
},
|
||
"search": {
|
||
"matchCount": "{{current}} / {{total}}",
|
||
"noMatches": "一致なし"
|
||
},
|
||
"contextUsage": {
|
||
"label": "コンテキスト使用量",
|
||
"emptyTooltip": "コンテキスト使用量は次の返信後に表示されます",
|
||
"tooltip": "コンテキスト: {{percentage}}% · {{used}} / {{total}} tokens",
|
||
"ariaLabel": "コンテキスト使用量: {{percentage}}%"
|
||
}
|
||
}
|