XERJ (öffnet in einem neuen Tab) ist eine Open-Source-Suchmaschine für Coding-Agenten. Sie liefert einem Agenten genau die Code- oder Dokumentationsstelle, die er braucht, sodass er nicht aus dem Gedächtnis raten muss. Darauf aufbauend betreibt XERJ den Corpus Hub: einen öffentlichen Index ausgewählten Codes, den Agenten zurate ziehen, bevor sie eine eigene Version schreiben.
Wir haben uns nicht beworben. Im Oktober 2026 hat das XERJ-Team Kaine Forge (öffnet in einem neuen Tab) selbst gefunden, uns kontaktiert und für den Hub ausgewählt. Am 19. Oktober haben wir zugestimmt. Kaine Forge hat jetzt eine eigene Contributor-Seite (öffnet in einem neuen Tab) im Corpus Hub.
Besonders hervorgehoben hat XERJ eine Änderung: Sie lässt den Agent Desk von Kaine Forge Builds und Prüfungen von einem Windows-Rechner aus unter Linux ausführen. Der Rest dieses Artikels erklärt diese Änderung.
Das Problem: Prüfungen, die nur unter Linux bestehen
Kaine Forge enthält einen Agent Desk, eine lokale Softwarefabrik. Er führt ein GitHub-Issue durch Planung, Build, Prüfung und Review und öffnet dann einen Pull Request als Entwurf. Die verantwortliche Person gibt an zwei Stellen frei und führt jeden Pull Request selbst zusammen. Im Docker-Modus laufen Builder und Prüfungen in Containern. Ein Container erreicht nur den KI-Anbieter über einen Proxy, sieht keine Dateien des Hosts und hat kein GitHub-Token. So schützt der Docker-Modus den Host vor einem Agenten, dem per Prompt Injection Anweisungen untergeschoben wurden.
Auf einem Windows-Host scheiterte das an zwei Stellen. Die Container-Richtlinie akzeptierte nur Ordnerpfade im Linux-Stil, deshalb brach jeder Containerlauf mit „Refusing the bind mount“ ab. Außerdem liefen die Prüfungen vor dem Ausliefern weiterhin auf dem Host. Einige Tests im Repository bestehen nur unter Linux und macOS, daher konnte pnpm check unter Windows nicht bestehen, und der Desk konnte nicht ausliefern.
Die Lösung
- Windows-Pfade mit demselben Schutz. Die Container-Richtlinie akzeptiert jetzt einen absoluten Windows-Laufwerkspfad wie
C:\workals Quelle für einen Bind-Mount. Das Wurzelverzeichnis, die Docker-Pipe und Netzwerkfreigaben lehnt sie weiterhin ab. - Jede Prüfung unter Linux. Im Docker-Modus laufen die Prüfungen vor dem Ausliefern jetzt über denselben Isolationsport wie die Prüfungen in der Schleife. Ein Windows-Host führt jede Prüfung in einem Linux-Container aus, wie es auch die CI tut.
- Ausführbare Dateien behalten ihren Modus. Git unter Windows setzt
core.fileMode=falseund hält das Ausführungsbit nur im Index. Der Desk wendet einen Container-Patch jetzt mitgit apply --cachedauf eine Arbeitskopie des Index an, sodass neue und umbenannte ausführbare Dateien ihr Bit behalten. Das Ausliefern trägt diese Bits durch seingit resetundgit add. - Kein stiller Rückfall. Läuft ein Issue im Docker-Modus und hat der Prozess keine Docker-Unterstützung, verweigert das Ausliefern die Prüfungen auf dem Host.
| Schritt | Host-Modus | Docker-Modus |
|---|---|---|
| Planer und Reviewer (nur lesend) | Host | Host |
| Builder | Host | Container |
Prüfphase (pnpm generate, Prüfungen in der Schleife) | Host | Container, einer pro Schritt |
Prüfungen vor dem Ausliefern (pnpm check vor dem Commit) | Host | Container, einer pro Schritt |
| Ausliefern (Commit, Push, Pull Request) | Host | Host |
/**
* An absolute folder below the root: POSIX (`/x`) or a Windows drive (`C:\x`).
* No root, no relative path, no UNC share or device path (`\\server`, `\\.\pipe`).
*/
const HOST_FOLDER = /^(?:\/|[A-Za-z]:[\\/])[^\\/]/;Tests kamen mit der Lösung
Die Codeänderung umfasst 14 TypeScript-Dateien und 438 geänderte Zeilen, und ihre Tests kamen im selben Commit. Sie decken die Container-Richtlinie, die Patch-Übertragung, die Git-Schritte des Auslieferns und einen Docker-Integrationslauf ab. Eine Review-Runde schloss danach die Randfälle: Ein Ordner namens docker_engine lässt sich wieder einbinden, und umbenannte ausführbare Dateien und Dateinamen in Anführungszeichen behalten ihre Bits.
Was das für Kunden bedeutet
Dieselben Praktiken wenden wir in Kundenprojekten an. Prüfungen laufen dort, wo die CI sie ausführt, Agenten arbeiten in abgesicherten Containern, und ein Mensch prüft jede Änderung vor der Auslieferung. Lesen Sie in Agentisches Engineering in der Praxis, wie wir sie anwenden, oder sehen Sie sich unsere Leistung KI-gestützte Umsetzung an.
Kaine Forge ist Open Source auf GitHub (öffnet in einem neuen Tab). Lesen Sie die Änderung selbst (öffnet in einem neuen Tab) oder besuchen Sie die Contributor-Seite bei XERJ (öffnet in einem neuen Tab).