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:\work als 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=false und hält das Ausführungsbit nur im Index. Der Desk wendet einen Container-Patch jetzt mit git apply --cached auf eine Arbeitskopie des Index an, sodass neue und umbenannte ausführbare Dateien ihr Bit behalten. Das Ausliefern trägt diese Bits durch sein git reset und git 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.
SchrittHost-ModusDocker-Modus
Planer und Reviewer (nur lesend)HostHost
BuilderHostContainer
Prüfphase (pnpm generate, Prüfungen in der Schleife)HostContainer, einer pro Schritt
Prüfungen vor dem Ausliefern (pnpm check vor dem Commit)HostContainer, einer pro Schritt
Ausliefern (Commit, Push, Pull Request)HostHost
Wo jeder Schritt des Agent Desk läuft. Diese Änderung hat die Prüfungen vor dem Ausliefern in Container verlegt.
/**
 * 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]:[\\/])[^\\/]/;
Die neue Pfadregel. Sie akzeptiert einen absoluten Linux-Ordner oder einen Ordner auf einem Windows-Laufwerk und lehnt Wurzelverzeichnis, relative Pfade, Netzwerkfreigaben und Gerätepfade ab.

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).