tiennm99
9f2710569b
chore(stock): log dividend event checks
2026-07-21 18:50:48 +07:00
tiennm99
b8617d0a41
fix(coin): remove stale dividend cursor fields
2026-07-21 18:50:30 +07:00
tiennm99
77e8ca05d6
feat(stock): add dividend event buttons
2026-07-21 18:19:50 +07:00
tiennm99
acc291e9cc
refactor(portfolio): retire completed migrations
2026-07-21 17:13:19 +07:00
tiennm99
3a8da63211
feat(portfolio): nest asset positions
2026-07-21 16:42:33 +07:00
tiennm99
218b6ce2b8
feat(portfolio): track stock and coin cost basis
2026-07-21 15:52:05 +07:00
tiennm99
6cd89e768c
refactor(commands): standardize parameter conventions
2026-07-21 14:51:28 +07:00
tiennm99
d31b3d6b20
fix(commands): remove examples from command discovery
2026-07-21 13:52:53 +07:00
tiennm99
5d46057101
fix(commands): render examples conditionally with inline help code
2026-07-21 13:21:01 +07:00
tiennm99
0866ab4ed3
feat(commands): improve discovery and normalize parameters
2026-07-21 11:45:20 +07:00
tiennm99
55c4520673
test: provision MongoDB 8 with Testcontainers
2026-07-21 09:39:06 +07:00
tiennm99
df92536a34
feat(stock): add ratio dividend commands
2026-07-20 17:32:37 +07:00
tiennm99
6ef9c2c4cf
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
de76a74c32
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
c71b17b772
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
268938d6b7
refactor(stats): remove completed startup migrations
2026-07-09 15:44:23 +07:00
tiennm99
f67aa7cb7e
fix(misc): fall back wheelofnames to text reply
2026-07-09 14:38:04 +07:00
tiennm99
0bd7d71513
feat(misc): promote wheelofnames gif command
2026-07-09 13:14:11 +07:00
tiennm99
38d1db3054
refactor(misc): share disclaimer template
2026-07-09 11:34:53 +07:00
tiennm99
5f95f711f3
feat(misc): add VNG disclaimer aliases
2026-07-07 11:19:27 +07:00
tiennm99
cfa9beba8c
feat(coin): allow upstream-supported tickers
2026-07-07 10:12:29 +07:00
tiennm99
beb263318a
feat(misc): add wheelofnamesbeta render API
2026-07-07 00:12:58 +07:00
tiennm99
05681f97b2
fix(lol): rename next week command
2026-07-06 20:46:10 +07:00
tiennm99
de31b5eb0a
feat(lol): add tomorrow and next-week schedules
2026-07-06 20:20:07 +07:00
tiennm99
a6b4085813
fix(misc): restore wheel beta renderer
2026-07-06 15:30:29 +07:00
tiennm99
a639949d96
feat(misc): render wheel beta with canvas
2026-07-06 15:18:47 +07:00
tiennm99
079c5c1a53
fix(misc): improve wheel beta label readability
2026-07-06 14:37:35 +07:00
tiennm99
bb38eb3857
feat(misc): support vietnamese wheel beta text
2026-07-06 14:28:54 +07:00
tiennm99
0f4425fbc2
feat(misc): move wheel beta pointer right
2026-07-06 14:14:34 +07:00
tiennm99
de4db1acbc
feat(misc): rotate wheel beta labels
2026-07-06 14:06:18 +07:00
tiennm99
e4b24f03e4
feat(misc): polish wheel beta animation
2026-07-06 13:48:51 +07:00
tiennm99
0097e897a0
fix(misc): satisfy wheel spin lint
2026-07-06 13:23:12 +07:00
tiennm99
924bc6322d
feat(misc): improve wheel beta spin animation
2026-07-06 13:12:22 +07:00
tiennm99
9b728aa41e
fix(misc): hold wheel beta result
2026-07-06 12:31:37 +07:00
tiennm99
9dc99d4abc
fix(misc): label wheel beta slices
2026-07-06 12:26:53 +07:00
tiennm99
ea99b6c119
fix(misc): tune wheel beta timing
2026-07-06 12:16:15 +07:00
tiennm99
7c239cd976
fix(misc): improve wheel beta animation
2026-07-06 11:47:41 +07:00
tiennm99
5dad4179ce
feat(misc): add wheelofnames beta animation
2026-07-06 11:41:20 +07:00
tiennm99
0e39b49e8b
feat(misc): add random command and wheel draft streaming
2026-07-06 11:26:50 +07:00
tiennm99
4398395e2a
feat(lol): add EWC schedule support
2026-07-06 09:40:01 +07:00
tiennm99
e1e4c594db
feat(gold): show buy and sell prices in portfolio
2026-07-03 13:34:34 +07:00
tiennm99
54f20f28d2
feat(misc): add wheelofnames command
2026-07-03 11:12:34 +07:00
tiennm99
df8924d562
refactor(lol): remove match cache cleanup logic
2026-07-01 16:53:11 +07:00
tiennm99
8ba3da62c1
feat(lol): make match cache fallback-only
2026-07-01 16:41:59 +07:00
tiennm99
3a58a2e776
refactor: remove completed migration logic
2026-07-01 16:20:30 +07:00
tiennm99
dce115f3f5
perf(stats): simplify username lookup index
2026-07-01 16:06:03 +07:00
tiennm99
e9322fb6bc
feat(lol): expire match cache
2026-07-01 13:40:37 +07:00
tiennm99
9a264f40f5
feat: refine command names and behavior
2026-07-01 13:19:42 +07:00
tiennm99
ae06f10ff0
refactor: remove completed startup migrations
2026-07-01 11:42:59 +07:00
tiennm99
126b70dfa0
fix(stats): merge legacy trade command counts
2026-07-01 11:21:11 +07:00