smart_ide/docs/features/anythingllm-pull-sync-after-pull.md
Nicolas Cantu 088eab84b7 Platform docs, services, ia_dev submodule, smart_ide project config
- Add ia_dev submodule (projects/smart_ide on forge 4nk)
- Document APIs, orchestrator, gateway, local-office, rollout
- Add systemd/scripts layout; relocate setup scripts
- Remove obsolete nginx/enso-only docs from this repo scope
2026-04-03 16:07:58 +02:00

1.8 KiB
Raw Blame History

AnythingLLM — synchronisation après git pull

Objectif

Déclencher un envoi vers AnythingLLM des fichiers modifiés ou ajoutés par un git pull (merge fast-forward ou merge classique), sans action manuelle dans léditeur.

Impacts

  • Chaque dépôt concerné peut installer un hook Git post-merge qui appelle scripts/anythingllm-pull-sync/sync.mjs.
  • Les mêmes exclusions que .4nkaiignore (et quelques motifs système) sappliquent.
  • Les suppressions ou renommages ne sont pas reflétés comme suppressions côté AnythingLLM dans cette version (upload uniquement).

Modifications (dépôt smart_ide)

  • scripts/anythingllm-pull-sync/ : script Node (ESM), dépendance ignore, package.json, README.md.
  • scripts/install-anythingllm-post-merge-hook.sh : pose le hook dans .git/hooks/post-merge avec le chemin absolu vers sync.mjs.

Configuration par dépôt

  • Fichier optionnel .anythingllm.json à la racine : { "workspaceSlug": "<slug>" }.
  • Ou variable denvironnement ANYTHINGLLM_WORKSPACE_SLUG (priorité documentée dans le README du script).

Modalités de déploiement

  1. Sur la machine de développement : npm install dans scripts/anythingllm-pull-sync.
  2. Créer ~/.config/4nk/anythingllm-sync.env avec ANYTHINGLLM_BASE_URL et ANYTHINGLLM_API_KEY (ne pas commiter la clé).
  3. Exécuter install-anythingllm-post-merge-hook.sh <chemin-du-repo> pour chaque dépôt à synchroniser.
  4. Sassurer quAnythingLLM (collector) est joignable depuis cette machine.

Modalités danalyse

  • Messages sur stderr : uploaded=, skipped=, errors=, détail des erreurs dupload (tronqué au-delà de 20 lignes).
  • Si ORIG_HEAD est absent, ou si URL / clé / slug manquent : message explicite et code de sortie 0 pour ne pas bloquer le pull.