Travailler hors ligne¶
Chez un client, il arrive que l'accès à ton Azure soit coupé : VPN fermé, proxy d'entreprise, poste fourni et verrouillé. AIM continue de fournir le contexte.
Ce qui fonctionne, ce qui ne fonctionne pas¶
| Hors ligne | |
|---|---|
aim sync |
sur le dernier pack reçu |
Fichiers CLAUDE.md, AGENTS.md, Copilot |
ils sont dans le dépôt |
| Skills Claude Code | |
aim add, extract, consolidate |
|
aim search, review |
|
| Serveur MCP |
Autrement dit : le pack statique reste disponible, la recherche à la demande non.
Le repli est automatique¶
Tu n'as rien à prévoir. aim sync met en cache chaque pack reçu dans
~/.aim/cache/<client>.json. Si l'API devient injoignable, la commande suivante
réutilise ce cache et te le dit :
https://ca-aim-api.… injoignable : [Errno 61] Connection refused
Utilisation du dernier pack en cache.
Pack : 47 faits, 2 procédures, 0 accessibles via recherche
✓ CLAUDE.md
…
Pour forcer explicitement le cache, même en ligne :
Une distinction qui compte¶
Le repli ne se déclenche que si l'API est injoignable — erreur réseau, DNS, connexion refusée, délai dépassé.
Une erreur applicative ne déclenche jamais le cache. Un 403 signifie que ton accès
a été révoqué ; servir un pack périmé contournerait la révocation.
flowchart TD
A[aim sync] --> B{API joignable ?}
B -->|oui| C{Autorisé ?}
B -->|non| D[Cache local]
C -->|oui| E[Pack frais + mise en cache]
C -->|non 403| F[Échec, pas de cache]
Se préparer avant de partir¶
Avant une intervention sur un site coupé du monde :
aim sync # remplit le cache et écrit les fichiers
aim sync --offline # vérifie que le repli fonctionne
Si le second affiche le pack sans erreur, tu es couvert.
Limite assumée¶
Le cache ne contient que le pack compilé, pas la base de faits complète. Ce qui dépassait le budget du pack — et n'était accessible que par le MCP — n'est pas disponible hors ligne.
Pour un déplacement où tu sais que tu seras coupé, augmente temporairement le budget du client avant de partir, de sorte que davantage de faits entrent dans le pack :
Le réglage se fait côté serveur ; demande à un contributor ou modifie-le via
l'API.