2.7 KiB
2.7 KiB
| id | status | phase | priority | labels | branch | assignee | started | pr | merged | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| DIS-154 | in-progress | 1.5 | p1 |
|
refinement/discord-rich-features | developer-agent | 2026-04-13 | null | null |
DIS-154: Discord Rich Features für Agents (Reactions, Embeds, Dateien)
Ziel
Agents nutzen Discord vollständiger: Status-Reactions, strukturierte Embeds für lange Antworten, Datei-Uploads für Code/Outputs, und Datei-Empfang aus dem Channel. Vorgezogen aus Phase 3 / SF-004.
Kontext
Aktuell senden Agents nur Plaintext. Discord bietet viel mehr:
→ docs/ideas/future-features.md SF-004
→ docs/development-plan.md Phase 3
Scope
1. Status-Reactions (src/router.ts)
👀sobald Nachricht in Queue eingereiht wird (sofort, nicht blockierend)✅nach erfolgreicher Antwort❌bei Fehler (timeout, cli-error)- Alle
.catch(() => {})— nie blockierend
2. Typing-Refresh-Intervall
- Aktuell: 5s Intervall — auf 8s erhöhen (Discord-Timeout ist 10s)
- Typing endet exakt wenn
runAgentfertig ist (kein Overshoot)
3. Lange Antworten als Datei-Attachment (src/discord/send-response.ts)
- Neue Funktion
sendResponse(channel, text, message)ersetzt direkteschannel.send() - Wenn Text > 4000 Zeichen: als
.md-Attachment senden statt mehrerer Chunks - Unter 4000 Zeichen: bisheriges Split-Verhalten (
splitForDiscord)
4. Eingehende Dateien verarbeiten (src/discord/attachment-inbox.ts)
messageCreate-Handler prüftmessage.attachments- Dateien werden in
<workspace>/.disclaw-inbox/<timestamp>-<filename>gespeichert - Im Prompt-Kontext wird ein Hinweis auf die Datei eingefügt:
[Datei verfügbar: .disclaw-inbox/1234-example.py] - TTL-Cleanup: Dateien älter als 24h werden beim nächsten Start gelöscht
5. Input-Limit
- Nachrichten > 4000 Zeichen →
⚠️-Reaction + kurze Hinweis-Nachricht - Agent wird nicht aufgerufen
Definition of Done
- Reactions
👀/✅/❌werden korrekt gesetzt - Typing-Intervall 8s, endet mit Agent-Antwort
- Antworten > 4000 Zeichen kommen als
.md-Attachment - Eingehende Dateien landen im
.disclaw-inbox/-Verzeichnis - Input > 4000 Zeichen →
⚠️+ Hinweis, kein Agent-Aufruf - Unit-Tests:
send-response,attachment-inbox npm run build && npm testgrün
Dateien (erwartet)
src/discord/send-response.tssrc/discord/attachment-inbox.tssrc/router.ts(Reactions, Typing, Input-Limit)tests/unit/send-response.test.tstests/unit/attachment-inbox.test.ts
Abhängigkeiten
Phase 1 abgeschlossen (splitForDiscord, RunResult).
Hinweis
Reactions, Embeds, Threads und Polls (voller SF-004-Scope) können in Folge-Issues ausgebaut werden. Dieses Issue implementiert den Kern-QoL-Teil.