Commit Graph
369 Commits
Author SHA1 Message Date
tiennm99 df240a5db0 feat(stock): persist per-user dividend history 2026-07-22 16:17:29 +07:00
tiennm99 8de459b131 fix(renderer): use consistent wheel label colors 2026-07-22 14:34:01 +07:00
tiennm99 7a0163ec01 feat: format compact portfolio numbers 2026-07-22 12:27:52 +07:00
tiennm99 7487d21499 fix(stock): note currency in portfolio title 2026-07-22 10:59:40 +07:00
tiennm99 cc7dd4aa10 docs: remove completed implementation records 2026-07-21 19:13:34 +07:00
tiennm99 d14b34d8ce docs(deploy): refresh persisted storage layout 2026-07-21 19:13:28 +07:00
tiennm99 5980c384c7 refactor(coin): retire completed startup cleanup 2026-07-21 19:13:23 +07:00
tiennm99 bfa04974a8 refactor(metrics): remove unused AI counters 2026-07-21 19:13:15 +07:00
tiennm99 ec06095ee7 chore(stock): log dividend event checks 2026-07-21 18:50:48 +07:00
tiennm99 01efb83df7 fix(coin): remove stale dividend cursor fields 2026-07-21 18:50:30 +07:00
tiennm99 ee2c520944 docs(stock): document dividend event buttons 2026-07-21 18:20:14 +07:00
tiennm99 d0098dafdd feat(stock): add dividend event buttons 2026-07-21 18:19:50 +07:00
tiennm99 53718dc8b8 docs(stock): research dividend event APIs 2026-07-21 17:13:43 +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 7711029f4c docs(portfolio): document cost basis and P&L 2026-07-21 15:52:30 +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 6ceb7aff02 docs(stock): document dividend commands 2026-07-20 17:33:10 +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 566b06a461 feat(renderer): add local GIF render CLI 2026-07-15 15:50:34 +07:00
tiennm99 963e8087a8 docs: clean legacy plans and document local GIFs 2026-07-15 15:01:00 +07:00
tiennm99 dfd20b699a docs(renderer): record adaptive label rollout 2026-07-15 14:42:57 +07:00
tiennm99 440ec899d2 fix(renderer): improve adaptive label readability 2026-07-15 14:42:33 +07:00
tiennm99 2e1c3be0a4 docs(renderer): record wrapped label rollout 2026-07-15 12:21:25 +07:00
tiennm99 d57009e63b feat(renderer): add bold wrapped wheel labels 2026-07-15 12:21:14 +07:00
tiennm99 55f2142d65 build: update Go toolchain and crypto dependency 2026-07-09 18:18:01 +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 8e748c3153 docs(plans): remove plan artifacts 2026-07-07 10:19:51 +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 4632e87150 fix(renderer): apply single eased wheel spin 2026-07-07 00:11:32 +07:00
tiennm99 8ab45eb5ea fix(renderer): correct pie slice angle conversion 2026-07-06 23:44:41 +07:00
tiennm99 407d4f3a2c fix(renderer): align wheel pointer and labels 2026-07-06 23:12:51 +07:00
tiennm99 da92e9b443 fix: align wheel labels and compose env 2026-07-06 22:50:11 +07:00
tiennm99 3f5ed700bb feat: initialize wheelofnames API 2026-07-06 22:20:48 +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