Terminals auf Desktop und Smartphones, ein Pull-Requests-Tab und ein echter mobiler Chat
5 Highlights4 neue Funktionen6 Verbesserungen7 Fehlerbehebungen
Ein integriertes Terminal läuft jetzt auf dem Host und erreicht gekoppelte Smartphones, das rechte Desktop-Panel erhält ein Pull-Requests-Tab, und die iOS- und Android-Apps bekommen einen vollständigen Ablauf für neue Chats, Composer, Agenten, eine Modellauswahl, Dateien und ein eigenes Terminal.
Highlights
Neuer Chat, Composer und Agenten auf Smartphones
Das Erstellen eines Chats öffnet auf iOS und Android im Vollbild, wobei die zuletzt verwendete Maschine und das zuletzt verwendete Projekt vorausgewählt sind, und die erste Nachricht wird nach der üblichen biometrischen Bestätigung im neuen Chat gesendet. Der Composer hängt Fotos und Dateien an und diktiert per Sprache; die Kopfzeile zeigt Projekt, Maschine und Verbindungsstatus, eine Statusanzeige meldet Synchronisieren, Arbeiten oder Warten auf Subagenten, mit einer Stopp-Schaltfläche, und ein Agenten-Sheet verfolgt Subagenten bei der Ausführung. (#1259)
Pull-Requests-Tab im Desktop-Panel
Ein schreibgeschütztes Pull-Requests-Tab listet die GitHub-Pull-Requests des Repositorys des ausgewählten Projekts auf, fasst Check-Ergebnisse als bestanden, fehlgeschlagen oder ausstehend zusammen und markiert den Pull Request für den ausgecheckten Branch. Wenn keine Liste gelesen werden kann, sagt der Tab, was als Nächstes zu tun ist, statt stillschweigend zu scheitern. (#1260)
Integriertes Terminal auf dem Host
Ein Terminal-Panel sitzt unter dem Chat und dem rechten Panel, lässt sich über die Titelleiste oder mit Ctrl+J ein- und ausblenden, ist in der Größe veränderbar und bietet mehrere Tabs pro Projekt. Die Shells laufen auf dem Host und behalten ihren Scrollback, sodass Terminals Neuverbindungen überstehen und später auf gekoppelten Smartphones erscheinen können. (#1261)
Remote-Terminal auf iOS und Android
Eine Terminal-Schaltfläche in der Chat-Kopfzeile und auf dem Maschinenbildschirm öffnet ein Vollbild-Terminal für das Projekt, mit Tabs, einer Zusatztastenleiste, Textgröße, Bildschirm kopieren und Neustart für eine beendete Shell. Es verbindet sich erneut und stellt den Verlauf wieder her, wenn die Verbindung zurückkehrt, und folgt denselben biometrischen Bestätigungen und Zugriffsfreigaben wie andere Steuerungsaktionen. (#1268)
Modellauswahl, Dateibrowser und Pull Requests auf Smartphones
Der Composer erhält einen Modell-Chip, der die Reasoning-Stufen jedes Modells auflistet, eine empfiehlt und deine Auswahl pro Maschine merkt. Chats bekommen außerdem einen schreibgeschützten Dateibrowser mit Suche, Paginierung und Bildvorschau, und ein vierter Tab listet Pull Requests über gekoppelte Maschinen hinweg mit einem Projektfilter und der eigenen Erklärung des Hosts, wenn eine Liste nicht gelesen werden kann. (#1269)
Neu
Überarbeitete mobile Oberfläche auf iOS und Android
Projekt-Badges beziehen ihre Farbe aus dem Projektnamen, die Suche ist ein Glasfeld, das die Tastatur einmalig einblendet, und Filtermenüs sagen jetzt, was sie filtern. Die schwebende Tab-Leiste zeigt nur Symbole, wobei der gewählte Tab blau ist, die Auswahlfelder für neue Chats sind gruppierte Karten mit Verbindungsstatus und einem Suchfeld, und die Einstellungen werden zu einem Index mit eigenen Seiten für Verbindungen, Darstellung, Chats, Sicherheit und Über. (#1258)
Smartphone-Protokoll erhält Modelle, Dateien, Pull Requests und Terminals
Der Host kann jetzt die Modellliste eines Smartphones mit Reasoning-Stufen, schreibgeschützte Projektdateien, Pull-Request-Listen und Terminals bereitstellen, und ein neuer Chat kann mit einer gewählten Reasoning-Stufe starten. Jeder Lesezugriff ist auf das Projekt beschränkt und lehnt Pfade außerhalb davon ab, und ein älterer Host antwortet mit einer klaren Nicht-verfügbar-Meldung statt mit einem Fehler. (#1262)
Der Agent findet und installiert Engine-Erweiterungen
Suchen liefern jetzt die für die Engine des Projekts verfügbaren Engine-Erweiterungen, installiert oder nicht, mit Bereitschaftsstatus, Version und dem, was jede hinzufügt. Der Agent kann eine Installation anfordern, die die übliche vertrauenswürdige Prüfung öffnet; nichts wird stillschweigend installiert, und eine abgelehnte Installation kann nicht erneut geöffnet werden. (#1275)
Unreal-Erweiterungen aus einem lokalen Checkout in Dev-Builds
Eine reine Entwicklungseinstellung richtet Lesezugriffe auf den Unreal-Erweiterungskatalog und Installationen auf einen lokalen Checkout, sodass Fixes vor einer Veröffentlichung in einem Lab-Lauf erprobt werden können. Einträge und Überprüfungen geben klar an, dass die Quelle ein lokaler Checkout ist, und Produktions-Builds ignorieren die Überschreibung. (#1278)
Verbessert
Wiederholbare Iterationen im Agent-Labor
Ein schriftliches Verfahren und Hilfswerkzeuge decken jetzt das Aufsetzen eines isolierten Dev-Stands, das Übergeben einer blinden Engine-Aufgabe an einen Agenten, das Beobachten und Messen des Laufs und das Festhalten in einem Ledger ab, damit aufeinanderfolgende Iterationen verglichen werden können. (#1265)
Schnellere Diagnose, wenn ein Engine-Editor abstürzt oder hängt
Ein abgestürzter oder hängender Editor wird jetzt in Sekunden mit Grund und nächstem Schritt erkannt, statt nach zwei Minuten Stille mit einem allgemeinen Timeout. Das Verbinden kann den Editor auf Anfrage neu starten, und die Engine-Tool-Erkennung ist klar benannt, sodass der Agent nicht mehr nach dem richtigen Aufruf suchen muss. (#1263)
Kleinere Screenshots in langen Engine-Sitzungen
Engine-Screenshots werden neu kodiert, bevor sie in die Unterhaltung gelangen, wodurch eine Anfrage mit 39 Bildern von rund 14 MB auf unter 2 MB schrumpft – bei gleichen Modellkosten und etwa halber Latenz. (#1264)
C++-Rebuilds, eingegrenzte Shell-Befehle und ein besser abgesicherter PowerShell-Pfad
In Unreal schließt und öffnet das Verbinden mit Neustart den Editor über den normalen Startablauf, der den C++-Build vor dem Start ausführt, sodass der Agent den Editor nicht mehr selbst beendet und von Hand neu startet. Shell-Befehle, die den Engine-Prozess berühren oder außerhalb des Projekts lesen, fragen jetzt um Erlaubnis, einschließlich PowerShell-Aufrufen, die zuvor nicht auf ihren Geltungsbereich geprüft wurden. (#1281)
Erkennt einen Editor, der durch einen modalen Dialog blockiert ist
Ein Editor, der in einem modalen Dialog feststeckt, wird jetzt als blockiert statt nur als nicht reagierend erkannt; die Meldung nennt den Dialog, warnt, dass das Ergebnis einer ausstehenden Aktion unbekannt ist, und bietet einen Neustart an. Ein Neustart gilt auch für einen laufenden Editor, der nicht mehr antwortet. (#1285)
Die Tool-Suche findet jetzt Engine-Erweiterungen, die du nicht installiert hast
Wenn der Agent nach Tools oder Modellen sucht, enthalten die Ergebnisse jetzt auch passende Engine-Erweiterungen aus dem Katalog, die nicht installiert oder deaktiviert sind, und werden als installierbare Kandidaten angezeigt. Zuvor betrachtete eine solche Suche nur, was bereits registriert war, sodass der Agent zu dem Schluss kommen konnte, es gäbe nichts Passendes, und Code von Hand schrieb, statt die für die Aufgabe gebaute Erweiterung zu installieren. (#1288)
Behoben
Ein langer Turn verliert nicht mehr seine Chat-Ansicht
Vordergrund-Shell-Aufgaben werden nicht mehr als Subagenten-Datensätze geführt, die den Verlauf verdrängen und die gesamte Ansicht ungültig machen könnten. Wenn eine Ansicht verloren geht, wird der Grund angezeigt, und Reconnect, Stop sowie das Ableben eines Workers führen zu einem definierten Verhalten, statt den Chat auf Working hängen zu lassen. (#1266)
Dev-Stände verwenden ihren eigenen Engine-Credential-Store
Ein Dev-Profil oder ein sandboxed Home verweist jetzt auch die Godot- und Unreal-Bridges auf den Credential-Store des Stands, sodass ein Lab-Lauf nicht an die echten Anmeldedaten des Kontos gelangen kann. Die Logzeile des Stands nennt, wo die Bridges der jeweiligen Engine nachsehen. (#1267)
Unity-Plugin verwendet den Credential-Store des Stands
Der Dev-Stand exportiert das Unity-Anmeldedatenverzeichnis neben Godot und Unreal, sodass ein aus einem sandboxed Stand gestarteter Editor den Store des Stands liest und die Logzeile darüber berichtet. Ältere Unity-Plugins ignorieren die Variable, was in den Hinweisen jetzt steht. (#1271)
Screenshots per Referenz gespeichert, damit lange Chats reaktionsfähig bleiben
Bilder aus Tool-Ergebnissen werden einmal gespeichert und aus dem Chat-Verlauf referenziert, statt bei jeder Aufnahme inline eingebettet zu werden, sodass ein Chat voller Engine-Screenshots das Fenster nicht mehr einfriert oder sich nicht mehr öffnen lässt. (#1273)
Lange Reasoning-Turns behalten ihre Chat-Ansicht
Ein Turn mit einem großen gestreamten Reasoning-Block schneidet nicht mehr seinen eigenen Verlauf ab und verwirft nicht mehr die Chat-Ansicht, und eine Berechtigungsanfrage, die gestellt wurde, während eine Ansicht verloren war, bleibt sichtbar und kann aus der App und von der Kommandozeile aus beantwortet werden. (#1276)
Wartet auf einen anderen Unreal-Build, bevor es fehlschlägt
Wenn ein anderes UnrealBuildTool die maschinenweite Sperre hält, meldet der Build vor dem Start dies jetzt, wartet und versucht es mit begrenztem Backoff erneut, statt in unter einer Sekunde fehlzuschlagen und den Agenten loszuschicken, damit er Prozesse durchsucht. (#1284)
Unreal startet nur neu, wenn nichts ungespeichert ist
Eine Neustartanforderung für einen laufenden Unreal-Editor fragt jetzt zuerst beim Editor nach: Wenn eine Map, ein Content-Paket oder ein Asset-Editor noch ungespeicherte Arbeit hat, wird der Neustart sofort abgelehnt und nichts gespeichert oder verworfen. Dem Agenten wird mitgeteilt, wie viele Pakete sich geändert haben und welche, damit er speichern kann, was er angefasst hat, und dich nach dem Rest fragen kann. Wenn ein Asset-Editor geöffnet ist oder der Editor nicht gefragt werden kann, wird der bisherige Pfad für Schließanfragen verwendet, und die Neustart-Hinweise sagen jetzt, dass Änderungen zuerst gespeichert werden sollen. (#1289)
Unter der Haube
- 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)