Die Release Notes zu VS Code 1.138 dokumentieren, dass ein Agent Host aus seiner Sitzung heraus einen Pull Request prüfen und erstellen kann. Wenn VS Code 1.138 einen PR erstellt, sollte der PR jedoch nicht automatisch als Liefernachweis gelten: Der Agent Host bleibt für Änderungen und den PR-Start zuständig, deterministische Prüfungen laufen in CI, und Xcode-, Signatur- sowie Apple-Plattform-Tests gehören auf eine unabhängige Cloud-Mac-Schicht. Nur ein risikoarmes Prototyping rechtfertigt das vorübergehende Teilen einer Maschine.

Dieser Beitrag ist für Sie relevant, wenn Sie iOS- oder macOS-Code mit einem Agent Host erzeugen, Pull Requests automatisiert anlegen und danach entscheiden müssen, wo Xcode ausgeführt wird. Plattformingenieure erhalten eine Trennung der Verantwortlichkeiten; AI-Coding-Teams sehen, wann ein gemeinsamer Host genügt und wann eine eigene Mac-Kapazität nötig wird.

Zuletzt aktualisiert am 20.09.2026; die Angaben wurden anhand der VS-Code-1.138-Veröffentlichungsnotizen, der Agent-Host-Dokumentation und der GitHub-Dokumentation zu geschützten Branches geprüft.

Die drei Zustände eines Agent-PRs

Ein erfolgreich angelegter Pull Request ist zunächst nur ein Repository-Ereignis. Er sagt aus, dass ein Branch, ein Commit und die PR-Metadaten vorhanden sind. Daraus folgen weder ein erfolgreiches Testergebnis noch eine Freigabe für die Produktion.

Sie sollten deshalb drei Zustände getrennt protokollieren:

  1. PR erstellt: Der Agent Host hat Änderungen committed, den Ziel-Branch ausgewählt und den Pull Request angelegt. Bei VS Code 1.138 kann dabei auch ein Entwurfstatus gewählt werden. Die genaue Funktion ist in den Release Notes von VS Code 1.138 beschrieben.
  2. Prüfungen bestanden: Ein unabhängiger CI-Runner hat den exakten Commit geprüft. Dazu gehören beispielsweise Formatierung, statische Analyse, Unit-Tests, Abhängigkeitsauflösung und ein reproduzierbarer Build.
  3. Code freigabefähig: Die erforderlichen Prüfungen, menschlichen Genehmigungen, Branch-Regeln, Signaturvorgaben und gegebenenfalls das Merge-Queue-Verfahren wurden erfüllt.

Diese Unterscheidung verhindert einen typischen Fehlentscheid: Der Agent meldet „Pull Request erstellt“, während ein späterer Xcode-Lauf auf einem verschmutzten oder anders konfigurierten Mac scheitert. Für die Nachvollziehbarkeit sollten Sie mindestens den Commit-Hash, die Testprotokolle, die verwendete Runner-Umgebung, die Abhängigkeitsversionen und die erzeugten Artefakte speichern. GitHub beschreibt die Ablage von Workflow-Artefakten in der offiziellen Dokumentation zu Workflow artifacts.

Für reine Web-, Backend- oder plattformübergreifende Projekte brauchen Sie nicht automatisch einen zusätzlichen Mac. Der vorhandene Agent Host kann den Code ändern und den PR erzeugen, wenn folgende Bedingungen erfüllt sind:

  • Das Projekt benötigt weder Xcode noch Apple-Systemframeworks.
  • Die Tests laufen deterministisch in einem Container oder auf einem allgemeinen Runner.
  • Es werden keine Apple-Zertifikate, Provisioning Profiles oder Produktionsschlüssel geladen.
  • Der CI-Runner verwendet den eingereichten Commit und nicht den veränderlichen Arbeitsstand des Agenten.
  • Fehler lassen sich anhand von Logs und Artefakten ohne Zugriff auf die Agent-Sitzung reproduzieren.

Der wichtigste Vorteil dieser Variante ist nicht nur die geringere Infrastrukturmenge. Sie vermeiden auch, dass ein langer Build den Host blockiert, auf dem der Agent gerade Dateien bearbeitet oder weitere Aufgaben annimmt.

Die Umgebungsauswahl nach Lieferart

Die folgende Tabelle hilft Ihnen, die Standardumgebung vor dem nächsten PR festzulegen. Sie ersetzt keine projektspezifische Sicherheitsprüfung, macht aber sichtbar, wann ein zusätzlicher Mac gerechtfertigt ist.

Aufgabe Geeignete Umgebung Belege nach dem Lauf Hauptgrenze
Codeänderung und PR-Erstellung Agent Host Commit, Branch, PR-Link, Agent-Protokoll Kein Liefernachweis
Linting, Unit-Tests, Container-Build Allgemeiner CI-Runner Logs, Testbericht, Artefakte Keine Apple-spezifische Validierung
Xcode-Build ohne Signatur Separater Cloud-Mac Xcode-Log, Build-Artefakt, Commit-Hash macOS- und Xcode-Zustand muss kontrolliert werden
Simulator- und Apple-Framework-Tests Separater Cloud-Mac Testergebnisse, Simulator-Konfiguration, Logs Gerätezustand und Laufzeitabhängigkeiten
Signierung und Veröffentlichung Isolierter Mac-Runner oder gesicherte Mac-Queue Signaturprotokoll, Genehmigung, Artefakt-Hash Höhere Berechtigungs- und Audit-Anforderungen
Experimenteller Prototyp Gemeinsamer Host unter Bedingungen Manuell gespeicherter Testnachweis Nicht für unbeaufsichtigte oder produktive Abläufe

Bei iOS- und macOS-Projekten ist der entscheidende Unterschied die Abhängigkeit von macOS. Apple beschreibt in der Dokumentation zum Ausführen von Apps auf simulierten oder physischen Geräten, dass Simulator- und Gerätemodelle eigene Ausführungsbedingungen haben. Ein Container oder ein allgemeiner Linux-Runner kann diese Apple-Plattformprüfung nicht ersetzen.

Die Apple-Build-Schicht als eigener Verantwortungsbereich

Sobald Xcode, ein Simulator, ein physisches Gerät oder ein Apple-Systemframework beteiligt ist, sollte der Build nicht im gleichen Arbeitskontext wie die Codegenerierung stattfinden. Das gilt besonders, wenn der Agent Host selbst auf einem Mac läuft.

Ein gemeinsam genutzter Mac erzeugt mindestens drei technische Risiken:

  • Zustandsverschmutzung: Xcode-Caches, abgeleitete Daten, Package-Manager-Verzeichnisse und Simulatorzustände können den nächsten Lauf beeinflussen.
  • Schlechte Reproduzierbarkeit: Ein Agent kann lokale Dateien oder Prozesse hinterlassen, die im CI-Protokoll nicht sichtbar sind.
  • Ressourcenbindung: Ein langer Xcode-Build belegt CPU, Arbeitsspeicher, Speicherplatz und gegebenenfalls Simulatoren, während der Agent weitere Aufgaben ausführen soll.

Ein unabhängiger Cloud-Mac senkt diese Risiken, wenn Arbeitsbereich, Build-Queue und Berechtigungen sauber getrennt sind. Er muss nicht automatisch für jeden kleinen Commit dauerhaft reserviert werden. Für nicht signierte Pull Requests kann eine gemeinsam verwaltete Mac-Queue genügen. Signierung, Veröffentlichung und unbeaufsichtigte Aufgaben sollten dagegen auf eine eigene, streng begrenzte Umgebung wechseln.

GitHub weist bei der Wahl eines Runners darauf hin, dass Jobs gezielt auf passende Runner-Kategorien gelenkt werden können. Die Dokumentation zur Runner-Auswahl ist deshalb die richtige Grundlage, um allgemeine Prüfungen und macOS-spezifische Jobs auseinanderzuhalten. Bei selbst verwalteten Systemen müssen Sie zusätzlich Betriebssystem, installierte Werkzeuge, Zugriffsrechte und Wartungszustand dokumentieren; dafür gelten die Hinweise zu self-hosted Runnern.

Schrittfolge für einen belastbaren Apple-PR

  1. Arbeitsbereich festlegen: Prüfen Sie, ob der Agent nur den Git-Arbeitsbaum oder auch Xcode, Simulatoren, Schlüssel und lokale Skripte erreichen darf.
  2. Änderung begrenzen: Lassen Sie den Agent Host einen klar abgegrenzten Branch beziehungsweise Worktree verwenden. Produktions- und Signaturgeheimnisse gehören nicht in diese Sitzung.
  3. PR als Entwurf anlegen: Bei unsicheren Änderungen sollte der Pull Request zunächst als Entwurf eröffnet werden. So bleibt sichtbar, dass die technische Prüfung noch aussteht.
  4. Allgemeine CI starten: Führen Sie Linting, Unit-Tests, Abhängigkeitsprüfung und alle containerisierbaren Schritte auf einem unabhängigen Runner aus.
  5. Commit unveränderlich referenzieren: Der Mac-Job muss den exakten Commit aus dem PR auschecken, nicht den aktuellen Zustand einer Agent-Sitzung.
  6. Xcode-Schicht ausführen: Starten Sie Build, Simulatorprüfung oder Gerätestest in der dafür vorgesehenen Mac-Queue.
  7. Artefakte und Logs sichern: Speichern Sie Testberichte, Xcode-Ausgabe, Build-Artefakt, Runner-Kennung und Commit-Hash. Workflow-Protokolle können nach den Regeln für GitHub-Actions-Logs ausgewertet werden.
  8. Freigaberegeln prüfen: Erst wenn Statusprüfungen, Genehmigungen und Branch-Regeln erfüllt sind, darf jemand den PR als lieferfähig bewerten.
  9. Bei Abweichung stoppen: Wenn der Build nur auf dem Agent Host funktioniert, ein Schlüssel unerwartet benötigt wird oder der Commit nicht eindeutig ist, stoppen Sie die Freigabe und wiederholen Sie den Lauf in einer isolierten Umgebung.

Geschützte Branches und Identitäten

Die Fähigkeit, einen Pull Request zu erstellen, verleiht dem Agenten keine Sonderstellung gegenüber Repository-Regeln. Geschützte Branches können erforderliche Statusprüfungen, Reviews, lineare Historie, Merge Queues oder Einschränkungen für direkte Änderungen verlangen. Die GitHub-Dokumentation zu geschützten Branches sollte deshalb neben der Agent-Konfiguration geprüft werden.

Kontrollieren Sie vor der Einführung vier Identitäten:

  • Welche Repository-Identität verwendet der Agent Host?
  • Darf diese Identität nur Branches schreiben oder auch Einstellungen verändern?
  • Stammt der Statuscheck aus dem erwarteten CI-Workflow?
  • Kann dieselbe Identität Code ändern und anschließend selbst als vertrauenswürdige Freigabe auftreten?

Für risikoarme Änderungen kann ein Agent einen nicht geschützten Arbeitsbranch beschreiben und einen Entwurfs-PR eröffnen. In einem produktionsnahen Repository sollten Sie dagegen minimale Rechte, unabhängige Prüfungen und menschliche Genehmigung kombinieren. Die experimentelle Kennzeichnung von Agent Merge darf nicht als Beleg für eine automatische sichere Auslieferung interpretiert werden.

FAQ für typische Teamentscheidungen

Muss nach einem Agent-PR noch CI laufen?

Ja. Der Agent Host erstellt den PR, aber CI prüft den konkreten Commit unter festgelegten Bedingungen. Ohne diesen Schritt fehlen Ihnen reproduzierbare Logs, Testresultate und Artefakte. Bei Web- oder Containerprojekten kann ein allgemeiner Runner genügen. Bei iOS- und macOS-Code kommt danach noch die separate Apple-Prüfung hinzu.

Wo läuft der iOS-Build?

Der iOS-Build gehört auf einen Mac, sobald Xcode, Apple-Frameworks, Simulatoren, Geräte oder Signaturwerkzeuge verwendet werden. Der Agent Host sollte dabei nur den Quellcode und die PR-Metadaten liefern. So können Sie den Build wiederholen, ohne die laufende Agent-Sitzung oder deren lokalen Zustand zu übernehmen.

Dürfen Agent Host und GitHub Actions Runner denselben Mac nutzen?

Für einen Prototyp ist dies möglich, wenn der Code unkritisch ist, keine produktiven Schlüssel geladen werden und ein manueller Abbruch jederzeit möglich bleibt. Für reguläre Builds ist eine Trennung besser. Ein gemeinsamer Mac erhöht das Risiko durch Caches, parallele Prozesse, Dateireste und unklare Ressourcenbelegung.

Wie wird die Mac-Queue bei mehreren Agents geplant?

Mehrere Agent-Sitzungen führen nicht automatisch zu einem gleich großen Bedarf an Macs. Messen Sie die Wartezeit vor dem Job, die tatsächliche Xcode-Laufzeit, fehlgeschlagene Wiederholungen, Abhängigkeitsinstallation und manuelle Genehmigungen. Reservieren Sie eine eigene Spur für Signierung und Veröffentlichung. Erst bei dauerhaftem Rückstau sollten Sie zusätzliche elastische Kapazität einplanen.

Fernbetrieb und lange Aufgaben

Ein entfernter Agent Host oder ein Cloud-Mac löst die Zustandsfrage nicht automatisch. Sie müssen drei Speicherorte unterscheiden:

  1. Git-Arbeitsbereich: Der Quellcode und die Branch-Informationen gehören in einen klar definierten Workspace oder in das Repository.
  2. Aufgabenstatus: Sitzungsstatus, offene Aktionen und Wiederaufnahmeinformationen müssen so gespeichert werden, dass ein neuer Client den Zustand prüfen kann.
  3. Build-Artefakte: Testberichte, Logs und Binärdateien gehören in eine nachvollziehbare Artefaktablage, nicht nur in ein lokales temporäres Verzeichnis.

Die Agent-Host-Architekturdokumentation beschreibt die Rolle des Hosts, ersetzt aber nicht Ihren Wiederanlauftest. Prüfen Sie daher ausdrücklich, ob eine getrennte Client-Verbindung wiederhergestellt werden kann, ob ein unterbrochener Job eindeutig als abgebrochen markiert wird und ob ein anderer Operator den Workspace übernehmen darf.

Für einen langen Xcode-Build gilt ein eigener Queue-Eintrag. Der Agent Host sollte nicht blockiert werden, bis ein Simulatorlauf oder ein signierter Archivschritt abgeschlossen ist. Stoppen Sie den Job, wenn kein eindeutiger Commit mehr vorliegt, die Arbeitskopie nach der Unterbrechung verändert wurde oder der Signaturkontext nicht erneut validiert werden kann.

Mehrere Agents und die Mac-Kapazität

Bei parallelen PRs verschiebt sich der Engpass oft weg von der Modellgenerierung. Abhängigkeitsinstallation, Testdaten, Xcode-Initialisierung, Simulatoren und Signaturjobs können die Mac-Queue füllen. Wenn Sie einfach pro Agent eine Maschine bereitstellen, bezahlen Sie möglicherweise für Leerlauf zwischen den eigentlichen Builds.

Führen Sie pro Job mindestens diese Messwerte:

  • Wartezeit bis zur Zuweisung eines Macs,
  • tatsächliche Ausführungszeit,
  • Zeit für Abhängigkeiten und Cache-Aufbau,
  • Anzahl und Ursache von Wiederholungen,
  • Dauer der manuellen Prüfung,
  • Anteil der Jobs ohne Apple-spezifische Schritte.

Eine gemeinsame Pool-Strategie passt für kurze, nicht signierte Prüfungen. Eine elastische Pool-Strategie passt für unregelmäßige Spitzen, wenn die Jobs sauber beendet und ihre Artefakte gespeichert werden. Eine isolierte Umgebung ist erforderlich, sobald Produktionszertifikate, Veröffentlichung, erhöhte Rechte oder unbeaufsichtigte Langläufe beteiligt sind.

Wenn Ihr Team den Übergang zu einem getrennten Cloud-Mac plant, können Sie zunächst die deutschen Infrastruktur- und Betriebsinformationen von kvmsync prüfen. Für die Kapazitätsplanung ist außerdem die Übersicht der verfügbaren Mietoptionen relevant; konkrete Kosten sollten Sie erst nach Region, Laufzeit, Betriebssystem, Zugriffsmethode und erforderlicher Isolation vergleichen.

Drei Entscheidungen für den Produktionsbetrieb

Bestehende Struktur beibehalten

Wählen Sie diese Option, wenn nur Web- oder Containercode betroffen ist, alle Tests auf allgemeinen Runnern deterministisch laufen und weder Signatur noch Apple-Frameworks benötigt werden. Halten Sie trotzdem PR-Erstellung, CI-Nachweis und Freigabe getrennt.

Mac-Build-Schicht abspalten

Diese Option ist der Standard für iOS- und macOS-Projekte. Der Agent Host erstellt Änderungen und PR, CI prüft allgemeine Eigenschaften, und ein separater Cloud-Mac führt Xcode, Simulator- oder Geräteprüfungen aus. Signatur- und Veröffentlichungsrechte bleiben in einer zusätzlich geschützten Spur.

Elastische Kapazität ergänzen

Erweitern Sie die Mac-Kapazität erst, wenn Ihre Messdaten einen dauerhaften Rückstau zeigen. Prüfen Sie vorher Cache-Strategie, Abhängigkeitsinstallation, Queue-Prioritäten und die Trennung langer Jobs. Zusätzliche Maschinen lösen keine unklaren Zustände, fehlenden Commit-Nachweise oder falsche Branch-Berechtigungen.

Ein gemeinsam genutzter Host kann für ein internes Experiment mit niedrigem Risiko genügen. Er ist jedoch keine gute dauerhafte Architektur, wenn Xcode-Builds, Signatur, Veröffentlichung und Agent-Aktivität um dieselben Prozesse und Dateien konkurrieren. In diesem Fall entstehen schwer erklärbare Fehlschläge, blockierte Sitzungen und eine größere Berechtigungsfläche.

Wenn Sie Ihre aktuelle Mac-Umgebung selbst betreiben, tragen Sie außerdem Wartung, Xcode-Versionierung, Runner-Updates, Schlüsselverwaltung, Wiederherstellung und Kapazitätsplanung. Das kann bei dauerhaft hoher, stabiler Auslastung sinnvoll sein. Für zeitweise Spitzen, Testphasen oder zusätzliche isolierte Apple-Builds ist ein gemieteter Cloud-Mac häufig übersichtlicher, weil Sie die Kapazität nach dem tatsächlichen Bedarf ergänzen können. Prüfen Sie dazu zunächst die aktuellen Betriebs- und Themeninformationen von kvmsync, bevor Sie Agent Host, CI und Mac-Queue umstellen.

Markieren Sie jetzt in der Tabelle für jeden Ihrer PR-Flows eine der drei Entscheidungen: beibehalten, Build-Schicht abspalten oder elastische Kapazität ergänzen. Wenn Xcode weiterhin auf derselben Maschine wie der Agent läuft, sollten Sie als Nächstes Arbeitsbereich, Queue und Signaturrechte trennen. Genau dort bietet ein Cloud-Mac von kvmsync gegenüber einer gemeinsam genutzten Agent-Maschine die klarere Zuständigkeit: weniger konkurrierende Prozesse, besser nachvollziehbare Builds und eine kontrollierbare Ausweichmöglichkeit für temporäre oder spitzenförmige Aufgaben. Für dauerhaft gleichmäßige Hochlast oder zwingend benötigte physische Spezialhardware kann ein eigener Mac dennoch die bessere Wahl sein.

Häufige Fragen

Muss nach einem vom VS Code Agent Host erstellten Pull Request noch CI laufen?

Ja. Das Erstellen des Pull Requests belegt nur, dass Änderungen und Branch-Informationen übertragen wurden. Deterministische Prüfungen wie Linting, Unit-Tests, Abhängigkeitsprüfung und Build-Schritte sollten weiterhin in einem kontrollierten CI-Runner laufen. Erst die gespeicherten Logs, Artefakte und der verwendete Commit machen das Ergebnis nachvollziehbar.

Wo sollte ein vom Agent erstellter iOS-Pull-Request kompiliert werden?

Sobald Xcode, Apple-Systemframeworks, der Simulator, ein physisches Gerät oder Signaturwerkzeuge beteiligt sind, sollte der Build auf einem separaten macOS-System laufen. Dadurch bleibt der Agent Host für Codeänderungen verfügbar, während der Mac-Build eine reproduzierbare Umgebung mit klarer Zuständigkeit und getrennten Berechtigungen erhält.

Können Agent Host und GitHub Actions Runner denselben Mac verwenden?

Für ein risikoarmes Prototyping ist eine gemeinsame Maschine möglich, wenn keine Signaturschlüssel, Produktionszugänge oder unbeaufsichtigten Langläufe beteiligt sind. Für reguläre Apple-Builds ist die Trennung vorzuziehen. Gemeinsame Arbeitsverzeichnisse, Prozesse und Caches erschweren die Ursachenanalyse und können Testergebnisse durch zurückgebliebene Zustände verfälschen.

Wie planen Sie die Mac-Build-Warteschlange bei mehreren Agents?

Planen Sie nicht nach der Anzahl der Agent-Sitzungen, sondern nach tatsächlicher Mac-Ausführungszeit, Wartezeit, Wiederholungen und manuellen Freigaben. Führen Sie eine getrennte Warteschlange für Signierung und Veröffentlichung. Wenn die Wartezeit steigt, prüfen Sie zuerst Cache-, Abhängigkeits- und Queue-Optimierung; zusätzliche Cloud-Macs lohnen sich erst bei anhaltender Auslastung.

Weiterlesen

kvmsync M4 Remote-Knoten

Mac-Builds nach dem Pull Request zuverlässig ausführen

Mit kvmsync erhalten Sie einen exklusiven Mac mini als Bare-Metal-Node für CI-Builds und automatisierte Tests.

Mac mini M4 jetzt mieten M4-Pakete vergleichen