Le mot de passe airtria_ro est desormais lu depuis AIRTRIA_RO_PASSWORD
(variable d'environnement, sinon .env monte dans le conteneur), plus depuis
.pg-airtria : EVCS renouvelle ce mot de passe, un fichier fige faisait echouer
l'auth EN SILENCE. readPgPassword LEVE (rattrapable) au lieu de process.exit ;
mot de passe resolu paresseusement dans makeClient.
Nouveau module concierge-health.js (meme patron que le moniteur LLM) : battement
de coeur horodate a CHAQUE cycle detect, statut live dans HA, et alerte WhatsApp
UNIQUEMENT sur transition ok<->erreur (dedup, pas de rappel periodique). Chemin
HA independant de PostgreSQL : l'alerte auth KO part meme quand c'est l'auth qui
tombe. Best-effort : si les helpers HA manquent, le concierge n'echoue pas.
- concierge-health.test.js : machine a etats (dedup + transitions) verifiee, sans reseau
- concierge-health-ha-package.yaml.draft : helpers HA (a integrer cote proprietaire)
- SPEC : source du secret corrigee + section supervision
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RZsbhyGmRwZogdoBwT6C6y
Concierge: declenche au BRANCHEMENT (transition on de evenement) au lieu de la session ;
helper porte 'branchement' (ts::text verbatim) ; fraicheur [on-10, min(now, on+30)].
Moniteur LLM/RAM (llm-monitor.js) : endpoint spark + RAM, alerte WhatsApp sur changement
d'etat, publie l'etat dans HA (last_seen a chaque passage) + interrupteur de pilotage.
Docs: SPEC a jour, MONITORING-LLM.md, brouillons de config HA.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RZsbhyGmRwZogdoBwT6C6y
Complete le commit doc precedent : ajoute le code JS du concierge, exclu jusqu'ici
par la liste blanche workspace/*. Exception ciblee !workspace/concierge-*.js dans
.gitignore (aucun secret : les tokens sont lus depuis .ha-token/.pg-airtria, ignores).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RZsbhyGmRwZogdoBwT6C6y
AGENTS.md : 26 399 -> 14 654 caracteres. La migration 2026.8.1 y avait fusionne
TOOLS.md, portant le fichier bien au-dela de la limite d'injection : l'agent n'en
lisait plus que 19 %. Suppression de trois sections bourse redondantes, du bloc
heartbeat (fonction desactivee), des consignes Discord/Slack (canaux desactives)
et du boilerplate. Correction des references a TOOLS.md, qui n'existe plus, et
du nom de l'outil d'envoi WhatsApp (message, pas whatsapp send_message).
Ajout de trois regles issues d'incidents reels : validation d'un PNG par du -b
et jamais par view_image, absence de parametre de rebase sur le webhook N8N,
et rappel de la limite de 30 000 caracteres de ce fichier.
bourse-config.json : mise sous suivi. Retrait du graphe "normalise", dont le
titre annoncait un rebase 100 inexistant et qui ecrasait ORA.PA (~18 EUR) sous
NVDA (~250 USD) sur un axe commun. Nommage explicite des fichiers de sortie.
TOOLS.md : supprime, son contenu vit desormais dans AGENTS.md.
MEMORY.md et gmail-housekeeping.md : enregistrement d'un etat anterieur
(troncatures des 7 juillet et 5 aout, jamais commitees depuis le 26 juin).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NuEBkGBjkpZGgqJnX1DCrm