Skip to content

fix(core): resolve multiple bugs across plugins and middleware#92

Merged
wrxck merged 2 commits intodevelopfrom
fix/bug-fixes
Feb 13, 2026
Merged

fix(core): resolve multiple bugs across plugins and middleware#92
wrxck merged 2 commits intodevelopfrom
fix/bug-fixes

Conversation

@wrxck
Copy link
Owner

@wrxck wrxck commented Feb 13, 2026

Summary

  • Move hardcoded Tenor API key to config (TENOR_API_KEY)
  • Fix restrict_chat_member arg order in wordfilter and join_captcha; replace deprecated permission names with modern granular permissions
  • Fix UTF-8 iteration in flip.lua and aesthetic.lua using proper codepoint pattern
  • Replace blocking socket.sleep with copas.pause in purge plugin; batch message deletion using delete_messages API (groups of 100)
  • Fix callback_query handler creating empty chat context for inline buttons
  • Fix config parser stripping inline # comments from quoted .env values
  • Implement SpamWatch API integration in blocklist middleware with Redis caching (was dead code stub)

Test plan

  • Test /gif search works (requires TENOR_API_KEY in .env)
  • Test /flip with emoji input (e.g. /flip hello 🌍 world)
  • Test /aesthetic with mixed ASCII/Unicode text
  • Test /purge in a group (should batch-delete, non-blocking)
  • Test captcha join flow (restrict and unrestrict with correct permissions)
  • Test wordfilter mute action (correct restrict_chat_member signature)
  • Verify .env values with # in quotes parse correctly
  • If SPAMWATCH_TOKEN is set, verify SpamWatch checks work

🤖 Generated with Claude Code

Matt Hesketh added 2 commits February 13, 2026 00:24
- Move hardcoded Tenor API key to config (TENOR_API_KEY)
- Fix restrict_chat_member arg order in wordfilter, join_captcha (permissions
  as 3rd arg, opts as 4th); replace deprecated permission names with modern
  granular permissions
- Fix UTF-8 iteration in flip.lua and aesthetic.lua using proper codepoint
  pattern instead of byte-level iteration
- Replace blocking socket.sleep with copas.pause in purge plugin; batch
  message deletion using delete_messages API (groups of 100)
- Fix callback_query handler creating empty chat context for inline buttons;
  now creates minimal valid context with sender's ID and private type
- Fix config parser stripping inline # comments from quoted .env values
- Implement SpamWatch API integration in blocklist middleware with Redis
  caching (was dead code stub)
# Conflicts:
#	src/plugins/admin/join_captcha.lua
#	src/plugins/admin/purge.lua
#	src/plugins/admin/wordfilter.lua
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant