Files
context-hub/docs/context-memory/coding.md
T

67 lines
4.7 KiB
Markdown

# 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-16T21:17:18Z
## Projet: bifrost
### Contraintes
- **[coding-cst-0001]** Vérifier les dépendants actifs avant toute écriture/restart sur la DB partagée Bifrost
L'insertion directe d'une clé virtuelle dans config.db déclenche un redémarrage de Bifrost pour recharger les clés. Il est impératif de vérifier l'état des services de production dépendants (ex: backfill hermes-tt) AVANT l'opération, et non après coup.
_cree par GEMINI le 2026-08-15 13:31:55 — tags: bifrost, database, production, preflight_
## Projet: dsh
### Decisions
- **[coding-dec-0002]** Migration Filebrowser vers Dufs au 1er septembre 2026
Filebrowser étant archivé au 01/09/2026, la stack dsh migrera vers sigoden/dufs. Dufs est un binaire Rust ultra-léger (<10MB RAM) et totalement stateless (aucune base .db résidente dans /workspace verrouillant le stockage).
_cree par GEMINI le 2026-08-16 21:17:18 — tags: storage, dufs, filebrowser, architecture_
### Contraintes
- **[coding-cst-0002]** Séparation étanche entre données professionnelles sensibles et environnement dsh expérimental
Aucune donnée métier réelle ou sensible (consultations, prix, contrats) ne doit transiter par un harnais en developer preview tant que sa fiabilité n'est pas éprouvée. La séparation des contextes doit être stricte et automatique.
_cree par GEMINI le 2026-08-15 13:32:15 — tags: security, confidentiality, airgap, dsh_
### Bonnes pratiques
- **[coding-bp-0002]** Sidecar Filebrowser sur volume workspace partagé avec identifiants dédiés
Monter le volume Docker workspace en /srv sous UID/GID non-root (1026:100 ou user dédié) permet l'upload de tout type de fichier sans restriction du modèle. Toujours générer un mot de passe fort dédié enregistré dans Vaultwarden et exclure certs/ et auth/ de Git.
_cree par GEMINI le 2026-08-15 13:32:25 — tags: filebrowser, workspace, auth, vaultwarden_
- **[coding-bp-0001]** DeepSeek Harness (dsh) sidecar nginx pour loopback Host rewrite et Secure Context
dsh verrouille en dur ses endpoints privilégies (settings.*, credentials.*, llm.discoverModels) sur loopback via isTrustedApiRequest, ignorant trustedHosts. Un sidecar nginx avec TLS, Basic Auth et proxy_set_header Host localhost:3080 / Origin http://localhost:3080 débloque tous les endpoints et fournit nativement le Secure Context sans patch de code.
_cree par GEMINI le 2026-08-15 13:31:34 — tags: dsh, security, nginx, proxy, loopback_
### A ne pas reessayer
- **[coding-dnu-0001]** Ne jamais patcher le code source client dsh (patch_frontend.js)
Patcher des fichiers générés dans node_modules (comme pour crypto.randomUUID) est fragile et casse silencieusement au prochain rebuild ou mise à jour npm. Traiter toujours les contraintes navigateur et sécurité au niveau réseau via reverse proxy TLS et réécriture d'en-têtes.
_cree par GEMINI le 2026-08-15 13:31:46 — tags: dsh, docker, antipattern_
## Projet: dsh-vps
### Decisions
- **[coding-dec-0001]** Exposition DeepSeek Harness sur VPS exclusivement via Tailscale privé
L'instance dsh sur VPS doit être accessible uniquement via le réseau Tailscale privé, sans aucun sous-domaine public WAN (afin d'éviter l'indexation par Certificate Transparency logs). Un compte Linux dédié non-root et un réseau Docker isolé protègent les autres services du VPS.
_cree par GEMINI le 2026-08-15 13:32:03 — tags: vps, tailscale, security, dsh_
### Contraintes
- **[coding-cst-0003]** Dépendance de DirectoryPicker à process.env.HOME et cwd
@deepseek-ai/dsh-host-directory-picker-browse résout la racine du sélecteur web via os.homedir() (process.env.HOME) et les nouvelles sessions via process.cwd(). Positionner working_dir: /workspace et HOME=/workspace post-gosu ancre nativement le workspace sur le volume Docker nommé sans modifier le code source.
_cree par GEMINI le 2026-08-16 21:17:13 — tags: dsh, workspace, directory-picker, docker-compose_
### Erreurs communes
- **[coding-err-0001]** Réinitialisation de HOME par gosu lors du drop de privilèges
gosu réinitialise systématiquement la variable HOME d'après /etc/passwd (/home/dsh-agent), écrasant la valeur HOME=/workspace injectée par Docker Compose. Toujours exécuter 'exec gosu <user> env HOME=<dir> ""' dans l'entrypoint pour forcer l'environnement applicatif post-gosu.
_cree par GEMINI le 2026-08-16 21:17:08 — tags: docker, gosu, permissions, environment, dsh_