feat(telegram): debounce Message Burst into a single turn #52
No reviewers
Labels
No labels
epic
in-review
ready-for-agent
ready-for-human
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
weiwen/evie!52
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "sandcastle/issue-51"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
deliver_streamingso Telegram's split-paste fragments (and album photos) are collated into one pi turn instead of each one aborting the previouscollect_burstaccumulates messages until the channel is quiet for 500 ms;merge_burstjoins text parts with\n\nand concatenates images;burst_taskspawns (not awaits)deliver_streamingso mid-stream interrupts remain prompt (~500 ms latency) rather than waiting for the entire turn to finishmerge_burstandcollect_burst(including tokio time-controlled debounce timer tests); 125 total, 0 failedKey decisions
\n\njoin: simpler than 4096-boundary heuristic; revisit if pasted-code mangling proves annoyingburst_taskspawns eachdeliver_streamingcall so new bursts can interrupt the in-flight turn within the debounce windowTest plan
just checkpasses (125 tests, 0 failures)merge_burstpure-function table tests: single message,\n\njoin, empty-text filter, image concatcollect_bursttiming tests: channel-close flush, debounce timer fires, timer resets within windowCloses #51
🤖 Generated with Claude Code