OAR aktualisieren Neu in 0.9.2
OAR aktualisiert sich nicht im Hintergrund. Ein Relay kann nach einem neueren
Release suchen, es dir in Settings (Einstellungen) anzeigen und es
installieren, wenn du Update (Aktualisieren) drückst oder
oar update ausführst. Nichts wird ohne
dich installiert, und die Prüfung, die ein Release findet, ist aus, bis du sie
einschaltest.
Die Update-Prüfung #
Die Prüfung ist standardmäßig aus. Ein Relay, dem nie etwas anderes gesagt wurde, schickt nichts an oar.sh.
- Öffne Settings → General (Einstellungen → Allgemein).
- Schalte Check for updates automatically (Automatisch nach Updates suchen) ein.
Ist sie an, fragt das Relay oar.sh etwa zweimal am Tag nach der neuesten Version: alle 12 Stunden, plus oder minus bis zu einer Stunde, damit nicht viele Relays gleichzeitig fragen. Es fragt außerdem einmal, wenn du den Schalter einschaltest, und einmal bei jedem Start des Relays mit eingeschaltetem Schalter. Schaltest du den Schalter aus, hört das Fragen auf.
Der Button Check for updates (Nach Updates suchen) prüft einmal, egal, was
der Schalter sagt. Die Zeile daneben lautet Last checked <date and time>
oder Never checked.
Was die Prüfung abfragt #
Das Relay fragt eine Datei ab, das Manifest https://: ein
einfaches GET mit einem Header Accept: application/ und, sobald es
eine gibt, einem Header If- mit dem Tag der letzten Antwort, sodass
ein unverändertes Manifest keinen Download kostet. Die Anfrage enthält keine
Version, kein Token, kein Konto und keine Angaben zum Rechner. Sie wartet
höchstens 5 Sekunden. Es gibt keinen anderen Kontakt zu oar.sh. Ein Update zu
installieren spricht mit der npm-Registry, nicht mit oar.sh.
Das Manifest hat einen Eintrag pro Kanal mit der neuesten Version, ihrem
Release-Datum, einem Link zu ihren Release Notes und einem Flag critical:
{
"schemaVersion": 1,
"channels": {
"stable": {
"version": "0.9.19",
"publishedAt": "2026-10-27T06:23:15.940Z",
"notesUrl": "https://github.com/oar-sh/oar/releases/tag/v0.9.19",
"minNode": "22.13",
"critical": false
}
}
}
Das Relay liest den Eintrag seines eigenen Kanals (siehe Kanäle)
oder den stabilen Eintrag, wenn sein Kanal keinen hat. min nennt das
älteste Node.js, auf dem das Release läuft; weder das Relay noch die Installer
lesen es.
Eine automatische Prüfung, die fehlschlägt (kein Netz, eine Zeitüberschreitung,
eine fehlerhafte Antwort), sagt nichts und versucht es beim nächsten Intervall
wieder. Ein Klick auf Check for updates, der keine brauchbare Antwort
bekommt, zeigt den Hinweis Update check failed — the update server could not be reached. Ein Manifest mit einer anderen schema
als 1 hält die Prüfungen an, bis das Relay neu startet, und hängt The relay could not read the update feed — try updating manually. an die Zeile neben dem Button an.
Wenn eine Version gefunden wird #
Eine neuere Version erscheint als Zeile unter Check for updates in Settings → General:
OAR 0.9.19 available
mit einem Link release notes und den Buttons Update und Dismiss
(Schließen). Es gibt kein Banner und keinen Badge anderswo, und mit
ausgeschalteter Prüfung erscheint nichts, weil keine neuere Version bekannt
ist. Dismiss blendet diese Version aus, bis eine noch neuere erscheint. Ein
als critical markiertes Release lautet OAR 0., lässt sich nicht ausblenden und installiert sich
trotzdem nie von selbst. Bei einem git-Checkout hat die Zeile keinen Button
Update; sie sagt This relay runs from a git checkout — pull and restart to update.
Die Prüfung endgültig abschalten #
Setz OAR_ in der Umgebung des Relays. Das Relay
stellt dann überhaupt keine Anfrage mehr, auch nicht, wenn du Check for
updates drückst: Schalter und Button sind deaktiviert, und eine Zeile sagt
Update checks are disabled by OAR_ oar update ohne
--to verweigert ebenfalls. OAR_ richtet das Relay und oar update auf ein anderes Manifest aus. Siehe
Umgebungsvariablen.
Aus der Weboberfläche aktualisieren #
Drück Update in Settings → General. Das funktioniert bei einer
globalen Installation, wie sie der Installer und npm install -g anlegen.
- Das Relay führt
npm install -g --allow-aus (Neu in 0.9.14 mitscripts= @oar- sh/ oar, better- sqlite3, koffi @oar- sh/ oar@<version> @oar-in der Liste; siehe Mit npm installieren). Unter macOS und Linux nutzt es das npm neben dem Node.js, auf dem das Relay läuft, und installiert in den Ordner, in dem das Paket schon liegt. Das deckt alle drei Layouts des Installers ab: deinen eigenen globalen npm-Ordner,sh/ oar ~/., wenn dein npm-Ordner Root-Rechte brauchte, undoar/ npm ~/.mit OARs eigenem Node.js. Unter Windows führt esoar/ npm npm.aus demcmd PATHaus. npm hat 10 Minuten Zeit. - Die Statuszeile lautet
Updating to <version>…, und ein Update log (Update-Log) klappt mit der Ausgabe von npm auf. Cancel update (Update abbrechen) stoppt npm. - Wenn npm fertig ist, lautet die Zeile
npm finished — the relay restarts once the running turns finish.Das Relay fordert seinen eigenen Neustart an. Es wartet auf laufende Turns; Nachrichten, die du währenddessen schickst, warten in der Queue und laufen nach dem Neustart. Ein Banner auf jedem verbundenen Gerät zeigt das Warten an, mit Restart now (Jetzt neu starten) und Cancel restart (Neustart abbrechen). Neu in 0.9.13 Nach Ask after a queued relay restart has waited (Nachfragen, nachdem ein eingereihter Relay-Neustart gewartet hat) (standardmäßig 30 Minuten) fragt es, ob es jetzt neu starten, weiter warten oder abbrechen soll. Siehe Neustarts und Fortsetzen. - Das Relay startet neu, und die Seite verbindet sich von selbst wieder. Der Neustart läuft nicht über systemd oder einen anderen Dienstmanager; siehe Autostart.
Schlägt npm fehl, lautet die Zeile Update failed: <reason>, und das Log
zeigt, warum. Das Relay läuft mit der alten Version weiter.
Wenn du den Neustart abbrichst
Cancel restart im Banner stoppt nur den Neustart. Die neue Version ist
installiert, aber das Relay läuft mit der alten weiter, und die Statuszeile
lautet weiterhin npm finished — the relay restarts once the running turns finish. Starte das Relay
selbst neu, um sie zu laden.
Wie das Relay das Ergebnis prüft #
Bevor es neu startet, notiert das Relay, welche Version es zu installieren
versucht hat. Beim nächsten Start vergleicht es das mit der Version, die es
ausführt. Stimmen sie überein, erscheint Updated to <version>. Weichen sie
ab, zum Beispiel weil npm das Paket nicht ersetzt hat, erscheint
Update to <version> did not apply. mit dem Ende des npm-Logs. Eine Notiz,
die älter als 7 Tage ist, fällt ohne Meldung weg. Dismiss neben der Zeile
entfernt sie.
Aus einem Terminal aktualisieren #
oar update
Es sucht die neueste Version deines Kanals im Manifest, installiert sie mit
npm install -g und bittet ein laufendes Relay, neu zu starten, sobald seine
Queue leer ist. Gibt es nichts Neueres, gibt es Already up to date (<version>).
aus. Optionen und Exit-Codes stehen unter
oar update.
Um eine bestimmte Version zu installieren, auch eine ältere, nenn sie mit einem Leerzeichen hinter dem Flag:
oar update --to 0.9.9
--to liest die npm-Registry und überspringt das Manifest, es funktioniert
also auch mit OAR_. Schreib --to 0., nicht
--to=: Die zweite Form wird ignoriert und installiert das neueste
Release deines Kanals.
Der Installer ist ein weiterer Weg. Er installiert das Paket neu, ihn erneut auszuführen aktualisiert also; siehe Installation.
Kanäle #
Es gibt zwei Kanäle, stable und beta. Eine Beta-Version sieht aus wie
0. und wird unter dem stabilen Release mit derselben Nummer
einsortiert.
Ein Relay hat keine Kanal-Einstellung. Es folgt dem Kanal der Version, die es
ausführt: Eine Beta-Version folgt beta, jede andere folgt stable. Das gilt für
seine eigene Prüfung und für oar update.
| Du willst | Mach das |
|---|---|
| Beta von Anfang an | Installiere mit OAR_; siehe Installation |
| Eine stabile Installation auf Beta umstellen | Einmal oar update --beta |
| Auf Beta bleiben | Nichts |
| Zurück zu stable | oar update --to <stable version>, zum Beispiel oar update --to 0.. Ein Relay auf einer stabilen Version folgt wieder stable |
Einem Beta-Relay wird angeboten, welche Version auch immer das Manifest unter
beta listet, solange sie neuer ist als die laufende. Listet der Beta-Eintrag
ein stabiles Release, wie es beide Einträge für 0.9.19 tun, wechselt ein
Beta-Relay darauf und folgt ab dann stable. Für eine ältere Version brauchst
du --to.
Was ein Update unberührt lässt #
| Nach einem Update | |
|---|---|
| Zustandsordner, Config, Uploads, Logs | Unberührt. Siehe Dateien und Ordner |
| Daten, die eine frühere Version im Paket hielt | Neu in 0.9.14 Während das Update installiert, nach data/ kopiert, bevor npm die alte Version entfernt, und beim nächsten Start übernommen. Siehe Upgrade-Hinweise für 0.9.14 |
| Datenbank | Bleibt. Migrationen, die ein Release braucht, laufen beim ersten Start von selbst |
| Installierte App | Die Weboberfläche kommt vom Relay und ändert sich also mit ihm. Die installierte App wechselt beim Start auf die neue Version; du installierst nichts neu. Siehe OAR als App installieren |
| Laufende Sessions | Siehe unten |
| Provider-CLIs | Nicht aktualisiert. Siehe unten |
Sessions, die liefen #
Der Neustart wartet, bis kein Turn mehr läuft, dann startet das Relay mit dem
neuen Code. Agent-Prozesse, die vor dem Update gestartet wurden, haben den
alten Code, bis sie neu starten. Der Agent einer Session lernt seine Tools
beim Start. Das Release 0.9.10 ist ein Beispiel: Eine Session, die schon vor
dem Update lief, bietet weder subscribe noch usage von
remote_ (jetzt relay_)
an, bis ihr Agent neu startet. In 0.9.11 kann ein vor dem Update gestarteter
Worker seine Hintergrund-Tasks nicht an das neu gestartete Relay melden. In 0.9.12 braucht die
Konsole eines Befehls einen
nach dem Update gestarteten Agent, und dasselbe gilt für die Terminals von Grok
in der Task-Leiste. In 0.9.13 braucht die Markierung für einen Befehl, der in
tail geleitet wird, einen nach
dem Update gestarteten Agent, weil der Agent die Befehlszeile meldet.
Kill session (Session beenden) auf einer untätigen Session startet sie neu, und die
nächste Nachricht startet einen neuen Agent. Siehe
Neustarts und Fortsetzen.
Provider-CLIs #
OAR aktualisiert nur sich selbst. Die Kommandozeilen-Tools von Claude, Grok und GitHub Copilot sind eigene Programme; siehe Die CLI eines Providers installieren oder aktualisieren.
Gut zu wissen #
- Cursor bei einer globalen Installation. Neu in 0.9.14 Die
Cursor-Agent-Speicher liegen in
cursor-im Datenordner des Relays, ein Update ersetzt sie also nicht mehr. Vor 0.9.14 lagen sie standardmäßig im Paketordner, und eine Konversation, deren Speicher ein Update entfernt hatte, bekam einen neuen Agent. Siehe Dateien und Ordner und Cursor.agents - Windows. Eine globale Installation führt das Relay aus dem
OAR-Zustandsordner (
%APPDATA%\) aus, nicht aus dem Paketordner, ein Update kann das Paket also ersetzen, während das Relay läuft. Die Autostart-Einträge starten das installierte Paket; siehe Autostart.oar
Ein git-Checkout #
Ein Checkout aktualisiert sich nie selbst, und weder Update noch
oar update funktionieren darauf. Pull, installiere und starte das Relay dann
mit 🌄 Restart web relay (Web-Relay neu starten) im ⋯-Menü einer
Konversation neu:
git pull
npm install
Siehe Installation.
Upgrade-Hinweise #
Schritte, die ein Update von dir braucht, das neueste Release zuerst. Nicht aufgeführte Releases brauchen keine.
0.9.19 Neu in 0.9.19 #
- Keine Migrationen. Die Rückkehr zu 0.9.18 braucht keinen Schritt: 0.9.18 ignoriert
heap, und der OrdnerLimit Mb diagnosticsbleibt, wie er ist. - Das Relay hat jetzt ein Heap-Limit und schreibt einen Heap-Snapshot nach
diagnosticsim Datenordner, wenn es sich ihm nähert. Ein Snapshot enthält das Zugriffstoken und die API-Keys: Teile nie einen unverändert. - Nach dem Update
oareinmal stoppen und wieder starten. Der Prozess, der das Relay startet und überwacht, behält den Code, mit dem er gestartet ist: Ein Neustart durch das Update, aus der Weboberfläche oder mitoar restartohne den systemd-Dienst startet nur das Relay in ihm neu. Bis dieser Prozess mit 0.9.19 startet, läuft das Relay ohne Heap-Limit,heapund Heap-Snapshot, und ein Relay, dem der Speicher ausgeht, bleibt weiterhin gestoppt. Unter dem systemd-Dienst von Linux führLimit Mb oar restartaus, sonstoar stopund danachoar start. Bei einem Relay, dasoar copilotgestartet hat, beende diese Session und starte sie neu. - Agent-Sessions, die vor 0.9.19 gestartet wurden, behalten ihre Provider-Liste. Ihre Worker laufen durch das Update weiter, mit dem
relay_, mit dem sie gestartet sind. Diese Liste ist die von 0.9.19, also ändert sich jetzt nichts; ihr fehlen die Provider, die ein späteres Update bringt, bis der Worker der Session neu startet, zum Beispiel nach ☠️ Kill session imtool ⋯-Menü. - Node.js 22.13 oder neuer reicht weiterhin.
0.9.18 Neu in 0.9.18 #
- Migrationen 0031 bis 0034 laufen beim ersten Start von selbst: 0031 versieht jede eingereihte Nachricht mit ihrem Provider, 0032 fügt die Spalten des Abrechnungswechsels hinzu, und 0033 und 0034 fügen die Tabellen der Verbrauchskarte von Claude API hinzu. Eine ältere Version ignoriert die neuen Spalten und Tabellen. Die zwei Trigger, die 0031 auf die Queue-Tabelle setzt, füllen dort weiter ihre neue Spalte, was nicht schadet.
- Das Agent-Tool heißt jetzt
relay_. Wenn deine eigenen Anweisungen, Berechtigungsregeln oder Hookstool remote_oderrelay mcp__nennen, ändere sie aufrelay__ remote_ relay relay_odertool mcp__. Siehe Der Name.relay__ relay_ tool - Bevor du auf 0.9.17 zurückgehst, stell Claude-Chats auf dem Claude-API-Key zurück auf Subscription (Abo). 0.9.17 kennt Claude API nicht: Es bindet einen Chat eines Providers, den es nicht kennt, an Copilot, ein Chat, der auf dem Key bleibt, läuft dort also als Copilot-Chat. Das gilt auch für einen Chat, der auf dem Abo gestartet und auf den Key umgestellt wurde.
- Zurück auf 0.9.17 schaltet Hooks in DeepSeek-Chats wieder ein. Sie führen wieder die Hooks und die Statuszeile ihrer Einstellungsordner aus; siehe Ordner-Einstellungen können DeepSeek nicht umleiten.
- Node.js 22.13 oder neuer reicht weiterhin.
0.9.17 Neu in 0.9.17 #
- Migrationen 0024 bis 0030 fügen die Tabellen der Verbrauchskarte von DeepSeek hinzu: die Ausgaben nach Modell und nach Tag, das Guthaben, an dem sie misst, und, in 0030, die Zahlen eines importierten Verbrauchsexports. Sie laufen beim ersten Start von selbst, auch auf einem Relay, das DeepSeek nie nutzt, und berühren keine Tabelle, die eine ältere Version nutzt. Eine ältere Version ignoriert sie.
- Ein Claude-Login-Token in der Umgebung des Relays
(
CLAUDE_) erreicht nur Claude- und Claude-Cloud-Worker. Worker von Copilot, OpenAI, Cursor, Grok und DeepSeek starten ohne es, mit oder ohne tmux. Siehe Welche Variablen die Agents erreichen.CODE_ OAUTH_ TOKEN ANTHROPIC_undAPI_ KEY ANTHROPIC_in der Umgebung des Relays erreichen keinen Worker. Claude-Chats, die auf einem solchen Key liefen, laufen jetzt auf der Claude-Anmeldung des Hosts. Hat der Host keine, melde dich mit Relogin (Neu anmelden) unter Settings → Providers → Claude (Einstellungen → Provider → Claude) an. Siehe Umgebungsvariablen.AUTH_ TOKEN - Ein Relay, das aus einer Claude-Code-Session heraus gestartet wurde, gibt
diese Session nicht mehr an seine Worker weiter. Ihre Variablen werden für
jeden Worker entfernt, auch unter einem tmux-Server, der sie noch trägt.
Deine eigenen
CLAUDE_-Einstellungen bleiben. Siehe Welche Variablen die Agents erreichen.CODE_ * - Eine Session, die einer von Hand sortierten Gruppe beitritt, kommt zuerst in der Gruppe, nicht mehr zuletzt. Siehe Session-Gruppen.
- Node.js 22.13 oder neuer reicht weiterhin, und keine Einstellung und kein
Key in
config.muss geändert werden.json
0.9.16 Neu in 0.9.16 #
- Drei Datenbank-Migrationen laufen beim ersten Start von selbst: 0019 (die Abonnement-Optionen und die eigenen Prompts des beobachtenden Agents), 0020 für den Schalter Agents in this conversation may start sessions (Agents in dieser Konversation dürfen Sessions starten) und 0021 (welche Session-Gruppen ein Agent angelegt und welche deiner Gruppen ein Agent geleert hat). Sie fügen nur Spalten und eine Tabelle hinzu. Zurück auf eine ältere Version braucht keine Datenänderung: Sie ignoriert sie, behält die Regel mit nur einer Ebene und entfernt eine leere Gruppe wie bisher bei ihrem Start.
- Migration 0022 fügt die Tabelle für geplante Prompts hinzu, mit der
Herkunft der Nachrichten jedes Zeitplans (
origin_, mit ihren Hops) und dem Zeitpunkt, ab dem eine Auslösung für dich zurückgehalten wurde (json held_). Sie läuft beim ersten Start von selbst, zusammen mit 0019 bis 0021.since - Migration 0023 fügt die Tabelle für Fragen, die nicht blockieren
(
relay_), hinzu. Auch sie läuft beim ersten Start von selbst. Eine ältere Version ignoriert sie.asks - Abonnements, die
question_nehmen, bekommen ab jetzt auchasked question_, deine Antwort auf eine Frage.answered - Der Schleifenschutz zählt nur deine eigenen Nachrichten als deine. Vor 0.9.16 setzten ein Relay-Ereignis, die Nachricht nach einem Nutzungslimit oder die Notiz nach einem Neustart den Zähler der Prompts zurück, die ein Agent anderen Agents schicken darf, bevor du gefragt wirst, sodass zwei Agents, die sich gegenseitig beobachteten, ohne dich weitermachen konnten. Jetzt setzt ihn nur eine Nachricht zurück, die du schreibst, und Agents in einer solchen Schleife fragen dich früher. Siehe die Regeln.
- Agents, die Argumente übergeben, die eine Aktion nicht nimmt:
create_undsession update_verweigern den Aufruf jetzt und ändern nichts; die anderen Aktionen laufen weiter und nennen sie insession ignored. Siehe Aktionen. - Ein beobachtender Agent, der auf die Antwort auf seinen eigenen Prompt
gewartet hat, bekommt das
turn_dieses Turns nicht mehr zusätzlich als Ereignis.end - Node.js 22.13 oder neuer reicht weiterhin, und keine Einstellung und kein
Key in
config.muss geändert werden.json
0.9.15 #
- Von 0.9.14 mit einem selbst angelegten Autostart-Task unter Windows: Der
Wechsel in den Modus beim Hochfahren konnte in 0.9.14 einen vorhandenen Task
mit demselben Namen (
oar-oder den von vor der Umbenennung) ohne Kopie löschen. 0.9.15 behält einen solchen Task und verlangtrelay --replace, das vorher eine Kopie sichert. Ist ein Task von dir schon weg, hat OAR keine Kopie davon. - Der Autostart-Wechsel ersetzt nichts mehr, was OAR nicht angelegt hat.
Ein von Hand bearbeiteter Start-Task oder Launcher, ein Task, den jemand
anderes angelegt hat, der Start-Task von vor der Umbenennung und ein selbst
angelegter Autostart-Eintrag halten den Wechsel jetzt an, in der
Weboberfläche wie in
oar autostart, wo 0.9.14 sie ersetzt hat.oar autostart <mode> --replaceersetzt sie und behält von jedem eine Kopie. Siehe Einträge, die OAR nicht angelegt hat. - Neue Befehle:
oar autostartundoar uninstall, undoar setupfragt unter Windows nach dem Autostart-Modus. Siehe Der Befehl oar. - Das Paket ist kleiner: Die Entwickler-READMEs,
server/mit der HTTP-API und das der Web-Relay-Extension, sind nicht mehr darin. Sie liegen im Repository auf GitHub.README. md - Node.js 22.13 oder neuer reicht weiterhin, und keine Einstellung und kein
Key in
config.muss geändert werden.json
0.9.14 #
Windows-Autostart oder ein Relay, das ein einfaches gh copilot gestartet hat: sichere zuerst deine Daten
Vor 0.9.14 lief ein Relay, das der Windows-Autostart gestartet hat oder das
ein einfaches gh copilot gestartet hat, nachdem oar copilot seine
Extension installiert hatte, auf der Datenbank und den Uploads im
installierten Paket, und npm install -g löscht sie mit der alten Version.
Ein Relay, das du nur mit oar start, oar restart oder dem Linux-Dienst
gestartet hast, lief schon auf dem OAR-Datenordner und braucht keinen der
Schritte unten.
0.9.14 kopiert diese Daten zuerst, während es installiert, nach
rescued- im OAR-Datenordner (%APPDATA%\,
~/.), und das Relay übernimmt die Kopie bei seinem nächsten Start.
npm 10 und 11 führen diese Kopie aus (11.21 mit einer Warnung), und wenn sie
fehlschlägt, stellen sie die alte Version samt Daten wieder her. npm 12
überspringt sie, außer @oar- ist erlaubt: Die Installation gelingt
dann, und die alten Daten sind weg. Mit strict- verweigern
npm 11 und 12 die Installation und ändern nichts. Ein Eintrag
allow- in . hilft dem Button Update und oar update von
0.9.13 nicht, weil ihr eigenes --allow- ihn ersetzt. Um sicherzugehen,
mach dieses Update von Hand:
- Schließ jede
gh copilot-Session (ihre Extension startet das Relay wieder), führ dannoar stopaus und warte, bisoar statussagt, dass es nicht läuft. Wenn dasoar stopvon 0.9.13 ein Relay nicht stoppt, das der Launcher für den Start beim Hochfahren gestartet hat, beende das Relay vor der Installation: Beende die Prozesse des Relays im Task-Manager (node.exe, auf dem OAR läuft). - Führ
npm root -gaus und öffne<that folder>/(meist@oar- sh/ oar/ server %APPDATA%\). Kopier beide Ordner,npm\ node_ modules\ @oar- sh\ oar\ server dataunduploads, mit allen Dateien darin an einen sicheren Ort. - Aktualisiere mit erlaubten Installationsskripten von npm:
npm install -g --allow-. Aktualisiere nie mitscripts= @oar- sh/ oar, better- sqlite3, koffi @oar- sh/ oar --ignore-: Das überspringt die Kopie und die nativen Module (better-sqlite3, koffi), sodass das Relay danach nicht starten kann.scripts - Bevor du das Relay startest, kopier beide Ordner zurück in denselben
Ordner
server. - Führ
oar startaus. Such inrelay-im OAR-Ordnerconsole. log logsnach[data] Brought over the database …: Deine Konversationen sollten wieder da sein. Eine Datenbank, die schon im OAR-Datenordner lag, wird inbackups/<time>/im OAR-Ordner (%APPDATA%\,oar ~/.) aufbewahrt. Der übernommene Ordner behält seine Datenbank alsoar copilot.; die anderen geprüften behalten ihre alsdb. adopted-<time> copilot.. Nichts wird gelöscht.db. older-<time> - Stoppt das Relay mit
[data] Not starting: each database has changes newer than the other's, enthalten beide Arbeit. Die Zeile nennt beide Ordner; einer liegt vielleicht unterrescued-. Wähl den, den du behalten willst, verschiebpackage- data/<time>/ data copilot.,db copilot.unddb- wal copilot.des anderen in einen eigenen Ordner (lösch sie nicht) und führ danndb- shm oar starterneut aus. - Hast du schon ohne Sichern aktualisiert und wurde nichts kopiert, kann OAR die Datenbank nicht aus dem Paket wiederherstellen.
Außerdem in 0.9.14:
- Ein Relay, das nicht auf seinen Daten laufen kann, stoppt mit Exit-Code
78: wenn ein anderes Relay seinen Lock hält, wenn zwei Datenbanken beide
neuere Arbeit enthalten oder wenn sein Daten- oder Upload-Ordner nicht
angelegt werden kann. Die Zeile vor dem Beenden sagt, was davon und was zu
tun ist. Eine systemd-Unit, die
oar service installvon 0.9.14 geschrieben hat, startet es nicht neu; führoar service installerneut aus, um diese Unit zu bekommen. Siehe Ein Relay pro Datenordner. - Eine große Datenbank zu übernehmen dauert Minuten. Das Relay
protokolliert ihre Größe, den Fortschritt mindestens einmal pro Minute und
die Dauer jedes Schritts, und
oar startsagt währenddessen, dass es sie noch übernimmt. Starte kein zweites Relay. - Der Windows-Autostart wartet jetzt bis zu 5 Minuten auf
%TEMP%und das Datenlaufwerk, und der erste Start nach dem Update bringt einen erzeugten Eintrag oder Launcher auf den neuesten Stand. Siehe Autostart. - Cursor-Agent-Speicher ziehen nach
cursor-im Datenordner um, und Uploads folgenagents data; Uploads, die eine frühere Version inDir server/oder inuploads uploads/des Zustandsordners hinterlassen hat, werden weiter dort gelesen, wo sie liegen. Siehe Dateien und Ordner. - Node.js 22.13 oder neuer reicht weiterhin.
0.9.13 #
- Migration 0018 fügt die Tabelle hinzu, die die Task-Konsolen über einen Neustart des Relays hinweg behält, und läuft beim ersten Start von selbst. Die abgeschlossenen Zeilen, die das Relay vor diesem Update im Speicher hielt, gehen beim Neustart hinein ein letztes Mal verloren. Node.js 22.13 oder neuer reicht weiterhin.
- Neue Einstellungen in Settings → General: Ask after a queued relay restart has waited (standardmäßig 30 Minuten) und After a relay restart, tell interrupted sessions to carry on (Nach einem Relay-Neustart unterbrochene Sessions weitermachen lassen) (standardmäßig aus). Eine neue Benachrichtigung, Queued relay restart waited its maximum time (Eingereihter Relay-Neustart hat die Höchstzeit gewartet), ist standardmäßig an. Siehe Einstellungen und Wenn das Warten lang wird.
- Beobachtende Agents: Ein Abonnement, das keine Ereignisse genannt hat,
lässt jetzt Shell-Befehle weg, die gut geendet haben; abgeschlossene
Subagents und Fehler wecken es weiterhin. Eines, das seine Ereignisse
genannt hat, behält sie. Nenn
task_, um jedes Task-Ende zu bekommen. Siehe Die Standard-Ereignisse.finished - Skripte, die eine Nachricht ohne Modell an eine bestehende Konversation
schicken, bekommen jetzt das eigene Modell, den Effort und den Modus der
Konversation statt des ersten Modells des Relays, oder ein
409mit dem CodeCONVERSATION_, wenn dieses Modell aus dem Katalog verschwunden ist. Siehe Modelle und Reasoning.MODEL_ UNAVAILABLE - Agents, die ein Modell an
relay_übergeben, müssen eine ID nutzen, die das Ziel listet; eine unbekannte wird jetzt mittool REMOTE_abgewiesen. Siehe Welche Modelle akzeptiert werden.RELAY_ UNKNOWN_ MODEL
0.9.12 #
- Migration 0017 fügt zwei Indizes für den Verlauf langer Konversationen
hinzu und läuft beim ersten Start von selbst. Node.js 22.13 oder neuer reicht
weiterhin, und keine Einstellung und kein Key in
config.muss geändert werden.json - Zwei neue Einstellungen in Settings → General: Mark a background task as quiet after (Hintergrund-Task als still markieren nach) (standardmäßig 10 Minuten, für das Relay) und Messages kept per conversation for switching back (Pro Konversation behaltene Nachrichten fürs Zurückwechseln) (standardmäßig 200, in jedem Browser). Siehe Einstellungen.
- Claude-Hintergrundbefehle dürfen standardmäßig 2 Stunden laufen und bis
zu 8, wenn Claude darum bittet: Settings → Providers → Claude → Claude
background command limit (Einstellungen → Provider → Claude → Limit für
Claude-Hintergrundbefehle). OAR setzt jetzt
BASH_,DEFAULT_ TIMEOUT_ MS BASH_undMAX_ TIMEOUT_ MS CLAUDE_für seine Claude-Sessions, Werte davon in der Umgebung des Relays gelten also nicht mehr. Siehe Limit für Hintergrundbefehle.CODE_ AUTO_ BACKGROUND_ TIMEOUT_ MS - Sessions, die laufen, während du aktualisierst, behalten ihren Agent, bis er neu startet, und zeigen bis dahin keine Ausgabe in der Konsole eines Befehls. Siehe Sessions, die liefen.
0.9.11 #
- Hinter einem Reverse Proxy auf einem anderen Rechner setz
trustundProxy allowed. 0.9.11 ist das erste Release, das die Herkunft der Live-Verbindung prüft und Client-Adresse, Host und Schema nur dann ausOrigins X--Headern liest, wenn dem Proxy vertraut wird. Einem Proxy oder Tunnel auf dem Rechner des Relays wird bereits vertraut. Für einen auf einem anderen Rechner oder einen, der den HeaderForwarded- * Hostumschreibt, ergänze die zwei Keys inconfig.und starte das Relay neu. Ohne sie lädt die Seite, bekommt aber keine Live-Updates, und alle Clients teilen sich die Adresse des Proxys und seine Anmeldesperre. Siehe Ein Proxy auf einem anderen Rechner.json - Zehn falsche Tokens von einer Adresse innerhalb einer Minute ergeben
429, bis die Minute um ist. Anfragen vom Rechner des Relays, die nichts weitergeleitet hat, werden nie gezählt. Siehe Schutz bei der Anmeldung. ?token=funktioniert nur auf der Seitenadresse. Skripte, die API-, Datei- oder Asset-Adressen mit?token=abrufen, müssen stattdessenAuthorization: Bearer <token>schicken, oder das Cookie; ein Socket.IO-Client übergibt es alsauth.. Siehe Wie du es vorzeigst.token - Restart web relay, das Abbrechen eines eingereihten Neustarts und Empty queue brauchen nur das Token, von jedem angemeldeten Gerät. Der Socket des Session-Workers und das Ausführen von Bildoperationen beantworten nur Anfragen vom Rechner des Relays, die kein Tunnel und kein Proxy weitergeleitet hat. Siehe Endpunkte, die nur der Rechner des Relays nutzen darf.
- Vier Datenbank-Migrationen (Previews, Session-Gruppen, der Platz in einer Gruppe, das Zugriffsprotokoll beim Teilen) laufen beim ersten Start von selbst. Node.js 22.13 oder neuer reicht weiterhin.
- Abhängigkeiten sind fest gepinnt. Die Pakete, die OAR direkt nutzt, darunter die SDKs von Claude, Copilot und Cursor, werden in genau den Versionen installiert, mit denen das Release getestet wurde; eine neuere kommt mit einem OAR-Update.
Was sich geändert hat #
Das Changelog steht auf oar.sh und im Repository als
CHANGELOG.. Jedes Release hat außerdem Release Notes auf GitHub, die der
Link release notes in Settings → General öffnet. Schritte, die ein
Update von dir braucht, stehen im Eintrag eines Releases unter Upgrade notes
(Upgrade-Hinweise), wenn es welche hat.
Wenn es nicht funktioniert #
| Was du siehst | Was du tust |
|---|---|
| Die Prüfung findet nichts | Drück Check for updates und lies die Zeile daneben. Update check failed — the update server could not be reached heißt, dass der Relay-Host innerhalb von 5 Sekunden keine Antwort von oar.sh bekommen hat; prüf sein Netz und seinen Proxy. Never checked. nach dem Drücken heißt dasselbe |
| Schalter und Button sind deaktiviert | OAR_ ist für das Relay gesetzt. Entferne die Variable und starte das Relay neu, oder nutze oar update --to <version> |
Could not fetch <url>. von oar update |
Das Terminal erreicht das Manifest nicht, oder OAR_ ist falsch. Versuch oar update --to <version> |
Das Update schlägt mit einem Rechtefehler fehl (EACCES) |
npm kann nicht in den Ordner schreiben, in dem das Paket liegt. Nutze kein sudo. Führ unter macOS oder Linux den Installer aus, oder gib deinem Benutzer einen globalen npm-Ordner, der ihm gehört; siehe Installation |
| Das Update lief, aber das Relay kam nicht zurück | Der Neustart wartet auf laufende Turns; such das Banner und warte oder brich ab. Ist das Relay aus, starte es mit oar start und lies das Log im Log-Ordner des Relays |
| Die Version ist nach einem Update unverändert | Die Zeile Update to <version> did not apply. und das Log darunter sagen, warum. Führ oar update aus einem Terminal aus, oder oar update --to <version>, und beobachte die Ausgabe von npm |
oar update sagt Already up to date auf einer Beta, die du verlassen willst |
Nutze oar update --to <stable version> |
| Update fehlt | Das Relay läuft aus einem git-Checkout, das Update wurde ausgeblendet, oder es ist noch keine neuere Version bekannt. Drück zuerst Check for updates |