デスクトップとスマートフォンで使えるターミナル、プルリクエストタブ、そして本格的なモバイルチャット
5 件のハイライト4 件の新機能6 件の改善7 件の修正
統合ターミナルがホスト上で動作し、ペアリング済みのスマートフォンにも届くようになりました。デスクトップの右パネルにはPull requestsタブが追加され、iOSおよびAndroidアプリには、新規チャットのフルフロー、composer、エージェント、モデルピッカー、ファイル、専用ターミナルが搭載されます。
注目の機能
スマートフォンでの新規チャット、composer、エージェント
iOSおよびAndroidでチャットを作成すると、最後に使用したマシンとプロジェクトが選択された状態で全画面で開き、最初のメッセージは通常の生体認証確認後に新しいチャットで送信されます。composerでは写真やファイルを添付でき、音声でディクテーションできます。ヘッダーにはプロジェクト、マシン、リンク状態が表示され、ステータスピルには同期中、作業中、サブエージェント待ちがStopボタン付きで表示されます。Agentsシートでは実行中のサブエージェントを追跡できます。 (#1259)
デスクトップパネルのPull requestsタブ
読み取り専用のPull requestsタブには、選択したプロジェクトのリポジトリのGitHubプルリクエストが一覧表示され、チェック結果が合格、失敗、保留中として要約され、チェックアウト中のブランチに対応するリクエストに印が付けられます。一覧を読み取れない場合は、何も表示せずに失敗するのではなく、次に取るべき行動がタブに表示されます。 (#1260)
ホスト上の統合ターミナル
ターミナルパネルはチャットと右パネルの下に配置され、タイトルバーまたはCtrl+Jで表示/非表示を切り替えられ、サイズ変更可能で、プロジェクトごとに複数のタブを持てます。シェルはホスト上で動作し、スクロールバックを保持するため、ターミナルは再接続後も維持され、後からペアリング済みのスマートフォンにも表示できます。 (#1261)
iOSおよびAndroidのリモートターミナル
チャットヘッダーとマシン画面のTerminalボタンから、プロジェクトの全画面ターミナルを開けます。タブ、アクセサリキー行、文字サイズ、画面コピー、終了したシェルの再起動を備えています。リンクが戻ると再接続して履歴を復元し、他の制御操作と同じ生体認証確認とアクセス許可に従います。 (#1268)
スマートフォンでのモデルピッカー、ファイルブラウザー、プルリクエスト
composerにモデルチップが加わり、各モデルのreasoning effortを一覧表示し、1つを推奨し、マシンごとに選択を記憶します。チャットには検索、ページ送り、画像プレビュー付きの読み取り専用ファイルブラウザーも追加され、4番目のタブではペアリング済みマシン全体のプルリクエストをプロジェクトフィルター付きで一覧表示し、一覧を読み取れない場合にはホスト自身の説明が表示されます。 (#1269)
新機能
iOSおよびAndroidのモバイルインターフェース刷新
プロジェクトバッジの色はプロジェクト名から決まり、検索は一度だけキーボードを表示するガラス調のフィールドになり、フィルターメニューには何をフィルターするかが表示されるようになりました。フローティングタブバーはアイコンのみで、選択中のタブは青になります。新規チャットのピッカーは接続状態と検索フィールドを備えたグループ化カードになり、設定は接続、外観、チャット、セキュリティ、情報の各ページを持つインデックスになります。 (#1258)
スマートフォン向けプロトコルにモデル、ファイル、プルリクエスト、ターミナルが追加
ホストはスマートフォンに対して、reasoning effort付きのモデル一覧、読み取り専用のプロジェクトファイル、プルリクエスト一覧、ターミナルを提供できるようになり、新しいチャットは選択したreasoning effortで開始できます。すべての読み取りはプロジェクトにスコープされ、プロジェクト外のパスは拒否されます。古いホストはエラーではなく、利用できないことを明示するメッセージを返します。 (#1262)
エージェントがエンジン拡張機能を検索してインストール
検索では、プロジェクトのエンジンで利用可能なエンジン拡張機能が、インストール済みかどうかに関係なく返され、準備状態、バージョン、各拡張機能が追加する内容が示されます。エージェントはインストールを要求でき、それは通常の信頼済みレビューを開きます。何も無言でインストールされることはなく、拒否されたインストールを再び開くことはできません。 (#1275)
開発ビルドでのローカルチェックアウトからのUnreal拡張機能
開発専用の設定により、Unreal拡張機能カタログの読み取りとインストールがローカルチェックアウトを参照するようになり、リリース前にラボ実行で修正を試せます。行とレビューには、ソースがローカルチェックアウトであることが明示され、本番ビルドではこの上書き設定は無視されます。 (#1278)
改善
再現可能なエージェントラボのイテレーション
文書化された手順と補助ツールにより、隔離された開発スタンドの立ち上げ、エージェントへのブラインドエンジンタスクの付与、実行の観察と測定、そして連続するイテレーションを比較できるように台帳への記録までをカバーします。 (#1265)
エンジンエディターのクラッシュやハングをより迅速に診断
クラッシュした、または固まったエディターは、2分間の沈黙の後に一般的なタイムアウトを返すのではなく、理由と次のステップとともに数秒で特定されるようになりました。接続時に要求に応じてエディターを再起動でき、エンジンツールの検出が明確に名前付けされるため、エージェントは適切な呼び出しを探し回らずに済みます。 (#1263)
長いエンジンセッションでのスクリーンショットの縮小
エンジンのスクリーンショットは会話に入る前に再エンコードされ、39枚の画像を含むリクエストが約14 MBから2 MB未満になり、モデルコストは同じでレイテンシーは約半分になります。 (#1264)
C++の再ビルド、スコープ付きシェルコマンド、より安全なPowerShell経路
Unrealでは、再起動を伴う接続により、通常の起動フローを通じてエディターが閉じて再度開かれ、起動前のC++ビルドが実行されるため、エージェントが手動でエディターを終了して再起動する必要がなくなりました。エンジンプロセスに触れる、またはプロジェクト外を読み取るシェルコマンドは、これまでスコープチェックされなかったPowerShellの呼び出しを含め、許可を求めるようになりました。 (#1281)
モーダルダイアログでブロックされたエディターを検出
モーダルダイアログ上で止まっているエディターは、単に応答しないのではなくブロックされていると認識されるようになり、メッセージにはダイアログ名が示され、保留中のアクションの結果が不明であることが警告され、再起動が提案されます。再起動は、応答しなくなった稼働中のエディターにも適用されます。 (#1285)
ツール検索で未インストールのエンジン拡張機能が見つかるように
エージェントがツールやモデルを検索すると、結果にカタログ内の一致するエンジン拡張機能も含まれ、未インストールまたは無効なものがインストール可能な候補として表示されるようになりました。以前はそのような検索は既に登録されているものだけを対象にしていたため、エージェントは適切なものが存在しないと判断し、その作業向けに作られた拡張機能をインストールする代わりにコードを手書きすることがありました。 (#1288)
修正
長いターンでチャットビューが失われなくなる
フォアグラウンドのシェルタスクは、履歴を追い出してビュー全体を無効にしかねないサブエージェントレコードとして保持されなくなりました。ビューが失われた場合には理由が表示され、Reconnect、Stop、ワーカーの異常終了が期待どおりに動作し、チャットがWorkingのまま止まることがなくなります。 (#1266)
開発スタンドが独自のエンジン資格情報ストアを使用
開発プロファイルまたはサンドボックス化されたホームでは、GodotおよびUnrealブリッジがスタンドの資格情報ストアを参照するようになり、ラボ実行がアカウントの実際の資格情報に触れることはありません。スタンドのログ行には、各エンジンのブリッジが参照する場所が示されます。 (#1267)
Unityプラグインがスタンドの資格情報ストアを使用
開発スタンドはGodotおよびUnrealと並んでUnity資格情報ディレクトリをエクスポートするため、サンドボックス化されたスタンドから起動したエディターはスタンドのストアを読み取り、ログ行にそれが報告されます。古いUnityプラグインはこの変数を無視しますが、そのことがリリースノートに記載されるようになりました。 (#1271)
スクリーンショットを参照として保存し、長いチャットの応答性を維持
ツール結果の画像は一度だけ保存され、キャプチャごとに埋め込まれるのではなくチャット履歴から参照されるため、エンジンのスクリーンショットでいっぱいのチャットでもウィンドウがフリーズしたり、再度開けなくなったりしなくなりました。 (#1273)
長いreasoningターンでチャットビューが維持される
大きなストリーミングreasoningブロックを含むターンでも、自身の履歴をフェンスしてチャットビューを失うことがなくなりました。ビューが失われている間に発生した許可リクエストは表示されたままで、アプリおよびコマンドラインから回答できます。 (#1276)
失敗する前に別のUnrealビルドを待機
別のUnrealBuildToolがマシン全体のロックを保持している場合、起動前ビルドはそれを報告し、1秒未満で失敗してエージェントにプロセスを探し回らせるのではなく、上限付きのバックオフで待機および再試行するようになりました。 (#1284)
未保存のものがない場合にのみUnrealを再起動
稼働中のUnrealエディターに再起動を要求すると、まずエディターに確認するようになりました。マップ、コンテンツパッケージ、アセットエディターのいずれかに未保存の作業が残っている場合、再起動は即座に拒否され、何も保存または破棄されません。エージェントには、変更されたパッケージの数とどれが変更されたかが伝えられるため、触れたものは保存し、残りについてはユーザーに確認できます。アセットエディターが開いている場合、またはエディターに確認できない場合は、以前のクローズ要求の経路が使用され、再起動のガイダンスには先に変更を保存するよう記載されるようになりました。 (#1289)
内部の変更
- test(agent-lab): run scripts/agent-lab tests in CI (#1270)
- chore(deps): engine CLIs to the latest releases (godot 0.36.0, unity 1.7.1, unreal 0.27.1) (#1272)
- docs(agent-lab): iteration 2 (fire task), six extension tasks, pending-call helper (#1274)
- docs(agent-lab): iteration 3 (pcg-forest-scatter, 83%), first live extension install by the agent (#1277)
- docs(agent-lab): iteration 4 (input controls, 70%): extension bypassed, editor rebuilt outside the App (#1279)
- docs(agent-lab): iteration 5 (GAS fireball, 75%): extension bypassed, permission scope gaps (#1280)
- docs(agent-lab): iteration 6 (control rig, 50%, not comparable): template pre-solved foot IK (#1282)
- docs(agent-lab): iteration 7 — Landscape island task (100%) (#1283)
- docs(agent-lab): iterations 8 and 9 — PCG forest rerun (100%), Enhanced Input rerun (70%) (#1287)
- docs(agent-lab): iteration 10 — GAS fireball rerun (83%) (#1290)
- docs(agent-lab): iteration 11 — Niagara campfire (67%), extension found by tool search (#1291)