v0.3.1 Release Notes
Released
v0.3.0 -> v0.3.1
Summary
Brings Discord's interactive surface to parity with Telegram in Discord-native ways:
SendInput mounts a Primary Button → Modal flow (Discord's only path to free-text capture from a message context), SendSelect and SendMultiSelect use String Select Menu dropdowns (MaxValues=1 and MaxValues=N — Discord supports multi-pick natively so the telegram ✅/⬜ toggle + "Done" button machinery isn't needed), SendVoice uploads Gemini TTS output as an audio/ogg attachment, and Delete is added as a thin ChannelMessageDelete wrapper for Q&A prompt cleanup. Input gains CallbackPicks []string so multi-select results land on a dedicated field instead of overloading Text.翻譯
把 Discord 的互動 surface 補齊到對齊 telegram、且走 Discord 原生路徑:SendInput 用 Primary Button → Modal 流程(Discord 從 MessageCreate context 抓自由文字輸入的唯一路徑);SendSelect 與 SendMultiSelect 走 String Select Menu dropdown(MaxValues=1 / MaxValues=N,Discord 原生支援多選,不需 telegram 那套 ✅/⬜ + Done button 中介);SendVoice 把 Gemini TTS OGG 上傳為 audio/ogg 附件;新增 Delete 薄封裝 ChannelMessageDelete 用於 Q&A prompt 清場。Input 新增 CallbackPicks []string,多選結果走專屬欄位不擠在 Text。Changes
FEAT
- Add Discord SendMultiSelect and SendVoice APIs (@pardnchiu) [2eac4ec]
- Add Discord SendSelect with StringSelectMenu dropdown (@pardnchiu) [e5afaae]
- Add Discord SendInput via button+modal and Delete (@pardnchiu) [077cc54]
翻譯
- 新增
SendInput(Button → Modal,唯一從 message context 取自由文字的 Discord-native 路徑) - 新增
Delete薄封裝ChannelMessageDelete,對齊 telegram contract - 新增
SendSelectStringSelectMenu 單選下拉 - 新增
SendMultiSelectStringSelectMenu 多選(MaxValues=N,無需 toggle + Done 中介) - 新增
SendVoice,內部tts.Get→ OGG →audio/ogg附件(非波形 voice bubble) Input新增CallbackPicks []string一級欄位,與Text互斥interactionDispatch升級成 byCustomID prefix的兩層 switch 路由(input button / select menu / modal submit)
Scope
discord/sendInput.go— FEAT(新檔;button 中介 + modal 開啟 + modal submit 三段 handler +interactionDispatch路由)discord/sendSelect.go— FEAT(新檔;StringSelectMenu 單選,selectState{multi=false})discord/sendMultiSelect.go— FEAT(新檔;MaxValues=len(options)、selectState{multi=true}、共用selectsmap 與 handler)discord/sendVoice.go— FEAT(新檔;tts.Get→bytes.NewReader→audio/oggFile)discord/send.go— UPDATE(Input加CallbackPicks、新增Delete)discord/bot.go— UPDATE(inputsMu/inputs、selectsMu/selectsmap 與 init / Close cleanup、註冊interactionDispatch)README.md— DOC(discord 段補完整 contract 表 + 多互動 example)
Generated by SKILL