v0.5.0

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
  • 新增 SendSelect StringSelectMenu 單選下拉
  • 新增 SendMultiSelect StringSelectMenu 多選(MaxValues=N,無需 toggle + Done 中介)
  • 新增 SendVoice,內部 tts.Get → OGG → audio/ogg 附件(非波形 voice bubble)
  • Input 新增 CallbackPicks []string 一級欄位,與 Text 互斥
  • interactionDispatch 升級成 by CustomID 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}、共用 selects map 與 handler)
  • discord/sendVoice.go — FEAT(新檔;tts.Get → bytes.NewReader → audio/ogg File)
  • discord/send.go — UPDATE(Input 加 CallbackPicks、新增 Delete)
  • discord/bot.go — UPDATE(inputsMu/inputs、selectsMu/selects map 與 init / Close cleanup、註冊 interactionDispatch)
  • README.md — DOC(discord 段補完整 contract 表 + 多互動 example)



Generated by SKILL