247 Commits
Author SHA1 Message Date
tiennm99 d0098dafdd feat(stock): add dividend event buttons 2026-07-21 18:19:50 +07:00
tiennm99 96ba34384a refactor(portfolio): retire completed migrations 2026-07-21 17:13:19 +07:00
tiennm99 7083079b39 feat(portfolio): nest asset positions 2026-07-21 16:42:33 +07:00
tiennm99 0dd93e3bf9 feat(portfolio): track stock and coin cost basis 2026-07-21 15:52:05 +07:00
tiennm99 d2c3129d41 refactor(commands): standardize parameter conventions 2026-07-21 14:51:28 +07:00
tiennm99 a211b7f8b7 fix(commands): remove examples from command discovery 2026-07-21 13:52:53 +07:00
tiennm99 b5c7427520 fix(commands): render examples conditionally with inline help code 2026-07-21 13:21:01 +07:00
tiennm99 f5ba9d4032 feat(commands): improve discovery and normalize parameters 2026-07-21 11:45:20 +07:00
tiennm99 3316eec74c test: provision MongoDB 8 with Testcontainers 2026-07-21 09:39:06 +07:00
tiennm99 f0d361eab5 refactor: adopt cross-platform Go development workflow 2026-07-21 09:05:20 +07:00
tiennm99 8b2ac571d9 feat(stock): add ratio dividend commands 2026-07-20 17:32:37 +07:00
tiennm99 6c934f6807 feat(modules): remove world cup module
The 2026 tournament has ended, so the schedule and daily digest commands
have no upcoming matches to report. Drops the module, its catalog entry,
command menu entries, and the WC_FOOTBALL_DATA_TOKEN env var.

Stored subscriber and match-cache documents are left in place.
2026-07-20 11:03:59 +07:00
tiennm99 15c383d6f1 feat(misc): add protected /ff giving-up template
Replies with a fixed Vietnamese copypasta for when T1 starts losing, built
from the local community's running jokes. Protected, so it stays out of the
public command menu like the other gated commands.
2026-07-19 20:09:22 +07:00
tiennm99 7c82842c1a feat(modules): match commands case-insensitively
Mobile keyboards autocapitalize, so a typed /Ping silently did nothing and
read as the bot being broken. Registered names are lowercase-only per
validateCommand, so folding case cannot make two commands collide, and the
canonical Command.Name still drives stats, metrics, hooks, and logs.
2026-07-19 20:09:16 +07:00
tiennm99 337b7de18c refactor(stats): remove completed startup migrations 2026-07-09 15:44:23 +07:00
tiennm99 1560d804a7 fix(misc): fall back wheelofnames to text reply 2026-07-09 14:38:04 +07:00
tiennm99 3646f9c02c feat(misc): promote wheelofnames gif command 2026-07-09 13:14:11 +07:00
tiennm99 3904aa6750 refactor(misc): share disclaimer template 2026-07-09 11:34:53 +07:00
tiennm99 5c5fc5c168 feat(misc): add VNG disclaimer aliases 2026-07-07 11:19:27 +07:00
tiennm99 aa74379f81 feat(coin): allow upstream-supported tickers 2026-07-07 10:12:29 +07:00
tiennm99 00dc4c7800 feat(misc): add wheelofnamesbeta render API 2026-07-07 00:12:58 +07:00
tiennm99 194caf17eb fix(lol): rename next week command 2026-07-06 20:46:10 +07:00
tiennm99 00a5ff1c0b feat(lol): add tomorrow and next-week schedules 2026-07-06 20:20:07 +07:00
tiennm99 0a4d237391 fix(misc): restore wheel beta renderer 2026-07-06 15:30:29 +07:00
tiennm99 e7154d27f3 feat(misc): render wheel beta with canvas 2026-07-06 15:18:47 +07:00
tiennm99 5e07ccc4f6 fix(misc): improve wheel beta label readability 2026-07-06 14:37:35 +07:00
tiennm99 edd62603fa feat(misc): support vietnamese wheel beta text 2026-07-06 14:28:54 +07:00
tiennm99 ae0b61b61f feat(misc): move wheel beta pointer right 2026-07-06 14:14:34 +07:00
tiennm99 c8a1586580 feat(misc): rotate wheel beta labels 2026-07-06 14:06:18 +07:00
tiennm99 2ac4f59b53 feat(misc): polish wheel beta animation 2026-07-06 13:48:51 +07:00
tiennm99 6d021d1e04 fix(misc): satisfy wheel spin lint 2026-07-06 13:23:12 +07:00
tiennm99 eb4a3c49c4 feat(misc): improve wheel beta spin animation 2026-07-06 13:12:22 +07:00
tiennm99 4ffa045ffe fix(misc): hold wheel beta result 2026-07-06 12:31:37 +07:00
tiennm99 aebdab0e8b fix(misc): label wheel beta slices 2026-07-06 12:26:53 +07:00
tiennm99 0240bc88b5 fix(misc): tune wheel beta timing 2026-07-06 12:16:15 +07:00
tiennm99 23fc766a64 fix(misc): improve wheel beta animation 2026-07-06 11:47:41 +07:00
tiennm99 3763b293d6 feat(misc): add wheelofnames beta animation 2026-07-06 11:41:20 +07:00
tiennm99 079d506695 feat(misc): add random command and wheel draft streaming 2026-07-06 11:26:50 +07:00
tiennm99 a6a24ba4c9 feat(lol): add EWC schedule support 2026-07-06 09:40:01 +07:00
tiennm99 3832c1aa5e feat(gold): show buy and sell prices in portfolio 2026-07-03 13:34:34 +07:00
tiennm99 d375029214 feat(misc): add wheelofnames command 2026-07-03 11:12:34 +07:00
tiennm99 beebddf1d8 refactor(lol): remove match cache cleanup logic 2026-07-01 16:53:11 +07:00
tiennm99 275c83b8a6 feat(lol): make match cache fallback-only 2026-07-01 16:41:59 +07:00
tiennm99 2fb10ff632 refactor: remove completed migration logic 2026-07-01 16:20:30 +07:00
tiennm99 3049af2800 perf(stats): simplify username lookup index 2026-07-01 16:06:03 +07:00
tiennm99 b0b4321fa1 feat(lol): expire match cache 2026-07-01 13:40:37 +07:00
tiennm99 e6d5bc3cc9 feat: refine command names and behavior 2026-07-01 13:19:42 +07:00
tiennm99 5254ab4c8e refactor: remove completed startup migrations 2026-07-01 11:42:59 +07:00
tiennm99 ad153d8e6c fix(stats): merge legacy trade command counts 2026-07-01 11:21:11 +07:00
tiennm99 364ddee285 feat(stats): migrate command history 2026-07-01 11:10:36 +07:00