DIS-001: Workspace-Root nach ~/.disclaw/workspaces/ verschieben #23

Merged
dev merged 2 commits from phase-0/workspace-root-home into main 2026-04-09 09:00:27 +00:00
Owner

Summary

  • disclaw.yaml: Default workspaces_root auf ~/.disclaw/workspaces gesetzt
  • src/config/loader.ts: expandWorkspacesRoot() mit Tilde-Expansion via os.homedir(), path.resolve()-Normierung, Warning-Log wenn Root innerhalb Repo (CLAUDE.md-Walk-Up-Erklärung)
  • tests/unit/workspace-root-resolve.test.ts (neu): 7 Tests — Tilde, absoluter Pfad, relativer Pfad, Repo-intern-Warning
  • README.md: Abschnitt "Migration bestehender Workspaces"
  • src/commands/new-agent.ts: unverändert, nutzt bereits aufgelösten Pfad aus Config

Closes

Closes #2

Test Plan

  • npm run build grün
  • npm test — 19/19 Tests grün (3 Test-Dateien)
  • disclaw.yaml Default ist ~/.disclaw/workspaces
  • Warning-Log feuert wenn Root innerhalb Repo

Breaking Changes

Ja — bestehende Workspaces unter ./workspaces/ müssen manuell nach ~/.disclaw/workspaces/ migriert werden. Anleitung in README.

Reviewer-Checkliste

  • Kein shell: true in src/
  • Kein process.env direkt im Runner
  • Tests decken Warning-Case ab
  • README-Migrationshinweis vorhanden
## Summary - `disclaw.yaml`: Default `workspaces_root` auf `~/.disclaw/workspaces` gesetzt - `src/config/loader.ts`: `expandWorkspacesRoot()` mit Tilde-Expansion via `os.homedir()`, `path.resolve()`-Normierung, Warning-Log wenn Root innerhalb Repo (CLAUDE.md-Walk-Up-Erklärung) - `tests/unit/workspace-root-resolve.test.ts` (neu): 7 Tests — Tilde, absoluter Pfad, relativer Pfad, Repo-intern-Warning - `README.md`: Abschnitt "Migration bestehender Workspaces" - `src/commands/new-agent.ts`: unverändert, nutzt bereits aufgelösten Pfad aus Config ## Closes Closes #2 ## Test Plan - [x] `npm run build` grün - [x] `npm test` — 19/19 Tests grün (3 Test-Dateien) - [x] `disclaw.yaml` Default ist `~/.disclaw/workspaces` - [x] Warning-Log feuert wenn Root innerhalb Repo ## Breaking Changes Ja — bestehende Workspaces unter `./workspaces/` müssen manuell nach `~/.disclaw/workspaces/` migriert werden. Anleitung in README. ## Reviewer-Checkliste - [x] Kein `shell: true` in `src/` - [x] Kein `process.env` direkt im Runner - [x] Tests decken Warning-Case ab - [x] README-Migrationshinweis vorhanden
dev added the
phase:0
priority:p0
security
type:feat
labels 2026-04-09 08:41:06 +00:00
dev added 2 commits 2026-04-09 08:41:06 +00:00
Introduces src/runtime/env.ts with a pure sanitizedEnv() function that
strips DISCORD_BOT_TOKEN, DISCORD_CLIENT_SECRET, DISCORD_PUBLIC_KEY, and
all keys matching /^(DISCLAW_SECRET_|SECRET_|TOKEN_|API_KEY_?)/i before
passing the environment to spawned Claude Code child processes. Adds
optional env_blocklist field to DisclawConfig. Runner now passes
DISCLAW_AGENT_NAME and respects the blocklist.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- disclaw.yaml: change default workspaces_root to ~/.disclaw/workspaces
- src/config/loader.ts: add expandWorkspacesRoot() with ~ expansion via
  os.homedir(), path.resolve() normalisation, and in-repo warning via
  console.warn (explains CLAUDE.md walk-up leak risk)
- tests/unit/workspace-root-resolve.test.ts: Vitest unit tests (a-d)
- README.md: add Migration bestehender Workspaces section

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
dev merged commit 390661eea9 into main 2026-04-09 09:00:27 +00:00
dev deleted branch phase-0/workspace-root-home 2026-04-09 09:00:30 +00:00
Sign in to join this conversation.
No description provided.