Commit Graph

5 Commits

Author SHA1 Message Date
Claude Owner
35569ddd88 fix(handler): filter command files and guard non-command modules
Handler.ts iterated readdirSync(COMMANDS_PATH) without filtering, so
any .d.ts declaration file, .js.map source map, or non-class module
that landed in commands/ would crash startup with 'mod.default is not
a constructor'. Restrict loading to .ts/.js (excluding .d.ts and maps)
and skip modules without a default-exported constructor.
2026-05-26 14:40:29 +09:00
Claude Owner
fe10ed1bd9 feat(signature): make host configurable and add WS reconnect
- New optional env SIGNATURE_HOST overrides the hardcoded
  192.168.10.5:2967 (defaults preserved for back-compat).
- WebSocket now reconnects with exponential backoff (1s, 2s, 4s ...
  capped at 30s) on close/error. Previously a dropped signature
  server connection silently disabled signature playback until the
  bot was restarted.
2026-05-26 14:40:05 +09:00
Claude Owner
e22cb53ccf fix(tts): correct Discord snowflake regex and getSource typo
- Mention/emoji regexes used [(0-9)]{18}; '(' and ')' inside a character
  class are literal so this matched the bracket chars themselves and
  hard-fixed the ID length to 18. Discord snowflakes are 17-20 digits
  (older 2015-2017 accounts are 17, 2024+ trend toward 19-20). Switch
  to \\d{17,20} and capture the ID for member lookup.
- Tighten emoji regex name segment from .* (greedy, eats across emojis)
  to [^:]+ so adjacent emojis no longer collapse into one match.
- Rename getSorce -> getSource.
2026-05-26 14:38:46 +09:00
Claude Owner
7b56d2e055 fix(db): correct user.update target table
stmt.user.update was issuing UPDATE guilds instead of UPDATE users,
so any DB.user.update() call would silently corrupt guild rows that
happened to share the same WHERE clause shape and never touch the
intended user row.
2026-05-26 14:38:09 +09:00
d6b36c43c2 기존 2026-05-26 14:15:09 +09:00