Commit Graph
196 Commits
Author SHA1 Message Date
tiennm99 e4b24f03e4 feat(misc): polish wheel beta animation 2026-07-06 13:48:51 +07:00
tiennm99 8529452d9a docs(agents): require lint before code commits 2026-07-06 13:23:47 +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 2fc50f53ce docs: record wheelofnames implementation 2026-07-03 11:12:49 +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
tiennm99 f73c2c61ec feat(stats): migrate command history 2026-07-01 11:10:36 +07:00
tiennm99 cfbab24f68 docs: add project agent guidance 2026-07-01 11:10:24 +07:00
tiennm99 d90af97d55 feat(commands): simplify portfolio command names 2026-07-01 10:53:52 +07:00
tiennm99 b86aca6b1d feat: rename wc schedule commands 2026-07-01 10:42:56 +07:00
tiennm99 bdb8757dbe feat: rename lol schedule module 2026-07-01 10:38:49 +07:00
tiennm99 6eeb7ef447 feat(stats): use queryable Mongo usage records 2026-07-01 10:22:03 +07:00
tiennm99 0aaf9acf60 fix(cron): claim daily pushes by ict day 2026-07-01 09:31:58 +07:00
tiennm99 c2311bc569 fix(lolschedule): silence empty daily push 2026-06-30 09:01:40 +07:00
tiennm99 0d866cb7a0 fix(wc): send silent daily push at midnight ict 2026-06-30 08:56:01 +07:00
tiennm99 564b6635d4 refactor(modules): remove twentyq genai integration 2026-06-29 10:07:21 +07:00
tiennm99 7d31c6d199 refactor(config): remove price URL env overrides 2026-06-29 09:23:20 +07:00
tiennm99 a9cda02bd3 chore(plans): remove completed planning artifacts 2026-06-29 09:15:29 +07:00
tiennm99 c3bbbd01fe feat(server): register command menu on startup 2026-06-29 01:08:51 +07:00
tiennm99 5077ff0181 feat(wc): add world cup schedule module 2026-06-29 00:59:30 +07:00
tiennm99 b07f52770b fix(config): remove claude settings 2026-06-29 00:24:07 +07:00
tiennm99 95d4b2227d fix(deploynotify): preserve coolify source commit 2026-06-29 00:20:04 +07:00
tiennm99 6e35c222d3 refactor(deploy): remove retired aws support 2026-06-29 00:11:42 +07:00
tiennm99 2ebff606b3 build(coolify): rename compose file 2026-06-29 00:00:22 +07:00
tiennm99andGitHub 087e0a31b1 Merge pull request #1 from tiennm99/feature/selfhosted
Self-host on Coolify + MongoDB Atlas; decommission AWS
2026-06-28 23:55:12 +07:00
tiennm99 36a9f26906 docs(reports): add AWS footprint and cleanup audit 2026-06-28 23:53:12 +07:00
tiennm99 3023272047 docs(deploy): mark AWS decommission complete, record teardown deviations 2026-06-28 23:44:12 +07:00
tiennm99 9102279db6 fix(deploynotify): reference SOURCE_COMMIT in compose so it reaches container
Coolify passes predefined vars to Docker Compose via --env-file for
interpolation only; a var reaches the container solely if the compose file
references it. Removing the reference left SOURCE_COMMIT unset, so deploynotify
reported "unknown". Re-add SOURCE_COMMIT: ${SOURCE_COMMIT:-} per Coolify docs.
2026-06-28 23:30:03 +07:00
tiennm99 64a837b086 feat(deploynotify): notify owner on every startup, no SHA dedup
Match the store-scraper-bot behaviour: DM the owner once per boot regardless of
commit, and report an unknown SHA rather than staying silent. Drop the store-
based dedup and the empty-SHA skip; resolveCommitSHA defaults to "unknown".
2026-06-28 23:25:07 +07:00
tiennm99 30c6427694 fix(deploynotify): stop clobbering Coolify-injected SOURCE_COMMIT
Declaring SOURCE_COMMIT: ${SOURCE_COMMIT:-} in compose resolved to an empty
string at parse time and overrode the value Coolify auto-injects into the
container at runtime, so gitSHA stayed empty and the owner DM was skipped.
Remove the declaration; the bot already reads SOURCE_COMMIT from the container
env at startup.
2026-06-28 23:17:27 +07:00
tiennm99 2f4b1b7504 fix(deploynotify): read commit SHA from Coolify SOURCE_COMMIT runtime env
Baking SOURCE_COMMIT as a Docker build arg never worked: Coolify exposes it
as a runtime env var, not a build arg, so gitSHA was always empty and the owner
DM was skipped. Read SOURCE_COMMIT from the container env at startup (falling
back to the ldflags-baked gitSHA for local builds), forward it via the compose
environment, and drop the dead build-arg baking.
2026-06-28 23:08:17 +07:00
tiennm99 3aa07ac16d feat(modules): log every command with input, sender, chat, result
Emit one structured line per authorized command: input text, sender id +
username, chat type/id/title (DM vs group), and outcome (INFO ok / ERROR with
err). Replaces the prior error-only log; denied commands stay silent.
2026-06-28 22:52:55 +07:00
tiennm99 22a3d23ed4 refactor(server): delete webhook once on startup, no retry
The Bot API GET reliably clears the webhook, so the retry loop added for the
empty-body POST is no longer needed. One best-effort call; log on failure.
2026-06-28 22:52:55 +07:00
tiennm99 341a0b7a1d fix(telegram): clear webhook via Bot API GET to avoid empty-body POST
go-telegram's DeleteWebhook posts an empty multipart form (DropPendingUpdates
is omitempty); some networks answer that bodyless POST with an empty response,
failing to parse and leaving the webhook active so getUpdates 409s forever.
Replace it with a plain GET /deleteWebhook, which sends no body and parses the
JSON reliably. Keeps pending updates for a lossless cutover.
2026-06-28 22:41:49 +07:00