Mettre à jour OAR Ajouté en 0.9.2
OAR ne se met pas à jour tout seul en arrière-plan. Un relais peut chercher une
version plus récente, vous la signaler dans Settings (Réglages) et l’installer
quand vous appuyez sur Update (Mettre à jour) ou lancez
oar update. Rien ne s’installe sans vous, et la vérification qui trouve
une version reste désactivée tant que vous ne l’activez pas.
La vérification des mises à jour #
La vérification est désactivée par défaut. Un relais à qui l’on n’a jamais dit le contraire n’envoie rien à oar.sh.
- Ouvrez Settings → General (Réglages → Général).
- Activez Check for updates automatically (Rechercher automatiquement les mises à jour).
Une fois l’interrupteur activé, le relais demande à oar.sh la version la plus récente environ deux fois par jour : toutes les 12 heures, à une heure près, pour que de nombreux relais ne demandent pas tous en même temps. Il demande aussi une fois quand vous activez l’interrupteur, et une fois à chaque démarrage du relais avec l’interrupteur activé. Désactiver l’interrupteur arrête les demandes.
Le bouton Check for updates (Rechercher des mises à jour) vérifie une fois,
quel que soit l’état de l’interrupteur. La ligne à côté affiche
Last checked <date and time>, ou Never checked.
Ce que demande la vérification #
Le relais demande un seul fichier, le manifeste https:// : un
simple GET avec un en-tête Accept: application/, et un en-tête
If- qui contient l’étiquette de la dernière réponse dès qu’il y en a
une, pour qu’un manifeste inchangé ne coûte aucun téléchargement. La requête ne
transporte ni version, ni token, ni compte, ni information sur la machine. Elle
attend au plus 5 secondes. Il n’y a aucun autre contact avec oar.sh.
L’installation d’une mise à jour s’adresse au registre npm, pas à oar.sh.
Le manifeste a une entrée par canal avec la version la plus récente, sa date de
publication, un lien vers ses notes de version et un indicateur 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
}
}
}
Le relais lit l’entrée de son propre canal (voir Canaux), ou
l’entrée stable quand son canal n’en a pas. min indique la plus ancienne
version de Node.js sur laquelle la version publiée tourne ; ni le relais ni les installateurs
ne le lisent.
Une vérification automatique qui échoue (pas de réseau, un délai dépassé, une
réponse invalide) ne dit rien et réessaie à l’intervalle suivant. Un clic sur
Check for updates qui n’obtient aucune réponse exploitable affiche l’avis Update check failed — the update server could not be reached. Un manifeste dont le schema n’est pas 1
arrête les vérifications jusqu’au redémarrage du relais et ajoute The relay could not read the update feed — try updating manually. à la ligne à côté du bouton.
Quand une version est trouvée #
Une version plus récente apparaît sous forme de ligne sous Check for updates dans Settings → General :
OAR 0.9.19 available
avec un lien release notes (notes de version) et les boutons Update et
Dismiss (Ignorer). Il n’y a ni bannière ni badge ailleurs, et quand la
vérification est désactivée, rien n’apparaît, car aucune version plus récente
n’est connue. Dismiss masque cette version jusqu’à ce qu’une version encore
plus récente apparaisse. Une version marquée critical affiche OAR 0., ne peut pas être ignorée, et ne s’installe
toujours jamais d’elle-même. Sur un checkout git, la ligne n’a pas de bouton
Update ; elle indique This relay runs from a git checkout — pull and restart to update.
Désactiver la vérification pour de bon #
Définissez OAR_ dans l’environnement du relais. Le relais ne fait
alors plus aucune requête, pas même quand vous appuyez sur Check for updates :
l’interrupteur et le bouton sont désactivés et une ligne indique Update checks are disabled by OAR_ oar update sans
--to refuse aussi. OAR_ fait pointer le relais et oar update vers un autre manifeste. Voir
Variables d’environnement.
Mettre à jour depuis l’interface web #
Appuyez sur Update dans Settings → General. Cela fonctionne sur une
installation globale, celle que font l’installateur et npm install -g.
- Le relais lance
npm install -g --allow-(Ajouté en 0.9.14 avecscripts= @oar- sh/ oar, better- sqlite3, koffi @oar- sh/ oar@<version> @oar-dans la liste ; voir Installer avec npm). Sous macOS et Linux, il utilise le npm situé à côté du Node.js qui fait tourner le relais, et installe dans le dossier où se trouve déjà le paquet. Cela couvre les trois dispositions de l’installateur : votre propre dossier npm global,sh/ oar ~/.quand votre dossier npm exigeait root, etoar/ npm ~/.avec le Node.js propre à OAR. Sous Windows, il lanceoar/ npm npm.depuis lecmd PATH. npm dispose de 10 minutes. - La ligne d’état affiche
Updating to <version>…, et un Update log (Journal de mise à jour) se déplie avec la sortie de npm. Cancel update (Annuler la mise à jour) arrête npm. - Quand npm a terminé, la ligne affiche
npm finished — the relay restarts once the running turns finish.Le relais se demande à lui-même de redémarrer. Il attend les turns en cours ; les messages que vous envoyez entre-temps attendent dans la queue et s’exécutent après le redémarrage. Une bannière sur chaque appareil connecté montre l’attente, avec Restart now (Redémarrer maintenant) et Cancel restart (Annuler le redémarrage). Ajouté en 0.9.13 Une fois écoulé le délai Ask after a queued relay restart has waited (Demander quand un redémarrage du relais en file a attendu), 30 minutes par défaut, il demande s’il faut redémarrer maintenant, continuer d’attendre ou annuler. Voir Redémarrages et reprise. - Le relais redémarre et la page se reconnecte d’elle-même. Le redémarrage ne passe ni par systemd ni par un autre gestionnaire de services ; voir Démarrage automatique.
Si npm échoue, la ligne affiche Update failed: <reason> et le journal montre
pourquoi. Le relais continue de faire tourner l’ancienne version.
Si vous annulez le redémarrage
Cancel restart dans la bannière n’arrête que le redémarrage. La nouvelle version est installée,
mais le relais continue de faire tourner l’ancienne, et la ligne d’état affiche toujours npm finished — the relay restarts once the running turns finish. Redémarrez le relais
vous-même pour la charger.
Comment le relais vérifie le résultat #
Avant de redémarrer, le relais note la version qu’il a tenté d’installer. Au
démarrage suivant, il la compare à la version qu’il fait tourner. Si elles
correspondent, il affiche Updated to <version>. Si elles diffèrent, par exemple
parce que npm n’a pas remplacé le paquet, il affiche Update to <version> did not apply. avec la fin du
journal npm. Une note de plus de 7 jours est abandonnée sans message.
Dismiss à côté de la ligne l’efface.
Mettre à jour depuis un terminal #
oar update
La commande cherche la version la plus récente de votre canal dans le manifeste,
l’installe avec npm install -g et demande à un relais en cours d’exécution de
redémarrer dès que sa queue est inactive. Elle affiche Already up to date (<version>).
quand il n’y a rien de plus récent. Les options et les codes de sortie sont dans
oar update.
Pour installer une version précise, même plus ancienne, nommez-la après une espace derrière l’option :
oar update --to 0.9.9
--to lit le registre npm et ignore le manifeste, donc cela fonctionne aussi avec
OAR_. Écrivez --to 0., pas --to= : la seconde
forme est ignorée et installe la version la plus récente de votre canal.
L’installateur est une autre possibilité. Il réinstalle le paquet, donc le relancer met à jour ; voir Installation.
Canaux #
Il y a deux canaux, stable et beta. Une version beta ressemble à
0. et se classe avant la version stable de même numéro.
Un relais n’a pas de réglage de canal. Il suit le canal de la version qu’il fait
tourner : une version beta suit beta, toute autre suit stable. Cela vaut pour sa
propre vérification et pour oar update.
| Vous voulez | Faites ceci |
|---|---|
| La beta dès le départ | Installez avec OAR_ ; voir Installation |
| Faire passer une installation stable en beta | oar update --beta une fois |
| Rester en beta | Rien |
| Revenir en stable | oar update --to <stable version>, par exemple oar update --to 0.. Un relais sur une version stable suit de nouveau stable |
Un relais beta se voit proposer la version que le manifeste indique sous beta,
quelle qu’elle soit, tant qu’elle est plus récente que celle qui tourne. Quand
l’entrée beta indique une version stable, comme les deux entrées le font pour
0.9.19, un relais beta y passe et suit stable à partir de là. Revenir à une
version plus ancienne demande --to.
Ce qu’une mise à jour laisse intact #
| Après une mise à jour | |
|---|---|
| Dossier d’état, config, fichiers envoyés, journaux | Intacts. Voir Fichiers et dossiers |
| Données qu’une version antérieure gardait dans le paquet | Ajouté en 0.9.14 Copiées dans data/ pendant l’installation de la mise à jour, avant que npm supprime l’ancienne version, puis reprises au démarrage suivant. Voir Notes de mise à niveau pour 0.9.14 |
| Base de données | Conservée. Les migrations dont une version a besoin s’exécutent d’elles-mêmes au premier démarrage |
| App installée | L’interface web vient du relais, elle change donc avec lui. L’app installée passe à la nouvelle version à son démarrage ; vous ne la réinstallez pas. Voir Installer comme app |
| Sessions en cours | Voir ci-dessous |
| CLI des fournisseurs | Pas mises à jour. Voir ci-dessous |
Sessions qui tournaient #
Le redémarrage attend qu’aucun turn ne tourne, puis le relais redémarre avec le
nouveau code. Les processus d’agent démarrés avant la mise à jour gardent
l’ancien code jusqu’à leur prochain démarrage. L’agent d’une session apprend ses
outils quand il démarre. La version 0.9.10 en est un exemple : une session qui
tournait déjà avant la mise à jour ne propose ni subscribe ni usage de
remote_ (aujourd’hui relay_)
tant que son agent ne redémarre pas. En 0.9.11, un worker démarré avant la mise à jour ne peut pas signaler ses
tâches de fond au relais redémarré. En 0.9.12, la
console d’une commande nécessite un
agent démarré après la mise à jour, tout comme les terminaux de Grok dans le panneau des tâches.
En 0.9.13, le marquage d’une commande redirigée vers
tail nécessite un agent démarré
après la mise à jour, car c’est l’agent qui signale la ligne de commande.
Kill session (Tuer la session) sur une session inactive la redémarre, et le message suivant
démarre un nouvel agent. Voir
Redémarrages et reprise.
CLI des fournisseurs #
OAR ne met à jour que lui-même. Les outils en ligne de commande de Claude, Grok et GitHub Copilot sont des programmes distincts ; voir Installer ou mettre à jour la CLI d’un fournisseur.
Bon à savoir #
- Cursor sur une installation globale. Ajouté en 0.9.14 Les stockages d’agents
Cursor se trouvent dans
cursor-du dossier de données du relais, si bien qu’une mise à jour ne les remplace plus. Avant 0.9.14, ils se trouvaient par défaut dans le dossier du paquet, et une conversation dont une mise à jour supprimait le stockage recevait un nouvel agent. Voir Fichiers et dossiers et Cursor.agents - Windows. Une installation globale fait tourner le relais depuis le dossier
d’état d’OAR (
%APPDATA%\), et non depuis le dossier du paquet, si bien qu’une mise à jour peut remplacer le paquet pendant que le relais tourne. Les entrées de démarrage automatique démarrent le paquet installé ; voir Démarrage automatique.oar
Un checkout git #
Un checkout ne se met jamais à jour tout seul, et ni Update ni oar update
ne fonctionnent dessus. Faites un pull, installez, puis redémarrez le relais avec
🌄 Restart web relay (Redémarrer le relais web) dans le
menu ⋯ d’une conversation :
git pull
npm install
Voir Installation.
Notes de mise à niveau #
Les étapes qu’une mise à jour attend de vous, de la version la plus récente à la plus ancienne. Les versions absentes de la liste n’en demandent aucune.
0.9.19 Ajouté en 0.9.19 #
- Aucune migration. Revenir à 0.9.18 ne demande aucune étape : 0.9.18 ignore
heap, et le dossierLimit Mb diagnosticsreste tel quel. - Le relais a désormais une limite de heap et écrit un instantané du heap dans
diagnostics, dans le dossier de données, quand il en approche. Un instantané contient le token d’accès et les clés d’API : ne le partagez jamais tel quel. - Arrêtez
oarpuis redémarrez-le une fois après la mise à jour. Le processus qui démarre et surveille le relais garde le code avec lequel il a démarré : un redémarrage par la mise à jour, depuis l’interface web ou avecoar restartsans le service systemd ne redémarre que le relais qu’il contient. Tant que ce processus n’a pas démarré sur 0.9.19, le relais tourne sans la limite de heap, sansheapet sans l’instantané du heap, et un relais à court de mémoire reste toujours arrêté. Avec le service systemd de Linux, lancezLimit Mb oar restart; sinonoar stop, puisoar start. Pour un relais démarré paroar copilot, terminez cette session et relancez-la. - Les sessions d’agents démarrées avant 0.9.19 gardent leur liste de fournisseurs. Leurs workers continuent de tourner pendant la mise à jour, avec le
relay_avec lequel ils ont démarré. Cette liste est celle de 0.9.19, donc rien ne change pour l’instant ; il lui manque les fournisseurs qu’une mise à jour ultérieure ajoute, jusqu’à ce que le worker de la session redémarre, par exemple après ☠️ Kill session dans le menutool ⋯. - Node.js 22.13 ou plus récent suffit toujours.
0.9.18 Ajouté en 0.9.18 #
- Les migrations 0031 à 0034 s’exécutent d’elles-mêmes au premier démarrage : 0031 marque chaque message en file avec son fournisseur, 0032 ajoute les colonnes du sélecteur de facturation, et 0033 et 0034 ajoutent les tables de la carte de consommation Claude API. Une version plus ancienne ignore les nouvelles colonnes et tables. Les deux déclencheurs que 0031 pose sur la table de la queue continuent d’y renseigner sa nouvelle colonne, ce qui ne fait aucun mal.
- L’outil d’agent s’appelle désormais
relay_. Si vos propres instructions, règles de permission ou hooks nommenttool remote_ourelay mcp__, remplacez-les parrelay__ remote_ relay relay_outool mcp__. Voir Le nom.relay__ relay_ tool - Avant de revenir à 0.9.17, repassez sur Subscription (Abonnement) les chats Claude qui utilisent la clé Claude API. 0.9.17 ne connaît pas Claude API : elle rattache à Copilot un chat d’un fournisseur qu’elle ne connaît pas, si bien qu’un chat laissé sur la clé y tourne comme un chat Copilot. Cela inclut un chat qui a démarré sur l’abonnement puis est passé à la clé.
- Revenir à 0.9.17 réactive les hooks dans les chats DeepSeek. Ils exécutent de nouveau les hooks et la ligne d’état de leurs dossiers de réglages ; voir Les réglages du dossier ne peuvent pas rediriger DeepSeek.
- Node.js 22.13 ou plus récent suffit toujours.
0.9.17 Ajouté en 0.9.17 #
- Les migrations 0024 à 0030 ajoutent les tables de la carte de consommation DeepSeek : les dépenses par modèle et par jour, le solde par rapport auquel elle mesure et, dans 0030, les chiffres d’un export de consommation importé. Elles s’exécutent d’elles-mêmes au premier démarrage, y compris sur un relais qui n’utilise jamais DeepSeek, et ne touchent aucune table qu’utilise une version plus ancienne. Une version plus ancienne les ignore.
- Un token de connexion Claude dans l’environnement du relais
(
CLAUDE_) n’atteint que les workers Claude et Claude Cloud. Les workers Copilot, OpenAI, Cursor, Grok et DeepSeek sont démarrés sans lui, avec ou sans tmux. Voir Quelles variables atteignent les agents.CODE_ OAUTH_ TOKEN ANTHROPIC_etAPI_ KEY ANTHROPIC_dans l’environnement du relais n’atteignent aucun worker. Les chats Claude qui tournaient avec une telle clé tournent désormais avec la connexion Claude de l’hôte. Si l’hôte n’en a pas, connectez-vous avec Relogin (Se reconnecter) sous Settings → Providers → Claude (Réglages → Fournisseurs → Claude). Voir Variables d’environnement.AUTH_ TOKEN - Un relais démarré depuis une session Claude Code ne transmet plus cette
session à ses workers. Ses variables sont retirées pour chaque worker, y
compris sous un serveur tmux qui les porte encore. Vos propres réglages
CLAUDE_restent. Voir Quelles variables atteignent les agents.CODE_ * - Une session qui rejoint un groupe que vous avez ordonné à la main arrive en premier dans le groupe, et non plus en dernier. Voir Groupes de sessions.
- Node.js 22.13 ou plus récent suffit toujours, et aucun réglage ni aucune clé
de
config.n’a besoin d’être modifié.json
0.9.16 Ajouté en 0.9.16 #
- Trois migrations de base de données s’exécutent d’elles-mêmes au premier démarrage : 0019 pour les options d’abonnement et les prompts propres à l’agent qui surveille, 0020 pour l’interrupteur Agents in this conversation may start sessions (Les agents de cette conversation peuvent démarrer des sessions) et 0021 pour savoir quels groupes de sessions un agent a créés, et quels groupes à vous un agent a vidés. Elles ne font qu’ajouter des colonnes et une table. Revenir à une version plus ancienne ne demande aucune modification des données : elle les ignore, garde la règle à un seul niveau et supprime un groupe vide à son démarrage, comme avant.
- La migration 0022 ajoute la table des prompts planifiés, avec l’origine
des messages de chaque planification (
origin_, avec leurs sauts) et le moment où un déclenchement a été retenu pour vous (json held_). Elle s’exécute d’elle-même au premier démarrage, en même temps que 0019 à 0021.since - La migration 0023 ajoute la table des questions non bloquantes
(
relay_). Elle s’exécute aussi d’elle-même au premier démarrage. Une version plus ancienne l’ignore.asks - Les abonnements qui prennent
question_reçoivent désormais aussiasked question_, votre réponse à une question.answered - Le garde-fou anti-boucle ne compte comme vôtres que vos propres messages. Avant 0.9.16, un événement du relais, la relance après une limite d’utilisation ou la note après un redémarrage remettait à zéro le compte des prompts qu’un agent peut envoyer à d’autres agents avant qu’on vous demande, si bien que deux agents qui se surveillaient l’un l’autre pouvaient continuer sans vous. Désormais, seul un message que vous écrivez le remet à zéro, et les agents pris dans une telle boucle vous demandent plus tôt. Voir les règles.
- Agents qui passent des arguments qu’une action ne prend pas :
create_etsession update_refusent désormais l’appel et ne changent rien ; les autres actions s’exécutent toujours et les nomment danssession ignored. Voir Actions. - Un agent qui surveille et attendait la réponse à son propre prompt ne
reçoit plus, en plus, le
turn_de ce turn sous forme d’événement.end - Node.js 22.13 ou plus récent suffit toujours, et aucun réglage ni aucune clé
de
config.n’a besoin d’être modifié.json
0.9.15 #
- Depuis 0.9.14 avec une tâche de démarrage automatique faite à la main sous
Windows : passer au mode « au démarrage » dans 0.9.14 pouvait supprimer une
tâche existante du même nom (
oar-, ou celle d’avant le renommage) sans en faire de copie. 0.9.15 conserve une telle tâche et demanderelay --replace, qui en enregistre d’abord une copie. Si une de vos tâches a déjà disparu, OAR n’en a aucune copie. - Changer de mode de démarrage automatique ne remplace plus rien de ce qu’OAR
n’a pas créé. Une tâche de démarrage ou un lanceur modifié à la main, une
tâche créée par quelqu’un d’autre, la tâche de démarrage d’avant le renommage
et une entrée du dossier Démarrage faite à la main bloquent désormais le
changement, dans l’interface web comme dans
oar autostart, là où 0.9.14 les remplaçait.oar autostart <mode> --replaceles remplace en gardant une copie de chacun. Voir Entrées qu’OAR n’a pas créées. - Nouvelles commandes :
oar autostartetoar uninstall, etoar setupdemande le mode de démarrage automatique sous Windows. Voir La commande oar. - Le paquet est plus petit : les README pour développeurs,
server/avec l’API HTTP et celui de l’extension du relais web, n’y sont plus. Ils sont dans le dépôt sur GitHub.README. md - Node.js 22.13 ou plus récent suffit toujours, et aucun réglage ni aucune clé
de
config.n’a besoin d’être modifié.json
0.9.14 #
Démarrage automatique Windows, ou relais lancé par un simple gh copilot : sauvegardez d’abord vos données
Avant 0.9.14, un relais démarré par le démarrage automatique de Windows, ou par
un simple gh copilot après que oar copilot avait installé son extension,
tournait sur la base de données et les fichiers envoyés à l’intérieur du paquet
installé, et npm install -g les supprime avec l’ancienne version. Un relais
que vous n’avez démarré qu’avec oar start, oar restart ou le service Linux
tournait déjà sur le dossier de données d’OAR et n’a besoin d’aucune des étapes
ci-dessous.
0.9.14 copie d’abord ces données, pendant l’installation, dans
rescued- du dossier de données d’OAR (%APPDATA%\,
~/.), et le relais reprend la copie à son démarrage suivant. npm 10
et 11 exécutent cette copie (11.21 avec un avertissement), et si elle échoue, ils
remettent l’ancienne version avec ses données. npm 12 la saute, sauf si
@oar- est autorisé : l’installation réussit alors et les anciennes
données sont perdues. Avec strict-, npm 11 et 12 refusent
l’installation et ne changent rien. Une entrée allow- dans .
n’aide ni le bouton Update ni oar update de 0.9.13, car leur propre
--allow- la remplace. Par sécurité, faites cette mise à jour à la main :
- Fermez toutes les sessions
gh copilot(leur extension redémarre le relais), puis lancezoar stopet attendez queoar statusindique qu’il ne tourne pas. Si leoar stopde 0.9.13 n’arrête pas un relais démarré par le lanceur du démarrage système, arrêtez le relais avant d’installer : mettez fin à ses processus dans le Gestionnaire des tâches (node.exe qui fait tourner OAR). - Lancez
npm root -get ouvrez<that folder>/(en général@oar- sh/ oar/ server %APPDATA%\). Copiez les deux dossiersnpm\ node_ modules\ @oar- sh\ oar\ server dataetuploads, avec tous leurs fichiers, en lieu sûr. - Mettez à jour en autorisant les scripts d’installation de npm :
npm install -g --allow-. Ne mettez jamais à jour avecscripts= @oar- sh/ oar, better- sqlite3, koffi @oar- sh/ oar --ignore-: cette option saute la copie et les modules natifs (better-sqlite3, koffi), et le relais ne peut plus démarrer ensuite.scripts - Avant de démarrer le relais, recopiez les deux dossiers dans le même dossier
server. - Lancez
oar start. Dansrelay-, dans le dossierconsole. log logsd’OAR, cherchez[data] Brought over the database …: vos conversations devraient être revenues. Une base de données qui se trouvait déjà dans le dossier de données d’OAR est conservée dansbackups/<time>/du dossier OAR (%APPDATA%\,oar ~/.). Le dossier repris garde sa base sous le nomoar copilot.; les autres dossiers examinés gardent la leur sous le nomdb. adopted-<time> copilot.. Rien n’est supprimé.db. older-<time> - Si le relais s’arrête avec
[data] Not starting: each database has changes newer than the other's, les deux contiennent du travail. La ligne nomme les deux dossiers ; l’un peut se trouver sousrescued-. Choisissez celui à garder, déplacez les fichierspackage- data/<time>/ data copilot.,db copilot.etdb- wal copilot.de l’autre dans un dossier à vous (ne les supprimez pas), puis relancezdb- shm oar start. - Si vous avez déjà mis à jour sans sauvegarder et que rien n’a été copié, OAR ne peut pas récupérer la base de données depuis le paquet.
Aussi dans 0.9.14 :
- Un relais qui ne peut pas tourner sur ses données s’arrête avec le code de
sortie 78 : quand un autre relais détient son verrou, quand deux bases de
données contiennent chacune du travail plus récent, ou quand son dossier de
données ou d’envoi ne peut pas être créé. La ligne avant la sortie dit lequel
de ces cas se présente et ce qu’il faut faire. Une unité systemd écrite par
oar service installde 0.9.14 ne le redémarre pas ; relancezoar service installpour obtenir cette unité. Voir Un relais par dossier de données. - Une grande base de données met plusieurs minutes à être reprise. Le relais
journalise sa taille, la progression au moins une fois par minute et la durée
de chaque étape, et
oar startindique entre-temps qu’il est toujours en train de la reprendre. Ne démarrez pas un second relais. - Le démarrage automatique Windows attend désormais jusqu’à 5 minutes
%TEMP%et le lecteur de données, et le premier démarrage après la mise à jour met à niveau une entrée ou un lanceur générés. Voir Démarrage automatique. - Les stockages d’agents Cursor passent dans
cursor-du dossier de données, et les fichiers envoyés suiventagents data; les fichiers envoyés qu’une version antérieure a laissés dansDir server/ou dansuploads uploads/du dossier d’état sont toujours lus là où ils sont. Voir Fichiers et dossiers. - Node.js 22.13 ou plus récent suffit toujours.
0.9.13 #
- La migration 0018 ajoute la table qui conserve les consoles de tâche d’un redémarrage du relais à l’autre, et s’exécute d’elle-même au premier démarrage. Les lignes terminées que le relais d’avant cette mise à jour gardait en mémoire sont perdues une dernière fois au redémarrage vers cette version. Node.js 22.13 ou plus récent suffit toujours.
- Nouveaux réglages dans Settings → General : Ask after a queued relay restart has waited (30 minutes par défaut) et After a relay restart, tell interrupted sessions to carry on (Après un redémarrage du relais, demander aux sessions interrompues de continuer), désactivé par défaut. Une nouvelle notification, Queued relay restart waited its maximum time (Le redémarrage du relais en file a attendu le délai maximal), est activée par défaut. Voir Settings (Réglages) et Quand l’attente est longue.
- Agents qui surveillent : un abonnement qui n’a nommé aucun événement
laisse désormais de côté les commandes shell qui se sont bien terminées ; les
subagents terminés et les échecs le réveillent toujours. Un abonnement qui a
nommé ses événements les garde. Nommez
task_pour recevoir chaque fin de tâche. Voir Les événements par défaut.finished - Les scripts qui publient un message sans modèle dans une conversation
existante reçoivent désormais le modèle, l’effort et le mode propres à la
conversation au lieu du premier modèle du relais, ou un
409avec le codeCONVERSATION_quand ce modèle a quitté le catalogue. Voir Modèles et raisonnement.MODEL_ UNAVAILABLE - Les agents qui passent un modèle à
relay_doivent utiliser un id que la cible liste ; un id inconnu est désormais refusé avectool REMOTE_. Voir Quels modèles sont acceptés.RELAY_ UNKNOWN_ MODEL
0.9.12 #
- La migration 0017 ajoute deux index pour l’historique des longues
conversations et s’exécute d’elle-même au premier démarrage. Node.js 22.13 ou
plus récent suffit toujours, et aucun réglage ni aucune clé de
config.n’a besoin d’être modifié.json - Deux nouveaux réglages dans Settings → General : Mark a background task as quiet after (Marquer une tâche de fond comme silencieuse après), 10 minutes par défaut, pour le relais, et Messages kept per conversation for switching back (Messages conservés par conversation pour y revenir), 200 par défaut, dans chaque navigateur. Voir Settings (Réglages).
- Les commandes de fond de Claude peuvent tourner 2 heures par défaut, et
jusqu’à 8 quand Claude le demande : Settings → Providers → Claude → Claude
background command limit (Réglages → Fournisseurs → Claude → Limite des
commandes de fond Claude). OAR définit désormais
BASH_,DEFAULT_ TIMEOUT_ MS BASH_etMAX_ TIMEOUT_ MS CLAUDE_pour ses sessions Claude, si bien que les valeurs de ces variables dans l’environnement du relais ne s’appliquent plus. Voir Limite des commandes de fond.CODE_ AUTO_ BACKGROUND_ TIMEOUT_ MS - Les sessions qui tournent pendant la mise à jour gardent leur agent jusqu’à son prochain démarrage, et n’affichent d’ici là aucune sortie dans la console d’une commande. Voir Sessions qui tournaient.
0.9.11 #
- Derrière un proxy inverse sur une autre machine, définissez
trustetProxy allowed. 0.9.11 est la première version qui vérifie l’origine de la connexion en direct et qui ne lit l’adresse du client, l’hôte et le schéma dans les en-têtesOrigins X-que si le proxy est de confiance. Un proxy ou un tunnel sur la machine du relais est déjà de confiance. Pour un proxy sur une autre machine, ou un proxy qui réécrit l’en-têteForwarded- * Host, ajoutez les deux clés àconfig.et redémarrez le relais. Sans elles, la page se charge mais ne reçoit aucune mise à jour en direct, et tous les clients partagent l’adresse du proxy et son blocage de connexion. Voir Un proxy sur une autre machine.json - Dix tokens erronés depuis une même adresse en une minute reçoivent
429jusqu’à la fin de la minute. Les requêtes venant de la machine du relais que rien n’a relayées ne sont jamais comptées. Voir Les protections à la connexion. ?token=ne fonctionne que sur l’adresse de la page. Les scripts qui récupèrent des adresses d’API, de fichier ou de ressource avec?token=doivent envoyerAuthorization: Bearer <token>à la place, ou le cookie ; un client Socket.IO le passe commeauth.. Voir Les façons de le présenter.token - Restart web relay, l’annulation d’un redémarrage en file et Empty queue (Vider la file) n’ont besoin que du token, depuis n’importe quel appareil connecté. Le socket du worker de session et l’exécution des opérations d’image ne répondent qu’aux requêtes de la machine du relais qu’aucun tunnel ni proxy n’a relayées. Voir Les points d’accès réservés à la machine du relais.
- Quatre migrations de base de données (aperçus, groupes de sessions, place dans un groupe, journal d’accès des partages) s’exécutent d’elles-mêmes au premier démarrage. Node.js 22.13 ou plus récent suffit toujours.
- Les dépendances sont épinglées. Les paquets qu’OAR utilise directement, dont les SDK Claude, Copilot et Cursor, sont installés dans les versions exactes avec lesquelles cette version d’OAR a été testée ; une version plus récente arrive avec une mise à jour d’OAR.
Ce qui a changé #
Le journal des modifications se trouve sur oar.sh et dans le
dépôt sous le nom CHANGELOG.. Chaque version a aussi des notes de version sur
GitHub, que le lien release notes de Settings → General ouvre. Les étapes
qu’une mise à jour attend de vous figurent sous Upgrade notes (Notes de mise à
niveau) dans l’entrée d’une version, quand elle en a.
Si ça ne marche pas #
| Ce que vous voyez | Que faire |
|---|---|
| La vérification ne trouve rien | Appuyez sur Check for updates et lisez la ligne à côté. Update check failed — the update server could not be reached signifie que l’hôte du relais n’a pas reçu de réponse d’oar.sh en 5 secondes ; vérifiez son réseau et son proxy. Never checked. après avoir appuyé signifie la même chose |
| L’interrupteur et le bouton sont désactivés | OAR_ est défini pour le relais. Retirez-le et redémarrez le relais, ou utilisez oar update --to <version> |
Could not fetch <url>. depuis oar update |
Le terminal ne peut pas joindre le manifeste, ou OAR_ est erroné. Essayez oar update --to <version> |
La mise à jour échoue avec une erreur de droits (EACCES) |
npm ne peut pas écrire dans le dossier où se trouve le paquet. N’utilisez pas sudo. Lancez l’installateur sous macOS ou Linux, ou donnez à votre utilisateur un dossier npm global qui lui appartient ; voir Installation |
| La mise à jour a tourné mais le relais n’est pas revenu | Le redémarrage attend les turns en cours ; cherchez la bannière, puis attendez ou annulez le redémarrage. Si le relais est arrêté, démarrez-le avec oar start et lisez le journal dans le dossier des journaux du relais |
| La version est inchangée après une mise à jour | La ligne Update to <version> did not apply. et le journal en dessous disent pourquoi. Lancez oar update depuis un terminal, ou oar update --to <version>, et suivez la sortie de npm |
oar update indique Already up to date sur une beta que vous voulez quitter |
Utilisez oar update --to <stable version> |
| Update est absent | Le relais tourne depuis un checkout git, la mise à jour a été ignorée, ou aucune version plus récente n’est encore connue. Appuyez d’abord sur Check for updates |