Derniere mise a jour: 23/02/2026 02:00
Archives : Les sessions avant le 09/02/2026 sont dans
STATUS-archives/STATUS-archive-avant-09-02-2026.md
Audit complet de la stack et de l'organisation Claude (propositions, tasks, backlog, STATUS.md, memory/). Puis nettoyage en 7 etapes.
Proposition : propositions/23-02-2026-01-15-nettoyage-organisation-claude.md (VALIDEE)
Snapshot : /stock_8to/33800-stack/backups/claude-snapshot-23-02-2026.tar.gz (1.2 Mo)
Actions realisees :
STATUS-archives/Decisions utilisateur :
Lecon ajoutee dans MEMORY.md : Defaut #13 — C'est Claude qui oublie de mettre a jour les propositions, pas l'utilisateur.
Implementation complete des 10 gaps entre l'ancien dashboard bash et le nouveau dashboard Qwik SSR + 4 fixes post-deploiement.
Backend (monitoring repo #95) — 5 commits :
acdf66d — 8 nouveaux endpoints (collectors + routes)000e6e9 — Fix sudo pour lecture certs SSLa40c2b3 — Fix crons: tac | grep -m 10 pour fichiers log volumineux034d720 — Fix GitLab deploys: extraction environment.nameFrontend (frontend repo #120) — 1 commit :
6b3a4fe — 11 fichiers, 896 insertions (8 pages modifiees, 1 page creee)8 nouveaux endpoints : docker dev containers/images, services registry/syncthing, infra ssl/nginx-detail/zfs-extra, ai models
10 gaps combles :
4 fixes post-deploiement :
sudo pour letsencrypttac | grep -m 10 pour log 196 Moenvironment comme objet au lieu de string → crash JSXVerification : 8 endpoints OK, 4 crons OK, page GitLab OK
Suite du travail de la session precedente. Le frontend connectors-front utilise maintenant les URL search params pour stocker l'etat des filtres (categorie, tags, recherche texte). Les filtres sont bookmarkables et partageables.
Commit : 745c3e4 (connectors-front, CI/CD success, deploye)
Fichiers modifies :
src/lib/api.ts : getInstances() accepte des params de filtre (tag, connector_type, search) et les envoie a l'APIsrc/routes/index.tsx : Lecture/ecriture des filtres via useLocation().url.searchParams et useNavigate(), recherche texte debounced (400ms), compteur de resultats, bouton reset filtresRappel session precedente (15/02/2026) :
Tests valides :
Diagnostic et fix du bug qui empechait l'instance nginx-SSH de fonctionner via connectors.
Cause racine : setupAutoKey() generait des cles RSA en format PKCS#8/SPKI incompatible avec ssh2. La methode convertToOpenSSH() etait un placeholder casse (SPKI DER brut en format ssh-rsa). De plus, le mot de passe etait supprime apres installation de cle, rendant l'instance inaccessible si la cle echouait.
Fix (commit 3ea4de9, CI/CD success, deploye) :
ssh2.utils.generateKeyPairSync('ed25519') remplace crypto.generateKeyPairSync('rsa') — la lib ssh2 genere ses propres cles dans le bon formatconvertToOpenSSH() (placeholder casse)Tests valides :
ssh/execute → hostname OK)PasswordAuthentication no respecte sur nginx (auth par cle uniquement)Frontend ulias-org-web : boutons Relancer/Modifier sur les objectifs (chat + historique), tool results collapsibles, barre de confidence coloree, barre de progression structuree avec badges agent/model, filtre status dans l'historique.
Backend ulias-org : disambiguation generique des instances. Quand le message touche un type de connecteur (SSH, GitLab, email, Proxmox, etc.) qui a >1 instance et que l'utilisateur ne precise pas laquelle → briefing automatique. Fonctionne pour tous les types, pas de hardcode par connecteur. Les questions sont generees dynamiquement depuis les instances reelles de l'utilisateur.
Commits deployes (tous CI/CD success):
ulias-org 57a58b7: CATEGORY_KEYWORDS, checkInstanceAmbiguity(), buildInstanceQuestions() dynamique, send_email briefing, originalMessage dans eventsulias-org-web 616981a: EventCard retry/collapse/confidence, ChatMessages structured badges, history retry+filterErreurs de Claude cette session :
Ajout d'Anthropic Claude comme provider LLM cloud dans ai-orchestrator + tracking des couts en temps reel. Les agents ulias-org avec tools complexes sont routes vers Anthropic (quand la cle API sera configuree), les taches legeres restent en local sur Ollama.
Commits deployes (tous CI/CD success):
ai-orchestrator 80c546a: tool "anthropic", execute_anthropic_job, batch API, cost tracking (6 colonnes DB), budget guard, endpoints /api/costs/*ulias-org 4af3857: provider routing (client/registry/agent-runner/director), nettoyage credentials storage-devFeatures:
GET /api/costs/live (today/month) et GET /api/costs/summary (detail par provider)Migration SQL executee: +6 colonnes sur ai_jobs (cost_usd, provider, tokens_input/output, cache_read/creation_tokens)
Tests valides: /api/costs/live OK, /api/costs/summary OK, tool "anthropic" enregistre, schemas OK, ulias-org 31 agents healthy
Activation future: ajouter ANTHROPIC_API_KEY: "sk-ant-..." dans conf.prod.gouroubleu.yml + redeploy
Ajout de la persistance des conversations pour ulias-org. Les messages (user, assistant, events) sont sauvegardes en DB et restaures au rechargement.
Commits deployes (tous CI/CD success):
ulias-org df49fce: schema SQL (2 tables), DB layer (7 methodes CRUD), 5 routes REST, WS persistenceulias-org-web f18ba42: ConversationSidebar, layout 2 colonnes, load-history/clear-chatFeatures:
Tests valides: GET/POST/PATCH/DELETE conversations, GET messages, WS auto-create, messages persistes en DB
RTX 2070 Super reactivee pour les taches Ollama legeres.
Commits deployes (tous CI/CD success):
ulias-org 4ec90ca: retrait hardcode gpu: 0, delegation au routing orchestratorai-orchestrator d512647: seuil GPU1 2GB→6GB, affinite modele, routing intelligentRouting actuel:
Tests valides: llama3.2→GPU1, qwen3:8b→GPU0, embeddings→GPU1, ulias-org healthy
Correction de 6+ bugs bloquants decouverts lors des tests de v0.8.0.
Commits deployes (tous CI/CD success):
connectors-api d555d4f: expose user_id dans /api/user/instancesulias-org 739272f (5 commits): auth email/pwd, GPU routing, scheduler guard, resolveSessionulias-org-web 1ee11ad: login email/password (remplace API key manuelle)Fixes appliques:
/api/auth/login, creation auto de cle APIsession.access_token + user.id (format connectors-api)["*"] sur les cles creeesck_live_ (prefix API key). Maintenant: 821349f2-... (vrai UUID)gpu: 1 (RTX 2070S 8GB) → gpu: 0 (RTX 3090 24GB), timeout 30s→90sollama-gpu1 → ollama (RTX 3090)jobsRunning Map previent l'empilement de jobs concurrentsENABLE_SCHEDULER: "true"preferences JSONB ajoutee a agents.ceo_profile + defaults NOT NULLresolveSession() sur TOUS les endpoints REST (auto-creation session)ollama-gpu1 stoppe, scheduled tasks nettoyees sur win11:
OllamaServe supprimee (via QEMU guest agent)Ollama GPU1 AutoStart supprimee (via SSH apres reboot VM 201)Tests valides (tous OK):
{theme: dark, language: fr}Infrastructure actuelle:
Implementation complete des sprints 2-8. Systeme passe de MVP a production.
Services:
https://ulias-org.33800.nowhere84.com (port 5515, v0.8.0)https://ulias-web.33800.nowhere84.com (port 5516, dashboard web)25 agents, 7 teams: engineering (5), ops (4), research (3), media (3), security (3), transversal (4), ceo (3)
Pages web UI: Chat, Monitor, History, Decisions, Teams, Settings, Login
Infrastructure:
agents + pgvector embeddingsCI/CD: Les deux repos pushes et deployes
Deploiement complet et test end-to-end reussi de ulias-org (organisation IA autonome).
Service: https://ulias-org.33800.nowhere84.com (port 5515, SSL, WebSocket)
Flow valide:
Fixes appliques:
tools pass-through + num_ctx:8192 (anti-OOM)instance_id (UUID) au lieu de instance (nom)Verification post-fix du pipeline de logs installe le 11/02. Deux problemes supplementaires decouverts et corriges :
1. Logrotate nginx — paquet manquant
cron avait ete installe, mais le paquet logrotate lui-meme n'etait PAS installe (dpkg: un)/etc/logrotate.d/nginx existait (vient avec nginx) mais aucun binaire pour l'executersudo apt install logrotate → timer systemd active (daily 00:00 UTC)gitlab.access.log = 535 Mo2. Sync-logs O2switch — 2 curls zombies
--max-time)gitlab-rails (limit=5000, pas de timeout)3. Bug doublon logs dans le script
log() utilisait tee -a $LOG_FILE (ecrit fichier + stdout) + cron >> $LOG_FILE = chaque ligne 2xtee -a → >> dans la fonction log()Resultat sync 11/02 : | Source | Lignes | |--------|--------| | pve/journal | 38 764 | | nginx/access | 3 854 | | nginx/vhost-access | 152 321 | | nginx/vhost-error | 5 765 | | gitlab/rails | 162 322 | | gitlab/nginx | 72 368 | | prod-portainer/docker | 2 103 595 | | dev-portainer/docker | ~2M |
Etat des lieux complet de l'infra, puis correction du pipeline de logs :
Diagnostics :
3 problemes decouverts et corriges :
Logrotate inactif sur nginx VM — package cron absent, logs grossissaient sans fin (1.1 Go). Fix: apt install cron, logrotate s'executera quotidiennement (daily, 14 rotations, compress).
sync-logs-o2switch.sh non fonctionnel — 3 bugs : FQDN DNS casse (ssh-nowhere84.o2switch.net → alias o2switch), limit=100000 depassait le max Loki 5000 (pagination batch 1000 + curl timeout 30s), rsync --mkpath non supporte par O2switch (mkdir -p prealable). Le script n'avait JAMAIS fonctionne — aucun log archive sur O2switch.
nginx-logs-archive.sh supprime — Redondant avec Loki + O2switch, archive quasi vide.
Test final reussi : 8 fichiers, 2.4M lignes, 29 Mo archives sur O2switch ~/backup/logs/.
Architecture logs resultante :
Task: ~/tasks/11-02-2026-02-30-fix-pipeline-logs-nginx-o2switch.md
Tests end-to-end de toute la chaine orchestrator → win11 :
Win11 (192.168.1.30) :
Jobs testes via orchestrator :
Limite identifiee : mistral:latest (4.3 Go) ne tient pas sur GPU1 (8 Go VRAM, 3.8 Go deja utilisees). Petits modeles (llama3.2, nomic-embed-text, gemma3:4b) OK. Comportement attendu du VRAM-aware scheduling.
Containers Docker : 29 containers healthy sur prod-portainer (seul notif-logger unhealthy, preexistant)
/api/tools/refresh timeout (boucle sequentielle 12 outils × 40s = 480s pire cas)asyncio.gather() pour tous les health checks en parallele35af235 (ai-orchestrator)Remplacement du bloc monolithique step 9 dans smart-deploy par 4 etapes granulaires :
| Etape | Verifie | Rollback si echec |
|---|---|---|
| 9a Container Check | docker inspect status=running | Non (probleme image/config) |
| 9b Port Readiness | TCP connect avec retries | Oui |
| 9c Health interne | HTTP /health sur IP:port | Oui |
| 9d Health HTTPS | Domaine externe nginx/SSL | Non (probleme nginx, pas app) |
16a2dc4 (smart-deploy)~/propositions/10-02-2026-14-00-blue-green-deployment.mdCUDA_VISIBLE_DEVICES=1 qui forcait TOUS les outils sur RTX 2070 Supergpu_id colonne dans ai_jobs)c2bca5d, 511508f, 80e265c, 70e100d, 236fc9a~/tasks/09-02-2026-15-00-fix-multi-gpu-fiabilisation.md