Aller au contenu

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 :

aim sync --offline

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 :

# max_lines par défaut : 500
aim client show    # pour voir la valeur actuelle

Le réglage se fait côté serveur ; demande à un contributor ou modifie-le via l'API.