1.6 KiB
1.6 KiB
| id | status | phase | priority | labels | branch | assignee | started | pr | merged | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| DIS-003 | ready | 0 | p0 |
|
phase-0/sanitize-env | null | null | null | null |
DIS-003: sanitizedEnv() — Secrets aus Child-Env entfernen
Ziel
Kein Secret (DISCORD_BOT_TOKEN etc.) darf im Environment des claude-Kindprozesses landen.
Ein Agent kann heute per echo $DISCORD_BOT_TOKEN den Bot-Token exfiltrieren.
Kontext
src/agent/runner.ts vererbt aktuell process.env vollständig.
→ docs/development-plan.md §2.6, docs/ai-engineer-analyse.md §4.
Scope
- In:
src/runtime/env.ts:sanitizedEnv(extra?)entferntDISCORD_BOT_TOKEN,DISCORD_CLIENT_SECRET, Pattern/^(SECRET_|TOKEN_|API_KEY_?)/i, setztCI=true,DISCLAW_AGENT=1,DISCLAW_AGENT_NAME=<name>· optionaleenv_blocklistviadisclaw.yaml·runner.tsnutztsanitizedEnvstattprocess.env - Out: Whitelist-statt-Blacklist-Modus
Definition of Done
sanitizedEnv()ist pur, keine Seiteneffekte- Unit-Test
tests/unit/sanitize-env.test.tsdeckt: Token entfernt, Pattern-Match, PATH/HOME bleiben, Extras überschreiben,env_blocklistwird angewendet - Runner nutzt
sanitizedEnvan allen Spawn-Stellen npm run build && npm testgrün
Dateien (erwartet)
src/runtime/env.tssrc/agent/runner.tssrc/config/loader.tstests/unit/sanitize-env.test.ts
Abhängigkeiten
Keine. Kann parallel zu DIS-002 laufen (beide editieren runner.ts — bei Merge-Konflikt rebased DIS-003 auf DIS-002).
Spec
→ docs/backlog.md #DIS-003