DashboardCodesplitSegments() infinite recursion on o…

splitSegments() infinite recursion on oversized single messages

Category: gotcha
Confidence: 1.00
ID: 019e2e20-95b3-7a9d-ab38-77d87eafecc4
Project ID: ffa98226-3908-4f0c-936b-969018c62abf
Cross-project: No
Recalled in other projects: 1
Source session: (none)
Created: 2026-06-09 11:33:49
Updated: 2026-06-11 23:54:05

Cross-Project Recalls

ProjectHitsLast recalled
opencode-lore 2 2026-06-22

Content

splitSegments() infinite recursion on oversized single messages in packages/core/src/distillation.ts: recurses infinitely when a single message exceeds maxSegmentTokens (16384). findSplitIndex() returns messages.length (=1), so left = messages.slice(0, 1) produces an identical recursive call. Triggered on large tool outputs (~49KB+). Fix: add base case after the totalTokens <= maxTokens guard — if (messages.length <= 1) return [messages]. The oversized message becomes an indivisible segment.

Move to: