All DIS-001 through DIS-110 set to status:done with merge dates. BOARD.md reorganized with Done sections per phase. Phase 1.5 Refinement epic added as planning placeholder. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
41 lines
1.2 KiB
Markdown
41 lines
1.2 KiB
Markdown
---
|
|
id: DIS-105
|
|
status: done
|
|
phase: 1
|
|
priority: p0
|
|
labels: [phase:1, type:feat, priority:p0]
|
|
branch: phase-1/split-for-discord
|
|
assignee: claude-agent
|
|
started: null
|
|
pr: null
|
|
merged: 2026-04-10
|
|
---
|
|
|
|
# DIS-105: `splitForDiscord` — Codeblock-aware Message-Splitting
|
|
|
|
## Ziel
|
|
Antworten > 1900 Zeichen werden korrekt aufgeteilt, ohne Codeblöcke zu zerreißen.
|
|
Fences werden am Split geschlossen und im nächsten Chunk wieder geöffnet.
|
|
|
|
## Kontext
|
|
→ `docs/development-plan.md` §2.4, Phase 1 Task 5.
|
|
|
|
## Scope
|
|
- **In**: `src/discord/split.ts` mit `splitForDiscord(text, limit = 1900): string[]` · Fence-Erkennung (` ``` `), Sprach-Tag wird im neuen Chunk beibehalten · Router nutzt Funktion und sendet Chunks sequenziell
|
|
- **Out**: Streaming-Edit (Phase 5)
|
|
|
|
## Definition of Done
|
|
- [ ] Unit-Test `tests/unit/split-for-discord.test.ts` deckt: kurze Nachricht (kein Split), genau am Limit, Codeblock mitten im Split, verschachtelter Fence, leerer Input
|
|
- [ ] Kein Chunk überschreitet 2000 Zeichen
|
|
- [ ] `npm run build && npm test` grün
|
|
|
|
## Dateien (erwartet)
|
|
- `src/discord/split.ts`
|
|
- `src/router.ts`
|
|
- `tests/unit/split-for-discord.test.ts`
|
|
|
|
## Abhängigkeiten
|
|
Blockiert durch: **DIS-101**.
|
|
|
|
## Spec
|
|
→ `docs/backlog.md` #DIS-105
|