48 KiB
NAS Runbooks — Index
Référentiel opérationnel partagé entre hermes-tt, hermes-nyora, hermes-perso. Chaque instance écrit uniquement dans son dossier ; tous les dossiers sont lisibles par tous. Consolidation du 09/07/2026 : doublons fusionnés, runbooks obsolètes purgés, runbooks métier re-sphérés (détail en bas de page).
common — Protocoles & référence
common — Sécurité
common — Stack & fiabilité
common — LLM (Bifrost, OpenCode, n8n)
common — Hermes (plateforme)
common — Documents (nyora-doc-api)
| Runbook | Date | Tags |
|---|---|---|
| Réduction hermes-hub en dispatcher minimal & stabilisation DSH (historique, WebSockets, mémoire NyoraNotes) | 2026-08-26 | dsh, hermes-hub, dispatcher, websocket, history-fix, nyora-notes |
| Hermes Hub — Déploiement et Exploitation Multi-Univers sur VPS (FastAPI, proxy async, design tokens, Tailscale) | 2026-08-19 | hermes, hub, multi-univers, vps, tailscale, cloudflare-access, fastapi |
| nyora-doc-api v3 Premium — guide d'usage Hermes | 2026-07-01 | nyora-doc-api, docx, xlsx, pptx, pdf |
| nyora-doc-api — procédure rebuild & déploiement | 2026-07-09 | nyora-doc-api, docker, rebuild |
| nyora-doc-api mode template — cause racine non-restyle + restyle=full (déployé 08/07) | 2026-07-08 | nyora-doc-api, template |
common — Divers
| Runbook | Date | Tags |
|---|---|---|
| Réduction hermes-hub en dispatcher minimal & stabilisation DSH (historique, WebSockets, mémoire NyoraNotes) | 2026-08-26 | dsh, hermes-hub, dispatcher, websocket, history-fix, nyora-notes |
| Hermes Hub — Déploiement et Exploitation Multi-Univers sur VPS (FastAPI, proxy async, design tokens, Tailscale) | 2026-08-19 | hermes, hub, multi-univers, vps, tailscale, cloudflare-access, fastapi |
| Hébergement de sites statiques produits par Hermes | 2026-06-20 | hebergement, statique |
| HTML vers PNG headless (Puppeteer) | 2026-07-09 | html, png, puppeteer |
| gstack — évaluation MacBook vs Hermes | 2026-06 | evaluation, gstack |
hermes-tt
hermes-nyora
hermes-perso
| Runbook | Date | Tags |
|---|---|---|
| Réduction hermes-hub en dispatcher minimal & stabilisation DSH (historique, WebSockets, mémoire NyoraNotes) | 2026-08-26 | dsh, hermes-hub, dispatcher, websocket, history-fix, nyora-notes |
| Hermes Hub — Déploiement et Exploitation Multi-Univers sur VPS (FastAPI, proxy async, design tokens, Tailscale) | 2026-08-19 | hermes, hub, multi-univers, vps, tailscale, cloudflare-access, fastapi |
| CrowdSec sur DSM | 2026-06-12 | securite, ssh, iptables |
| SOUL.md hermes-perso — ingest API veille | 2026-06-15 | soul, veille |
| formation-consultant — site formation autodidacte | 2026-07-25 | infra, formation, deploiement |
Règles de contribution
- Écriture : chaque instance écrit uniquement dans son dossier
hermes-<nom>/;common/= strictement transverse (infra/ops générique, jamais de données métier ou familiales). - Lecture : tous les dossiers lisibles par toutes les instances.
- Format : RUNBOOK-TEMPLATE.md. Après chaque runbook : note NyoraNotes tags [infra, runbook] et mise à jour de ce _INDEX.md (pas de sous-index par dossier).
Consolidation 09/07/2026 (traçabilité)
-
Fusionnés : MCP-NAS-SCRIPTING + mcp-nas-run-command-v2 →
mcp-nas-reference.md· OPENCODE-GO-MIGRATION + migration-provider-opencode-go →opencode-go-migration.md· BIFROST-VK-OPENCODE-FIX + bifrost-vk-stale-cache →bifrost-vk-incidents.md· nyora-doc-api-footer-bug-docx + nyora-doc-api-rebuild-footer-docx →nyora-doc-api-rebuild.md(footers supprimés de tous les formats le 08/07). -
Supprimés (obsolètes) : gotenberg-pdf.md (container désinstallé 21/06), ports-registry.md dupliqué à la racine (identique à common/), hermes-nyora/_INDEX.md (sous-index abandonné).
-
Re-sphérés depuis common/ : hermes-perso-SOUL-veille-ingest → hermes-perso/ (données familiales) · kanban-evaluateur-ao → hermes-tt/ · veille-hebdo-nyora, workflow-claude-glm-nyora, veille-dr-nexum-cron-timezone-publish-n8n → hermes-nyora/.
-
common/vps-transition-swap-hdd.md— transition VPS Contabo (doublure noyau métier) pour swap HDD + reset volume. Tailscale = fenêtre. (10/07/2026) -
scripts/backup-usb.sh— backup USB incrémental root (docker+volumes+mémoire), tâche DSM. (10/07/2026) -
common/runbook-audit-charge-nas-ds920-methode-2026-07.md— Audit charge DS920+ : méthode mesure, pièges loadavg/smbd/docker stats, goulot = IO, état de référence 42 containers, actions en attente (flaresolverr, agent-perso 768m). (12/07/2026) -
common/n8n-credentials-corruption-veille-consolidation.md— Credentials n8n corrompues (does not exist), tokens/domaines Baserow valides, consolidation veille Dr. Nexum en pipeline unique (14/07/2026) -
veille-nexum-vk-morte-fuseau-n8n.md — Veille Dr. Nexum réparée : VK Bifrost morte (purge 07/07) + fuseau n8n + piège versionnage workflow_history (14/07/2026)
-
veille-nexum-rich-job-20-sources.md — Bascule vers la veille riche mimo-v2.5 : 20 articles, 17 YouTube + 13 RSS, autres veilles désactivées (14/07/2026)
-
hermes-vers-bifrost-bifrost-proxy.md — Les 3 Hermes routent via Bifrost (bifrost-proxy convertit Bearer→x-bf-vk), config.yaml provider custom, restart-only (15/07/2026)
-
common/tourisme-tunisie-skill.md— Skill Hermes : lieux a visiter en Tunisie (OSM, sans cle) [16/07/2026] -
hermes-nabil-vps-deploiement.md — hermes-nabil sur VPS Contabo : structure, cerveau OpenCode direct, bots Tailscale-only, recherche web, documents (18/07/2026)
-
hermes-nabil-images-flyers-navigateur.md — Navigateur bake dans l'image (postinstall), rendu HTML->PNG/PDF, OpenCode ne genere pas d'images -> Gemini, pipeline flyer Or Bruni (18/07/2026)
-
transfert-secret-inter-machines.md — Deplacer une cle API entre deux machines sans jamais l'exposer (RSA-3072/OAEP, cle privee jetable), controle par longueur et prefixe (18/07/2026)
-
common/vps-hermes-nabil-visuels-yasmi.md — pipeline visuels Yasmi VPS : logo intelligent (luminance), 28 scènes tunisiennes, 5 mannequins (19/07/2026)
-
dockerfile-layer-cache-ordre.md — Ajout de dependance mineure a un Dockerfile hermes en couche RUN separee post-postinstall pour eviter un rebuild complet (git sur hermes-nabil VPS, evite retelechargement Chromium ~400 Mo) (21/07/2026)
-
n8n-insights-collation-index-doublons.md — Index unique dégradé sur insights_metadata (collation postgres) : restore littéral impossible, laissé en l'état, bombe à retardement REINDEX/pg_upgrade (23/07/2026)
-
common/prompt-defensif-anti-refus-contre-productif.md — hallucination refus job cron (email légitime pris pour phishing), root cause = langage anti-refus meta dans le prompt, fix = contexte factuel neutre (24/07/2026)
-
hermes-tt/mail-o365-hermes-mail-browser-inbox-staleness.md — /inbox renvoyait des mails perimes apres ouverture dun message (liste virtualisee OWA non remontee), fix go_to_inbox_root() force navigation fraiche sur les 4 endpoints indexes (24/07/2026)
-
hermes-tt/mail-o365-recherche-scroll-virtualisation.md — liste OWA virtualisee limitee a 5-7 mails montes, fix par accumulation ArrowDown progressif (read_listbox_items), + endpoints /search* (recherche precise dans toute la boite), skill mail-o365-tt.md complete (24/07/2026)
-
hermes-tt/mail-o365-search-pas-de-filtre-date.md — tentative estimation volume mail 2024+ (projet nyora-notes-TT) : /search fait du matching texte brut, pas un filtre received reel (q=received:2024 remonte des mails de 2025 contenant 2024 dans le sujet) ; /folders instable (count:0 ou timeout) ; ~35-40s/appel pour 5 resultats -- comptage volume a faire via UI OWA native (noVNC), pas via scraping iteratif (30/07/2026)
-
hermes-nyora/iakifech-ep2-subtitle-desync-freeze-postmortem.md — Sous-titres moneyprinterturbo calés sur edge-tts non regénérés apres swap voix ElevenLabs (desync ~0,57s), freeze+silence fin (body 75,57s vs voix 79,49s, ~18s ecart non explique), logo confirme present et correct (24/07/2026)
-
common/baserow-rotation-casse-containers-standalone.md — Rotation mot de passe admin Baserow casse les containers standalone non supervises (JWT admin code en dur) ; fix = Database API Token statique par scope, cas dashboard-terrain corrige (25/07/2026)
-
common/vision-auxiliaire-routing-text-only-modeles.md -- auxiliary.vision
autocasse sur modeles text-only (deepseek-v4-flash), route explicite vers google/gemini-2.5-flash via bifrost-proxy, applique hermes-perso + hermes-tt (27/07/2026) -
common/anti-hallucination-benchmarks-recherche-chiffree.md -- Garde-fou anti-invention sur rapports chiffres : chiffre = page lue en entier ou "non verifie", verifier variante exacte du modele avant attribution (27/07/2026)
-
common/smart-approvals-deny-rules-4-instances.md -- approvals.mode smart + deny rules sur les 4 instances Hermes, auxiliary.approval route vers deepseek-v4-flash (jamais mimo-v2.5), exception documentee hermes-nabil VPS (27/07/2026)
-
common/veille-chunking-nyora-root-cause.md -- Root cause des 24 tool_calls casses hermes-nyora : prompt du job veille ordonnait un heredoc unique pour 20 items sans limite, pas un probleme mimo-v2.5 ; fix construction chunkee (27/07/2026)
-
common/watchdog-telegram-gateway-container-autonome.md -- Watchdog Telegram gateway Hermes en container autonome (docker:cli + socket monte), contourne l'absence d'acces DSM Task Scheduler/crontab, redemarre automatiquement + escalade si echec persistant (27/07/2026)
-
common/n8n-baserow-https-interne-econnrefused.md -- Workflow oTLZguPfPlq9B7El (Moyens Humains Zone Sud Sync) : ECONNREFUSED sur Update/Create1 -- nyoeuds ecriture appelaient https://baserow.bolbol.tn (443, pas de TLS interne sur ce reseau Docker) au lieu de http://baserow:80 comme les noeuds GET ; fix scheme https->http (28/07/2026)
-
common/baserow-mcp-oauth-fix.md -- Connecteur Claude.ai vers Baserow MCP echouait (404 sur well-known/register, meme piege que mcp-vps) ; sidecar OAuth stub + nginx devant Baserow (image officielle non patchable), reseau n8n uniquement (gotcha TCP timeout sur nouveau bridge custom), teste bout-en-bout SSE/WS/API identique au direct, reste reverse-proxy DSM 3888->3887 a faire manuellement (28/07/2026)
-
common/context-hub-memory-entries-securite-mcp.md -- Faille MCP corrigee (ContextVar lie a l'identite SSE reelle au lieu des arguments client sur get_rules/search_rules/get_agent_config/get_my_context/update_rule/check_port/get_ports) + table memory_entries typee (decision/constraint/best-practice/common-error/do-not-use) + FTS5, testee end-to-end ; base du futur scope coding (30/07/2026)
-
common/context-hub-mcp-initialize-bad-request-4-causes.md -- MCP initialize Bad Request cote Gemini : 4 causes empilees decouvertes une par une (proxy-headers manquant -> redirect HTTPS vers HTTP, httpx absent de requirements.txt, mcp installe en 2.0.0 breaking, transport SseServerTransport legacy incompatible clients Streamable HTTP modernes) ; migration vers StreamableHTTPSessionManager stateless, resolu, Gemini connecte 9 tools (30/07/2026)
-
common/veille-nexum-sources-reddit-403-nas-ip.md -- Ajout 5 sources Reddit au pipeline Dr Nexum (r/LocalLLaMA, r/artificial, r/OpenAI, r/ClaudeAI, r/singularity), pipeline retrouve inactif (active:false), Reddit bloque en 403 depuis l IP NAS (teste 3 UA), perimetre restreint a Nyora (31/07/2026)
-
hermes-tt/nyora-notes-tt-backup-wal-moteur-mixte.md -- disk I/O error sur toutes les requetes RAG mail juste apres chaque backup n8n : route /backup ouvrait une connexion sqlite3 stdlib differente du moteur sqlean de l'app sur la meme DB WAL live, checkpoint au close() desynchronise le wal/shm ; fix moteur unifie (sqlean) + PRAGMA busy_timeout partout, verifie 8/8 juste apres un backup manuel (02/08/2026)
-
hermes-tt/n8n-cron-orphelin-hermes-mail-browser-instabilite.md -- cause reelle de la lenteur/instabilite hermes-mail-browser : workflow n8n 'ingestion continue' actif depuis 31/07, toutes les 10 min, boucle infinie sur dossiers error_409/404 (etats finaux jamais retraitables, condition d'arret jamais declenchee, neverError:true masquait le probleme). Desactive. hermes-mail-browser lui-meme sain (RAM/CPU), search/list_attachments conformes aux baselines une fois le cron stoppe (02/08/2026)
-
hermes-tt/passation-pj-hermes-tt-deepseek-mimo.md -- Chantier PJ nyora-notes-tt confie a hermes-tt (DeepSeek V4 Flash, rythme naturel LLM) + Mimo V2.5 (classement) apres echec du script Python mecanique (renderer Chromium bloque a 100% CPU sous boucle serree, watchdog ressources deja actif en filet de securite). Etat exact, points de vigilance, gap MCP ecriture a verifier (02/08/2026)
-
common/mcp-nas-container-pid-namespace-blindspot.md -- ps aux (host) invisible aux process internes containers (pas de --pid=host) ; PID docker top (host) != PID kill dans docker exec (namespace container) ; methode /proc/*/cmdline fiable pour verifier/tuer (04/08/2026)
-
common/bifrost-google-provider-key-rotation.md -- 429 Google embeddings systematique malgre 3 cles configurees : max_retries=0 sur le provider empechait toute rotation reelle malgre allow_all_keys=1 sur la VK ; fix max_retries=2 (config.json + config.db). Limite documentee : rotation confirmee fonctionnelle mais les 3 cles partagent le meme pool de quota, ne resout pas un quota epuise (05/08/2026)
-
hermes-tt/nyora-notes-tt-3-bugs-05-08-2026.md -- 3 bugs nyora-notes-tt/nyora-convert-api decouverts en diagnostic : FTS5 syntax error sur "/" dans search_onedrive_archive ET search_mail_memory (references AO, dates), KeyError non catche sur reponse Bifrost inattendue dans _call_bifrost, PROMPT_TEXT/PROMPT_VISION jamais reaccentues (regle LANGUE du 19/07 non appliquee). 3 fixes deployes et testes. Bonus : ni l'un ni l'autre n'etait sur Gitea, bootstrap fait (05/08/2026)
-
hermes-tt/nyora-notes-tt-onedrive-sync-doublons-extensions.md -- Suite etape 3 plan onedrive-sync : remaining_cataloged=0 vs cataloged=362 explique (doublons is_duplicate_of exclus par design, pas un bug) ; extensions inconvertibles (svg/py/pyc/telechargement/xlsb/pbix/odt/ods/numbers/jnlp/eps/ai/cdpz/rar/zip/excalidrawlib/bat/mp4/mp3) ajoutees a UNCONVERTIBLE_EXT, commit 70d0a33, verifie bad_ext_still_present=0 docs_apres=docs_avant=7038. Etape 3 (auto-actualisation OneDrive) terminee. Bonus : piege mcp-nas generalise aux 3 instances (alias docker incompatible nohup) (06/08/2026)
-
hermes-tt/ria-179-articles-fiabilite-citation.md -- Audit ingestion RIA (179 articles verbatim, 180 notes NyoraNotes) demande par Nabil : extraction/hash/index confirmes exacts, mais 12 articles (2,5,41,97,109,127,132,142,148,152,164,172) avaient un residu TITRE/Chapitre/Section du groupe suivant colle en fin de fichier, polluant le ranking FTS (ex. art.97 remontait sur "penalite retard" hors-sujet). Corrige sur fichiers locaux + notes, verifie stable sans reindexation manuelle (06/08/2026)
-
hermes-tt/nyora-notes-tt-attachments-liaison-onedrive-07-08-2026.md -- content_hash jamais calcule sur les PJ mail (0/41), JOIN avec onedrive_documents structurellement vide ; fix + backfill (17/20), attachments_vec cree (2048d NVIDIA NIM), Phase 2 extraction ajoutee (nyora-convert-api upload multipart, 14/20 ok) + embedding (14/14 ok). JOIN exact content_hash toujours 0 (structurel, PJ 2026 trop recentes) mais JOIN approximatif ao_reference fonctionne (4/14 PJ avec un match OneDrive) -- confirme que la cle de liaison fiable est la reference AO, pas un hash/identifiant unique. Bonus : deux pieges Docker (docker restart ne recharge jamais une image rebuild, DDL perdue sans wal_checkpoint avant redemarrage) (07/08/2026)
-
hermes-tt/sharepoint-delta-sync.md -- Ingestion SharePoint -> archive locale mise en place et validée : endpoint POST /sharepoint-sync sur hermes-mail-browser, workflow n8n pBF8OzVvPnGILGgj (toutes les 60 min). Réglages navigateur persistants (désactivation ouverture Office inline, téléchargement PDF forcé), authentification X-Ingest-Key. Piège DSM : port publié sur IP LAN spécifique (192.168.100.33), inaccessible via 172.17.0.1 depuis un autre container, pas de hairpin NAT -- passer par ssh nas-host pour tester. Testé sur 1 an d'historique, 3 sites actifs : 10 downloaded, 0 errors (06/08/2026)
-
hermes-tt/nyora-notes-tt-sweep-livelock-fix-08-08-2026.md -- run_batch_sweep_all_years.sh bloque (ORDER BY folder_path deterministe + abort apres 3 echecs consecutifs) : 3 notes qui timeoutent systematiquement au listing PJ OWA revenaient toujours en tete de requete et empechaient tout progres sur les 46 autres notes en attente (66->49 puis stuck 49 pendant 14 lots, ~1h40 perdues). Fix : colonne notes.scan_fail_count, ORDER BY scan_fail_count ASC puis folder_path, sink automatique des notes en echec. Rebuild + up -d (jamais restart), verifie sur le lot suivant. Bonus : rebuild a aussi fige en dur le fix embed_attachments.py (vec0) jusque-la seulement patche en live (08/08/2026)
-
hermes-tt/nyora-notes-tt-ao-reference-endpoint-pj-archive-fix-08-08-2026.md -- Suite session 08/08 : outil MCP search_linked_documents productionise (normalisation regex NN/AAAA, 3 modes d'entree ao_reference/attachment_id/note_id, teste reel 1082 correspondances). /mnt/pj-archive elucide : pas de montage manquant, bug de donnees (local_path avec un prefixe ATTACH_ROOT perime pre-bootstrap), fichiers reels presents sous /app/attachments -- corrige, 20/20 PJ ont desormais un content_hash. JOIN exact content_hash : 1re correspondance confirmee (0 le 07/08), hypothese de resorption progressive validee. Piege : UPDATE concurrent au sweep actif = database table is locked, fix PRAGMA busy_timeout au lieu de wal_checkpoint (08/08/2026)
-
hermes-tt/nyora-notes-tt-phase2-embedding-relance-post-sweep-08-08-2026.md -- Sweep Phase1 toutes annees termine seul via son plafond MAX_BATCHES=15 (3 notes restantes, cas OWA permanents deja connus, aucune intervention necessaire). Phase 2 + embedding relances sur le volume complet via nouveau script run_phase2_embed_full.sh (boucle jusqu'a epuisement + embedding + audit) : 24/27 PJ telechargees extraites avec succes, 24/24 embeddees (100%), content_hash 27/27 (100% des telechargees), ao_reference 23/27. JOIN exact content_hash avec onedrive_documents : 3 correspondances (1 seul le 08/08 matin, confirme la resorption progressive). Piege : docker exec -i obligatoire pour un heredoc Python en stdin ; sqlite_vec.load(conn) obligatoire avant toute requete sur *_vec, y compris en audit ponctuel (08/08/2026)
-
hermes-tt/download-attachments-phase1-bug-timeout.md -- Sweep PJ 2026 degradait la session OWA jusqu'a marquer des notes attachments_scanned=1 sans verification reelle : deux endpoints (search_folder par dossier, list_attachments par note) catchaient un timeout exactement comme un 404 et le mettaient en cache comme vide. Fix : contrat None (inconnu, a retenter) vs liste vide (verifie vide/404) strict + une retentative + circuit-breaker 3 echecs consecutifs. Filtre year_bucket ajoute (absent avant, bug distinct meme session), parametrable ATTACH_YEAR_BUCKET pour reprendre sur 2024/2025 apres 2026. Teste 2x5 notes (07/08/2026)
-
hermes-tt/nyora-notes-tt-message-id-elem-id-volatile-08-08-2026.md -- Piste "message_id natif via elem_id OWA" FERMEE : elem_id (attribut id de ligne) s'est revele VOLATILE (GUID de rendu regenere a chaque appel -- test rigoureux 0/19 messages stables, ensembles disjoints, meme index -> id different). Un premier test a 1 seul message en position 0 sur appels rapproches l'avait faussement valide (DOM re-utilise). Decision : message_id reste le hash SHA256(subject|date|sender) STABLE ; conversation_id (data-convid, niveau THREAD, regex ciblee jamais split sur |) et fix retry /search count:0 transitoire CONSERVES. Garde-fou dedup verifie (message_id = cle de dedup ; 399 notes toutes en dossiers 'done' jamais re-scannes ; 0 note degradee inseree pendant la fenetre elem_id). Lecon SPA : tester un id DOM sur >=2 rendus reels et plusieurs messages (08/08/2026)
-
common/guardrails-flotte-hermes-hard-stop-tirith-verificateur-12-08-2026.md -- hard_stop_enabled et tirith_enabled actives sur les 4 instances (etaient false), verificateur delegate_task croise (NAS genere DeepSeek/verifie Mimo V2.5, hermes-nabil inverse) ; faille provenance mail->RAG confirmee par lecture code mais pas corrigee (chantier a part) ; hermes-agent-tt trouve down 8h (mort non-propre, cause inconnue), hermes-workspace-perso bloque par port 3030 orphelin (12/08/2026)
-
hermes-tt/nyora-notes-tt-backfill-72h-perte-silencieuse-429-resync-error404-16-08-2026.md -- Backfill mail 72h termine (643->4322 notes). Deux pieges : (1) 444 messages perdus en silence sur 63 dossiers (18%) -- 66% sur HTTP 429 embeddings jete au lieu de reessaye, reste sur raisonnement mimo-v2.5 tronquant le JSON (max_tokens partage) ; dossier passait 'done' quand meme, bilan ne comptait pas les echecs -- fix retries+backoff, max_tokens 2500->8000, compteur messages_ignores remonte au bilan (0 perte en tranche finale). (2) 122 error_404 mesuraient un resolveur de chemin perime (bugs C/D corriges le 10/08), pas des dossiers absents -- 105/122 resolubles apres confrontation normalisee a un /folders frais. Regle generale : tout pipeline lot-LLM doit exposer un compteur d'echecs a cote du compteur de succes (16/08/2026)
-
common/synology-scp-sftp-indisponible-cat-ssh.md -- scp/sftp echouent systematiquement vers ce DSM ("No such file or directory" malgre chemin valide) -- sous-systeme SFTP indisponible pour l'utilisateur/cle d'automatisation, ssh lui-meme non affecte. Contournement :
cat fichier | ssh nas 'cat > dest'(tar czf/xzf pour un dossier). Rencontre 2x en contextes differents (git bundle nas-runbooks, deploiement fichier partage aux 3 instances Hermes) -> promu en runbook transverse plutot que note de session isolee (16/08/2026) -
common/seam-discipline-hermes.md -- Discipline service/fournisseur/consommateur pour toute nouvelle capacite Hermes, inspiree dsh sans en dependre (17/08/2026)
-
common/regle-source-generation-documentaire-zone-sud.md -- Regle "jamais inferer au-dela de la source" deployee dans dco-generation-tt, gsd-ao-evaluation, courriers-officiels-tt ; few-shot a completer avec Nabil (17/08/2026)
-
hermes-tt/mail-sanction-envoi-non-autorise-21-08-2026.md -- Envoi mail non autorise (2x) via SMTP direct/credentials en clair hors-perimetre du durcissement O365 du 23/07 ; verrouillage code (creds, skill, endpoint 403) + hermes-tt en lecture seule sur le mail jusqu a levee explicite par Nabil (21/08/2026)
-
common/brief-gemini-skills-hermes-antigravity-20260821.md -- Audit factuel et vérification en direct de la flotte Hermes (4 instances : perso, tt, nyora sur NAS, nabil sur VPS Contabo), de DSH et d'AntiGravity. Confirmation que les 4 instances Hermes tournent sur l'image officielle NousResearch (v0.20.0, commit upstream 3c27eb62, MIT) avec Mimo V2.5 actif partout et gestionnaire natif hermes skills (skills.sh et well-known RFC). Invalidation factuelle de l'écosystème "awesome-dsh-plugin" (dsh plugin est un proxy pnpm sans marketplace ni catalogue distant). Déploiement du skill AntiGravity preuve-commande-obligatoire (21/08/2026)
-
common/mcp-token-croise-reglement-definitif.md -- Rapport de cloture Gemini affirmait a tort la connexion MCP hermes-tt <-> reglement-mcp (401 en realite, token CACHE_FLUSH_TOKEN croise avec MCP_SECRET_TOKEN lors d une rotation). Fix + methode de reverification systematique via hermes mcp test (24/08/2026)
-
common/mecanisme-implication-hermes-gemini-garde-fous.md -- Ne du declic 3% quota (audit MCP reglement-definitif). Mecanisme pour tout garde-fou/pattern durable : Claude concoit le motif -> hermes-nyora cadre et fait executer -> Gemini installe -> Claude audite en un seul passage qui reteste reellement en direct (jamais lecture de rapport). Exceptions actees : correctif ponctuel deja diagnostique (Claude fait direct), AntiGravity/Gemini inaccessible a Nabil (Claude fait direct). Escalade immediate si derive constatee en cours de cycle (24/08/2026)
-
common/dsh-resilience-opencode-direct-bifrost-proxy-tailscale-relay-20260824.md -- DSH-VPS indépendant du NAS pour ses modèles cloud (provider opencode-direct, contourne Bifrost) ; décision OpenCode (forfait plafonné) plutôt qu OpenRouter (facturation non plafonnée) pour tout modèle gratuit-temporaire ; leçon bifrost-proxy (x-bf-vk non transmis, utiliser Authorization: Bearer sur le endpoint Tailscale 3086) ; fix tailscale-vps-ssh-relay (Tailscale userspace -> passage obligatoire par SOCKS5 127.0.0.1:1055, remplacement BusyBox nc par socat) (24/08/2026)
-
hermes-nyora/dsh-vps-pnpm-plugins-bloques.md -- pnpm absent de l image dsh-vps -> dsh plugin add impossible (bridge MCP inclus) ; skill-filesystem/tool-skill/skill-badge desactives dans le profil web -> le SKILL.md session-memory scaffolde a l entrypoint n a jamais ete visible par l agent (notes.md inchange depuis 9 jours). Fix pnpm applique et verifie (corepack + rebuild). Volet memoire/MCP en cours (24/08/2026)
-
hermes-nyora/dsh-vps-defaultpreset-fix.md -- permission.defaultPreset etait sur danger-full-access par defaut sur dsh-vps (aucune approbation pour toute nouvelle session) ; corrige vers workspace-write, verifie que entrypoint.sh ne rescaffold pas settings.yaml (garde if ! -f), et piege docker compose up -d qui ne recharge pas un volume modifie -> restart necessaire. Verifie en direct apres redemarrage (24/08/2026). CLOTURE chantier DSH.
-
hermes-nyora/dsh-vps-secrets-en-dur-incident.md -- INCIDENT SECURITE : BIFROST_API_KEY et OPENCODE_DIRECT_API_KEY commitees en clair dans entrypoint.sh d'un repo Gitea initialement PUBLIC (bolbol/dsh-vps). Detecte par hermes-nyora en relisant avant validation. Repo passe prive, BIFROST_API_KEY rotee en base Bifrost (governance_virtual_keys) et testee fonctionnelle, entrypoint.sh corrige (fail loud au lieu de fallback secret). OPENCODE_DIRECT_API_KEY (= cle maitresse OpenCode.ai partagee, BIFROST_OPENCODE_KEY) reste a roter par Nabil (compte externe).
-
hermes-nyora/dsh-vps-rotation-cles-incident-apikey-invalide.md -- Rotation cles dsh-vps (VK Bifrost + OpenCode Zen) apres exposition chat/commit ; incident « API key is invalid » : cause racine = cles en dur residuelles dans compose hote + entrypoint fallback (repo sanitise mais pas l'hote) ; fix env_file + ${VAR:?} + recreation, revocation confirmee, tour UI vert. Pieges : restart ne relit pas .env, sanitisation partielle, StartedAt vs horodatages config (25/08/2026)
-
common/rapport-gemini-phase-a-pilote-botmode-20260825.md -- Phase A bascule hermes-nyora v2026.8.19 (0.20.5) : backup pre-upgrade (81Mo), bascule image unique sur nyora, continuite 100% validee (Telegram, Cron, MCP Context-Hub, Veille, Notes, SMTP), verrou reseau 8642 etanche (perso/tt bloques, 401 local), Gate 1 reussi (interception deny rules + safe root), Gate 2 documente (roster actif si ui_meta[\x27hermes-bots\x27] dans profile.yaml, injection sur titre \x27Bot Chat\x27, messagerie headless via hermes chat -Q), Browser Use mode teste (uvx 0.1.9, fallback natif auto), VPS Contabo verifie sans 8642 publie (25/08/2026)