spb/ka-guardian
Public
Python 57.1%
Shell 13.8%
CSS 12%
JavaScript 10%
HTML 7.2%
-
Fri, Sep 4, 2026 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>
-
-
Fri, Aug 28, 2026 1
-
favicons ka2/ka4/ka6 : fallback ICO+PNG+apple-touch (Safari n'affiche pas les favicons SVG → onglet « ? ») — routes /favicon.ico /favicon.png /apple-touch-icon.png par agent + balises HTML
…
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
-
Tue, Aug 25, 2026 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>
-
-
Mon, Aug 24, 2026 4
-
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>
-
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>
-
Rollback ciblé (revert des seuls commits [ka*], plus jamais de reset/revert de plage) + pousseur launchd com.ka.pousseur (push binaires Apple, contourne LNP) + consignes: push raté en mission = attendu
…
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Consignes: les agents committent ET poussent sur spbgit (git push origin main obligatoire); rollback runner pousse aussi (force-with-lease); retrait artefact M4M36luster-projects
…
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
-
Sun, Aug 23, 2026 5
-
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>
-
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>
-
Page /commander (onglets, durée max, coût max estimé live, effort inspection dégradés) + garde-fou coût runner + commits conservés si plafond atteint
…
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Thèmes par agent (bleu ka2 / orange ka4 / mauve ka6) + favicons SVG signature + jeton opérateur
…
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
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>
-