23/Documentation
Fehlerbehebung
Symptome in den Begriffen, nach denen Sie tatsächlich suchen würden
Symptome unten, der Reihe nach; durchsuchen Sie die Seite nach Ihrem Fall. Os { NotFound } von herdr plugin · update meldet "not currently on a branch" · tailscale serve failed · antwortet nicht (Dienst startet nicht) · Telefon kann die URL nicht öffnen · Seite lädt, bleibt aber leer (weiße Seite, 403) · Passwortabfrage akzeptiert die Eingabe nicht · keine Push-Benachrichtigungen · nach einem Neustart verschwunden · Ein Bereich bleibt schmal · Collie verweigert das Öffnen eines tmux-Fensters · tmux list: output did not parse · herdr plugin list zeigt die alte Version an · veraltete Benutzeroberfläche nach einem Rebuild · Ich habe eine Maschine in Herdr gespeichert und das Telefon zeigt sie nicht an · Ein vom Telefon gestartetes Update bleibt bei Staging stehen · Ein Telefon-Update unter macOS belässt Collie im nicht geladenen Zustand · unter macOS meldet collie status „geladen, läuft nicht“ · Ein Bereich zeigt keinen Prompt-Cache-Chip an · Verlauf eines Kiro-Bereichs öffnet sich leer · Ein Bereich hat weder Chat noch Verlauf · Ein neuer Codex-Bereich meldet, dass noch kein Verlauf vorhanden ist · Das Smartphone meldet, dass Collie einen Bildschirm nicht lesen kann, den der Agent nicht anzeigt · Senden schlug 3-mal fehl und das Telefon bietet einen Bericht an · Ein Agent ist auf der Seite „Neu“ ausgegraut · Start meldet, dass kein Ordner existiert, oder meldet fehlende Bestätigung · Walky-Talky: Senden wird abgelehnt, "run this inside a pane" · Walky-Talky: Die Nachricht verbleibt im Posteingang und wurde nicht eingetippt · Walky-Talky: "no log record on this machine" · Walky-Talky: Der Skill ist veraltet · ein durable agent wird nicht angezeigt oder meldet Nicht erreichbar.
herdr plugin … schlägt mit Error: Os { code: 2, kind: NotFound, message: "No such file or directory" } fehl (Plugin-Installation schlägt fehl, Aktionsaufruf schlägt fehl). Dies ist kein Collie-Problem: Es bedeutet, dass der Herdr-Server nicht läuft, sodass dessen CLI den Control-Socket (~/.config/herdr/herdr.sock) nicht erreichen kann. Das Erkennungsmerkmal ist der unverarbeitete Fehler Os {…}: Ein erreichbarer Server antwortet auf Pfad-/Manifest-Probleme mit strukturiertem JSON (z. B. plugin_manifest_not_found), ein reiner Os { NotFound } ist also ein fehlgeschlagener Socket-Verbindungsaufbau, bevor Collie oder Ihr Pfad überhaupt geprüft wird. Dies betrifft link, install, action invoke (jeden Unterbefehl, der mit dem Server kommuniziert), während herdr plugin --help weiterhin funktioniert (dieser öffnet den Socket nie). Lösung: Starten Sie zuerst Herdr (herdr server &, oder starten Sie einfach die Herdr-TUI, wodurch der Server gebootet wird), prüfen Sie, ob ls ~/.config/herdr/herdr.sock nun existiert, und wiederholen Sie dann die Installation. herdr plugin list ist ein schneller Test: Wenn derselbe Fehler auftritt, ist der Server inaktiv.
update schlägt mit You are not currently on a branch fehl. Eine GitHub-Installation vor 0.23.1 (#63): herdr plugin install löst den Zustand, anstatt zu klonen, sodass der alte update keinen Zweig hatte, in den er per git pull einpflegen konnte. Die Behebung ist im Checkout enthalten, den sie repariert; es ist also eine Neuinstallation erforderlich, um sie zu übernehmen: Falls dies mit "You are not currently on a branch" fehlschlägt enthält die drei Befehle.
start gibt note: tailscale serve failed aus. Collie selbst läuft einwandfrei (weiterhin erreichbar unter 127.0.0.1). Lediglich das Tailnet-Ingress wurde nicht gestartet, und der Fehler von Tailscale selbst wird im Terminal über dem Hinweis angezeigt. Typische Ursachen: Ihr Benutzer ist nicht der Tailscale-Operator (sudo tailscale set --operator=$USER), der Knoten ist abgemeldet (tailscale up) oder auf Headscale- / .internal-Tailnet-Domains sind keine HTTPS-Zertifikate verfügbar. Genau dafür ist COLLIE_SERVE_MODE=http vorgesehen: Setzen Sie es in .env, dann bin/collie restart. Prüfen Sie es mit tailscale serve status.
serve besagt HTTPS certificates are not enabled on this tailnet. Nichts wurde veröffentlicht und nichts wartet. Öffnen Sie die Admin-Konsole, aktivieren Sie „Enable HTTPS“ und führen Sie collie serve erneut aus. Auf Headscale- / .internal-Domains gibt es keine Zertifikate zum Aktivieren; verwenden Sie stattdessen COLLIE_SERVE_MODE=http.
Banner zeigt ⚠ Collie isn't answering on :8787 yet an (Dienst startet nicht, Verbindung verweigert). Der Dienst wurde gestartet, aber der HTTP-Server antwortet nicht auf die Prüfung. Überprüfen Sie zuerst die Unit (systemctl --user status collie), dann bin/collie logs (oder journalctl --user -u collie -f zur Live-Verfolgung) nach der Ursache: Meist ist der Port bereits belegt (setzen Sie COLLIE_PORT in .env, dann bin/collie restart, wodurch auch tailscale serve für den neuen Port erneut ausgeführt wird) oder der erste Build ist fehlgeschlagen (dies steht im Protokoll; beheben Sie dies und führen Sie bin/collie build aus). Die Unit startet alle 5 s automatisch neu; sobald die Ursache behoben ist, wird sie in der Regel von selbst wieder aktiv.
Telefon kann die Tailnet-URL nicht öffnen. Gehen Sie die Liste durch: (1) Auf dem Telefon läuft die Tailscale-App und es ist mit demselben Tailnet wie der Host verbunden; (2) Sie öffnen die tailnet-URL des Banners (bin/collie url), nicht die local-URL, denn http://127.0.0.1:8787 funktioniert nur auf dem Host selbst; (3) MagicDNS ist in den DNS-Einstellungen Ihres Tailnets aktiviert (die URL ist ein MagicDNS-Name); (4) der Host ist online (prüfen Sie tailscale status auf dem Host oder senden Sie einen Ping vom Telefon aus über die Tailscale-App an den Host); (5) Ihre Tailnet-Richtlinie lässt tatsächlich Peers für diesen Knoten zu. Falls nicht, weist das Banner nun unter der Zeile tailnet darauf hin und sonst nichts: Die Eingangsschnittstelle ist korrekt veröffentlicht, das Zertifikat ist gültig und curl vom Host selbst liefert den Statuscode 200 zurück, da Loopback-Verkehr den Paketfilter nie passiert. Zwei Faktoren machen diesen Fall besonders irreführend: tailscale ping gelingt (Disco-Pings umgehen ACLs) und blockierter Datenverkehr wird verworfen statt abgewiesen, sodass das Telefon hängen bleibt und der Eindruck entsteht, der Server sei inaktiv. Beheben Sie dies in Ihrer ACL-Richtlinie (<https://login.tailscale.com/admin/acls> bei Tailscale; Ihre Richtliniendatei bei Headscale). Die Prüfung erfolgt nach dem Best-Effort-Prinzip und ist bewusst vorsichtig ausgelegt: Sie schlägt nur dann an, wenn der Filter dieses Knotens nichts zulässt (was ebenso bedeuten kann, dass noch kein anderes Gerät dem Tailnet beigetreten ist), und verhält sich ansonsten neutral.
Seite lädt, bleibt aber leer (leere Seite, weißer Bildschirm); API-Aufrufe schlagen 403 cross-origin rejected fehl. Sie greifen über einen Ursprung auf Collie zu, den die Anwendung nicht erwartet: eine benutzerdefinierte Domain oder einen Proxy, der Host umschreibt. Erlauben Sie den genauen öffentlichen Ursprung über COLLIE_ALLOWED_ORIGINS (siehe Konfiguration) oder konfigurieren Sie den Proxy so, dass er Host unverändert weiterleitet (die vierte Proxy-Anforderung in docs/deployment.md).
Eine Eingabeaufforderung für sudo (oder SSH-Passphrase oder gpg) nimmt Ihre Antwort nicht an. Verwenden Sie Eingeben in der Aktionsleiste über der Tastatur, nicht Senden. Senden prüft überprüft Eingaben durch Zurücklesen vom Bildschirm vor dem Drücken der Eingabetaste (#34). Da eine Passwortabfrage die Bildschirmausgabe deaktiviert, gibt es nichts zurückzulesen. Eingeben sendet Ihre Tastenanschläge direkt an den Bereich, einschließlich der Eingabetaste. Eingaben in Eingeben werden weder gespeichert, noch in einen Entwurf übernommen oder später wiederhergestellt; sobald Collie eine Passwortabfrage erkennt, wird auch der gespeicherte Entwurf verworfen (#103).
Keine Push-Benachrichtigungen empfangen. Lösen Sie manuell eine Benachrichtigung aus: bin/collie push-test. Drei Ursachen, in der Reihenfolge, in der der Befehl sie unterscheidet: Push meldet, dass es deaktiviert ist (die Schlüssel haben die Bridge nie erreicht; führen Sie push-keys aus und starten Sie neu, siehe Web Push); es meldet, dass keine Geräte abonniert sind (dieses Telefon hat sie unter Einstellungen → Benachrichtigungen nie aktiviert); oder es meldet einen Sendevorgang, aber nichts kommt an (das Telefon nutzt einen reinen HTTP-Origin, der keinen sicheren Kontext darstellt; die Einstellungen markieren dies mit insecure).
Collie ist nach einem Neustart verschwunden. Unter Linux liegt dies fast immer am Lingering, führen Sie also loginctl enable-linger $USER aus (Neustarts überstehen). Unter macOS startet der launchd-Agent bei Anmeldung; prüfen Sie daher, ob Sie tatsächlich angemeldet sind (nicht am Anmeldefenster verweilen) und ob der Agent geladen ist: launchctl print gui/$(id -u)/herdr.collie.
Das Terminal eines Bereichs bleibt schmal, und eine Vollbild-App darin wird gestaucht (Copilot CLI, top, jede TUI, die in einen Streifen gezeichnet wird, während der Rest des Spiegels leer bleibt). Das Terminal des Bereichs ist so schmal, und Collie spiegelt es originalgetreu wider. Die Breite eines Herdr-Bereichs stammt von seinem Rechteck im Split-Raster des Tabs; ein Bereich, der sich einen Tab teilt, erhält also einen Teil der Spalten. Herdr wendet die Bereichsgeometrie nur während ein Desktop-Client verbunden ist an (herdr#1709): Wenn nichts verbunden ist, bleibt der verbleibende Bereich beim Schließen eines Splits bei der alten schmalen Breite hängen, und pane.zoom sowie pane.resize über den Socket ändern daran ebenfalls nichts. Collie kann dies von seiner Seite aus nicht beheben; es schreibt die Bereichsgeometrie überhaupt nicht (ADR 0031: Das Smartphone verschiebt das Terminal des Operators nur beim Antippen von Show in terminal). Daran ist nichts anwendungsspezifisch: top in einem Bereich mit 54 Spalten sieht identisch aus. Führen Sie tput cols im Bereich aus, um es zu messen. Das ist die tatsächliche Breite, und sie kann von dem abweichen, was herdr pane layout meldet. Um das Problem zu beheben, verbinden Sie einen Herdr-Client und zoomen oder verändern Sie dort die Größe des Bereichs (herdr pane zoom <pane-id> --on passt das Terminal an, sobald etwas verbunden ist), oder schließen Sie den Bereich und öffnen Sie einen neuen (#167).
Collie verweigert das Öffnen eines tmux-Fensters (die Neuer Tab des Telefons lehnt ab und nennt window-size). Kein Fehler in der Anfrage: Bei tmux unter 3.7 führt das Erzeugen eines Fensters, während das window-size des Servers auf manual steht, zum Absturz des gesamten Servers (tmux #4849, behoben in 3.7), und ein abgestürzter Server reißt jedes Fenster mit sich. Collie lehnt stattdessen ab und nennt das vorgefundene tmux. Die Behebung ist die ausgegebene Zeile – tmux set -g window-size latest auf diesem Server – oder tmux 3.7. Nichts anderes ist betroffen: Jede andere Aktion auf diesen Bereichen funktioniert weiterhin (Anforderungen unterliegt der gleichen Einschränkung).
Collie protokolliert tmux list: output did not parse und das Dashboard bleibt leer. Kein Absturz: Einige tmux-Versionen (3.4, nicht 3.6b) maskieren das Trennzeichen, das dieser Adapter liest, bei der Ausgabe einer -F-Auflistung. Collie liest nun beide Formen; eine Auflistung, die zu null Zeilen parst, wird daher als Mux-Fehler gemeldet, statt als leere Herd gespeichert zu werden. Die Fehlerzeile nennt die tmux-Version und die Anzahl der erkannten Zeilen. Eine zweite Ursache war das Locale: Ohne UTF-8-Locale gestartet (ein Minimal-Container, eine systemd-Unit) ersetzt tmux dieses Trennzeichen durch _, statt es zu maskieren. Collie führt nun jeden tmux-Befehl mit -u aus, sodass die Auflistung nicht mehr von LANG oder LC_ALL abhängt. Tritt dies weiterhin auf, notieren Sie die Version von tmux -V und erstellen Sie ein Issue. Der Fix gehört in den Adapter, nicht in Ihre .env.
herdr plugin list zeigt nach einem update die alte Version an. Erwartetes Verhalten: Herdr speichert das Manifest zwischen, das bei der Installation oder beim Verknüpfen eingelesen wurde. Maßgeblich für die laufende Version ist der Build-Stempel in der Fußzeile oder bin/collie version. Bei einem verknüpften Klon verknüpft update neu und behebt dies automatisch (erzwingen Sie es mit herdr plugin link "$(pwd)"); ab Herdr ≥0.8.0 wird das Manifest ohnehin neu vom Datenträger eingelesen.
Telefon zeigt nach einem Rebuild eine veraltete Benutzeroberfläche. Der Service-Worker-Cache einer PWA ist ursprungsbezogen (per-origin). Wenn Sie Collie über zwei Ursprünge aufrufen (eine eigene Domain und die reine host:8787), erhalten Sie zwei Installationen, die jeweils ihr eigenes Bundle zwischenspeichern. Die Fußzeile Build-Stempel (vX.Y.Z · sha · time) zeigt das aktuell ausgeführte Bundle an; Collie meldet das ausgelieferte Bundle über den Header X-Collie-Build und /api/config. Bei einer Abweichung bietet die Fußzeile "neuer Build – zum Aktualisieren tippen." Öffnen Sie andernfalls die PWA einige Male neu (der SW aktualisiert sich automatisch) oder löschen Sie die Websitedaten dieses Ursprungs. Empfohlene Vorgehensweise: Wählen Sie einen HTTPS-Ursprung und bleiben Sie dabei. (Über reines HTTP kann sich der SW nicht registrieren; stets aktuell, aber ohne PWA-Funktionen.)
Ich habe eine Maschine in Herdr gespeichert und das Telefon zeigt sie nicht an. Erwartetes Verhalten. Die in Herdr gespeicherten Maschinen sind die Liste des eigenen Clients, und eine Crew ist die von Collie; keine der Listen speist die andere. Um diese Maschine vom Telefon aus zu erreichen, registrieren Sie sie: collie crew add <ssh-host> auf dem Lead, dann collie restart auf dem Lead und collie crew status, um die Verbindung zu prüfen. Das Hinzufügen oder Entfernen einer Maschine in Herdr ändert nichts an der Crew (Herdr-Maschinen und die Crew).
Ein Bereich zeigt keinen Prompt-Cache-Chip an. Eine von drei Ursachen liegt vor, und collie doctor unterscheidet sie. Das Testgerüst des Bereichs hat keinen Journal-Adapter, was die Zeilen integration-<agent> und journal-roots angeben. Der Bereich hat nie eine Sitzung gemeldet, was die Zeile agent-sessions anhand der Bereichs-ID aufführt. Oder der Agent war noch nicht am Zug, was kein Fehler ist: Vor der Messung wird nichts angezeigt, der Chip erscheint also bei der ersten Antwort des Agenten. Ein Testgerüst, dessen Anbieter keine Cache-Lebensdauer veröffentlicht, zeigt ebenfalls nichts an; cache-claims listet alle in diesem Build enthaltenen Regeln auf.
Der Verlauf eines Kiro-Bereichs öffnet sich leer. Prüfen Sie, ob das Kiro des Bereichs eine Sitzungssperre hält:
cat ~/.kiro/sessions/*/*/.lockHerdr benennt keine Sitzung für einen Kiro-Bereich, daher findet Collie sie über die Sperre, die das laufende Kiro hält. Das funktioniert nur unter Herdr, dem einzigen Multiplexer, der die Vordergrundprozesse eines Bereichs auflistet, und nur dann, wenn dort genau ein Kiro-Prozess läuft. Andernfalls meldet der Verlauf, dass der Bereich keine Agentensitzung hat.
Collie liest Kiro-V3-Sitzungen, die mit --v3 oder --agent-engine v3 gestartet wurden, oder wenn V3 als Engine in Kiros eigenen Einstellungen festgelegt ist; starten Sie Kiro in diesem Bereich daher auf diese Weise neu. Kiro hat keinen Herdr-Hook zu installieren. Wenn seine Sitzungen an einem anderen Ort liegen, setzen Sie kiro_root und führen Sie dann collie restart aus.
Ein Bereich zeigt das Terminal an, wo Sie Chat erwartet haben. Chat ist der Standard für ein Agent-Pane, daher trifft einer von zwei Fällen zu. Dieses Gerät hat zuvor das Terminal gewählt: Öffnen Sie das Menü ⋮ des Panes und tippen Sie auf Chat-Ansicht. Oder das Pane hat keine Sitzung oder kein Protokoll zum Lesen. Ein neues Pane zeigt Chat mit „Nachricht senden zum Starten“ und fällt auf das Terminal zurück, wenn sein erster Durchlauf ohne lesbare Ausgabe endet oder wenn es zuerst eine Frage stellt. Die Menüzeile zeigt, welcher Teil fehlt, und der nächste Eintrag enthält die Schritte.
Ein Bereich besitzt weder Chat noch History, und das Menü ⋮ meldet, dass der Bereich keine Sitzung benannt hat. Chat und History lesen das Sitzungsprotokoll des Agenten, und Collie findet das Protokoll nur, wenn der Agent seine Sitzung über den Multiplexer meldet. Unter Herdr stammt diese Meldung aus der agenteneigenen Integration; eine fehlende oder veraltete Integration blendet beides ohne weitere Symptome aus. collie doctor nennt den Bereich unter agent-sessions und die Behebung unter integration-<agent>.
- Führen Sie
herdr integration statusaus. Wenn der Agentnot installedoderoutdatedist, führen Sieherdr integration install <agent>aus. Oh My Pi istompund pi istpi: Beide benötigen jeweils ihr eigenes. - Starten Sie den Agenten in diesem Bereich neu. Ein Agent lädt seinen Hook beim Start; ein Agent, der während der Installation lief, meldet daher weiterhin nichts.
- Wenn der Hook aktuell ist und ein neu gestarteter Bereich weiterhin nichts meldet, prüfen Sie, ob der Agent aus einer Shell heraus gestartet wurde, die ein anderer Agent geöffnet hat. Der Hook von Oh My Pi bleibt inaktiv, wenn
OMPCODE=1vom übergeordneten Agenten vererbt wird. Starten Sie ihn in einem neuen Terminal.
Unter tmux, zellij und tern meldet nur Claude Code eine Sitzung über die Beacon-Hooks von Collie. Führen Sie collie hooks install claude aus (Collie schreibt Hooks in Claudes eigene Einstellungen). Die anderen Agenten haben dort weder Chat noch Verlauf.
Ein neuer Codex-Bereich meldet, dass noch kein Verlauf vorhanden ist. Bis zum ersten Durchlauf zu erwarten. Codex meldet seine Sitzung erst an Herdr, wenn der erste Prompt gesendet wird, nicht beim Start. Ein neuer Bereich besitzt daher bis dahin keine Sitzung und keinen Verlaufslink. collie doctor führt einen solchen Bereich unter agent-sessions als noch nicht gemeldet auf und wertet dies nicht als Fehler. Wenn der Hinweis nach der Antwort von Codex weiterhin angezeigt wird, öffnen Sie /hooks in Codex. Wenn sich die Hooks ändern, fordert Codex Sie auf, diese zu prüfen; „Continue without trusting“ deaktiviert den Herdr-Hook, während herdr integration status ihn weiterhin als aktuell ausweist. Vertrauen Sie dem Hook dort, oder führen Sie herdr integration install codex aus und starten Sie eine neue Sitzung.
Das Smartphone meldet, dass Collie einen Dialog nicht lesen kann, oder eine Eingabe erreicht das Eingabefeld nicht, während der Agent am Schreibtisch seinen normalen Prompt anzeigt. Collie hat den Bildschirminhalt falsch gelesen, meist weil der Agent seine Bildschirmausgabe geändert hat. Bitte eröffnen Sie ein Issue mit dem Rohtext des Bildschirms; dieser zeigt, was ein Screenshot nicht abbilden kann (die Farben und den abgeblendeten Text, den Collie liest). Ermitteln Sie die Bereichs-ID mit herdr pane list und führen Sie dann Folgendes aus:
herdr pane read <pane-id> --source recent --lines 200 --format ansi > pane.txtwährend das Smartphone das Problem weiterhin anzeigt, und hängen Sie pane.txt zusammen mit der Version des Agenten an (claude --version, codex --version usw.). Die Datei enthält den Text des Terminals; prüfen Sie die Datei daher vorab und entfernen Sie private Daten.
Senden schlug 3-mal fehl und das Telefon bietet einen Bericht an. Drei aufeinanderfolgende Eingaben in einem Bereich schlugen aus einem Grund fehl, der auf Collie hindeutet: Es konnte das Eingabefeld nicht lesen oder beschreiben, der Text wurde eingefügt und Enter folgte nicht, oder es verlor die Eingabe aus den Augen. Eine Verweigerung, die Sie schützt (ein Entwurf im Feld, ein laufender Zug, ein offener Dialog), zählt nicht. Tippen Sie auf Bericht auf der Karte. Der Dialog zeigt das gesamte Issue, bevor etwas übertragen wird: die Versionen von Collie und des Agenten, den Multiplexer und die Codes jeder fehlgeschlagenen Eingabe. Er enthält keinen von Ihnen eingegebenen Text und keinen Bildschirminhalt, sofern Sie nicht Eigene Eingaben einbeziehen oder Bildschirminhalt einbeziehen aktivieren. Der Bildschirminhalt umfasst die letzten 40 Zeilen des Bereichs, wobei bekannte Geheimnismuster maskiert sind; lesen Sie ihn dennoch durch, da das Issue öffentlich ist. Auf GitHub öffnen öffnet das ausgefüllte Formular in Ihrem Browser unter Ihrem eigenen GitHub-Konto, und Bericht kopieren kopiert denselben Text. Tippen Sie zuerst auf Bereits gemeldet?, um ein Issue mit derselben Signaturzeile zu finden. Das Bereichsmenü und Einstellungen → System öffnen denselben Dialog jederzeit. Das Kreuz schließt die Karte in diesem Bereich, bis eine Eingabe wieder funktioniert. Der Bereich eines Crew-Mitglieds bietet noch keinen Bericht an; verwenden Sie die obigen Schritte.
Ein vom Telefon gestartetes Update bleibt bei Staging stehen. Unter Collie bis 1.6.0 konnte ein auf dem Telefon angetipptes Update die neue Version bereitstellen und dann anhalten: Der Runner, der den Austausch durchführt, wurde nie gestartet, der Dienst lieferte weiterhin die alte Version aus und der Ausführungsdatensatz verblieb bei staging mit gehaltenem Lock. Das Erkennungsmerkmal sind drei Umstände zusammen: collie update --status meldet staging (oder nach zehn Minuten interrupted — the updater is gone), das Versionsverzeichnis für das neue Release existiert unter versions/ und das Runner-Protokoll unter ~/.config/collie/collie.log umfasst 0 Bytes. Ein in einer Shell auf derselben Maschine eingegebenes collie update funktionierte immer, was derselbe Fehler von der anderen Seite betrachtet ist. Ab dem nächsten Release ist dies behoben: Die Übergabe wartet nun darauf, dass der Benutzermanager den Runner bestätigt, und eine verweigerte Übergabe wird als Fehler mit der Begründung des Managers gemeldet.
Um eine Maschine zu bereinigen, die bereits festsitzt, tun Sie zehn Minuten lang nichts: Ein Durchlauf, dessen Updater nicht mehr vorhanden ist, blockiert zehn Minuten nach seinem letzten Zustandsübergang keinen Neuversuch mehr, und das nächste Antippen wird ausgeführt. Um sie jetzt zu bereinigen, löschen Sie den Datensatz, den Lock und die Staging-Fortschrittsdatei und prüfen Sie dann, was --status ausgibt:
collie update --status # note the pid it names
ps -p <pid> -o command= # empty output: the updater really is gone
rm -f ~/.local/state/collie/update.json ~/.local/state/collie/update.lock
rm -f ~/.local/state/collie/update-staging-*.log
collie update --status # "no update has run on this install yet"Es gibt keinen Befehl, der einen veralteten Durchlauf bereinigt, und diese drei Dateien bilden den gesamten Zustand, den ein blockiertes Staging hinterlässt. Eine Instanz mit Suffix speichert sie stattdessen in ~/.local/state/collie-<name>/. Löschen Sie diese Niemals, während ein Update tatsächlich läuft, und prüfen Sie zuerst die PID: Ein aktiver Updater, dessen Lock Sie entfernt haben, ändert current ohne jeglichen Schutz. Belassen Sie versions/ unverändert. Das halb bereitgestellte Versionsverzeichnis ist harmlos, der Neuversuch baut wieder darin auf und die Bereinigungsroutine entfernt, was nicht mehr benötigt wird.
Ein Telefon-Update unter macOS belässt Collie im nicht geladenen Zustand. Führen Sie dies auf dem Mac aus:
collie restartUnter Collie bis Version 1.8.x konnte ein auf dem Telefon angetipptes Update den launchd-Agenten anhalten und nie wieder laden. Dadurch verlor das Telefon den Dienst und launchctl print gui/$(id -u)/herdr.collie fand nichts. Der Runner teilte sich die Prozessgruppe des Agenten, und ein Neustart des Agenten beendete ihn vorzeitig. collie restart schreibt die plist des Agenten neu und lädt sie. Ab 1.9.0 startet die Bridge den Runner in einer eigenen Prozesssitzung. Falls ein Telefon-Update den Agenten danach immer noch entlädt, führen Sie denselben Befehl aus und hinterlassen Sie eine Notiz unter #213.
Unter macOS wird collie start abgeschlossen, aber collie status meldet „loaded, not running“. Der launchd-Job ist geladen und es läuft kein Prozess, daher ist das Protokoll leer. Starten Sie den Job manuell:
launchctl kickstart gui/$(id -u)/herdr.collie
collie statusEine Instanz mit Suffix hat eine eigene Kennzeichnung, zum Beispiel herdr.collie-next. Ab 1.17.0 übernehmen collie start und collie restart diesen Schritt für Sie und geben eine Warnung mit diesem Befehl aus, wenn kein Prozess erscheint. Wenn der Job danach weiterhin „loaded, not running“ bleibt, lesen Sie das Protokoll mit collie logs und fügen Sie einen Hinweis zu #213 hinzu.
Ein Agent ist auf der Seite „Neu“ ausgegraut. Die Ursache folgt in Klammern auf den Namen. „not installed“ bedeutet, dass die Maschine den Befehl des Agenten nicht im PATH gefunden hat, den Ihre Login-Shell verwendet. Führen Sie in einer Login-Shell auf dieser Maschine bash -lc 'command -v claude' aus (oder den Namen des Agenten selbst). Wird nichts ausgegeben, installieren Sie den Agenten dort oder korrigieren Sie die Zeile in der Login-Datei Ihrer Shell, die ihn zum PATH hinzufügt, und laden Sie die Seite neu. Prüfen Sie in einer Crew die ausgewählte Maschine: Jedes Mitglied sucht auf seiner eigenen Festplatte. „this machine runs an older Collie“ bedeutet, dass Sie dieses Mitglied aktualisieren müssen (Etwas auf einer Maschine starten). „needs Herdr“ und „only on“ gefolgt vom Namen einer Maschine gehören zum Neuer Worktree-Schalter, nicht zu einem Agenten.
Start meldet „There is no folder … on this machine“ oder „could not confirm the start“. Die erste Meldung bedeutet, dass der Ordner auf der Maschine fehlt, die den Start ausführt; es wurde daher nichts gestartet. Ein Name ohne vorangestelltes / oder ~ ist ein Ordner unterhalb Ihres Home-Verzeichnisses, projects bedeutet also ~/projects. Erstellen Sie den Ordner oder wählen Sie einen aus „Recent“. Die zweite Meldung bedeutet, dass das Telefon die Antwort verloren hat. Prüfen Sie zuerst das Dashboard, da der Bereich möglicherweise existiert. Erneut versuchen sendet dieselbe Anfrage erneut und öffnet niemals einen zweiten Bereich (Einen Agenten oder eine Shell vom Smartphone starten).
Walky-Talky
Sechs Symptome von Walky-Talky treten am häufigsten auf. Zu jedem gibt es einen Befehl, der die Ursache anzeigt (Walky-Talky).
collie walky send meldet "Führen Sie dies innerhalb eines Bereichs aus, oder senden Sie es vom Smartphone". Der Befehl wurde außerhalb des Bereichs eines Agenten ausgeführt, beispielsweise in einem einfachen Terminal. Collie bestimmt den Absender anhand der Umgebung des Bereichs selbst. Ein Senden ohne Bereich wird abgelehnt. Führen Sie den Befehl im Bereich des Agenten aus oder senden Sie ihn vom Telefon. In einem Agentenbereich kennzeichnet collie walky who Ihren Bereich mit (you). Der Fehler "no Collie bridge on this machine knows this pane" bedeutet, dass ein anderes Collie den Bereich besitzt. Der Fehler "no running Collie bridge answers" bedeutet, dass die Bridge nicht läuft: Führen Sie collie status aus.
Die Nachricht meldet "held" und ist noch nicht eingetippt. collie walky status <id> gibt "held: draft present" oder "held: turn running" aus. Das Eingabefeld enthält einen Entwurf, oder der Agent arbeitet gerade. Collie tippt die Nachricht ein, sobald das Feld frei ist oder der Durchlauf endet, bis zu 60 Minuten lang. Senden Sie sie nicht erneut. Um sie jetzt zuzulassen, senden oder löschen Sie den Entwurf in diesem Bereich. Unter einem älteren Lead bedeutet "queued (outcome known on the lead)" ebenfalls warten.
Die Nachricht liegt im Posteingang und wurde nicht eingetippt. collie walky status <id> gibt "waiting in the inbox, not typed" und den Grund aus. "held past 60 minutes" bedeutet, dass während der gesamten 60-minütigen Wartezeit ein Entwurf im Feld verblieb, der Bereich belegt blieb oder ein Dialog geöffnet blieb: Collie tippt niemals in einen Entwurf oder Dialog. "box not free" bedeutet, dass Collie kein freies Eingabefeld lesen konnte. "pane busy" bedeutet, dass dort nach 2 Minuten immer noch eine frühere Nachricht eingetippt wurde. "pane replaced" bedeutet, dass eine andere Sitzung den Bereich übernahm, während die Nachricht wartete. "no terminal" und "bridge restarted" sind die anderen beiden. Führen Sie collie walky inbox in diesem Bereich aus, oder öffnen Sie Nachrichten im Bereichsmenü auf dem Smartphone. Collie tippt die Nachricht nicht erneut ein.
collie walky send meldet "not sent: pane replaced". Die Adresse endet mit einem Token wie #k3f9, und der angegebene Bereich wurde geschlossen. Ein anderer Bereich belegt nun diese Bereichs-ID, daher tippt Collie die Nachricht dort nicht ein. Führen Sie collie walky who aus und senden Sie an die neue Adresse. Eine Antwort mit "not sent: sender gone" hat dieselbe Ursache: Der Bereich, der die Nachricht gesendet hat, wurde geschlossen, oder ein anderer Bereich belegt nun dessen ID.
Ein Header in einem Bereich zeigt "no log record on this machine". Das Smartphone hat einen Walky-Talky-Header im Bildschirmtext gefunden, und das Protokoll dieses Rechners enthält keine Nachricht mit dieser ID. Jemand oder etwas hat die Zeile eingetippt, das Protokoll hat sie nach 7 Tagen oder 2.000 Zeilen verworfen, oder ein anderes Collie hält sie vor. Führen Sie collie walky status <id> aus: "no record of <id> on this machine" bestätigt dies. Führen Sie den Befehl für einen Bereich auf einem Crew-Mitglied auf diesem Mitglied aus: Dessen Protokoll wurde vom Smartphone gelesen. Behandeln Sie die Zeile als einfachen Text und fragen Sie den Absender, falls Sie sie benötigen.
Der Skill ist veraltet. collie doctor warnt in der Zeile skill-walky-talky, und der Agent folgt veralteten Anweisungen. Der Text in einer Anweisungsdatei weicht von diesem Build ab. Führen Sie collie skill status aus, um zu sehen, welches Harness im Rückstand ist. Führen Sie collie skill status --check in einem Skript aus: Es gibt nichts aus und beendet mit Code 3, wenn eine Kopie veraltet ist. Beheben Sie dies mit collie skill install all und starten Sie den Agenten neu. Ein als refused markiertes Ziel ist ein Symlink oder hat beschädigte Markierungen, und eine Installation fasst es niemals an.
Persistente Agenten
Ein eingebundener durable agent verfügt über eigene Prüfungen, Gründe und Fälle. Beginnen Sie mit collie durable list und collie doctor, und lesen Sie dann Fehlerbehebung für persistente Agenten.
Diese Seite auf GitHub bearbeiten