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%

page 1

  1. Fri, Sep 4, 2026 4

    1. Simon-Pierre Boucher committed 19 days ago · 1 file +163 −38
    2. Simon-Pierre Boucher committed 19 days ago · 2 files
    3. 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 19 days ago · 9 files +634 −263
  2. Fri, Aug 28, 2026 5

    1. docs: README ultra détaillé + visites guidées ka2/ka4/ka6 (30 captures)
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 26 days ago · 31 files +269 −40
    2. Simon-Pierre Boucher committed 27 days ago · 1 file +4 −3
    3. [orchestrateur] rentka: pm2[] sans rent-ka-sync (stopped) — convention vrai-prix-ingest
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 27 days ago · 1 file +2 −3
    4. [orchestrateur] supervision House-Ka + Rent-Ka sous ka2 (sites + runner M4M36)
      - topology.json: services houseka (M4M64b:8098, www.house-ka.com) et rentka
        (M4M36:8125, www.rent-ka.com) ajoutés à ka2 (gardien immobilier & local);
        nœud m4m36 (192.168.2.69) ajouté aux nodes.
      - Runner com.ka.guardian-runner déployé sur M4M36 (rent-ka y tourne):
        deploy.sh RUNNER_NODES += M4M36, CLAUDE.md à jour.
      - ngrok exclus des listes pm2[] (même convention que vraiprix).
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 27 days ago · 3 files +34 −4
  3. Tue, Aug 25, 2026 4

    1. web: bouton primaire lisible — fond accent agent + texte encre
      Lancer l effort passait mal en fond encre ; le bouton prend maintenant
      le fond lime/accent de l agent avec texte encre, hover vert profond.
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 29 days ago · 1 file +4
    2. web: refonte éditoriale v2 (typo géante, brush lime, tuiles à filet)
      Aligne le frontend ka2/ka4/ka6 sur la nouvelle DA lou-ka/vrai-prix :
      héro typographique, .hl converti en souligné brush SVG lime, carte
      définition devenue colonne à filet gauche, chips du héro en ligne de
      données mono + filets, tuiles d état / incidents / couverture /
      registre des missions à filet (zéro boîte) — l écran encre du flux
      garde son ombre signature. Fix min-content des grilles (main/hero/
      cols) pour le mobile. CSS pur, servi à chaud : aucun restart des
      gardiens nécessaire.
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 29 days ago · 1 file +70
    3. Simon-Pierre Boucher committed 29 days ago · 7 files +17
    4. 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 · 5 files +237 −9
  4. Mon, Aug 24, 2026 5

    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 · 2 files +31 −6
    2. fix(runner): watchdog de timeout indépendant du flux stdout
      Le contrôle du deadline vivait dans la boucle for line in proc.stdout : il ne
      s exécutait qu à l arrivée d une ligne. Un claude qui se tait (outil qui pend)
      ou qui n exit jamais après son résultat laissait la mission « running » pour
      toujours et bloquait le nœud (mission f9eb9d1b59c8 du 2026-08-24 : travail fini
      à 10:38, processus zombie tué à la main à 15:46). Un thread watchdog tue
      désormais le processus au deadline quoi qu il arrive.
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +15
    3. 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 · 2 files +15 −2
    4. Simon-Pierre Boucher committed 1 mo ago · 42 files +17 −7,305
  5. Sun, Aug 23, 2026 8

    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 · 8 files +204 −5
    2. Runner: flush du transcript ligne par ligne
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +1
    3. 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 · 35 files +2,915 −385
    4. Simon-Pierre Boucher committed 1 mo ago · 7 files +340 −109
    5. Simon-Pierre Boucher committed 1 mo ago · 7 files +48 −11
    6. ka2/ka4/ka6 → modèle claude-fable-5
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +138 −21
    7. Simon-Pierre Boucher committed 1 mo ago · 1 file +4 −2
    8. 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 · 35 files +6,831