docs: runbook DSH pnpm plugins bloques + memoire scaffoldee invisible

This commit is contained in:
2026-08-24 19:19:38 +00:00
parent acb584d3de
commit c19c6095f4
@@ -0,0 +1,80 @@
# DSH VPS — plugins bloqués (pnpm absent) et mémoire scaffoldée mais invisible
**Instance auteur** : hermes-nyora
**Date** : 2026-08-24
**Tags** : dsh, vps-contabo, docker, plugins, memoire
**Statut** : valide (fix pnpm appliqué et vérifié) — volet mémoire/MCP en cours (voir brief-gemini-dsh-mcp-bridge-memoire-20260824.md)
---
## Problème
Deux constats indépendants sur `dsh-vps` (VPS Contabo, `@deepseek-ai/dsh@0.1.1-rc.2`) :
1. `dsh plugin --profile web add <package>` échoue immédiatement avec `dsh: pnpm not found on PATH — install pnpm to manage profile plugins`. Impossible d'installer le moindre plugin tiers (dont le bridge MCP officiel `@deepseek-ai/dsh-mcp-client`).
2. Un skill `session-memory` et un fichier `$DSH_HOME/memory/notes.md` sont scaffoldés par `entrypoint.sh` dès le premier boot (15/08), pour servir de mémoire persistante. Neuf jours plus tard, `notes.md` est strictement identique à sa version initiale malgré une instance active.
---
## Contexte et contraintes
- `dsh-vps` tourne dans un conteneur Node 22-slim isolé, volumes nommés `dsh_vps_home` (DSH_HOME) et `dsh_vps_workspace` (persistants entre restarts, mais pas versionnés en amont).
- `permission.defaultPreset: danger-full-access` sur cette instance — aucune restriction d'action à l'intérieur du conteneur.
- Dockerfile n'installait que npm ; aucune trace de pnpm.
- Le dossier `/home/dsh-agent/dsh-vps` sur le VPS n'était pas un dépôt git au moment du constat (`.gitignore` présent, jamais `git init`).
---
## Ce qui NE fonctionne PAS
| Tentative | Erreur obtenue | Raison de l'échec |
|-----------|----------------|-------------------|
| `dsh plugin --profile web add <pkg>` sans pnpm | `pnpm not found on PATH` | pnpm jamais installé dans l'image |
| Compter sur le SKILL.md `session-memory` pour la mémoire | `notes.md` jamais modifié depuis le déploiement | `dsh --dump-config` révèle que `skill-filesystem`, `tool-skill` et `skill-badge` sont tous `disabled: true`, patchés par le bundle `@deepseek-ai/dsh-web-app`. L'agent n'a jamais eu la capacité de lire ce fichier. |
---
## Solution validée
```bash
# 1. Backup avant modification
sudo cp /home/dsh-agent/dsh-vps/Dockerfile /home/dsh-agent/dsh-vps/Dockerfile.bak-add-pnpm-20260824
# 2. Ajout de pnpm via corepack, juste avant l'install npm globale de dsh
sudo sed -i 's|RUN npm install -g @deepseek-ai/dsh@0.1.1-rc.2 @banlan/inkstone|RUN corepack enable \&\& corepack prepare pnpm@latest --activate \&\& npm install -g @deepseek-ai/dsh@0.1.1-rc.2 @banlan/inkstone|' /home/dsh-agent/dsh-vps/Dockerfile
# 3. Rebuild + redeploiement
cd /home/dsh-agent/dsh-vps
sudo docker compose build dsh-vps
sudo docker compose up -d dsh-vps
```
---
## Vérification
```bash
sudo docker exec dsh-vps sh -c "which pnpm && pnpm --version"
# Résultat attendu : /usr/local/bin/pnpm, version affichée
sudo docker exec dsh-vps dsh plugin --profile web --help
# Résultat attendu : aide pnpm complète (plus l'erreur "pnpm not found")
curl -sk -o /dev/null -w "%{http_code}\n" https://<tailscale-ip>:8900/
# Résultat attendu : 401 (auth htpasswd, service up) — pas de 000/502
```
---
## Pièges spécifiques DSM / NAS
- Ce n'est pas un piège NAS mais VPS : `/home/dsh-agent/*` appartient à l'utilisateur `dsh-agent` (uid 1001), pas à `claude-oversight` — toute lecture/écriture même en diagnostic nécessite `sudo`, y compris pour un simple `diff` ou `cat`.
- `corepack prepare pnpm@latest --activate` au build time n'empêche pas un message "Corepack is about to download…" au premier appel runtime — c'est normal (résolution de version), pas une erreur.
- Le dossier `dsh-vps` sur le VPS n'est toujours pas un dépôt git — les futurs changements de Dockerfile/compose ne sont pas encore tracés automatiquement. À corriger (voir brief associé).
---
## Références
- [DeepSeek Harness — docs officielles](https://deepseek.com/harness/en/)
- Note NyoraNotes : `dsh/dsh-vps-audit-capacite-plugins-mcp-et-memoire-persistante.md`