# Memoire coding — genere automatiquement, ne pas editer a la main > Source de verite operationnelle : table `memory_entries` dans context-hub (SQLite + API/MCP). > Ce fichier est une projection durable et versionnee, regeneree a chaque `record_lesson`. > Derniere generation : 2026-08-26T10:56:27Z ## Transverse ### Decisions - **[coding-dec-0002]** Injection UI native dans le GUI DSH via profil web (sans root) Le GUI dsh web compose l'HTML à la volée : un paquet dual-face (exports ./client + dsh.client.platform=web, bundle window.__ModuleLoader__.load) installé via pnpm add file: dans ~/.dsh/profiles/web + ligne - insert dans cordis.patch.yml est servi nativement sur /plugins//client.js. Scan des nouveaux plugins au boot uniquement (redémarrage requis), mais le bundle est relu du disque à chaque requête : itération = edit + F5. Test sans risque : cloner ~/.dsh vers /tmp et booter DSH_HOME=/tmp/... dsh web --port 3999 --no-open. _cree par DSH le 2026-08-24 21:31:18 — tags: dsh, gui, plugin, client-module, cordis_ ## Projet: Rapport_jury ### Decisions - **[coding-dec-0003]** Référence design — thème clair bolbol.tn/history Thème clair de référence (https://bolbol.tn/history/, thème par défaut) : --bg-body #f8f9fc · cartes #ffffff / alt #f0f2f8 · texte #1a1a2e / secondaire #5a5a7a / atténué #9a9ab0 · bordures #e0e2ec · accent violet #6c5ce7 + teal #00b894 (gradient 135°) + or #fdcb6e · code-bg #f0f2f8 · ombre douce rgba(0,0,0,.06) · radius 12px. Le site propose aussi un thème « nature » crème (#f5f0e8/#faf6ef, vert #2d7d46 → or #b8860b) et un dark navy (#0f0f1a, violet→teal). Appliqué au projet Rapport_jury : mode light conforme + palette d'accent « nature » ajoutée ; signature choisie : @Nabil.Derouiche · DSH · 2026. _cree par DSH le 2026-08-26 10:56:27 — tags: design, theme-light, palette, signature, reference, bolbol.tn_ ## Projet: dsh-vps ### Decisions - **[coding-dec-0001]** dsh-vps : architecture MCP = plugin contexthub 0.1.1-rc.2 avec isolation par scopes L'agent DSH sur le VPS expose sa mémoire persistante via le plugin MCP contexthub v0.1.1-rc.2 : isolation stricte par scopes (infra = SSH/Docker/réseau NAS, llm = bifrost/opencode-go, nyora = apps perso, coding = leçons techniques), chaque agent ne voyant que les scopes qui lui sont autorisés (get_my_context en début de session). Lecture outillée via get_rules/get_context_pack/search_rules ; l'écriture passe par l'API HTTP du hub : PATCH /api/rules/{scope} avec header X-API-Key (jamais de bearer), et les leçons via record_lesson (types decision/constraint/best-practice/common-error/do-not-use). À retenir pour les prochaines sessions : appeler get_my_context au démarrage et get_context_pack avant tout travail substantiel, puis record_lesson après toute décision structurante. _cree par DSH le 2026-08-24 21:23:05 — tags: dsh-vps, mcp, contexthub, scopes, isolation, architecture_ ### Contraintes - **[coding-cst-0001]** Canal SSH NAS dsh-vps : port 22222, user Best0f, commandes courtes obligatoires Le NAS du projet dsh-vps se joint en SSH sur 192.168.100.33 port 22222 (user Best0f ; identités séparées : bolbol=Gitea, bestof=Portainer ; réseau conteneur 172.17.0.1, LAN 192.168.100.33 ; Docker uid 1026/gid 100). Contraintes MCP-NAS éprouvées : passer par heredoc -> timeout, repli heredoc -> printf/python, limiter chaque commande à 350 caractères, et une session est considérée empoisonnée après 3 erreurs (à réinitialiser plutôt qu'insister). _cree par DSH le 2026-08-24 21:23:11 — tags: dsh-vps, ssh, nas, 22222, mcp, contrainte_ ### Bonnes pratiques - **[coding-bp-0001]** dsh-vps : Externalisation des cles API via env_file et proscription des secrets en dur Pour eviter tout decalage lors des rotations de cles (erreur API key is invalid), les cles sont externalisees dans /home/dsh-agent/dsh-vps/.env (chmod 600) et injectees via env_file dans docker-compose.yml. Les templates de scaffold et compose ne doivent contenir aucune cle en dur. _cree par GEMINI le 2026-08-25 14:30:37 — tags: dsh-vps, docker-compose, rotation, secrets, env_file_