feat(DIS-154): discord rich features � reactions, file responses, attachment inbox #64

Merged
dev merged 4 commits from refinement/discord-rich-features into main 2026-04-13 08:33:15 +00:00
Owner

Summary

  • ?? / ? / ? Status-Reactions bei Queue, Erfolg und Fehler
  • Typing-Intervall von 5s auf 8s erh�ht
  • Antworten > 4000 Zeichen werden als response.md-Attachment gesendet
  • Eingehende Discord-Dateien landen in <workspace>/.disclaw-inbox/, Hinweis wird an Prompt angeh�ngt
  • TTL-Cleanup: Dateien �lter als 24h werden beim Start gel�scht
  • Input > 4000 Zeichen ? ?? + Hinweis, kein Agent-Aufruf

Neue Dateien

  • src/discord/send-response.ts
  • src/discord/attachment-inbox.ts
  • tests/unit/send-response.test.ts
  • tests/unit/attachment-inbox.test.ts

Ge�nderte Dateien

  • src/router.ts � Reactions, Typing, Input-Limit, Attachment-Handling

Test plan

  • npm run build � fehlerfrei
  • npm test � 107/107 Tests gr�n
  • Unit-Tests f�r send-response und attachment-inbox
## Summary - `??` / `?` / `?` Status-Reactions bei Queue, Erfolg und Fehler - Typing-Intervall von 5s auf 8s erh�ht - Antworten > 4000 Zeichen werden als `response.md`-Attachment gesendet - Eingehende Discord-Dateien landen in `<workspace>/.disclaw-inbox/`, Hinweis wird an Prompt angeh�ngt - TTL-Cleanup: Dateien �lter als 24h werden beim Start gel�scht - Input > 4000 Zeichen ? `??` + Hinweis, kein Agent-Aufruf ## Neue Dateien - `src/discord/send-response.ts` - `src/discord/attachment-inbox.ts` - `tests/unit/send-response.test.ts` - `tests/unit/attachment-inbox.test.ts` ## Ge�nderte Dateien - `src/router.ts` � Reactions, Typing, Input-Limit, Attachment-Handling ## Test plan - [x] `npm run build` � fehlerfrei - [x] `npm test` � 107/107 Tests gr�n - [x] Unit-Tests f�r send-response und attachment-inbox
dev added 1 commit 2026-04-13 07:59:26 +00:00
feat(DIS-154): discord rich features — reactions, file responses, attachment inbox
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
9e03fc5207
- Status reactions on messages: 👀 on enqueue,  on success,  on any error
- Typing interval raised from 5s to 8s
- src/discord/send-response.ts: text >4000 chars sent as response.md attachment
- src/discord/attachment-inbox.ts: downloads Discord attachments into .disclaw-inbox/, cleanupInbox() removes files older than 24h
- src/router.ts: input limit guard at 4000 chars (⚠️ reaction + hint message), processAttachments hints injected into prompt
- Unit tests: send-response.test.ts, attachment-inbox.test.ts (107 tests, all green)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
dev added 1 commit 2026-04-13 08:05:03 +00:00
update task
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
3070406d0f
dev added 1 commit 2026-04-13 08:17:00 +00:00
feat(DIS-154): agent file sending via [ATTACH: path] convention
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
00f7909e6b
- parseAttachments() extracts [ATTACH: path] markers from response text
- validateAttachPath() enforces workspace boundary + readability + 8MB limit
- sendResponse() sends validated files as Discord attachments before text
- CLAUDE.md template teaches agents the [ATTACH: ...] syntax
- Path-traversal guard: only files within workspace are allowed

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
dev added 1 commit 2026-04-13 08:24:43 +00:00
fix(DIS-154): parse [ATTACH:] markers before sanitization
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
92abd97993
sanitizeForDiscord() replaced workspace paths with <disclaw> before
parseAttachments() could read them, making all resolved paths invalid.

Fix: extract attach paths from raw result.text first, then sanitize
the marker-free text. sendResponse() accepts pre-resolved paths to
skip redundant re-parsing.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
dev merged commit 9350cf14b9 into main 2026-04-13 08:33:15 +00:00
dev deleted branch refinement/discord-rich-features 2026-04-13 08:33:19 +00:00
Sign in to join this conversation.
No description provided.