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>
2.7 KiB
2.7 KiB
| id | status | phase | priority | labels | branch | assignee | started | pr | merged | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| DIS-154 | ready | 1.5 | p1 |
|
refinement/discord-rich-features | null | null | 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.