チェンジログ

VelaTermのすべての重要な変更点を、最新のものから順に掲載しています。

v0.1.91が最初の公開バージョンです。それ以前のバージョン番号は内部での試作版であり、ここでは対象外です。

v0.2.15

最新情報
  • 🆕 中央の入力欄を囲む形でプロジェクト、エージェント、モデル、推論強度、権限、ビュー、独立した worktree を選び、最初のタスクからセッションを開始できる「新規セッション」タブが加わり、新規セッションメニューの「新規セッション…」、タブバーの星ボタン、空の中央ペインから開けます。
  • 🐋 DeepSeek Harness(dsh)が会話ビューのエージェントとして加わり、ツールカード、思考過程、権限確認、モデルと推論強度の切り替え、コンテキスト使用量、再度開いた後も再開できる履歴に対応します。
  • 🧩 Copilot、Cursor、Kimi、Grok を会話ビューで実行できるようになりました。
  • 🤖 Zhipu ZCode が会話ビューのエージェントとして加わり、ZCode デスクトップアプリがインストールされている場合はその内蔵エージェントを使い、会話を離れずに Z.ai または Zhipu BigModel でログインしたり、両者を切り替えたりできます。
  • 📊 ZCode のセッションでは、情報パネルにこのターンのトークン数、キャッシュヒット率、生成速度、コンテキスト使用量、GLM Coding Plan の 5 時間と週間の使用量が表示されます。
  • 📦 ZCode(macOS と Windows)と DeepSeek Harness は会話内の「今すぐインストール」からインストールでき、インストールが終わると送信に失敗したメッセージが再送されます。
  • ⬆️ エージェントのバージョンバッジで「更新あり」をクリックすると、エージェント自身の更新コマンドを実行して出力をリアルタイムで表示するダイアログが開き、「エージェントを再起動」を選ぶと新しいバージョンで会話を続けられます。
  • 🔌 処理中のターミナルが多数あるリモート接続でも、再接続後に何度も切断されることはなくなりました。
  • 🔄 リモートサーバーの再起動後、ターミナルの起動中にセッションが同期中のまま止まることはなくなりました。
  • 🔁 会話の同期に失敗すると自動で再試行し、入力欄の下に状態と「再試行」ボタンが表示されます。
  • 🐢 負荷の高いリモートホストへの SSH 接続が、サーバーの応答を待つ間にタイムアウトすることはなくなりました。
  • 🔗 リモートウィンドウの「今すぐ再接続」は、次の自動再試行を待たずにすぐ SSH トンネルを再構築します。
  • 🪟 macOS と Windows ではメインウィンドウを閉じるときに確認が表示されてリモートウィンドウは開いたまま残り、macOS ではアプリが Dock に残って、メインウィンドウを再度開くと保存したワークスペースが復元されます。
  • 🧾 「This turn」一覧と Git パネルの変更ファイルは、ダイアログではなくタブで差分を開きます。
  • ⌨️ ターミナルのコマンドの補完候補は入力中に表示されなくなり、Zsh では履歴で一致する最新のコマンドが灰色のインライン文字で表示されて → または End で確定でき、一覧は Tab を押したときだけ表示され、設定で「インライン + Tab」「Tab のみ」「オフ」から選べます。
  • 💬 Artifact プレビューでは、ページの要素をクリックしてセッションへのコメントを残せ、ページ上で示された案はプレビューの上に一覧表示されるので、案の間を移動して 1 つを選べます。
  • 🔍 会話内検索は全文検索になって入力したすべての語を順序を問わず照合し、一致しない場合は「会話を読み込んでいます…」ではなく「一致なし」と表示します。
  • 🧰 vspawn や vrefer などの同梱スキルは共有の ~/.agents/skills フォルダーにインストールされるようになり、Pi、ZCode、DeepSeek Harness でも使えるうえ、Codex で各スキルが二重に表示されることもなくなりました。
  • 📋 会話ビューの /code-review の結果は、クリックできるファイル位置付きの指摘一覧として表示されます。
  • 🌐 セッションで返信の翻訳がオフのときは、質問カードに「翻訳」ボタンが表示され、そのカードだけを翻訳できます。
  • ✂️ 質問カードの質問と選択肢を選択してコピーできます。
  • 🌳 セッションツリーでは、worktree に属するグループと親セッションが、worktree のフォルダーで直接開始したセッションも含めて、その worktree の行の下に表示されます。
  • 🌲 入れ子のグループは、新規セッション、Git 操作、マージに、worktree を持つ最も近い親グループの worktree を使います。
  • 🔎 セッションツリーを絞り込んでいる間に項目の名前を変更しても、結果から消えなくなりました。
  • ⏳ OpenCode が利用上限に達すると、どの上限かを示すエラーが 1 行だけ表示され、OpenCode がリセット時刻を報告した場合はリセット後に会話が自動で続行されます。
  • 📸 ショートカットを押してからスクリーンショットのオーバーレイが表示されるまでが速くなりました。
  • 🚀 ウィンドウは開いた直後からレイアウトの輪郭を表示し、起動時に読み込むコードは以前の半分未満になりました。
  • ⚡ vspawn --yes は起動カードを表示せずに子セッションを直接作成します。
  • 🛡️ コード監査は Codex Security 0.8.2 を使い、DeepSeek でも実行でき、監査と「ナレッジベースに追加」のフォームは新規セッションと同じエージェント、モデル、推論強度の欄を備え、一覧にないモデルも指定できます。
  • 🌗 macOS でテーマがシステムに従う設定のときは、タイトルバーもウィンドウのほかの部分と一緒にダークになります。
  • 📥 ワンクリックインストールはインストールコマンドが終了してから完了を表示し、インストールが不完全な Zoo Code は起動時にクラッシュせず未インストールとして扱われます。
  • 🖥️ セッションをターミナルビューに切り替える際に「The initial task was already claimed」で失敗することはなくなりました。
  • 🧟 古いエージェントのプロセス ID が別のプログラムに再利用された後も、セッションが「The previous agent is still running」と報告することはなくなりました。
  • 🧯 ブラウザの再接続後、会話に切断時の TransportError の行が残らなくなりました。
  • 🪞 ミラーリングが有効なときにタブを開閉しても、会話セッションが「保存したワークスペースから復元しました」のプレースホルダーに変わることはなくなりました。
  • 📜 破棄された返信を含む Claude の会話で、履歴が再び正常に読み込まれるようになりました。
  • 🧠 Web サイトのモデルカタログにない Claude の組み込みモデルも、新規セッションと起動のフォームに表示されます。

v0.2.14

最新情報
  • 🔌 長い会話を複数開いていても、リモート接続が毎秒切断と再接続を繰り返すことはなくなり、それらの会話を正常に開けます。
  • ⏹️ SSH と WSL の接続中は「中止」ボタンが表示され、サーバーの準備中を含むどの段階でも接続を中止できます。接続中はパスワードダイアログの「キャンセル」でも接続が中止されます。
  • 🌿 大きなリポジトリで、セッションツリーやブランチ表示によって Git プロセスが溜まることはなくなりました。バックグラウンドの Git 読み取りは止まったままにならず、30 秒で打ち切られます。
  • 🧩 サブモジュールを含むリポジトリで Git パネルの更新が大幅に速くなりました。サブモジュール内の編集だけでは親リポジトリに表示されず、サブモジュールが新しいコミットを指すようになった場合は引き続き表示されます。
  • 📁 グループを別のプロジェクトへドラッグできるようになり、入れ子のグループとセッションも一緒に移動します。移動後のセッションは新しいプロジェクトのフォルダーで起動します。
  • ⏳ 長い会話を開くと、「履歴のインデックスを作成中です」の代わりに小さな「会話を読み込んでいます…」の表示が出ます。
  • 🖱️ セッションの右クリックメニューには、別のクライアントから起動したものも含め、プロセスが動作している間は「プロセスを終了」が表示され、プロセスが終了すると表示されなくなります。

v0.2.13

最新情報
  • 📱 スマートフォンでは、ターミナルビューで動作しているエージェントを開くとすぐにターミナルが表示され、フローティング入力欄でメッセージ全体を入力・音声入力できます。ヘッダーの小さな「履歴」「ターミナル」ボタンで両者を切り替えられ、履歴画面に会話ビューへの切り替えの提案は表示されなくなりました。
  • 🔑 共有接続では、ホストの所有者がターミナルビューで動作しているエージェントのターミナルを開いて入力でき、セッション一覧には Kiro など会話ビューのないエージェントも表示されます。招待されたアカウントは引き続き履歴を閲覧のみできます。
  • 🌐 アイドル状態のセッションで返信を手動で翻訳すると、「翻訳を利用できません」ではなく訳文が表示されます。
  • 📜 長い会話をさかのぼって読んでいる間も、新しい返信が「新しいメッセージを読み込む」の後ろに隠れなくなりました。過去の履歴から下へスクロールすると、新しいメッセージが自動で読み込まれます。
  • 🧭 スマートフォン表示から「デスクトップ版に切り替え」がなくなり、以前に切り替えたスマートフォンも自動でスマートフォン表示に戻ります。
  • 🧹 vrun の実行記録は、タスクの終了から 24 時間後に自動で削除されます。

v0.2.12

最新情報
  • 🛑 会話ビューで Claude のターンを停止するとすぐに反映され、次のメッセージもすぐに送信されます。コンピューターの負荷が高いときも同様です。
  • 🪟 Cmd+D などのメニューショートカットや通知のクリックは対象のウィンドウだけに作用し、メインウィンドウと一緒にリモートウィンドウまで分割されることはなくなりました。
  • 🔎 全体検索はインデックス作成中でも結果を返し、インデックス作成中のセッション数を表示します。
  • ⚡ 全体検索は Claude・Codex・Pi・OMP の会話をファイルから直接インデックスするようになり、大幅に速くなったうえ会話履歴のキャッシュを圧迫しなくなりました。結果を開くと該当するメッセージに正確に移動します。
  • 🧠 会話履歴はディスク上の別コピーではなく、エージェントの元の記録から直接読み込むようになりました。起動時に chat-index と chat-spool フォルダーを削除し、ディスク容量を空けます。
  • 📱 スマートフォンでは、ターミナルビューで動作しているセッションに会話ビューへの切り替えが提案され、確認するとデスクトップ版でもそのセッションが切り替わります。
  • 👀 共有接続では、ターミナルビューで動作しているセッションが閲覧専用で一覧に表示され、会話ビューに切り替えられるのはホストの所有者だけです。
  • 🌐 翻訳設定に「翻訳を初期設定で有効にする」が加わり、翻訳の選択を保存していないセッションの初期状態を決められます。
  • 🌳 セッションツリーでは、同じ worktree を使うセッションが 1 つの worktree 行の下にまとめて表示されます。
  • 📄 会話ビューの短い返信や画像付きの短いメッセージに「全文を読む」リンクが表示されなくなりました。
  • 🔕 すべての通知バッジを消去するボタンは、セッションツリー下部バーの左端に移りました。
  • 🤖 新規セッションとセッション再開のダイアログで、エージェント種別の一覧にエージェントのアイコンが表示され、下に十分な余白がないときは権限の一覧が上向きに開きます。
  • 🩹 ストレージが混み合っているときに、会話ビューが履歴に不正なレコードがあると表示することはなくなり、少し待つと読み込みが続きます。
  • 📝 Markdown エディターで、空のリスト項目やリスト内の番号のない段落で Backspace または Shift+Tab を押すと、番号が外れます。
  • 🔵 会話ビューの「タスク」チップは、バックグラウンドタスクの実行中、セッションツリーがバックグラウンド処理に使うのと同じシアンで表示されます。タスク一覧でも実行中のタスクがシアンで表示され、「実行中」と示されます。
  • 🗑️ セッションを削除するときに git worktree の削除を勧めることはなくなりました。worktree を削除するには「Delete worktree…」を使います。
  • 🔁 翻訳の状態は 10 秒ごとではなく変化したときに更新され、翻訳設定は開くたびにインストール済みのエージェントを確認し直します。
  • 💤 情報パネルは、ウィンドウが非表示の間はプロセスのリソース取得を停止します。
  • ⏱️ ターンの開始・終了時にセッションを切り替えても、会話ビューの作業中表示とターンのタイマーが消えたり残ったりしなくなりました。
  • 🔗 vrefer のメッセージ番号は vsearch と同じになり、フォークした Codex セッションでは vrefer と全体検索の両方に親会話の履歴も含まれます。

v0.2.11

最新情報
  • 🧪 実験的な HTML プレビューを会話の横やタブで開き、ファイルの変更に合わせて更新し、ソース・コンソール・バージョンを操作できますが、ネイティブデスクトップと各プラットフォームでの受け入れテストは未完了です。
  • 📜 長い会話は過去のメッセージをページ単位で読み込み、長文は必要に応じて展開でき、Claude と Codex のライブ会話でメッセージやツールが重複しなくなりました。
  • 🔎 全体検索は変更された会話をより速く更新し、中断後も索引作成を再開し、元ファイルが変わるまで読み取れない会話をスキップします。
  • 📊 情報パネルの変更ファイル数をクリックすると、このターンで編集したファイルと、取得できる追加・削除行数が表示されます。
  • 🗂️ アーカイブした会話は元のプロジェクト・グループ・親子関係に沿ったコンパクトな行で表示され、プロジェクトの折りたたみや一括展開・折りたたみができます。
  • 🧩 Codex アカウントのプラグインスキルが補完候補に表示され、補完メニューを矢印キーで選択できます。
  • ⌨️ Windows と Linux:Ctrl+Shift+C でターミナルの選択文字をコピーでき、「設定 ▸ ショートカット」でキーを変更できます。
  • 🧹 Claude のターミナルで /clear を実行した後、再度開いたり会話ビューに切り替えたりしても、消去した会話を再開しなくなりました。
  • 📏 OpenCode の会話では情報パネルにモデルのコンテキスト上限が表示されます。
  • 🌐 翻訳に API キー不要の Bing Translator、コンパクトな言語設定、Claude と Codex の編集済みメッセージを再送する前の翻訳が加わりました。
  • 🔤 翻訳エンジンやモデルを変更しても既存の訳文が表示され、再翻訳できます。
  • ⏱️ vrun は 180 秒ごとに進捗を報告して終了コード 75 を返し、--wait で待機を続けられ、実行中のタスクと同じラベルでの上書きを防ぎます。
  • 🧵 Claude のバックグラウンドタスク完了で始まる返信に、タスクの要約と独立した会話の区切りが表示され、履歴にも残ります。
  • ⚠️ バックグラウンドタスクの実行中にターミナルと会話ビューを切り替える際は確認が表示されます。
  • 🏠 作業ディレクトリが未設定または存在しない場合、どちらのビューでもホームディレクトリでセッションを開始します。
  • 🪟 Windows:WSL ディストリビューションが登録されていない場合、VelaTerm の起動時や接続パネルを開いたときに WSL のインストールを求めなくなりました。
  • 🔐 パスワード検証中に接続が切れても、失敗したリモートログインは再試行回数の制限に計上されます。
  • 🏷️ エージェント CLI の新しいバージョンがある場合、バージョンバッジの横に Update: vX リンクが表示されます。
  • 🔵 バックグラウンドタスクの表示はシアンで常時点灯し、状態の丸印はペインの見出しから外れてタブとサイドバーに表示されます。
  • ✍️ 会話入力欄の枠線が明瞭になり、フォーカス時に外枠が付き、ダークテーマの情報パネルでは値とラベルの明るさがそろいます。
  • 🌿 プロジェクトのクローンボタンに、プロジェクトの印が付いたブランチアイコンを使用します。

v0.2.10

最新情報
  • 🧩 OpenCode v1 に加えて v2 にも対応し、OpenCode v2.0.26 でもモデル一覧を正しく読み込めるようになりました。
  • 🏷️ セッションの見出しにエージェント CLI のバージョンが表示され、新しいリリースがある場合はバージョンから公式のアップグレード手順を開けます。
  • 🗂️ Git パネルに表示される変更ファイルは最大 1,000 件になり、node_modules などの大きなフォルダを .gitignore に追加するよう提案します。
  • 🔤 Git パネルで日本語などの非 ASCII ファイル名が正しく表示され、ステージ、ステージ解除、変更の破棄は選択したファイルだけに適用され、競合は別のグループに表示されます。
  • 📜 Git 履歴を更新しても、読み込み済みの範囲、展開した項目、スクロール位置が保持されます。
  • 🌿 右パネル、ステータスバー、ターミナルのタイトル、サイドバーに表示されるブランチは、切り替えるとすぐに更新され、再起動が不要になりました。
  • 📁 Files ツリーは開いているフォルダを自動的に更新し、Git の変更を含むフォルダに印を付けます。
  • 🧹 Windows: 自動更新で Temp フォルダにインストーラーが残らなくなり、以前の更新で残ったものも削除されます。
  • 🪝 Windows: Codex、Crush、Kiro、Cursor、Kimi、Antigravity、Copilot、Grok は、PowerShell スクリプトを介さずに VelaTerm へ直接セッションの状態を報告します。
  • 🖱️ Windows: vim などの全画面ターミナルプログラムでマウスのクリックとスクロールが使えるようになり、ホイールが矢印キーに変換されなくなりました。
  • 🕘 zsh ターミナルが再びユーザー自身の ~/.zsh_history を読み書きするようになり、history や上矢印キーで他のターミナルで実行したコマンドも呼び出せます。
  • 🖥️ Claude と Codex の新しいセッションは会話ビューで開き、その他のエージェントは既定でターミナルで開きます。
  • 🚀 vspawn が --pi と --agent <名前> に対応し、タスクを受け付ける任意のエージェントを起動できるようになりました。
  • ⏱️ モデル一覧が 30 秒以内に読み込まれない場合は、エラーと Retry が表示されます。
  • 🗑️ 保存したプリセットを 設定 ▸ エージェント で削除できるようになりました。
  • ⌨️ スクリーンショットボタンのツールチップに現在のショートカットが表示され、アイコンも共有ボタンと区別しやすくなりました。
  • 🧭 右パネルでナレッジを開いた後も、情報などのタブに再び切り替えられるようになりました。
  • ✍️ macOS: 入力メソッドを使ってターミナルで / を入力しても、二重に入力されなくなりました。

v0.2.9

最新情報
  • ✨ AI による名前変更で、エージェントごとに選択したモデルと推論の強度を記憶するようになりました。
  • ⛔ AI によるタイトル生成は、Cancel、Esc、またはダイアログの外側をクリックしてキャンセルでき、その後に再試行できます。
  • 🧭 新規の Plan/Execute ワークフローでは独立した Review が既定でオフになり、必要に応じて起動ダイアログまたは --review で有効にできます。
  • 🤖 Chat のモデル選択に読み込み中、エラー、空の一覧の状態と Retry が表示され、Codex のモデル候補には現在のセッションのアカウントと設定が反映されます。
  • 📊 Info パネルに、報告された推論トークンを含む平均出力速度の推定値が表示され、推定できない場合はダッシュが表示されます。
  • 🩺 詳細設定で入力遅延の診断を任意に有効化してしきい値を調整でき、入力したテキストは記録されません。
  • ✂️ 対応する Tauri デスクトップ環境では実験的なスクリーンショット機能のボタンがタイトルバーに表示され、ショートカットを無効にしても使用できます。
  • 🌬️ セッションツリー、状態フィルター、ステータスバーのシアン色のバックグラウンドタスク表示に、統一された明滅アニメーションを適用しました。
  • 📁 状態フィルターの使用中に作成したグループは、名前検索の条件に一致していれば、状態の更新またはフィルターの変更まで表示されます。
  • 🎨 バックグラウンドコマンドのログに色、文字の装飾、最終的な進捗行が表示され、実行バーがペインのフォーカス表示を隠さなくなりました。

v0.2.8

最新情報
  • 🪟 Windows でウィンドウに戻ったとき、キーボードフォーカスがすでにページ内にあればそのまま維持されます。

  • 🛡️ Windows 版の VelaTerm と vela-server が、Huorong(火絨)に Trojan/MSIL.ShellLoader.q として検出されなくなりました。これは誤検知で、会話ビューでシェルコマンドを実行する際に、プロセスを一時停止状態で作成してから再開していたことが原因です。この一連の呼び出しはマルウェアがコードを注入する際にも使われるため、トロイの木馬と判定されていました。現在はプロセスを通常どおり起動するよう変更し、誤検知の原因となったコードを削除しました。

  • 🔕 Windows で新しいセッションの作成時やモデル一覧の更新時に、バックグラウンドで PowerShell を実行しなくなりました。Cursor セッションの状態はターミナル出力から判定するようになり、精度がやや下がる場合があります。

  • ⛔ Windows の会話ビューでは、! で始まる入力をシェルコマンドとして実行しなくなりました。代わりに案内が表示され、入力内容は残ります。履歴にある実行済みのコマンドは引き続き表示されます。

  • 🔐 標準搭載の OpenSSH サーバーを使う Windows ホストに SSH で接続する際、-EncodedCommand で PowerShell を起動しなくなりました。

  • 🚀 PATH が長い環境でも TUI エージェントのセッションが正しく起動し、途中で切れた起動コマンドがターミナルに表示されなくなりました。

  • ⬇️ TUI エージェントのターンが終わったときや承認を求められたときに、表示が最下部に戻ります。過去の出力を閲覧中は位置を維持します。

  • 💾 v0.2.7 で追加された実験的な会話復旧機能を削除しました。Chat に重複した Saved submission メッセージや中断の通知が表示されなくなり、未送信のキュー内メッセージは再起動後に保持されません。

  • 🔁 計画・実行ワークフローに任意の独立した Review ロールが加わりました。新しいワークフローでは既定で有効になり、エージェント、モデル、推論レベルを個別に選べます。vspawn --plan-execute は --review、--no-review、--review-agent、--review-model、--review-effort に対応します。

  • 🏷️ 「AIで名前を変更…」は実行前に確認ダイアログを表示し、今回の名前変更に使うエージェント、モデル、推論レベルを選べます。選択肢の読み込み中もダイアログは中央に表示されます。

  • 🔍 名前検索、ステータスの絞り込み、マークの絞り込みが有効な状態でも、セッション、グループ、プロジェクトをドラッグできます。

  • ➕ ステータスで絞り込んでいるときに作成したセッションは、ステータスの更新や絞り込み条件の変更を行うまで、所属するグループや親セッションの下に表示されたままになります。

  • 🪟 アプリのウィンドウは既定でより大きく開き、ディスプレイの利用可能な領域に合わせてサイズが決まります。接続ウィンドウはメインウィンドウがあるディスプレイの中央に開きます。

  • 🎨 コレクションのアイコンが重なったレイヤーの形になり、ダークモードのタイトルバーのアイコンがやや暗くなり、空のサイドバーにある 4 つのボタンの幅がそろい、フォームダイアログのラベルが同じスタイルに統一されました。

v0.2.7

最新情報
  • 🪐 Antigravity が実験的なエージェントとして会話ビューに加わり、テキスト、ツール、メッセージキュー、ネイティブ履歴の継続に対応しましたが、画像、応答中の追加指示、対話式の承認、フォーク、巻き戻しは未対応で、全プラットフォームでの復旧検証も未完了です。

  • 🗂️ コレクションに子コレクション、プロジェクト、セッショングループを入れられ、ワークスペースから作成やインポートができるようになり、コレクションを削除してもプロジェクトとアーカイブ済みセッションは保持されます。

  • ⚠️ フォルダーからコレクションへ移行したデータベースを旧バージョンで操作してはならず、ダウングレードには移行前のバックアップの復元が必要です。

  • 🏷️ スマート名前変更は現在のエージェントの設定を使って会話内容からセッション名を付け、その設定を使えない場合はエージェントを選択できます。

  • 🌱 VelaTerm を再起動せずに、新しいセッションで最新の shell 環境と新しくインストールしたエージェントを利用できます。

  • 💾 実験的な会話復旧機能は再起動後に保存済みのメッセージ、画像、キュー内の入力を復元し、中断された処理は明示的に再開するまで一時停止しますが、ネイティブ環境と全プラットフォームでの受け入れ検証は未完了です。

  • 📸 macOS と Windows の Tauri デスクトップ版に実験的なスクリーンショット機能が加わり、範囲の選択、注釈、コピー、元の PNG の保存ができますが、ネイティブデスクトップでの受け入れ検証は未完了で、Electron、ブラウザー、リモートビューには対応していません。

  • 🧵 Claude のバックグラウンドタスクのタブに、並列ツール呼び出しを含むネイティブの会話履歴全体が表示されます。

  • 🖼️ 会話の各メッセージに最大 20 枚の画像を添付でき、1 枚あたりの上限は 5 MiB です。

  • 📍 会話のメッセージマーカーから内容をプレビューし、以前のユーザーメッセージへ直接移動できます。

  • 🧭 プロジェクト、クローン、名前を付けて保存のディレクトリ選択で、パスの編集と場所の補完を共通して利用できます。

  • 🪪 vself で保存済みのセッション設定と親子関係を読み取り、vflow list で関連する計画・実行ワークフローを変更せずに一覧表示できます。

  • ⌨️ ターミナルの全選択はショートカット設定で変更でき、既定は macOS が Cmd+A、他のプラットフォームが Ctrl+Shift+A で、ターミナルにフォーカスがあるときだけ動作します。

  • 🐚 Bash の補完が ~ で始まるパスに対応し、古い Bash でも PS0 エラーなしでセッションを開けます。

  • 🛑 子タスクの hook が親セッションの会話状態を変更しなくなり、会話タブを閉じると実行中の Chat プロセスが停止します。

  • 🪟 Windows でウィンドウに戻るとターミナルのキーボードフォーカスが復元され、中国語の変換入力中の青い線も表示されなくなりました。

  • 🎨 クラシックダークのコントラストが向上し、デスクトップアイコンはシステムテーマに連動し、プロジェクトアイコンは青色に統一され、コレクションの行にはプロジェクト数が表示されなくなりました。

  • 📚 セッションとコレクションのメニューで、知識を整理する入口がわかりやすい「ナレッジベースに追加」になりました。

  • 🌐 ローカルネットワークで通常の HTTP を使って VelaTerm にアクセスしたとき、ページが正常に開きます。

  • 🌍 更新確認にインターフェースの言語が含まれ、更新内容をその言語で表示できるようになり、更新サービスも Linux Electron のアップデーターに対応しました。

  • 🧰 エージェント名の Kimi Code と Grok Build にモデルのバージョン番号が付かなくなりました。

v0.2.6

最新情報
  • 🐧 Linux 版は Electron ベースになりました。AppImage のファイル名とデータはそのまま引き継がれ、WebKitGTK と libfuse2 のインストールは不要になりました。既存のインストールは内蔵のアップデーターから更新できます。

  • 🛰️ SSH で接続できないマシン(別のコンピューター上の WSL や Docker コンテナなど)も、1 つのコマンドで vela-server をインストールするとアカウントに関連付けられ、Remote 一覧から AI との会話に利用できます。所有者がホスト上でフルアクセスを許可すると、デスクトップ版からそのホストのターミナル、ファイル、Git パネルも使えるようになります。

  • 📂 Finder、エクスプローラー、または Linux のファイルマネージャーからサイドバーにドラッグしたフォルダーが、プロジェクトとして追加されます。

  • 📝 Markdown エディターに、Typora と同じ見出し・リスト・コードブロック・表のショートカット、括弧と引用符の自動補完、Cmd/Ctrl+クリックによるリンクの展開、フォーカスモードとタイプライターモードが加わり、ステータスバーに単語数と文字数が表示されます。YAML フロントマターは本文の上にある専用の入力欄に表示され、編集しない限り変更されません。

  • 🗃️ Git リポジトリではないものの複数のリポジトリを含むフォルダーでは、Git パネルにリポジトリの選択欄が表示され、選択したリポジトリに対して操作できます。

  • ⏳ 会話ビューでは、応答が終わってもバックグラウンドタスクが実行中のセッションに、新しい「タスク実行中」状態(シアンの点)が表示され、「作業中」のままにはなりません。vrun で長時間のタスクを実行しているセッションも同じ状態になります。

  • 🍴 会話ビューでは、フォークしたセッションが初回実行時に独自の会話を開始し、フォーク元のセッションにメッセージが届かなくなりました。

  • 🛡️ 会話ビューでは、Claude セッションのモードラベルが Claude の実際の権限モード(Plan モードに入った後など)に追従し、権限の確認カードに Claude が確認を求める理由が表示されます。

  • 📏 会話ビューの入力欄は上端をドラッグして高さを変更でき、上端をダブルクリックすると既定の高さに戻ります。高さはすべてのペインに適用され、再起動後も保持されます。

  • 🗂️ サイドバーで複数のフォルダーを選択すると、右クリックメニューからフォルダーとその中のセッションをまとめてアーカイブできます。

  • 📚 サイドバーでは、コレクションが常にプロジェクトより上に表示されます。

  • 🧠 ナレッジベースの処理記録で作成された項目が 1 件の場合、タイトルからその項目を直接開けます。項目ボタンには番号ではなく項目のタイトルが表示されます。

  • 📊 Info パネルに、Opus 5.5 などの新しい Claude モデルの正しいコンテキスト上限が表示され、200k と表示されることはなくなりました。

  • 🎨 細かな変更:セッションの右クリックメニューにある 3 つの分割項目が「分割して開く」サブメニューにまとめられました。終了確認ダイアログには、開いているリモートウィンドウも閉じられることが表示されます。フォーム内のドロップダウンは、項目を選択するとすぐに閉じます。

v0.2.5

最新情報
  • 🐧 Windows デスクトップ版で WSL1 と WSL2 の独立したワークスペースを開き、選択した Linux ディストリビューション内のエージェント、ファイル、セッション履歴を利用できるようになりました。

  • 🔄 WSL ワークスペースではサーバー停止後に再接続でき、ウィンドウを閉じる際にはサーバーを停止するか、セッションを実行したままにするかを選べます。

  • 🌐 Claude セッションの入力欄オプションに「Chrome」が加わり、会話を再起動せずに Claude in Chrome をオン・オフできます。選択はセッションごとに保存され、未選択のセッションは既定値に従います。

  • 📟 バックグラウンドの shell タスクのタブに、実行しているコマンドと最新の出力が表示され、タスクの実行中は自動的に更新されます。

  • 🧩 Vela Skills が未インストールの場合、ステータスバーにインストール用の項目が表示されます。ダイアログで各スキルの説明を確認してそのままインストールでき、今後は通知しないように設定することもできます。

  • 🪪 vspawn で作成した子セッションは VLX_PARENT_SESSION_ID から親セッションを把握でき、エージェントは vrefer と vtell で親セッションとやり取りできます。新しい vself コマンドは、現在のセッションとその上位のセッションを表示します。

  • 🖥️ Linux の AppImage が Fedora 44 などの新しいディストリビューションで空白のウィンドウを開くことはなくなりました。

  • 🎨 細かな変更:「バックグラウンドタスク」は既定で入力欄の下に表示され、「その他」に戻した場合はそのまま維持されます。会話内のリンクを開けない場合は、右クリックでアドレスをコピーできることを案内します。

v0.2.4

最新情報
  • 📋 会話からのコピーは画面に表示されているとおりのテキストになります。インラインコードにバッククォートは付かず、強調にアスタリスクは付かず、リンクは文字だけ、コードブロックは囲みなし、表のセルはタブ区切り、リストは表示どおりの記号を保ちます。リッチテキスト形式も従来どおりクリップボードに入ります。右クリックメニューには「Markdown としてコピー」が加わり、選択範囲の Markdown ソースを取得できます。

  • ⏳ 「利用上限のリセット後に自動で続行」が既定でオンになりました。ご自身で設定を変更している場合は、その選択が保たれます。

  • ↩️ 会話のロールバックが、すでに終了したタスクによって妨げられなくなりました。フォアグラウンドのタスクはそのターンが終わった時点で終了扱いになり、その後に届いた進捗で再び実行中とは見なされません。実際にバックグラウンドのタスクが動いている場合は、メッセージにその名前が示されます。

  • 🧹 Codex のサブエージェントのスレッドは、Claude のサイドチェーンと同様、セッション履歴の一覧に表示されなくなりました。

  • ⌨️ ターミナル補完:矢印キーで候補を移動したあとは、Enter でも Tab と同じように選択中の候補を確定します。選択を動かしていない場合、選択後に入力を続けた場合、修飾キーを押しながらの場合は、これまでどおり Enter がシェルに渡ります。

  • 📱 Android は 2 つのチャネルでビルドします。既定のビルドは個推および Huawei、Xiaomi、OPPO、vivo、Meizu、Honor のプッシュチャネルを含みます。Play 向けビルドはこれらを含まず、タスク通知はプッシュチャネル未設定として表示されます。

  • 🎨 細かな変更:タスクリストでチェックボックスが重複して表示されなくなり、通知バーと自動継続の案内が会話と入力欄の間に本文と同じ幅で並び、スマートフォンではオプションを閉じても送信ボタンが入力欄の横に残ります。

v0.2.3

最新情報
  • 🪟 既存のセッションを分割ペインに配置できるようになりました。サイドバーの右クリックメニューから、右分割・下分割・現在のペインのいずれかでセッションを開けます。サイドバーからペインの端へドラッグすればその方向に分割し、中央へドロップすればそのペインの表示を置き換えます。2〜4 件を選択すると等分された 1 つのタブにタイル表示でき、現在のタブの他のペインにあるセッションはサイドバーで示されます。

  • 🗂️ エージェントが開始したバックグラウンドタスクは、会話の隣に独立したタブとして開きます。状態、経過時間、トークン、ツール呼び出し数、最後に報告されたツール、エージェントごとのフェーズを表示します。タスクには固有のアドレスがあり、離れると開いた元のペインに戻ります。

  • 💬 会話ビューでは、! で始まるメッセージがそのセッションのシェルで実行されます。出力は届いた順に表示され、終了コードが示され、実行中に取り消せます。コマンドは Claude、Codex、OpenCode、Pi、OMP の各セッションの閲覧履歴にも残ります。

  • ⏱️ 新しい vrun コマンドは、長時間かかるコマンドの起動と待機を 1 回の呼び出しにまとめます。エージェントは処理が実際に終わった時点を把握できます。この方法で起動したコマンドはターミナルの上に一覧表示され、実行時間、ログウィンドウ、確認を求める停止ボタンが並びます。

  • ⌨️ エージェントセッションの新規作成に専用ページとキーボードショートカットが加わりました。エージェントとプリセットを検索し、前回使った組み合わせをそのまま選び、現在のセッションと同じ階層に作るか下の階層に作るかを選べます。

  • 🧰 メッセージ入力ツールバーは設定から調整できます。メッセージの横に並べる項目とその順序を選べます。オフにした項目と幅に収まらない項目は「その他」メニューから利用できます。

  • 📥 URL 接続や SSH 接続のウィンドウでファイルをダウンロードすると、まずこの端末で保存先を選び、続いて進捗が表示されます。途中で取り消すこともできます。

  • 🗃️ Kiro のセッションをプロジェクトに取り込んで閲覧できます。取り込みは作業ディレクトリでセッションを照合し、各セッションは検索付きの読み取り専用の履歴ビューで開きます。現時点ではテキストのみの記録に対応します。

  • 🧠 ナレッジベースの整理が、Claude と Codex に加えて Grok、OpenCode、Pi、OMP でも利用できます。エージェントの選択は、アプリの他の場所と同じドロップダウンになりました。

  • 📱 iOS と Android:開始ページが SSH 接続と URL 接続を保持し、VelaTerm アカウントにサインインして、共有中のデバイスを一覧表示します。ホストのフィンガープリントは一度確認すれば記憶され、QR コードからサービスアドレスを入力でき、ネイティブ画面とシステムの表示はすべて 11 言語に翻訳されています。

  • 🔐 Claude のセッションは選択した権限モードで起動します。追加の起動引数は本来の優先順位を保ち、起動時に CLI が報告するモードと突き合わせます。確認を省略して開始したセッションはその表示を維持します。

  • 🧩 モデルメニューに Opus 5.5 が加わり、選択中の CLI が報告する追加モデルを組み込みの並び順を保ったまま表示します。CLI の更新で増えたモデルは、アプリを再起動しなくても現れます。

  • 🌱 子セッションの要求が中断に耐えるようになりました。応答が失われた要求は再接続後に復旧でき、確認済みの起動は再試行時に同じセッションと起動設定を使い、作成に失敗したワークツリーは以前から存在していたものに触れずに巻き戻されます。

  • ⚡ 起動が速くなりました。起動時に読み込むコードはこれまでの約半分になり、ナレッジベース、セキュリティ監査、セッションの取り込み、共有プロジェクトの各画面は開いたときに読み込まれます。

  • 🖼️ メッセージに貼り付けた画像やドラッグした画像は、送信前に長辺 1568 ピクセル以内へ縮小されます。

  • 🐚 Bash セッションはシェル補完を起動ファイルから読み込むようになり、新しい Bash セッションを開いてもコマンドが入力された状態にはなりません。ログイン用の起動ファイルは Bash 本来の順序で読み込まれます。

  • ✍️ Markdown:単独のチルダで行の残りが打ち消し線にならなくなり、貼り付けたシェルプロンプトが読める状態を保ちます。また、中国語・日本語・韓国語の文字の直後で終わる太字や斜体が正しく閉じ、アスタリスクが画面に残らなくなりました。

  • 📨 vtell --steer は、相手が進行中のターンにメッセージを差し込みます。そのターンの終了を待ちません。相手が質問の前で止まっている場合は blocked として返ります。その質問に答えるまでメッセージは読まれないためです。

  • 🔁 会話ビューでは、セッションの状態がターンの終了と同時に終わり、未読マークは作業が実際に始まった時点で消え、バックグラウンドの作業が続いているセッションは実行中のままになります。

  • 🪟 Windows:Cursor のフックが正しく起動します。RDP の再接続後や仮想デスクトップの切り替え後に報告されたキーボード入力の問題に対し、ウィンドウ層を更新しました。

  • 🛡️ セキュリティ監査:モデル一覧とエージェント名がアプリの他の場所と同じ起動カタログを参照するようになり、過去の実行記録にも各エージェントの現在の名称が表示されます。

  • 🩹 その他の修正:会話のエラーメッセージが中央カラムに揃う、2 種類の起動ダイアログをいつでも閉じられ確認済みで失敗した起動を取り消せる、メッセージと送信待ちメッセージに送信者を表示、長い送信待ち一覧が一定の高さの中でスクロール、ドキュメント編集中に空の HTML アンカーの目印を表示しない、スマートフォンの状態フィルターが後から条件に合致したセッションも拾う。

v0.2.2

最新情報
  • ⏳ 利用上限後の自動再開(設定では既定でオフ):Claude または Codex が 5 時間/週次の利用上限で止まると、上限のリセット後にセッションが自動で再開します。入力欄の上にはリセット時刻と「キャンセル」ボタン付きのバナーが表示され、待機状態はアプリの再起動をまたいで保持されます。メッセージの送信、ロールバック、セッションのクリア、設定のオフで待機は終了します。

  • 🪟 Windows:OpenCode、Grok、Crush のワンクリックインストールで --allow-scripts を渡すようになり、npm が実行ファイルを生成します。Cursor、OMP、Antigravity は %LOCALAPPDATA% 下の実際のインストール先を探すようになり、OMP は PI_INSTALL_DIR にも対応します。

  • 🪟 Windows:ダウンロードやコピー中のファイルはインストール済みとして扱われなくなり、インストールカードはインストールが実際に終わるまで完了を表示しません。保存済みの無効なパスは、新しく検出したパスに置き換わります。

  • 🧩 会話ビュー:各ターンの思考、ツール呼び出し、途中の返信を「途中経過を隠す」で畳んで最終返信だけを表示できます。ツールバーで全ターンをまとめて非表示/表示でき、検索が隠れた内容に一致したときは自動で展開して位置を合わせます。

  • 🔐 権限ボタンは「現在の権限は未確認」ではなく、セッション開始時のモード名を表示するようになりました。ボタンと重複していた「起動設定」の行は削除され、確認をスキップして開始したセッションはステータスバーで再びハイライトされます。

  • 🔐 権限を設定していないセッションは、ターミナルビューと会話ビューのどちらでもそのエージェント種別のグローバル既定に従います。セッションの編集で、継承した値がセッション固有の値として固定されることもなくなりました。

  • ↩️ ナレッジベースの各ページに「1つ上の階層へ」ボタンを追加しました。エントリから所属セッション、プロジェクト、ホームへと順に戻り、アーカイブ済みセッション、ノート、フォルダも同じように階層を上がります。

  • 🌱 派生した子セッションは親セッションと同じビューで開きます。親が会話ビューの場合はタスクが最初のメッセージとして送信され、画像は添付ファイルになります。親がターミナルの場合は子もターミナルで起動し、タスクは起動引数として渡されます。

  • 🎨 macOS:ウィンドウとタイトルバーの帯は表示前にテーマの色に合わせて着色され、実行中にテーマを切り替えるとすぐに描き直されます。

  • 🗜️ Claude のセッションでは、圧縮前のターンも閲覧履歴に残ります。ロールバックでは破棄したブランチはこれまでどおり除外されます。

  • 🔎 会話の検索は、以前の履歴を読み込んでいる間も選択中の一致箇所を保持します。Enter で前の一致、Shift+Enter で次の一致に移動します。

  • 🩹 履歴の途中で止めていた会話は、切り替えて戻っても読んでいた位置が復元され、画面全体が空白にならなくなりました。

  • 🧭 モデルカタログの診断情報は、Option キーを押しながらモデルメニューを開いたときだけ表示されます。エラー行はメッセージ本文と揃い、英語のナレッジベースには「Archived Sessions」と表示されます。

v0.2.1

最新情報
  • 🔎 ナレッジベースのホームに検索ボックスを追加しました。1 回の検索でセッションのナレッジとローカルのノートをまとめて検索し、結果は情報源ごとにグループ化します。完全一致を優先し、完全一致が 1 件もないときだけあいまい検索(英語の略語、部分列、スペルミス)に切り替えます。中国語の検索は部分文字列のままです。

  • 🗂️ アーカイブ済みセッションがナレッジベースに移動しました。左パネルのボタンは専用パネルを開かずここへ移動し、ツリーには元のプロジェクトごとにグループ化した「アーカイブ済みセッション」のルートが加わります。メイン領域にはすべてのアーカイブ済みセッションが並び、その場で復元、整理、エクスポート、削除ができます。

  • 🔍 アーカイブ済みセッションを全文検索できます。結果はセッションごとにグループ化してヒット数を表示し、右側のプレビューで各ヒットを順に確認でき、ハイライトは全体検索と同じです。セッションを開くと「会話」と「ナレッジエントリ」のタブを切り替えられます。

  • 🤖 会話ビュー:エージェントの実行ファイルが見つからないとき、生の起動エラーの代わりにメッセージの下へインストール案内が表示されます。「今すぐインストール」はターミナルビューに切り替え、推奨コマンドをそこで実行します。PATH の外にインストール済みの場合は、案内カードに実行ファイルのパスを直接入力でき、デスクトップではシステムのファイル選択も使えます。

  • 🩹 インストール済みに見えて実際は壊れている状態を検出します。グローバル npm インストールのラッパーが指すプログラムが削除・置換されている場合は未インストールとして扱い、設定したパスがそのようなラッパーを指す場合もインストール案内を表示しますが、設定は書き換えません。

  • 🔐 権限モードの入口に選択中のモードを直接表示し、メニューは各項目の横に反映のタイミング(すでに反映済み、または次のターンを待機中)を記します。

  • 🔽 すべてのドロップダウンが組み込みの Select コンポーネントに置き換わり、ネイティブコントロールを使わなくなったため、macOS 15 と 26 で見た目が揃い、システムコントロールが重なる表示もなくなります。

  • ℹ️ プロジェクトとコレクションの右クリックメニューに情報ダイアログを追加しました。

  • 🪟 Windows:会話ビューが起動するサブプロセス(エージェント、モデルカタログ、git の確認)がコンソールウィンドウを一瞬表示しなくなりました。

  • 💡 タイトルバーのフィードバックボタンが共有ボタンの後ろに移動しました。

v0.2.0

最新情報
  • 📱 VelaTerm の iOS/Android アプリ(初期版):SSH または URL でマシンに接続し、初回接続時にホストのフィンガープリントを確認します。アプリ内でリモートの画面をそのまま開き、QR コードから接続情報を入力でき、リモートアカウントにもサインインできます。

  • 🛡️ 実験的なコード監査:プロジェクトの右クリックメニューから Codex または Claude Code でリポジトリ全体、ディレクトリまたはファイル、未コミットの作業ツリーの変更を監査します。検出結果はソースコードと照合して確認でき、Markdown または JSON のレポートを出力できます。

  • 📓 ローカルナレッジベース:右パネルで Markdown ノートのフォルダーを開き、WYSIWYG エディターで編集、パスと全文の検索、タグとお気に入りの管理、ゴミ箱からの復元ができます。エージェントは vkb でノートを検索できます。フォルダーのインポートはバックグラウンドで実行され、展開・再表示・キャンセルできる履歴が残ります。

  • 🤖 計画と実行のセッション:vspawn --plan-execute で計画セッションを開き、タスクを複数の実行セッションに分割します。vflow が分割案を提出し、vtell --report が各実行セッションの結果を検収のために送り返します。やり直しでは元の実行セッションを再利用します。ワークツリーは全ロールで共有することも、セッションごとに作成することもできます。

  • 🔗 共有したプロジェクトとセッションは、共有 URL の背後でホストの実際の画面を読み込むようになりました。外向きのトンネル経由で転送され、許可されたプロジェクトまたはセッションだけに限定されます。デバイスと許可はアカウントページで管理できます。

  • 🧠 セッションのナレッジベースがプロジェクト、セッション、エントリのグループに対応し、ドラッグでの移動、名前の変更、削除ができます。同じセッションを再度整理すると、待機中のタスクが置き換わります。

  • 💬 会話ビュー:長い履歴は最初のメッセージまでページ単位で読み込めます。会話エンジンに対応するすべてのエージェント(OMP を含む)は、新しいセッションで既定で会話ビューを開きます。同じエージェントの連続したターンは 1 つの作者行にまとまります。

  • ⌨️ ターミナル:macOS と Linux で zsh、bash、fish、PowerShell の Tab 補完をシェル標準の候補として利用できます。候補一覧を開いたまま方向キーで過去のコマンドを呼び出せます。ターミナルの中核を xterm 6 に更新しました。

  • 📊 Info パネルが Claude、Codex、Grok、OpenCode、Pi、OMP の今回のターン統計を表示します。入出力トークン、キャッシュヒット率、生成速度、ツール呼び出し回数、記録されたファイル変更を確認できます。使用頻度の低い入力欄の操作は「その他」にまとめました。

  • 🔐 入力欄に権限モードの設定値、現在の有効値、次回の値が表示されます。変更の適用に再起動が必要な場合は、先に確認を求めます。

  • 🔔 通知にセッション名と短いプレビューが表示され、通知をクリックすると該当セッションに移動できます。モバイルアプリではシステムのプッシュ通知で受け取れます。

  • 🌐 Claude のモデル一覧は、ウェブサイトで公開しているモデルカタログを読み込むようになりました。ローカルにキャッシュし、6 時間ごとに更新して、CLI が報告するモデルと統合します。

  • 🧵 入力欄で上下の方向キーを押すと、以前に送信したメッセージ(待機中および確認待ちも含む)を呼び出せます。末尾まで進むと未送信の下書きに戻ります。

  • ↩️ メッセージをロールバックすると、そのメッセージの画像が入力欄に戻り、再度送信できます。

  • 🔑 macOS で起動したエージェントはログインシェルの環境をすべて引き継ぐため、既定の PATH 以外にインストールしたツールも見つかります。

  • 💡 タイトルバーにフィードバックの入口を追加しました。

  • 🕹️ タブバーにゲームセンターの入口を追加しました。ウェブサイトのゲームセンター(PIXEL WING)を開きます。デスクトップでは内蔵ブラウザーで開きます。

v0.1.108

最新情報
  • 💬 Claude、Codex、OpenCode に実験的な会話ビューを追加。ストリーミング応答、思考過程、ツール詳細、権限承認、質問フォームに対応します。初期設定では引き続きターミナルビューを使用します。

  • 🎛️ 各エンジンの機能に応じて、モデル設定、メッセージのキュー登録、割り込み、ファイル補完、画像添付を利用できます。

  • 🔎 会話内検索、ファイルリンク、画像操作、会話専用フォントで長い会話を読みやすくしました。リモート履歴は段階的に読み込み、ツール詳細は必要時に取得します。

  • 📨 メッセージ送信の受領記録で切断後の結果を照合します。結果が不明な送信は確認待ちのまま保持し、自動で再送しません。

  • 🤝 他のセッションを読む vrefer と検索する vsearch を追加。vrefer --ask は読み取りをエージェントに委任します。vorch と vstat で複数エージェントの調整と状態確認ができます。

  • 🧠 メモリエントリでタグ、本文の直接編集、未保存変更の保護、整理設定に対応。履歴インポートの絞り込みと選択、グラフのナビゲーションも改善しました。

  • 🌐 公開共有クライアントがアカウントとデバイスの関連付け、範囲を限定した AI 会話へのアクセス、暗号化リレー接続に対応。ゲストの画像アップロードと複雑な MCP フォームは未対応です。

  • 🔄 Codex の再開 ID を保存済み履歴と照合します。履歴の欠落が確認された場合は空の会話を開始せず、明示的にエラーを表示します。実行中のターミナルには再接続できます。

  • ↩️ ロールバックはエンジンの機能に従います。Codex は会話のみを戻し、ファイルは復元しません。OpenCode の対象範囲処理とディレクトリ事前確認には既知の制限があります。

  • 📦 リリースのバージョン更新時に依存関係の固定バージョンを維持します。各プラットフォームのインストール・更新と実際の AI 連携の受け入れ確認は未実施で、自動テストでは代替できません。

v0.1.107

最新情報
  • 🧠 グローバルメモリ(実験的機能):Claude または Codex が会話をトピック別の共有ウィキにまとめます
  • 🕸️ コードグラフ(実験的機能):作業ディレクトリをインデックス化し、シンボルの関係をたどり、メモリと相互にリンクできます
  • 🔎 セッション中に vknowledge でコードとメモリを検索できます
  • 🖥️ SSH でリモートのデスクトップ版をミラーリングできます。タブ、分割、アクティブなセッションが両方の端末で一致します
  • 🪟 SSH リモート接続先に Windows を指定できるようになりました
  • 📥 プロジェクトフォルダー内の既存の Codex、Claude、OpenCode セッションをインポートできます
  • 🤖 エージェントに OMP を追加
  • 🎚️ vspawn で子セッションのモデルと推論強度を指定できます
  • 🌿 vspawn-tree がコレクション内でも使えるようになり、実行中のワークツリーセッションにブランチアイコンが表示されます
  • 🔤 検索は単語単位の一致を優先し、実際に一致した文字列をハイライトします
  • 🖱️ タブを中クリックすると閉じます
  • ⌨️ macOS のブラウザーで ⌘D と ⌘⇧D による分割ができます
  • 💬 IME の変換中に表示がずれなくなり、変換文字列内にカーソルが表示されます
  • 🪓 メニューからの分割はフォーカス中のウィンドウだけに適用され、分割はすべて logs/split.log に記録されます
  • 📁 リモートのフォルダー選択ダイアログが入力したパスを保持します
  • ℹ️ 情報パネル:開始時刻と稼働時間を同じ行に表示し、macOS ではロードアベレージも表示します
  • 🔑 パスワード入力欄にブラウザー標準の表示ボタンが出なくなりました

v0.1.106

最新情報

ワークスペース

  • サイドバーに「コレクション」を追加:ディスク上のフォルダーに紐づかない最上位コンテナ。 リモートセッションやブラウザページ、一時的なコマンド実行用のターミナルなど、特定のリポジトリに属さないセッションがあります。これまではそうしたセッションもプロジェクト内に置くしかなく、管理しづらい状態でした。コレクションは、ディスク上の実フォルダーを持たない、名前付きの独立した項目です。プロジェクトルートが存在しないため、無関係な操作はクリック後にエラーになるのではなく、最初から非表示になります。「New Worktree Session」や「Move to Worktree…」、新規セッションダイアログのワークツリー選択機能などは、コレクション内では非表示になります。その代わり、新規セッションダイアログにはホームディレクトリをデフォルトとする作業ディレクトリ(Working directory)入力欄が用意され、デスクトップ版ではネイティブのフォルダー選択ダイアログも利用できます。また、ディレクトリを指定せずに開始したセッションは、アプリの起動パス(macOS では /)を引き継ぐのではなく、ホームディレクトリから開始するようになりました。

  • リソースパネルに対象セッションだけでなくマシン全体の状況を表示。 以前はセッション自身のプロセスツリーの CPU とメモリしか表示されず、そのセッションがリソースを消費し尽くしているのか、マシン自体がすでに過負荷なのかを判別できませんでした。今回の更新で、パネルが「THIS SESSION」と「SYSTEM」に分割されました。「SYSTEM」セクションには CPU、メモリ、スワップのプログレスバーが表示され(70% を超えると黄色、90% を超えると赤色に変化)、プラットフォーム固有の情報も 1 行表示されます。macOS ではメモリプレッシャー、Linux ではコア数で正規化されたロードアベレージが表示され、同等の指標がない Windows では何も表示されません。現在のセッション情報のみを確認したい場合は、パネルヘッダーの「system」のチェックを外すことでシステム行を非表示にし、バックグラウンドでのサンプリング処理も完全に停止できます。この設定は保存され、すべてのセッションのパネルに適用されます。

  • Windows と Linux に Alt キーでアクセスできるメニューバーを追加。 macOS にはネイティブのシステムメニューがありますが、Windows と Linux では、設定、アップデート確認、ペイン分割などの操作はタイトルバーのアイコンからしか利用できませんでした。今回、Alt キーを単体で押して離すことで、メニューバーの表示/非表示を切り替えられるようになりました。Alt キーを組み合わせた通常のショートカットはそのまま動作します。ターミナル内では Alt キーが Meta プレフィックスとして機能するため、Alt+B や Alt+F などのショートカットは引き続きシェルへ直接送信され、ターミナルに何も送信しない単体の Alt キー入力のみがメニューバーを起動します。メニューバーには「File」(設定、アップデート確認)、「Terminal」(新規ターミナル、右に分割、下に分割)、「Help」(ウェブサイト、フィードバック、共有)が含まれ、カスタムキーバインドに応じたショートカットのヒントも表示されます。マウスとキーボードの両方の操作に対応しており、Esc キーを押すと開いているメニューが閉じてメニューバーが非表示になり、ターミナルにフォーカスが戻ります。

  • メニューの「Clear notification badges」により、消せなくなっていたバッジを消去可能に。 Dock バッジは、未読セッション数と未応答のプロセス起動確認カードの合計をカウントします。しかし、サイドバーの消去ボタンは未読セッションがある場合にしか表示されず、消去対象もそれらのセッションのみでした。そのため、ウィンドウを閉じたりセッションを削除したりして確認カードが描画できなくなり、未応答のプロンプトカードが取り残された場合、Dock バッジに「1」が表示されたまま消せなくなっていました。新設されたメニュー項目を実行すると、すべてのセッションを既読にし、保留中のすべての起動リクエストを拒否として処理した上で、OS のバッジカウントを直接ゼロにリセットします。これは、アプリを再起動しても Dock バッジのカウントが保持される macOS において特に役立ちます。

  • ファイルの読み込みやシステムの待機中にウィンドウがフリーズしなくなりました。 同期的な Tauri コマンドがメインスレッドで実行されていたため、処理中は UI 全体がフリーズしていました。全 43 個のコマンドを精査したところ、13 個でメインスレッド上の I/O が発生していることが判明しました。具体的には、macOS の通知権限リクエストによる確認待ち(最大 1 分間ブロックされる可能性あり)、長時間実行セッションの録画読み込み(数十 MB を 64 KB 単位で読み取り)、スクリーンショット貼り付け時の直接ディスク書き込み、セッションの作業ディレクトリ取得時の lsof 実行などです。これら 13 個の処理はすべてメインスレッド外で実行されるようになりました。なお、キー入力の処理は高速パスのまま維持されており、影響はありません。

リモートアクセス

  • ホスト側で接続中のリモートクライアントを表示。 セッションミラーリングは双方向で行われるため、リモートクライアント側からホスト側のレイアウトを変更できます。しかし以前は、誰が接続しているかはおろか、接続があるかどうかすらホスト側では把握できませんでした。今回からタイトルバーに「Mirrored by N」バッジが表示されるようになり、クリックすると接続中のクライアント名、IP アドレス、接続日時のリストを確認できます。クライアント名は暗号化ハンドシェイク時に通知されます(指定がない場合は「Unnamed」と表示されます)。

AI エージェント

  • アカウントの使用状況をセッション単位ではなくマシン単位で取得するように改善。 利用制限はアカウント単位で管理されるものですが、以前は各セッションの情報パネルが個別に制限情報を取得していました。そのため、セッションを 10 個開いていると同一のデータに対して 10 回の重複リクエストが発生し、Claude の厳格なレート制限に引っかかってパネルが空白になることがよくありました。今回の変更で、バックエンドの中央ポーラーが単一のスナップショットを保持し、全セッションがそれを参照するとともに、データ変更時に更新を配信する仕組みに刷新しました。また、不要な権限プロンプトを避けるためシステムキーチェーンにはアクセスせず、~/.claude、~/.codex、~/.grok/auth.json の存在を確認して実際に使用しているプロバイダーのみをポーリングします。スナップショットはディスクに保存されるため、再起動時にも初回ポーリングを待たずにキャッシュされた数値が即座にパネルへ表示されます。また、ノート PC のスリープ復帰時にも次の定期実行を待たずに直ちにデータが更新されます。ポーリングが連続して失敗した場合、バックオフ間隔は最大 8 倍まで自動で延長されます。あわせて設定画面では、分かりにくかった「0 秒」設定を廃止し、更新間隔の入力欄の横に明示的な有効/無効切り替えスイッチを追加しました。

  • 使用状況の更新に失敗した際、最新に見せかけるのではなく「stale」と明示。 以前は更新リクエストが失敗した場合でも、クライアントはキャッシュされたデータを暗黙的に返しつつ、成功したかのように記録していました(タイムスタンプを更新し、エラーをクリアし、バックオフタイマーをリセットしていました)。そのため、実際にはレート制限に達していても、5 分ごとのポーリングを続けながらパネル上は正常に見えてしまっていました。今回の変更により、リクエスト失敗時もキャッシュ値は保持されますが、プロバイダー名の横に黄色の stale バッジが表示されるようになりました。バッジにカーソルを合わせると、失敗時刻、エラーの理由、表示中のデータの取得からの経過時間を示すツールチップが表示されます。「Updated」のタイムスタンプは直近で成功した同期時刻を反映し、レート制限されたサーバーからの retry-after 要求にも従うようになりました(手動更新は引き続き即座に実行できます)。

  • 使用状況パネルにモデル別の週間クォータを表示。 使用状況エンドポイントは、アカウント全体での 5 時間および 7 日間の制限に加え、モデル固有の週間クォータも返します。これまではこの情報が活用されておらず、Fable などのモデルを使用しているユーザーは、モデル固有の残り枠ではなくアカウント全体の総使用量しか確認できませんでした。今回の更新により、これらの内訳行が合計値の下にモデルファミリーごとに分類されて表示されるようになりました。

  • OpenCode セッションを再度開いたときにチャット履歴を復元。 以前はセッションが存在するかどうかを opencode session list で確認していましたが、このコマンドは現在の作業ディレクトリ配下のセッションしか取得しませんでした。デスクトップアプリは起動ディレクトリ(macOS では /)から実行されるため、既存のセッション ID が見つからず、再開しようとしてもエラーが表示されないまま空白のセッションが開いてしまっていました。今回の修正により、特定のセッション ID を直接問い合わせるようになり、コマンドによって明示的に削除が確認された場合にのみ削除済みとして扱うようになりました。その他のエラー時は判定不能としてセッションの再開処理を進めるため、セッション履歴が誤って失われるのを防ぎます。

インターフェース

  • IME(入力方式エディタ)での入力中に入力途中のテキストが表示されるようになりました。 これまで、全 3 つのプラットフォームにおいて、IME(かな漢字変換やピンインなど)で入力中のテキストが Enter キーで確定するまで画面に表示されませんでした。これはカスタム CSS ルールが原因でした。xterm は未確定テキストを制約のないオーバーレイコンテナ内に描画しますが、長いターミナル行を折り返すために追加していた right 制約によって幅が 0 に計算され、さらに overflow: hidden によってテキストが完全に切り取られていました。このルールは削除され、どのテーマとも合わなかったオーバーレイのデフォルト配色(白地に黒)の上書きのみが残されています。また、これに関連する問題も同時に修正されました。xterm は IME 変換候補の位置を合わせるために非表示の textarea をオーバーレイのサイズまで拡張したあと元のサイズに戻さなかったため、その行でマウスクリックやテキスト選択を妨げる不可視のオーバーレイが残ってしまっていました。

  • macOS において、Ctrl ショートカットが Command キーのキーバインドを誤ってトリガーしないように修正。 以前は macOS 上での修飾キーの判定において Cmd と Ctrl が同一視されていました。その結果、標準的なターミナルショートカットがアプリのキーバインドと衝突し、Ctrl+D(EOF)でペインが分割され、Ctrl+W(単語削除)でペインが閉じられ、Ctrl+F、Ctrl+T、Ctrl+O などのショートカットがアプリに横取りされていました。新しいペインは何の通知もなく起動するため、まるでペインが勝手に出現したように見えていました。今回の修正により、macOS のデスクトップアプリではショートカットに Cmd のみを使用するようになり、他のプラットフォーム(および Mac に接続された Web ブラウザ)では Ctrl のみを使用するようになりました。

  • ドロップダウンメニューで項目を選択した直後に再び開いてしまう問題を修正。 親の <label> 要素が行全体のクリックイベントをトリガーボタンへ伝播させていたため、項目を選択した瞬間にドロップダウンメニューが再度開いてしまっていた問題を修正しました。

修正

  • Linux:AppImage が再び起動するようになりました。 0.1.105 の AppImage は、WebKit のヘルパープロセスを起動できず、Ubuntu 22.04 でウィンドウが表示される前にクラッシュしていました。AppImage のパッケージングツールはバイナリ内のリテラル /usr パスを ././ に書き換えるため(インプレースパッチのために文字列の長さを維持する目的)、これらのパスを解決するにはランチャースクリプトで作業ディレクトリを $APPDIR/usr に変更する必要があります。0.1.105 では、子シェルへの環境変数の漏洩を防ぐために導入したカスタムランチャースクリプトが環境変数を転送したものの、このディレクトリ変更処理が抜けていました。ランチャーが正しくディレクトリを変更するよう修正し、再発を防ぐためのビルド時アサーションも追加しました。なお、バージョン 0.1.104 以前はこの問題の影響を受けません。

  • Windows:通知音が再び鳴るようになり、通知をクリックして該当セッションへジャンプできるようになりました。 Windows の通知において、macOS 向けのサウンド識別子が通知プラグインに送信されていました。プラグイン側でその識別子名を解析できなかったため無音になっており、設定に関わらず Windows の通知音が一向に鳴らない状態でした。Windows の通知は 2 回前のリリースで生じた問題への回避策としてプラグインを経由させていましたが、その問題は同じリリース内で既に解決されていました。今回の更新でこの迂回処理を取り消し、通知をネイティブチャンネル経由に戻したことで、通知音とクリック時のセッションジャンプ機能の両方が復元されました。

  • Windows:罫線素片とブロック要素のズレを解消。 ターミナルの枠線がプロポーショナルなフォールバックフォントでレンダリングされ、表示の乱れが生じていました。これに対処した後も、フォールバックフォントがメインのターミナルフォントよりもわずかに狭かったため、ブロック要素(プログレスバーや Claude Code のマスコットなどで使用)の各セルの右端に極細の垂直方向の隙間ができていました。今回の修正により、両方の文字範囲を同梱された JetBrains Mono のサブセットから描画することで、グリフの幅が完全に一致するようになりました。

  • Windows:完全版 Git Bash 環境で git が正常に動作するよう修正。 完全版の Git Bash を正常にインストールしていても、ターミナルで git を実行すると「command not found」と表示され、完全版 Git Bash のインストールを促すプロンプトが繰り返し表示されていました。Git Bash はどのディレクトリツリーで実行されているかを指定された場合にのみ mingw64/bin を PATH に追加します。シェルランチャーでこのパラメータの指定が欠落していたため、そのディレクトリにのみ存在するバイナリ(git や curl など)が見つかりませんでした。あわせて、ダウンロードプロンプトでデフォルトの 64-bit を決め打ちするのではなく、ホストシステムのアーキテクチャに適合したインストーラーを選択するようになりました。

  • Windows:ワークツリーの削除が正常に動作し、Kiro フックの再インストール時に重複登録されないよう修正。 ワークツリーの削除コマンドが、削除対象のワークツリーディレクトリ内から実行されていました。Windows では実行中のプロセスのカレントワーキングディレクトリを削除できないため、この操作は常に権限エラーで失敗していました。今回の修正で Git コマンドをメインリポジトリのルートから実行するようになりました。さらに、フック検出ロジックがスラッシュ区切りのパスと Windows のバックスラッシュ区切りのパスをそのまま比較していたため、判定に失敗して再インストールするたびに重複したフックエントリが追加されていた問題も修正しました。

v0.1.105

最新情報

ワークスペース

  • セッションの状態、未読の印、そしてセッションがまだ動いているかどうかを、バックエンドが判断するようになりました。すべてのクライアントが同じ答えを見ます。 これまでは各クライアントが、自分がたまたま観測したものからこれらを組み立てていたため、「未読」は実質「このウィンドウで読んでいない」という意味でしかありませんでした。ブラウザでセッションを読んでもデスクトップ側は未読のままで、しかも動的なステータスフィルターがその行を共有の一覧へ押し戻し続けるので、「ステータスを更新」を押しても消せませんでした。ステータスのイベントも、そのクライアント自身がセッションを起動して初めて登録されていたため、つないだばかりのブラウザは自分が開いたセッションにだけ点を表示し、残りには何も表示しませんでした。バックエンドが、セッションごとに正となる記録を 1 つ持つようになりました――エージェント、その状態、プロセスが生きているかどうか、そして未読フラグです。クライアントが接続または再接続したときにはまとめて問い合わせに答え、変化があればそのつど全員に配信します。クライアントは自分が観測したことを報告し、結論はバックエンドが出します。スマートフォンでセッションを読めばデスクトップの印も消え、つないだばかりのブラウザは一度も開いていないセッションについても正しい点を表示します。これまでフロントエンドにあった調停のルールは、その理由とテストごと移りました――一度でも報告のあったフックは、生の出力から推測した結果を締め出します。出力が続いていることをビジーの根拠にできるのは、エージェントを持ち、Codex ではなく、まだ正となる報告が届いていないセッションだけです。そして 1200ms の保持時間が、始まったばかりのタスクを、すぐ後ろから届く終了イベントに打ち消されないよう守ります。例外は画面の読み取りです。これには描画済みのグリッドが要り、それはクライアントにしか存在しません。ターミナルのサイズを持っているクライアントが読み取った内容を報告し、それを受け入れるかどうかをバックエンドが決めます――ほかのクライアントからの報告は拒否されます。もしこのあたりで不具合が出た場合は、localStorage の vlx-arbitration に frontend を設定すると、調停が従来のフロントエンド側の仕組みに戻ります。

  • セッションを再起動しても、もう一方のクライアントでタブが閉じられなくなりました。 pty://killed には付随する情報が何もなかったため、受け取った側は再起動と終了を区別できませんでした。すべて終了として扱ってペインを取り除き、そのレイアウトをそのまま相手にも反映していたのです。このイベントは、どのクライアントがなぜプロセスを終わらせたのかを伝えるようになり、再起動であればペインを残したまま新しいプロセスの到着を待ちます。理由が無い、あるいは知らない理由だった場合は、これまでどおり終了として扱います――二度と戻ってこないセッションのペインを開いたままにすると、死んだターミナルが画面に居座ることになり、再起動しようとしていたペインを閉じてしまうより厄介だからです。

  • ワークスペースを復元したばかりのデスクトップにブラウザがつないでも、すべてのセッションが本当に起動されることはなくなりました。 ワークスペースの復元は、プロセスを起動する代わりにプレースホルダーのカードを描きますが、その判断はデスクトップ側にしかありませんでした。ブラウザは相手から届いたレイアウトに従うだけで、「動いていない」と「動いているが、ここでは一度も開いていない」を区別できず、ターミナルをマウントしてしまいます――そしてマウントするとは、起動することです。他人のレイアウトに乗って現れた葉ノードは、その裏にプロセスが無いとバックエンドが答えた場合、プレースホルダーを描くようになりました。自分でセッションを開く操作は、これまでどおり起動する意思とみなします。また、いま見ているターミナルは、プロセスが終了してもカードに置き換わることはありません――そこに出力されたものを、まだ読みたいかもしれないからです。

  • 設定の変更が、ほかのクライアントにすぐ届きます。 正となる設定はもともとバックエンドが持っていましたが、変更しても誰にも知らせていなかったため、もう一方のクライアントが気づくのは次の起動時でした。リモート接続では、これは表示のずれでは済みません。片方のクライアントで「ステータスフィルターを動的に広げる」を切っても、別のクライアントが共有の一覧に行を足し続ければ何の意味もなく、ライブタブの上限が小さいクライアントが、ほかの全員の背後でバックグラウンドのタブを追い出してしまいます。設定を書き込むと、どのキーが変わったかを配信するようになり、各クライアントは起動時と同じ経路でそれを読み直します。したがって、保護された値をリモートの呼び出し元から隠すルールもそのまま働きます――配信されるのはキーの名前だけで、値は決して含まれません。これまで設定を送りも受け取りもしなかったスマートフォンも、この仕組みに加わりました。

  • ブラウザは、自分のレイアウトを復元する前にミラーされたレイアウトを待ちます。 リモートのウィンドウにはレイアウトの出どころが 2 つあります――自分の localStorage にあるものと、ミラーモードでホストから届くものです。そして先に着いた方が、後から来た方に上書きされていました。手元のものを先に描くと、ちらつき以上の代償があります。ターミナルの葉ノードをマウントすることは実際のプロセスを起動することなので、プロセスがすでに無いセッションについては、誰も見ることのない shell を起こしてしまいます。しかもそれは残り続けます。ブラウザはターミナルを終了させず、切り離すだけだからです。ブラウザは、最初の同期が落ち着くまで――最大 2 秒――何も復元せずに待つようになりました。バックエンドが遅い、あるいは届かない場合は、空のウィンドウのまま座り込むのではなく手元のレイアウトに戻ります。スマートフォンと、ミラーを切っているクライアントは、待たずにそのまま進みます。

リモートアクセス

  • SSH 接続で、自分が起動するサービスのミラーモードを有効にできます。 この切り替えはリモートアクセスパネルにありますが、SSH は向こう側のマシンで GUI なしのサービスを起動するため、そこにはクリックするパネルがありません。Option を押しながら "Connect remote" をクリックすると、SSH のフォームに "Mirror UI across clients" のチェックボックスが現れます(既定はオフです)。この値は接続とともに運ばれ、向こう側のマシンのデータベースには書かず、サービスのメモリ上に保持されます。リモートのデスクトップが持つデータベースをそのまま使う場合に、SSH 接続 1 回で誰かのパネルのスイッチが黙って切り替わるべきではないからです。選んだ内容はホストごとに記憶されるので、履歴から同じマシンを選べばそのまま復元されます。すでに動いているサービスを再利用する条件に、バージョンとデータの扱いに加えてミラーモードも一致することが必要になりました――3 つのうちどれかが違えば古いサービスは置き換えられ、その上で動いていたセッションは終わります。そのため、この項目はデータベースの切り替えと並んで Option の下に置いています。

  • ミラーされている側のクライアントは、そうと分かるようになりました。 追従している側では、タブや分割が勝手に並び替わるのに、その変化がどこから来たのかを説明するものが画面に何もありませんでした。タイトルバーに Mirrored のバッジが出るようになり、カーソルを乗せると説明が表示されます。ホスト側には出ません――スイッチを持っているのはそちらだからです。

  • 手元のマシンとターミナルが動いているマシンとの間でファイルをやり取りできるようになりました。 リモートアクセスでは相手側のファイルを見ることはできても、持ち帰る手段も置いてくる手段もなく、ターミナルでコマンドを打つしかありませんでした。ファイルパネルのコンテキストメニューにダウンロード、ヘッダーにアップロードが加わり、デスクトップからフォルダーの行へファイルをドラッグしても送れます。どちらの方向も他の機能と同じ認証済み接続を通るため、ローカルネットワークのブラウザーからでも、スマートフォンからでも、リモート接続ウィンドウからでも同じように使えます。転送は分割して進み、ツリーの下の一覧に進捗が出ます。別のパネルを見ている間も転送は続きます。ダウンロードはごく普通のダウンロードリンクで、処理はブラウザー自身のダウンロードマネージャーが行います。ディスクへ流し込みながら保存し、速度と残り時間を表示し、一時停止と再開もできます。ファイルの大きさを問わず、どのブラウザーでも、スマートフォンでも同じです。リンクにはそのファイル 1 つのために発行され数分で失効するチケットが載っています。このサーバーは資格情報をヘッダーで扱いますが、リンクをたどるブラウザーはヘッダーを送らないためです。アップロードはまず一時的な名前で書き込み、すべて転送し終えてから正式な名前に変更するので、途中で中断しても中途半端なファイルが残ることはありません。同名のファイルがすでにある場合は、転送を始める前に拒否します。アップロードは速度と残り時間を表示し、接続が切れても終わりにはなりません。失敗したブロックは間隔を空けながら約 1 分間再試行し、そのつど「一時ファイルが実際どこまで届いているか」をサーバーに尋ねます。すでに書き込まれたかもしれないブロックを送り直したりはしません。あきらめた場合もそのバイト列は残ります。同じファイルを同じフォルダーにもう一度ドラッグすれば続きから再開し、再読み込み後でも同じです。途中のファイルを捨てるのはキャンセルしたときだけです。

AI エージェント

  • Antigravity と Copilot のセッションが、最初のメッセージから名前を付けられるようになりました。 どちらも自動の名前付けから漏れていたため、サイドバーに「Antigravity 1, 2, 3」という行が並んでいました。Antigravity のフックイベントにはユーザーの文章がまったく含まれず、会話 ID とトランスクリプトのパスだけが入っているので、最初のメッセージはトランスクリプトから読み取るようにしました。その後ろに続くメタデータのかたまりは、タイトルには入れません。Copilot のイベントにはイベント名すら無く、形で見分けるしかないため、プロンプトがあってツール名が無い本文を送信とみなすようにしました。これで、セッションの起動時に渡すプロンプトやツールの呼び出しは、正しくタイトルから外れます。

  • Antigravity のセッションを開き直すと、履歴も一緒に戻ります。 再開には会話 ID が要りますが、起動引数からセッション ID を取り出すパーサーが Antigravity の書き方を認識していませんでした。そのため --conversation=<id> は指し示す先を持てず、開き直したセッションはすべて空の状態で立ち上がっていました。

  • vspawn --yes は、確認カードを出さずにセッションを起動します。 「起動前に確認する」を有効にしている人は、1 回の実行で生まれる子セッションのたびにカードをクリックして進める必要がありました。このフラグ――-y や --no-confirm とも書けます――は、その呼び出しに限ってカードを飛ばし、既定の設定でセッションを開始します。設定そのものは変えないので、次にフラグ無しで起動すればまた確認されます。

  • 子タスクのカードのモデル欄に、好きな文字列を入力できます。 これまでは普通のドロップダウンだったため、一覧にあるモデルしか選べませんでした。しかしエージェントが理解できる識別子はそれよりずっと多く、claude-opus-4-6 のような日付入りの名前、ベンダー名を前に付けた名前、手元で設定したエイリアスなどがあります。この欄はテキスト入力になり、既知のモデルは隣のドロップダウンにショートカットとしてぶら下がる形になりました。一覧はあくまで候補であって、許可リストではありません。入力した文字列がそのまま渡され、空欄なら --model 自体を付けず、一覧は入力に応じて絞り込まれ、独自の識別子でどれにも当たらなくなると畳まれます。

インターフェース

  • ドロップダウンを 1 つにまとめ、どこでもそれを使うようにしました。 アプリのあちこちにあるドロップダウンは、同じコードから十数回コピーされたあと、少しずつ食い違っていきました――パネルの背景が 3 種類、影が 4 種類、ホバーの色が 3 種類、トリガーの高さが 26・28・32 ピクセル、そして複数選択の一覧にしか要らないチェックが、選択中の行に付いていました。1 つのコンポーネントが、マージ時のブランチ選択、設定の言語・既定の shell・フォントの選択、エージェントの選択、worktree のダイアログ、新規セッションと復元したセッションのエージェント種別、そしてフォームのモーダルに最後まで残っていたネイティブの select を、まとめて支えるようになりました。あわせて、どれにも無かったキーボード操作も付きます――矢印キーで移動、Enter で決定、Escape で背後のダイアログを閉じずにドロップダウンだけを閉じ、Home と End で端まで飛べます。ステータスバーにある 2 つのメニューは従来どおりで、サイドバーのステータスフィルターはチェックを残しています。あちらは本当に複数選択だからです。

  • リモートアクセスパネルのパスワード欄を表示できます。 ただのパスワード入力欄だったため、入力した内容を目で確かめられませんでした。目のボタンは存在していましたが、接続パネル自身のファイルの中にしかありませんでした。どちらも 1 つのコンポーネントを共有するようになり、表示するかどうかはパネルを閉じるとリセットされます。

  • IP の選択欄が、システムのコントロールに見えなくなりました。 ネイティブの select だったため、WKWebView がシステム標準の見た目をかぶせ、暗いパネルの上では浮いていました――上で置き換えたドロップダウンとまったく同じ問題です。共有のコンポーネントを使うようになり、ラベルも "IP" だけに短くしました。隣の文章がすでに用途を説明しているからです。

修正

  • 更新の確認が、毎回きちんとサーバーに問い合わせるようになりました。 起動したままのクライアントは、最初に見つけたバージョンに固定されていました。0.1.101 を見つけたクライアントは、0.1.104 が出た後も 0.1.101 を案内し続け、「更新を確認」を押しても同じダイアログが開き直すだけでした。以前のコードが、通知がすでに出ている場合はそこで処理を打ち切っていたためです。確認のたびに本当のリクエストを送るようになりました。新しいバージョンが見つかれば画面の通知を差し替え、同じバージョンやダウンロード中の場合はそのままにし、サーバーが更新は無いと答えた場合は古くなった通知を取り下げます――そのバージョンが取り下げられたか、その間に自分で入れたか、どちらかだからです。「手動でダウンロード」のボタンは、ウェブサイトのダウンロードページを開くようになりました。これまではアップデーター自身のパッケージを渡していましたが、あれはその場で展開される形式で、手でインストールすることはできません。

  • ターミナルを素早く破棄したときに、全画面のエラー表示が出なくなりました。 xterm のビューポートは、生成されたときとリセットされたときにスクロール領域の同期を予約しますが、破棄の際にそのどちらも取り消しません。そのため、同じタスクの中で開いて閉じたターミナル――リモート接続の最中にセッションのツリーを組み直すと、まさにこれが起きます――でもそれらのコールバックが走り、すでに片付けられたレンダラーを見つけて例外を投げていました。この例外はタイマーの中から飛んでくるので、try/catch もエラーバウンダリーも届きません。そこで全体で捕まえたうえで、条件を狭く絞っています――スタックかメッセージにその同期処理の名前があり、あわせてレンダラーかその寸法への言及があるものだけを、無害なものとして飲み込み、リクエストのログに書き出します。本物のクラッシュは、これまでどおり全画面の表示を出します。

v0.1.104

最新情報

AI エージェント

  • 子タスクのカードに、各エージェントの実際のモデルと、そのエージェントが理解できる強度フラグが並ぶようになりました。 カードはどのエージェントに対しても --model と --effort で起動引数を組み立てていましたが、推論強度をその書き方で表すのは Claude・Kiro・Antigravity だけです――Grok と Zoo は --reasoning-effort、Cline は --thinking と呼びます。それ以外のエージェントで強度を選ぶと、CLI が見たこともないフラグを渡すことになり、セッションは起動に失敗していました。フラグ名も値も、各エージェントが自分で持ち寄るようになりました。モデルの選択欄は、各 CLI が答えられる範囲に従います。一覧を出せるもの(OpenCode、Grok、Crush、Antigravity、Cursor、pi、Kiro)には問い合わせて実際の一覧を並べ、決まった組を持つもの(Claude、Codex、Kimi Code)はその組を並べ、残りは期待される書き方の例を添えたテキスト入力欄になります。インストールされていない、あるいはサインインしていないエージェントは、いつまでも回り続けるのではなくその旨を表示します。「デフォルト」を選ぶと、古い値が残ったままになるのではなく、引き継いだ上書きが解除されるようになりました。強度を選んでも、親セッションから引き継いだモデルが外れることはありません。

  • Kimi Code のセッションから起動した子タスクは Kimi Code のままです。 親のエージェントを引き継ぐ際に参照する一覧から Kimi Code が漏れていたため、その子セッションは黙って既定のエージェントとして戻ってきていました。

ワークスペース

  • グループを作った後からでも worktree に移せます。 worktree はグループの作成時に選ぶきりで、それ以降は固定でした。考えを変えるには、グループを消して作り直すしかありませんでした。グループを右クリックして "Move to Worktree…" を選ぶと、新しい worktree を作る、既存のものを結びつける、すでに結びついているグループの向き先を変える、のいずれもできます。変わるのはグループ自身だけです。すでに中にあるセッションは作成時のディレクトリのままで――動作中のセッションを、その足元にある別のディレクトリへ移すことはできません――その後に作ったセッションが worktree で始まります。

  • ミラーモードがサイドバーのツリー全体を対象にするようになりました。 これまで共有していたのは選択状態と折りたたんだパネルだけで、検索ボックスとステータス・マーカーのフィルターは各クライアントの手元に留めていました。同期すると調べ物をしている人の邪魔になる、という考えからです。この理屈は逆でした。ミラーとは、両方のウィンドウが同じ状態を持つことであって、片方がもう片方のキー入力を再生することではありません――こちらで有効なフィルターは、あちらでも有効です。実際に人の邪魔をするのは、両側が違うツリーを表示していることの方です。サイドバーの表示は丸ごと相手に伝わるようになりました。分割レイアウト、それぞれの表示の名前、検索文字列、ステータスとマーカーのフィルター、そして各自の折りたたみ状態です。スナップショットの形式はバージョン 2 に上がり、古いバージョンのクライアントは 1 フレームの半分だけを適用するのではなくミラーを停止します。アップグレードをまたいで開いたままのウィンドウがあれば、再読み込みしてください。

インターフェース

  • macOS でウィンドウを閉じたときも、終了と同じ確認が出ます。 ⌘Q とメニュー項目はアプリ自身の確認を通っていましたが、赤い閉じるボタンはウィンドウをそのまま破棄していました――そのウィンドウこそ、確認ダイアログが載っている WebView です。そのため、確認がまったく出ないか、「ワークスペースを保存」のチェックボックスもなく文言も未翻訳の、簡素なネイティブの代替が出るかのどちらかでした。3 つのプラットフォームすべてで、答えるまでウィンドウを保持するようになりました。

  • 「ワークスペースを保存」が既定でオンになり、変えた設定はそのまま残ります。 レイアウトを失う方が、要らないスナップショットが 1 つ残るより高くつくので、チェックを入れた状態から始めます。この設定は忘れられることもありました。データベースへの書き込みが 400ms のデバウンスを挟んでいたため、終了がその間にプロセスを終わらせてしまい、次の起動で古い値と突き合わせて変更が元に戻っていたのです。書き込みは終了前に必ず流し込むようになりました。バックエンドが詰まっても確認ボタンが回り続けないよう、600ms の上限を設けています。(FarhadGSRX さんによる貢献です。)

  • リモート接続パネルのパスワードを表示できます。 URL のパスワードと SSH のパスワードのどちらにも目のボタンが付き、伏せ字と平文を切り替えられます。表示するかどうかはその入力欄だけの状態で、パネルを閉じるとリセットされるため、パスワードが画面に出たまま残ることはありません。

  • サイドバーのフィルターバッジが、有効なフィルターをすべて数えるようになりました。 マーカーのフィルターはボタンを光らせるだけで数に入っていなかったため、2 つ有効でもバッジが 1 と表示されることがありました。ステータスとマーカーを合わせて数え、ドロップダウンのチェックと一致するようになりました。ステータスのフィルターが 1 つだけのときは、これまでどおり色付きの点が出ます。

修正

  • macOS の自動更新がまた動くようになりました。 v0.1.103 のパッケージには AppleDouble の随伴エントリ(._VelaTerm.app)が入っていました。アップデーターはパスの先頭要素を取り除くため、これが空のパスになり、アーカイブの展開そのものを拒否していました。両方のアーキテクチャが影響を受けたので、v0.1.103 の macOS ユーザーは全員そこで足止めされていました。パッケージングがこれらのエントリを書き込まないようにしました。

  • アプリのテーマがシステムと違うときも、ネイティブのコントロールがアプリに合わせます。 テーマを適用してもアプリ自身の色が変わるだけで、color-scheme は更新されていませんでした。この値は起動時にシステムの設定から一度読まれるきりで、その後は変わらなかったため、ダークなシステムでライトなアプリを使うと、チェックボックス・ドロップダウン・スクロールバーがダークのままでした。(FarhadGSRX さんによる貢献です。)

  • クローンしたばかりのリポジトリがまたビルドできます。 Rust のクレートはコンパイル時に ../dist を埋め込みますが、dev コマンドはそれを生成しないため、クローンしたてのリポジトリは実行にたどり着く前にコンパイルで失敗していました。ビルドスクリプトが、無ければそのディレクトリを作るようにしました。(FarhadGSRX さんによる貢献です。)

v0.1.103

最新情報

修正

  • Windows で Codex セッションが起動拒否しなくなりました。 Codex セッションを開くたびに unexpected argument '--codex-hook' と表示されて即座に失敗していました。原因はライフサイクルフックの TOML テーブルがコマンドラインで渡される際にスペースとダブルクォートを含んでおり、npm でインストールされた codex.cmd が cmd.exe を通して再解析する過程でクォートが除去され、値がスペースで複数の引数に分割されるためです。Windows ではフック注入をスキップし、状態検出は既存の notify / screen / busy ヒューリスティックにフォールバックします。アイドル・ビジー状態は引き続き報告されますが、フックほど正確ではありません。macOS と Linux は影響を受けず、引き続きフックを使用します。

  • v0.1.102 の Windows IME プリエディット修正をロールバックしました。 中国語・日本語・韓国語入力のプリエディットオーバーレイを復元した修正が、同時に背景色、1px の枠線、角丸を追加していたため、入力中にターミナル内にプリエディットテキストを囲む小さなボックスが表示されるようになっていました——ターミナル内にこのようなボックスは表示されるべきではありません。オーバーレイのサイズ調整、ヘルパーコンテナのジオメトリ、textarea のクリーンアップが相互依存しているため、変更全体をロールバックする必要がありました。Windows で CJK をブラインド入力する問題は未解決のまま issue #6 で追跡中です。

v0.1.102

最新情報

AI エージェント

  • エージェントプリセット――互換性のある CLI を並べて使えます。 これまでエージェントの種類は 1 つの実行ファイルに固定されていたため、フォーク版やナイトリービルド、同じプロトコルを話す別の CLI を追加する手立てがありませんでした。既存の種類の起動引数を書き換えるしかなく、そうすると元の設定は失われます。プリセットは実行ファイル・アイコン・起動引数を自分で持つようになり、新規セッションのメニューに組み込みの種類と並んで表示されます。セッションはどのプリセットから作られたかを記録するため、フォークしても同じ実行ファイルが使われます。デスクトップで作ったプリセットは、ペアリング済みのブラウザやリモートクライアントにもアイコンごと現れます。アイコンは 1 台のマシン上のパスではなくデータとして送られるからです。既存のセッションには手を触れません。以前のバージョンのデータベースも、これまでとまったく同じように起動します。

  • 子タスクの確認カードでモデルと推論強度を選べるようになり、どれか 1 つで答えれば全体に反映されます。 エージェントが子タスクの起動を求めてきたとき、確認カードにモデルの選択と――エージェントが対応していれば――推論強度の選択が並ぶようになりました。どちらも親セッション自身の起動引数から埋まっているので、ふだんはクリック 1 回で済みます。カードのエージェントを切り替えると両方を導出し直すため、ある CLI のモデル名が別の CLI のコマンドラインに紛れ込むことはなくなりました。カードは接続中のすべてのクライアントに表示され、どれか 1 つで答えると残りからは消えます。最初の回答がサーバー側でそのタスクを確保するため、スマートフォンとデスクトップで同じ 1 秒のうちに確認しても、worktree と子セッションは 2 つではなく 1 つだけ作られます。

ワークスペース

  • ミラーモード――すべてのクライアントで同じレイアウトを共有します。 ターミナルの出力はもともと共有されていました(PTY は 1 つ、バイトストリームも 1 本です)。しかしその周りの配置は各クライアントのブラウザストレージにしかなく、LAN 経由で開いたブラウザは自分だけのタブと分割を表示し、片方の画面を並べ替えても、もう片方は何も変わりませんでした。ミラーモードを有効にすると、タブ、分割、アクティブなセッション、サイドバーの選択、折りたたんだパネルがすべてのクライアントに配信され、全員がそれに追従します。切り替えはホスト側のリモートアクセスパネルで操作します。どちら側で並べ替えても相手に反映されます。このウィンドウのレイアウトから外れたセッションは、終了ではなく切り離されるため、相手に追従したせいで誰かのプロセスが止まることはありません。相手のレイアウトを適用しても、手元で入力している人からキーボードを奪うことはありません。スマートフォンはこの対象外です。スマートフォンの 2 階層ナビゲーションはそもそも形の違う UI で、デスクトップの分割ツリーをそのまま持ち込んでも誰の役にも立ちません。

  • 右サイドバーの Git タブが、実用的な Git クライアントになりました。 これまでは変更されたファイルを一覧するだけでした。今はファイル単位でもグループ単位でもステージング・ステージ解除ができ、変更の破棄、コミットの作成(amend にも対応)、コミット履歴と各コミットのファイル・差分の表示までこなします。一覧はステージ済み・変更あり・未追跡・コミット済みのセクションに分かれ、それぞれ折りたためます。パスはリポジトリのルートを基準に扱うようになったため、サブディレクトリで開いたセッションでも表示どおりのファイルが対象になり、detached HEAD の状態は HEAD という名前のブランチとしてではなく、そのまま detached HEAD と表示されます。

インターフェース

  • ⌘Q でも、ウィンドウを閉じたときと同じ確認が出ます。 アプリケーションメニューの終了項目はシステム標準のもので、プロセスをそのまま終了させていました。そのため ⌘Q を押すと、閉じるボタンでは表示される「ワークスペースを保存しますか」の確認が飛ばされ、同じつもりの操作が、やり方によって違う結果になっていました。どちらの経路も 1 つの確認を通るようになりました。確認を表示するウィンドウがその間に再読み込みされたりクラッシュしたりしていた場合は、もう一度 ⌘Q を押すと確認をやり直し、それでも駄目ならネイティブのダイアログに切り替えます。アプリが終了できなくなることはありません。

  • ショートカットの表示が、実際に効くキーと一致するようになりました。 既定のキーはプラットフォームごとに違い、ブラウザは ⌘/Ctrl と文字の組み合わせを自分のために予約しています――⌘D はブックマーク、⌘T は新しいタブ。そのため macOS では、VelaTerm を URL で開くとアプリ自身の ⌘ ショートカットがページまで届きませんでした。通常のブラウザタブでは、どの OS でも Ctrl+Alt の割り当てを使うようになり、デスクトップアプリとリモート接続ウィンドウは ⌘ のままです。ツールチップと空のタブに出るヒントは、ハードコードされた ⌘ の組み合わせではなく、実際に有効な割り当て――自分で変更したものも含めて――を表示します。ターミナルが遮るのはアプリが実際に使っている組み合わせだけなので、操作の割り当てを変えれば、そのキーの扱いも一緒に移ります。

  • フォントのプリセットが Nerd Font と CJK に対応し、インストールされていないフォントを指定するとその旨が表示されます。 プリセット一覧に、よく使われる Nerd Font と CJK のフォントファミリーが加わりました。手で入力したフォント名はそのまま表示したうえで確認され、システムに存在しない場合は、指定とは似ても似つかない既定のフォントに黙って戻すのではなく、設定ページにその旨が表示されます。

  • macOS のテキスト入力欄が、入力した文字を勝手に大文字化・修正しなくなりました。 システムの自動大文字化・自動修正・スペルチェックがアプリ内のすべての入力欄に効いていて、セッション名やコマンドの入力欄でも「npm」が「Npm」になっていました。すべての入力欄でこれらを無効にしました。

Windows

  • 中国語・日本語・韓国語の入力で、変換中の文字と候補ウィンドウがまた表示されるようになりました。 どちらも見えない状態で、手探りで入力して Enter を押すまで結果が分かりませんでした。原因は自分たちの CSS 2 か所です。変換中の文字を載せるオーバーレイの入れ物が幅ゼロに潰れており、オーバーレイの right はその中でどこも指さない値になっていました。候補ウィンドウは OS がオーバーレイの矩形を基準に位置を決めるため、これに巻き込まれていました。オーバーレイはふたたび描画され、アプリのテーマの色が付くようになりました。その土台になっている見えない入力要素も、変換が終わると領域を手放すため、その部分をクリックしたりドラッグしたりしても、これまでのように空の要素に覆われることなく、ターミナルまで届きます。

  • ネイティブのタイトルバーがライト/ダークの設定に追従します。 このアプリはシステムのタイトルバーをそのまま使いますが、Windows は指示がない限りタイトルバーをライトで描くため、ダークの画面の上に白い帯が乗っていました。タイトルバーがアプリの見た目に合うようになり、SSH やリモート接続のウィンドウなど、後から開くウィンドウにも適用されます。「システムに合わせる」を選んだ場合は、値を固定せず OS に制御を戻します。

  • 起動直後に現れる小さな四角が出なくなりました。 多重起動を防ぐプラグインが隠しメッセージウィンドウを作りますが、そのスタイルが約束している透明化を実際には行っていませんでした。そのため Windows がサイズゼロのウィンドウを最小サイズまで広げ、起動中に小さな四角を描くことがありました。これを正しく透明にしました。多重起動の防止そのものの動作は変わりません。

パフォーマンス

  • リモートアクセスの初回表示までの読み込みが大幅に減りました。 静的アセットは必要に応じて圧縮して配信し、キャッシュ検証用の情報を付けるようになったため、2 回目以降のアクセスは再ダウンロードではなく再検証で済みます。言語パックとターミナルのオプション扱いのレンダラーも、最初の転送に含めるのをやめ、必要になったときだけ読み込むようにしました。あわせて、初回の転送量はおよそ 5 分の 1 になりました。

修正

  • 起動された子セッションが、依頼元のセッションと同じ条件で始まるようになりました。 子セッションは親の権限モードも起動引数も引き継いでいなかったため、確認をスキップして動いているセッションの子が確認を求めてきたり、親で指定していたモデルが外れたりしていました。どちらも引き継ぐようになり、指定がなければそのエージェント種別の全体設定――「新しいエージェントセッション」のメニューが使うのと同じもの――にフォールバックします。

  • リモートウィンドウの再接続で「認証に失敗しました」と誤って表示されなくなりました。 ウィンドウが再接続する際、新しい WebSocket と置き換えられる側の WebSocket が競合し、負けた方の後始末が認証の失敗として報告されていました。その結果、まったく正常なペアリングが拒否されたかのようなバナーが出ていました。

  • グループを自分自身の配下へドラッグできなくなりました。 グループを自分の子孫の 1 つにドロップすると、その枝がまるごとツリーから外れ、中のセッションがサイドバーから消えて、データベースを手で修復するまで戻りませんでした。この移動は拒否されるようになりました。

  • 他のツールから起動しても、エージェントの出力の色が保たれます。 ターミナルは自分を起動したプロセスの環境を引き継ぐため、NO_COLOR、CI、FORCE_COLOR=0 を export する IDE やエージェントの実行環境から起動すると、ターミナル自身はフルカラーを名乗っているのに、VelaTerm の中のエージェント TUI がすべて白黒で表示されていました。セッションの開始時に、引き継いだこれらの値を取り除くようにしました。自分の shell の設定ファイルで export した同じ変数はこれまでどおり効きます。その設定ファイルはセッションの中で実行されるからです。

v0.1.101

最新情報

リモートアクセス

  • 共有リンクが使うアドレスを選択できるようになりました――Tailscale アドレスも表示されます。 アドレスリストは従来のプライベート IPv4 レンジのみを受け入れていたため、キャリアグレード NAT レンジ(100.64.0.0/10)からアドレスを割り当てる Tailscale のような VPN メッシュは、サーバーがすでにそれらを通じて到達可能であったにもかかわらず、リモートアクセスパネルとペアリングリンクから黙って除外されていました。これらのアドレスが表示されるようになり、VPN トンネルはデフォルトにならないよう最後にランクされます。パネルの新しい IP セレクター(開始前と実行中の両方で表示)は、各候補をインターフェース名とともにリストし、VPN トンネルをマークします。1 つを選ぶとその URL が先頭に移動し、正確にそのホストでペアリングリンクが再生成されるため、コピーしたリンクは VPN 経由でしかこのマシンに到達できないデバイスでも、URL を手動で編集することなく動作します。ペアリングリンクの下の QR コードはスマートフォンで直接スキャンできます。選択は記憶されます。選択したインターフェースが消えた場合、パネルは選択を忘れずに自動にフォールバックします。サーバー自体は変更されず、すべてのインターフェースでリッスンを続けます。サーバー起動後に現れたアドレス(後から接続した VPN など)を選択すると、次の再起動までペアリングリンクだけが追従するのではなく、コピーされる URL と QR コードも即座に更新されるようになりました。VPN トンネルはすべてのプラットフォームで LAN アドレスの後にランクされ、サーバーが停止中に選んだアドレスは開始後の最初のペアリングリンクに使用され、重複するリンク再生成が新しいリンクを古いリンクで上書きすることもなくなりました。

  • 共有が再起動後も持続します。 ペアリングトークンはサーバーの起動ごとに再生成されていたため、VelaTerm を閉じて再度開くと共有リンクがすべて無効になり、すべてのスマートフォンを再ペアリングする必要がありました。トークン、ペアリング済みデバイス、デバイスブロックリストがデータディレクトリのオーナー専用ファイルに保存されるようになりました。以前にペアリングしたデバイスは再起動後も保存された URL で再接続でき(アクセスパスワードは必要な第 2 要素のまま)、取り消されたデバイスは取り消されたままです。VelaTerm は共有がオンであったことも記憶します。サーバー実行中に終了すると、次回起動時に同じポートで再開されます(デスクトップアプリでも --serve のヘッドレスサーバーでも同様)。自分で停止した場合は何も自動的に開始されません。ポートが使用中などで自動開始が失敗しても、アプリは正常に起動し、リモートアクセスパネルに理由が表示されます。ポートフィールドはデフォルトにリセットされるのではなく、実際に使用したポートを記憶するようになりました。「リンクを再生成」は明示的なキルスイッチのままです。即座に新しいトークンを発行し、すべての古いリンクを無効化し、保存された状態を上書きします。アクセスパスワード自体はディスクに書き込まれません。保存されるのはメモリハードハッシュ(Argon2id)のみです。

セキュリティ

  • ペアリングされたデバイスが共有自体を管理できなくなりました。 ペアリングされたブラウザはデスクトップアプリと同じ管理コマンドを呼び出せました――新しいペアリングリンクの作成(デバイスブロックリストもクリア)、他のデバイスのリストと取り消し、サーバーの停止と再設定。設定ストアはアクセスパスワードのメモリハードハッシュや次回起動時に読み込まれる自動開始設定を含む完全な設定マップをすべてのクライアントに渡していました。管理コマンドはデスクトップアプリと Electron シェル専用になりました。設定 API はペアリングされたデバイスからの読み取りでリモートアクセスキーと Gitea トークンをフィルタリングし、書き込みを拒否します。ペアリングされたデバイスはペアリングの目的――ターミナルセッションとフルシェルアクセス――を維持しますが、パスワード検証値の読み取り、他のデバイスの招待・追放、次回起動で使用するポートのリダイレクトはできなくなりました。保存されたシークレットの読み取り・書き込み・削除コマンド――Gitea トークンと記憶されたホストパスワード――もペアリングされたデバイスでは拒否されます。パスを受け取るコマンド――読み取り、プレビュー、書き込み、作成、名前変更、削除、ファイルの git diff の表示、リポジトリのクローン先フォルダの選択――はシンボリックリンクを先に解決し、ペアリング状態とキーが格納されている VelaTerm 自身のデータディレクトリ内のパスを拒否します。他のすべてのパスは機能し続けるため、リモートのファイルブラウジングと編集は維持されます。テストがパスを受け取るすべてのリモートコマンドを列挙するため、新しいコマンドがこのチェックを気づかれずにすり抜けることはできません。これらの保護がリクエストを拒否した場合、ブラウザは生の英語エラーではなく適切に翻訳されたメッセージを表示するようになりました。

  • デバイスの取り消しやリンクの再生成がデュアルインスタンス構成でも持続するようになりました。 自動開始が有効なヘッドレス --serve サーバーでは、2 つのサーバーインスタンスがそれぞれ保存されたペアリング状態のコピーを保持し、全体を書き戻していました。一方で行われた取り消しや新しいペアリングリンクが、もう一方によって黙って元に戻される可能性がありました。1 つのプロセス内のすべてのインスタンスがデータディレクトリごとに 1 つのペアリング状態を共有するようになりました。取り消しとローテーションはすべての場所で即座に有効になり、ファイルへの書き込みは 1 か所だけが行います。ファイルは実際の再起動をまたいでも真のソースであり続けます。

  • 繰り返しの失敗ログインがスロットルされます。 アクセスパスワードのチェックには意図的に高コストな Argon2id を使用しており、ポートに到達できる誰もが試行できます。1 つのアドレスから 5 回失敗すると、それ以降の試行はハッシュ作業が始まる前に 1 分間拒否されます。ハッシュ計算自体もサーバーのイベントループの外で実行されるようになり、同時検証数にハードキャップがあります。誤ったパスワードの洪水がメモリハードハッシュでサーバーを飽和させたり、接続済みデバイスを遅くしたりすることはできなくなりました。スロットルはメモリ内に存在し、サーバーの再起動でリセットされます。ペアリングトークンとパスワードが実際のバリアのままです。この制限は同じデータディレクトリを使用するすべてのサーバーインスタンスで共有されるようになったため、--serve デュアルインスタンス構成で試行回数が倍になることはなくなりました。パスワードチェックが始まる前に試行が予約されるため、1 つのアドレスからの並行リクエストが制限をすり抜けることもできません。スロットルされたブラウザには、パスワードが間違っているというメッセージではなく、ログイン画面に専用のレート制限メッセージが表示されるようになりました。スロットルはもはや間違ったパスワードのようには記憶されません。一時停止が終われば、ページをリロードせずに次の試行が再び処理されます。途中で中断された試行――パスワードチェック中にタブが閉じられた場合――は、残りの 1 分間アドレスにカウントされ続けるのではなく、予約されたスロットを即座に解放するようになりました。ログイン成功はアドレスの全記録をクリアするのではなく、自分の予約のみを解放します。共有ネットワークアドレスの背後では、1 人が正しくサインインしても攻撃者の試行予算はリセットされず、記録された失敗はその 1 分とともにのみ期限切れになります。

  • ディスクとログのシークレットがより慎重に扱われるようになりました。 ペアリング状態のファイルとエンドツーエンド暗号化キーは、最初の書き込み後に制限するのではなく、最初からオーナーのみ読み取り可能で作成されるようになりました。パスワードハッシュを保持するセッションデータベースもオーナーに制限されます。ヘッドレス --serve はペアリングリンクの長期間有効なシークレットをログに出力しなくなりました。出力がターミナルでない場合、リンクは隠され、代わりにヒントが表示されます。--print-pairing で明示的にオプトバックできます。デバイスレジストリは名前の長さが制限された 32 エントリに上限が設定され、ペアリングされたクライアントが保存ファイルを際限なく成長させることはできなくなりました。取り消しや新しいペアリングリンクの保存が失敗した場合、エラーはログ行ではなく呼び出し元に届くようになりました。自動開始は手動で開始されたサーバーを置き換えなくなり、古い自動開始エラーは自分でサーバーを停止すると消えます。

修正

  • Electron シェルからペアリングを管理できるようになりました。 ペアリングリンクの作成、ペアリング済みデバイスの一覧表示、デバイスの取り消しはデスクトップ(Tauri)コマンドとしてのみ存在していました。Electron シェルとブラウザクライアントが使用する WebSocket ディスパッチャーは「Unknown command」と応答し、リモートアクセスパネルがそこでは動作しませんでした。3 つのコマンドすべてが両方のトランスポートで同じコア関数を通るようになったため、2 つが乖離することはなくなりました。リグレッションテストが新しいディスパッチルートをカバーしています――実行中のローカルサーバーに対する実際のペアリングリンク作成を含みます。

v0.1.100

最新情報

AI エージェント

  • Kiro CLI がファーストクラスのセッションタイプになりました。 Kiro セッションはツリー内に独自のノードを持ち、Kiro 自身のライフサイクルフックによって駆動される正確な Working/Waiting ステータスドット、ターンが終了したときの通知、ノードを再度開いたときの同じ会話の自動再開、起動引数と確認スキップトグル、vspawn を通じたスポーンを得ました――他のエージェントが既に持っていたすべてです。VelaTerm はデフォルトの Kiro エージェントを独自の vlx-term エージェントにクローンし、コピーに observe-only のライフサイクルフックを追加してそれを起動します。ユーザー自身のエージェントファイルは編集されず、プロンプト・ツール・MCP サーバーはそのまま引き継がれます。Kiro にはパーミッションリクエストフックがないため、承認を待っている間もドットは Working のまま表示されます。

修正

  • ターミナルから起動したプログラムが AppImage 自身の環境を引き継がなくなりました(Linux)。 AppImage ランチャーは PYTHONHOME、PYTHONPATH、PERLLIB、QT_PLUGIN_PATH、GStreamer プラグインパスをバンドルの一時マウントディレクトリに向け、PATH と LD_LIBRARY_PATH の先頭にバンドルディレクトリを置いていました。ターミナルは環境全体を起動するシェルに渡すため、システムの python3 がバンドル内で標準ライブラリを探して実行を拒否し、他の動的リンクされたプログラムもシステムのものよりバンドルのライブラリコピーを優先して読み込んでいました。VelaTerm はシェルや外部ツールを起動する前にこれらのバンドルパスを除去するようになり、ユーザーが自分で設定した値はそのまま残ります。APPDIR と APPIMAGE は引き続き見えるため、AppImage から実行されているかどうかをチェックするプログラムは引き続き答えを得られます。AppImage ビルドのみが影響を受けました。deb パッケージ、macOS、Windows は以前と同じ動作です。

v0.1.99

最新情報

ターミナル

  • Shift+Enter が送信ではなく改行を入力するようになりました。 ターミナルには修飾キー付き Enter のエンコーディングがないため、Claude Code や Codex のようなエージェント CLI はプレーンなキャリッジリターンを受信し、まだ書いている途中でプロンプトが送信されていました。VelaTerm は ESC+CR を発行するようになりました。これらのツールが iTerm2 のキーマッピングから期待するのと同じシーケンスであるため、複数行のプロンプトが機能するようになりました――カスタムキーハンドラーが以前はまったくインストールされていなかった macOS を含みます。入力メソッドでのコンポジション中はそのまま残されるため、Enter は引き続き候補ワードを確定します。

プロジェクトと整理

  • 単一セッションのステータスを更新できます。 ステータスフィルタリングされたペインのセッションに Refresh status アクションが追加され、そのペイン自身の条件に対してそのセッションのみを再評価し、追加または削除しながら他のすべてのセッションはそのまま維持します。アクションはメニューが開かれたペインに属するため、再帰的な分割が別のペインのフィルターを借用することはなく、結果はペインごとに保存され、再起動後に復元されます。
  • マークのクリアが 1 クリックで済みます。 既に適用されている絵文字を選択すると削除されるようになったため、マークをクリアするための別のエントリとそのディバイダーがなくなりました。フィルターボタンも絵文字バッジをドロップしました:ハイライトがマークフィルターがアクティブであることを既に示しており、メニューがどのマークかを示します。

修正

  • Linux AppImage のデスクトップ統合がどのマシンでもインストールできるようになりました。 バンドルされたアイコンがビルドマシン上の絶対パスへのシンボリックリンクだったため、アプリケーション自体は正常に実行されるのに、Gear Lever や AppImageLauncher などのツールがアイコンの抽出に失敗していました。リンクは相対パスになりました。公開された glibc 要件も、実行ファイルだけでなくバンドルされたライブラリを測定した結果 2.35 に修正され、デスクトップアプリケーションでサポートされる最も古いリリースは Ubuntu 22.04 になりました。

v0.1.98

最新情報

AI エージェント

  • Grok Build が VelaTerm の第一級エージェントになりました。 Grok 4.5 のインストール、起動、再開に対応しました。安定したセッション ID、公式 lifecycle hooks、正確な作業・権限状態、統合されたトランスクリプト、使用量の詳細、テーマに追従する公式アイコンが、デスクトップ、ブラウザ、モバイルの各画面で一貫して機能します。

プロジェクトと整理

  • プロジェクトサイドバーを独立した作業ビューに分割。 どのツリーペインもさらに下方向へ分割でき、ペインごとの検索、状態・絵文字フィルター、折りたたみ状態、分割比率が再起動後も復元されます。すべてのペインはバックエンドが管理する同じプロジェクトツリーの投影なので、データを重複させずに編集内容が同期されます。
  • コンテキストを保ったままノードをマークして絞り込み。 プロジェクト、グループ、セッションに絵文字マーカーを付けられます。マークされたコンテナはサブツリー全体を表示し、作業中も状態メンバーは安定して維持されます。動的追加と手動更新の両方に対応し、状態と絵文字の条件は和集合として結合されます。
  • 空のプロジェクトをその場で作成。 親ディレクトリを選び、名前を検証して、フォルダーの作成とインポートを一つの流れで完了できます。途中でインポートに失敗しても、重複したディレクトリを作らずインポートだけを再試行します。

インターフェース

  • コミュニティが集まる場所へ VelaTerm を共有。 共有ダイアログは WeChat Moments、Weibo、Xiaohongshu、X、Reddit、Hacker News、LinkedIn、Facebook、Telegram、WhatsApp に対応しました。WeChat には QR コードの手順を用意し、更新ダイアログにも共有案内を追加しました。
  • 細かな操作をより快適に。 一時ターミナルのタブは保存済みセッションにする前でも名前を変更できます。通常の入力欄ではモバイルキーボードの自動大文字化を無効にしつつ、ターミナル入力の動作は変えません。

v0.1.97

最新情報

AI エージェント

  • セッションが「作業中」のまま止まらなくなりました。 Codex はツールの動作とターンの終了をそれぞれ独立した短命プロセスから通知するため、コールバックの到着順が入れ替わり、終了済みのターンが作業中のまま表示されることがありました。自分のターンが終わった後に届いた途中経過の通知を破棄し、さらにセッション終了 hook を追加して、完了イベントを出さずに終了したセッションにも対応します。
  • 中断されたターンが数秒で正常化。 Esc を押した場合やストリームのエラーが発生した場合、Claude と Codex のターンは完了コールバックをまったく送りません。ターミナルの無出力が 6 秒続くと、そうしたセッションを静かに待機中へ修正し、「返信あり」の通知は出しません。

インターフェース

  • macOS で分割ショートカットが確実に動作。 右に分割(Cmd+D)と下に分割(Cmd+Shift+D)をネイティブの Terminal メニューコマンドとしても登録したため、macOS が VelaTerm より先にキー入力を横取りすることはなくなりました。
  • 1 回のキー操作で保存は 1 回だけ。 Cmd+S はグローバルショートカットとフォーカス中のエディタの両方で処理されており、1 回の押下で同じファイルに 2 回書き込むことがありました。

v0.1.96

最新情報

AI エージェント

  • Codex の状態はターミナルの推測ではなく lifecycle hooks を信頼。 新しい Codex セッションでは、公式 lifecycle hooks だけをアクティビティ状態の情報源として使用します。SessionStart ハンドシェイクで連携を確認し、コールバックがない場合は「ステータス取得不可」と表示します。ターミナルの文字列や出力アクティビティが、作業中・要確認・完了の状態を上書きすることもありません。
  • 各ターン後の Codex 使用量をより迅速に更新。 Info パネルはローカルの rollout スナップショットをすぐに表示し、ライブのレート制限と照合します。Codex が最終 token スナップショットを書き込んだ後にも再取得し、以前のセッションから遅れて届いた応答は無視します。

インターフェース

  • macOS でプロジェクトツリーを正確に操作。 仮想行でコンポジタの transform を使わないようにし、スクロールやツリー更新後に WKWebView の古いヒットテスト座標によって、ホバー・クリック・ドラッグが別の行へ送られる問題を防ぎました。

v0.1.95

最新情報

AI エージェント

  • Kimi Code と Zoo Code がセッションツリーに追加。 両エージェントの起動、再開、インストール、設定に対応しました。Kimi は公式 lifecycle hooks で作業中・権限確認・待機状態を正確に報告し、Zoo Code は安定したタスク ID とターミナル検出を利用します。
  • Codex 使用量をリアルタイム更新。 Info パネルから Codex app server に現在のレート制限を問い合わせ、失敗時はローカル rollout スナップショットへフォールバックします。

プロジェクトとターミナル

  • vela <path> でプロジェクトを開く。 パッケージ版で VS Code 風のシェルコマンドをインストールできます。2 回目の起動は重複ウィンドウを作らず、既存の VelaTerm にプロジェクトを渡します。
  • 進捗表示とキャンセルに対応した Git clone。 Git の段階、進捗率、経過時間を表示し、停滞を警告します。キャンセル時は Git のプロセスツリー全体と未完成ディレクトリを安全に片付け、エラーや監査ログから認証情報と query token を除去します。
  • Windows の WSL ターミナル。 インストール済みの WSL ディストリビューションを検出し、PowerShell、cmd、Git Bash と並べて通常のターミナルで選択できます。エージェントは hooks と実行パスの信頼性を保つため Windows ホスト shell を使います。

インターフェースと信頼性

  • バックグラウンドセッションをより明確に管理。 メニューに各セッションの状態を表示し、上限超過ダイアログでは複数タブをまとめて終了できます。
  • 安全な終了と多言語更新ノート。 実行中セッションを停止する前に終了確認を表示し、Codex lifecycle の正確な ID を優先します。自動更新ノートは全組み込み言語に対応しました。

v0.1.94

最新情報

ローカライゼーション

  • ベトナム語インターフェース. 言語選択肢に「Tiếng Việt」が追加され、ベトナム語のシステムロケールでは自動的に選択されるようになりました。

ブラウザ

  • 内蔵ブラウザの起動が高速化. すべてのブラウザタブに、ChatGPT、Claude、Gemini、Googleへのワンクリックショートカットが用意されています。プロジェクトやグループのコンテキストメニューからも、セッションツリーの該当部分に直接永続的なブラウザページを作成できます。

画像と文書

  • macOSでの信頼性の高い画像パスの貼り付け. WebKitがコピーされた画像をファイルとして提供しない場合でも、VelaTermはネイティブクリップボードから画像を読み取り、エージェントのネイティブ画像プレースホルダーに自動的に渡されることなく、引き続きファイルパスとしてアップロードします。リモートウィンドウでは常に画像貼り付け設定が表示され、ファイルパスモードが必要な理由が説明され、利用できないネイティブオプションは無効化されます。

  • ソース文書に画像を貼り付ける. ソースエディターがクリップボードの画像を受け付けるようになりました。保存されたMarkdown文書はassets/の下にその画像を文書と一緒に保存し、移植可能なMarkdown画像構文を挿入します。未保存のドラフトでは画像データが埋め込まれるため、一時ファイルが削除されても画像が失われることはありません。

インターフェース

  • コンテキストメニューが常に表示され、適切な項目がターゲットになる. 右端付近で開かれるメニューは正しく位置合わせされます。ツリーノードを右クリックすると、既存の選択内容を変更せずにメニューターゲットのみがハイライトされ、グループメニューにはそのグループ専用のターミナルが含まれます。

  • よりクリーンな編集機能とステータスラベル. ソーステキストではHTMLコメントなどのシーケンスに対してもう矢印のようなフォントリガチャが表示されなくなり、使用率は明示的に「used」とラベル付けされます。また、ホストのWebViewの関係のないネイティブコンテキストメニューがVelaTerm自身のメニューの後ろに表示されることもなくなりました。

修正事項

  • Codexが通常のターミナル履歴に残る. VelaTermによって起動されるCodexセッションではインラインターミナルモードが使用されるため、Escキーで中断や一時停止を行ってもターミナル画面のバッファが切り替わったり、スクロールバックビューポートが上に移動したりすることはありません。ユーザーのCodex設定はそのまま保持されます。

v0.1.93

最新情報

アップデート

  • インストールする前に変更点を確認できる. 新しいバージョンが利用可能になると、ステータスバーのチップと専用ダイアログでそのバージョンのリリースノートが表示されます。今すぐアップデートする、このバージョンをスキップする、バックグラウンドで引き続きダウンロードする、またはインストーラーダウンロードを手動で開くこともできます。進行状況はリアルタイムで表示され、アプリは終了まで再起動します。複数のバージョンをスキップした場合、最新版のみでなく、その間のすべてのバージョンのノートが一緒に表示されます。

AIエージェント

  • Codexのセッション名はユーザーが自分で設定します. Codexセッションは、最初のメッセージを送信した瞬間から名前が変更されます。これは既存のClaudeセッションと同じ仕組みで、そのためツリーに「Codex 1」や「Codex 2」といった名前が増え続けることはありません。手動で設定した名前は決して上書きされません。

  • vspawnおよびvopenは現在Codexでも動作します. 標準搭載のvspawn、vspawn-tree、vopenスキルは、Claudeのスキルディレクトリに加えてCodexのスキルディレクトリにもインストールされるため、$vspawn <task>や$vopen <file>もCodexセッションから利用できます。

  • より信頼性の高いCodexの再開機能. 後で再開するためにCodex会話を保存する際、もはや固定のタイマーに縛られることはなく、最初のメッセージを入力する前に一時停止しても問題なく動作します。また、同じフォルダ内で起動された2つのCodexセッションが互いの会話に結びつくこともなくなります。

  • Codexでのモデルおよびコンテキストの使用状況. Infoパネルでは、Claudeと同様に、Codexセッションにおける現在のモデル、コンテキストウィンドウの使用状況、および実行中のツールが、セッションの実行状況からリアルタイムで表示されます。

リモートおよびターミナル

  • 再設計されたリモートファイルブラウザ. リモートセッション用のディレクトリ選択機能には、入力中の検索、~を使ったパスへのジャンプ、Up / Home / Recentによるナビゲーション、およびインラインの新規フォルダ作成機能が追加されています。

  • リンクはユーザーのマシンで開きます. ターミナル内のリンク——エージェントのログインリンクを含む——をクリックすると、リモートウィンドウからでもユーザーのローカルブラウザで開きます。

  • **「リモートデータベースの再利用」オプションは隠れた場所にあります.**このオプションは「リモートに接続」をOption/Altキーを押しながらクリックしたときにのみ表示され、通常のクリックでは常に独立したデータベースに接続されます。

修正済み

  • **Dockから起動するとツールが見つかります.**DockやFinderからVelaTermを起動しても、もはや簡略化されたPATHの状態にはならず、エージェントが依存するgitやその他のHomebrewでインストールされたツールも正しく配置されます。

  • **新しいターミナルは正しいフォルダ内で開きます.**サイドバーのプロジェクトやグループからターミナルを作成すると、以前は最後に使用していたセッションのフォルダが再利用されていましたが、今ではそのノードのディレクトリ内で開かれます。

v0.1.92

最新情報

修正済み

  • **偽の「SSHリンクが失われました」という警告が出なくなりました.**以前は、ポートフォワーディングの子プロセスが終了すると、トンネルモニターがそれをリンクの切断とみなし、赤いバナーを表示してトンネルを再構築していました。しかし実際にはフォワーディングリスナーはControlMasterプロセス内に存在するため、子プロセスが終了してもフォワーディングは引き続き動作します。UIがリンクが切断されたと表示している間もターミナルは正常に使用可能であり、再構築を行うと不要に正常な接続が破壊されてしまいます。

現在ではリンクのチェックは2段階で行われます。子プロセスが終了したときに、まずVelaTermローカルのフォワーディングポートにまだリスナーがいるかどうかを確認します。リスナーが存在する場合は何も起こりません。ポートもなくなった場合のみ、リンクが切断されたとみなして再構築が行われます。また赤いバナーの表示も遅延処理が施され、最初の再構築試行が失敗した後にのみ表示されるようになったため、数秒以内に回復する一時的な不具合でも警告が表示されなくなりました。

真の切断でも自動的に復旧します。ControlMasterプロセスが終了したり、ネットワークが長時間途切れたりしても、トンネルは自動的に再構築されます。再試行回数が尽きるとバナーが「SSH link is down」に切り替わり、Reconnect nowでセッションが復元され、リモートプロセスは引き続き実行されていて中断したところから再開されます。

v0.1.91

最新情報

**最初の公開リリース.**このバージョンには以下のすべてが含まれています。

AIエージェントを第一級の存在として扱う

  • 9種類のエージェントに対する組み込みサポート — Claude Code、Codex、OpenCode、Copilot CLI、Cursor CLI、Cline、Pi、Antigravity(Gemini CLI)およびcrush。セッションを作成する際にタイプを選択すると、すぐに使用可能な状態で起動します。

  • エージェントのステータスは推測されるのではなく、正確に報告されます。VelaTermは起動時に各ベンダーの公式なコールバックメカニズム(Claude用のhooks、Codex用のnotify、OpenCode用のプラグインなど)を注入するため、あらゆるステータス変更が即座に送信されます。セッションツリーには、作業中、待機中、完了済みだが未確認のステータスを示すドットが表示され、サイドバーではステータス別にフィルタリングでき、ステータスバーではリアルタイムのカウントが表示されます。

  • エージェントが権限決定を必要としたりタスクを完了したりするとシステム通知が発行され、それをクリックするとそのセッションに直接移動できます。コールバックがない場合は画面検出機能が代替として機能します。

  • 会話はあらゆる状況を乗り越えます。各エージェント固有のセッションIDが取得・保存されるため、セッションを閉じたりアプリを再起動したり、アーカイブされたセッションを復元したりしても、存在していることを確認した上で元の会話が再開されます。Claude Code、Codex、Piでは現在の会話を並行セッションに分岐させることもできます。

  • セッションはさらにセッションを生成します。サブタスクは子セッションとなり、エージェント自身またはユーザーによって生成され、必要に応じて隔離されたgitワークツリー内で複数のエージェントが同じリポジトリで同時に作業できます。処理が完了すると、グラフィカルなマージダイアログによってブランチが再び統合されます。

  • インストールされていないエージェントには、推奨コマンドとワンクリックインストールが記載されたインストールカードが表示され、その後自動的にパスが検出されます。サイドパネルにはClaudeとCodexの使用量のクォータが表示され、任意の会話はその場で閲覧したり、完全なMarkdownトランスクリプトとしてエクスポートしたりできます。

セッションの整理

  • プロジェクト、グループ、セッションの3層構造のツリーで、グループのネスト数に制限はなく、セッションの下に子セッションが存在します。ノードは自由にドラッグでき、折りたたみ状態は再起動後も保持されます。

  • 任意のサブツリーをアーカイブできます。データを削除することなくアーカイブパネルに隠し、いつでも復元可能で、会話の続行も可能です。

  • グローバルなコンテンツ検索(⌘⇧F)はSQLite FTS5インデックスによってサポートされ、エージェントのトランスクリプトとターミナル出力の両方を対象としています。左側に結果ツリー、右側にリンク付きプレビューが表示され、セッション間をステップバイステップでナビゲートできます。

まずは本格的なターミナル

  • 実際のPTYs(portable-pty、weztermから)が使用されるため、vim、htop、エージェント自体のTUIもすべて本来通りに動作します。

  • 任意の分割が可能な複数のタブ — 各タブには独自の分割ツリーがあり、水平または垂直に自由に分割できます。

  • ブラウザ風のタブライフサイクル:バックグラウンドのタブは維持され、そのプロセスも継続して実行されます。ライブタブの使用量は設定可能で、その制限を超えると最も古い非アクティブなセッションが終了します。タブを閉じることでプロセスが終了します。

  • 入力優先スケジューリングと出力フレームの結合処理により、負荷がかかっても入力応答性が維持されます。画面を埋め尽くすようなエージェントの動作でも、キーストロークのロスはありません。

  • ターミナル内検索(⌘F)、セッションの録画・再生、画像をエージェントに直接ペーストまたはドラッグで送信でき、Windows上でcmd、PowerShell、Git Bashを自由に切り替えられます。

ターミナルを超えて

  • 任意のセッション内でvopen <file>を実行すると、ターミナルと並んでドキュメントタブがその場で開きます。MarkdownはWYSIWYGエディタとして開き、ベクター形式のPDFにエクスポートされ、画像は組み込みビューアで開かれ、ソースファイルには構文ハイライトが適用されます。

  • 組み込みのブラウザタブはスクラッチタブとして使用したり、プロジェクトツリーに恒久的なノードとしてピン留めしたりできます。

リモートおよびマルチデバイス対応

  • デスクトップアプリはウェブ経由で同じインターフェースを提供し、1セットのライブセッションを共有します。出力ストリームはすべてのクライアントにリアルタイムで送信され、どのクライアントでも入力可能で、デスクトップとブラウザは同じターミナルを見て操作できます。

  • フレーム単位のNaClボックスを用いたエンドツーエンド暗号化、QRコードまたはリンクによるペアリング、個別の無効化を含むデバイス単位の管理が実現されています。

  • ヘッドレスモード:--serveはGUIのないサーバー上で同じサービスを実行し、ブラウザが接続できる状態になります。

  • SSHリモート接続により、リモートマシンもツリーに含まれます。VelaTermはデスクトップから直接接続し、遠隔側に軽量なvela-serverをデプロイし、リモートセッションはローカルセッションと同様に動作します。トンネルは自動的に修復され、再接続されます。

  • モバイル:このサービスにはモバイルウェブビューが含まれ、ネイティブアプリシェル(ネイティブ入力とアクセサリキーバーを備えたxtermレンダリング)も利用可能です。

プラットフォームとUIの完成度

  • macOS、Linux、Windowsに対応しています。

  • 自動更新が実施され、認証済みのmacOSビルドが提供されます。

  • システムのテーマに合わせた明るいテーマと暗いテーマが用意され、実行中のエージェントセッションには標準のターミナル通知(DEC 2031)を通じてテーマ切り替えが通知されます。TUIの色は即座に変更され、再起動は不要です。

  • デフォルトは英語で、システムのロケールに従った10言語が同梱されています。

すべてのリリースには自動更新機能が付属しており、VelaTermは自動的に最新バージョンを提供します。ご自身で入手するには ダウンロードページ.