disclaw/tasks/DIS-152.md
Nick Tabeling cf5bf7daeb
Some checks failed
CI / build-and-test (ubuntu-latest) (pull_request) Has been cancelled
CI / build-and-test (windows-latest) (pull_request) Has been cancelled
CI / lint (pull_request) Has been cancelled
chore: add Phase 1.5 refinement tasks DIS-151 to DIS-154
DIS-151: Channel-Kategorisierung (aktiv/inaktiv/archiv) + Lifecycle
DIS-152: Gemappte Projektpfade fuer Agents (host:virtual)
DIS-153: Model-Auswahl pro Agent (Select-Menu + --model Flag)
DIS-154: Discord Rich Features (Reactions, Dateien, Input-Limit)

Forgejo Issues #54-#57 angelegt. BOARD.md aktualisiert.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 11:19:28 +02:00

2.8 KiB

id status phase priority labels branch assignee started pr merged
DIS-152 ready 1.5 p2
phase:1.5
type:feat
priority:p2
refinement/mapped-project-paths null null null null

DIS-152: Gemappte Projektpfade für Agents (host:virtual)

Ziel

Beim Erstellen eines Agents kann ein zusätzlicher Host-Pfad angegeben werden, auf den der Agent zugreifen kann. Im Discord-Output erscheint immer nur der konfigurierte virtuelle Pfad — nie der echte Host-Pfad.

Kontext

Agents sollen auf bestehende Projektverzeichnisse zugreifen können (z.B. ein laufendes Codeprojekt) ohne dass der absolute Host-Pfad in Discord-Nachrichten durchsickert.

Wichtiger Hinweis: Es handelt sich um keine echte Isolation/Containerisierung. Claude Code sieht den echten Pfad intern. Die Sanitisierung ersetzt den Host-Pfad in allen Discord-Ausgaben durch den konfigurierten virtuellen Pfad.

Scope

agent.yaml Erweiterung

name: my-agent
channel_id: "123456789"
role: Developer
model: claude-sonnet-4-6
path_mappings:
  - host: "C:/Code/side/testProject"
    virtual: "~/testProject"

/new-agent-Command Erweiterung

  • Neuer optionaler Parameter path im Format host:virtual (z.B. C:\Code\side\testProject:~/testProject)
  • Wird in agent.yaml unter path_mappings gespeichert
  • Validierung: Host-Pfad muss existieren

CLAUDE.md-Template Erweiterung

Beim Erstellen des Agents wird in die CLAUDE.md geschrieben:

## Verfügbare Pfade
- ~/testProject → dein Projekt-Workspace (verwende immer diesen Pfad in Antworten)
Nenne niemals absolute Host-Pfade. Verwende ausschließlich die oben gelisteten virtuellen Pfade.

sanitizeForDiscord Erweiterung (src/runtime/sanitize.ts)

  • path_mappings aus agent.yaml werden beim Routing geladen
  • Host-Pfad (beide Slash-Varianten) → virtueller Pfad ersetzen
  • Reihenfolge: spezifischste Pfade zuerst (längste zuerst sortieren)

src/router.ts

  • sanitizeOpts bekommt zusätzlich pathMappings: Array<{host: string, virtual: string}>

Definition of Done

  • agent.yaml unterstützt path_mappings-Feld (Zod-Schema aktualisiert)
  • /new-agent akzeptiert optionalen path-Parameter
  • Host-Pfade erscheinen nicht in Discord-Ausgaben
  • Agent-CLAUDE.md enthält Hinweis auf virtuelle Pfade
  • Unit-Test: Sanitisierung ersetzt Host- durch virtuellen Pfad (beide Slash-Stile)
  • npm run build && npm test grün

Dateien (erwartet)

  • src/agent/schema.ts (path_mappings Feld)
  • src/agent/identity.ts (CLAUDE.md-Template)
  • src/commands/new-agent.ts (path-Parameter)
  • src/runtime/sanitize.ts (pathMappings Support)
  • src/router.ts (sanitizeOpts erweitern)
  • tests/unit/sanitize-for-discord.test.ts (neue Cases)

Abhängigkeiten

DIS-151 empfohlen (aber kein harter Blocker).