SPB Git forge

spb/ka-guardian

Public
26commits 1branches 0releases
4.5 MBsize
maindefault branch
19 days agolast push
Python 57.1% Shell 13.8% CSS 12% JavaScript 10% HTML 7.2%

History of orchestrator/main.py · clear filter

  1. Fri, Sep 4, 2026 1

    1. topologie vivante : emplacements des services lus dans le registre mld (plus rien en dur)
      …
      - orchestrator/registry.py : applique ~/ka-guardian-spool/registry.json (nœud, IP, dir,
        port, PM2 sans ngrok) à SERVICES/NODES en place, journalise les déménagements,
        lit la sonde des runners ; topology.json ne garde que service→registry_app
        (+ pm2_exclude), ses node/dir/port ne sont qu un repli
      - main.py : refresh à chaque tick, refus de dépêcher vers un nœud sans runner
        (log 1×/h), rollback sur le nœud ACTUEL du service, bloc registry dans /api/state
      - deploy/registry-sync.sh + launchd com.ka.registry-sync (zsh pur, LNP) :
        tire le registre via gitsrv toutes les 2 min + sonde :7791 → runners.json
      - deploy.sh : nœuds/repos dérivés du registre, cible registry-sync, pousseur
        fusionné, helper lc_reload (agent gui/uid ou DAEMON système sur nœud sans
        session graphique, ex. M2U64), filtre <nœud>
      - dashboard : runner prêt/occupé/absent + fraîcheur du registre par service
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 20 days ago · 1 file +94 −16
  2. Fri, Aug 28, 2026 1

  3. Tue, Aug 25, 2026 1

    1. veilleur de sites: surveillance up/down des sites publics par agent
      …
      - topology.json: service vraiprix (M3U96a:8090, site seulement) ajouté a ka6;
        politique du veilleur (intervalle 120s, 2 echecs, throttle restart 10 min,
        fenetres watching/cooldown courtes pour _site)
      - orchestrator/main.py: site_engine — check du site public de chaque service,
        down confirme → pm2 restart auto via runner /restart, toujours down →
        incident site_down (priorite max) + mission Claude d investigation
        (build_site_down_prompt); current_status/_site, resolution auto au retour
        en ligne, garde anti-boucle abandonnes 24h; /api/state expose sites
      - runner/runner.py: endpoint POST /restart (pm2 restart + healthcheck, sans git)
      - app.js: libelle site_down; CLAUDE.md: doc du veilleur
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +178 −5
  4. Mon, Aug 24, 2026 4

    1. feat(orchestrateur): damper d événement de masse + fermeture des incidents retired
      …
      - Damper : si plus de mass_incident_threshold (20, policy) nouveaux incidents
        seraient créés d un coup pour un service, c est une panne GLOBALE de l app
        (sync mort, /api/stats cassé), pas autant de pannes individuelles — on ne
        crée rien et on alerte au journal/dashboard. Les sources encore cassées une
        fois la vague retombée reçoivent leurs incidents normalement (2026-08-24 :
        794 incidents jobka créés après ~17 h d arrêt de job-ka-sync).
      - Statut retired (nouveau côté api-ka d10b2f6) : un incident actif dont la
        source est retirée de la supervision est fermé en abandoned.
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +29 −5
    2. fix(orchestrateur): garde anti-boucle sur les incidents abandonnés
      …
      Une source diagnostiquée irréparable (site_source_mort, tentatives épuisées)
      ne redonne plus d incident avant abandoned_retry_hours (168 h, policy).
      Sans cette garde, un connecteur désactivé côté app mais rapporté broken à
      perpétuité par la supervision api-ka relançait une mission toutes les ~10 min
      (2026-08-24 : 37 missions sur origin-north.ai + 37 sur visionartproductions.com,
      ~42 USD). Les deux lignes mortes ont aussi été acquittées dans connector_health
      côté api-ka.
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +12
  5. Sun, Aug 23, 2026 5

    1. Bannières de partage (OG) par agent + rendu des pages par agent + CLAUDE.md prod
      …
      - og-ka2/ka4/ka6.png (2400×1260, identité Groupe KA) générées par deploy/make_og_images.py
      - balises Open Graph/Twitter dans index.html et commander.html (jetons __NUM__/__DOMAIN__/__TAGLINE__)
      - main.py: _render_page() au démarrage + route /og.png
      - CLAUDE.md: guide de prod M4M36 (launchd, restart, gotchas) pour les sessions admin
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +28 −5
    2. Robustesse: réconciliation des missions fantômes (runner /mission-result + final persisté), retries courrier 3x, deploy refuse un runner occupé, transfert tar-over-ssh
      …
      Cause racine du blocage 2026-08-23 14h: kickstart des runners (rotation jeton) a tué la mission claude en vol; l'événement final n'existait pas et la file restait bloquée jusqu'au délai zombie.
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +49 −8
    3. Simon-Pierre Boucher committed 1 mo ago · 1 file +72 −9
    4. Simon-Pierre Boucher committed 1 mo ago · 1 file +6 −1
    5. KA Guardian v1 — ka2/ka4/ka6 renaissent en agents autonomes de réparation des connecteurs
      …
      Orchestrateurs (M4M36) + runners claude -p sur les nœuds d'apps + courrier zsh
      (contournement Local Network Privacy macOS 26) + dashboards live style Groupe KA
      + efforts commandés (nouveau connecteur / enrichissement).
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +772