refactor: improve SplitMessage API clarity

- Accept hard upper limit (maxLen) instead of pre-subtracted value
- Caller now passes actual platform limit (e.g., 2000 for Discord)
- Internal buffer of 500 chars is handled within message.go
- Preferred split at maxLen - 500, may extend to maxLen for code blocks
- Never exceeds maxLen, no more mental math for callers
This commit is contained in:
Hua
2026-02-18 20:21:51 +00:00
parent 94a1b8664b
commit e03124dc8a
2 changed files with 24 additions and 19 deletions
+1 -1
View File
@@ -105,7 +105,7 @@ func (c *DiscordChannel) Send(ctx context.Context, msg bus.OutboundMessage) erro
return nil
}
chunks := utils.SplitMessage(msg.Content, 1500) // Discord has a limit of 2000 characters per message, leave 500 for natural split e.g. code blocks
chunks := utils.SplitMessage(msg.Content, 2000) // Discord hard limit: 2000 chars (prefers split at 1500 to leave room for code blocks)
for _, chunk := range chunks {
if err := c.sendChunk(ctx, channelID, chunk); err != nil {