Commit graph

42 commits

Author SHA1 Message Date
Nuno Duque Nunes
ddc742211e housekeeping: polish Submit Score modal copy, rename v0.10 changelog
- Kills/Deaths label no longer duplicates the "(e.g. 5/2)" hint already
  shown in the field's placeholder
- ATK/DEF/Heal placeholders drop the redundant "(case-insensitive)" note
- v0.10 changelog retitled "Sleep Check (The Vic Update)" and the New
  section's blurb reworded
2026-07-30 04:29:06 +01:00
Nuno Duque Nunes
fc4f322885 feature: shorthand stat input, admin score tools, and sleep check system
- ATK/DEF/Heal now accept K/M shorthand (500K, 1.4M, case-insensitive) via
  a shared parser (@helpers/stat-value), used identically by the Submit
  Score modal, /tg score set, and /tg-admin score-inject
- /tg-admin score-modal — officers can open the Submit Score modal on
  behalf of any player; the modal's customId now carries the target
  userKey so submission always resolves to the intended player rather
  than whoever's Discord client is submitting it
- fix: /tg call now actually reveals the Submit Score button (was
  recording the call but never opening submission)
- fix: /tg poll reload no longer resurrects Submit Score / Yes-No buttons
  that had already been removed — poll state now tracks submission-open
  and buttons-removed explicitly instead of re-deriving it from
  locked/confirmed on every render
- fix: midnight cleanup now fully removes all poll buttons (not just
  Submit Score) instead of leaving them disabled
- Sleep Check — players on a configured role get flagged (💤 shown on
  their poll row) the moment they vote Yes; a scheduled per-slot job DMs
  everyone currently flagged at a configurable time before TG (default
  20 min). State changes and DM sending are intentionally decoupled —
  flagging never itself sends a message. Officers can also flag/clear
  manually via /tg-admin sleep-check set|clear
- data/updates/v0.9.2 and new v0.10 changelog entries for the above
- merged the two .claude reference docs into one, removed stale/fixed
  items, documented the new systems and known deferred gaps
2026-07-30 04:16:42 +01:00
Nuno Duque Nunes
2131b5674b update layout, fix reset week 2026-07-30 00:18:53 +01:00
Nuno Duque Nunes
7d68530826 fix Bringer showing incorrectly from previous weeks on result post 2026-06-22 15:41:28 +01:00
Nuno Duque Nunes
772477e6e8 place Bringer icon next to name in Leaderboard:sequential-extra-stats 2026-06-22 06:08:43 +01:00
Nuno Duque Nunes
2502b9e70b place Bringer icon next to name in Leaderboard:sequential-extra-stats 2026-06-22 06:06:00 +01:00
Nuno Duque Nunes
1e0c0c7344 fix Leaderboards Bringer.layout 2026-06-22 05:59:38 +01:00
Nuno Duque Nunes
8155722440 fix Leaderboards showing Bringer from previous weeks 2026-06-22 05:57:04 +01:00
Nuno Duque Nunes
78504b9f39 add Announcements system for upcoming features and general announcements 2026-06-22 05:36:44 +01:00
Nuno Duque Nunes
049ea7b77f fix: unify score submission on Score.submit, fix TGScore type drift, fix playedBy semantics for borrowed characters
- Score.submit/score/set.ts/score-inject.ts now all share one code path
- TGScore consolidated to single canonical type (was duplicated in types.ts and score.ts)
- Fixed atk/def/heal flat-vs-nested TGStats drift across leaderboard.ts, result layouts
- Fixed playedBy semantics — now correctly identifies the actual player on borrowed characters
- Attendance.allSubmitted now correctly matches against playedBy (borrower) not just userKey (owner)
- score-inject gained atk/def/heal/date/played_by parameters for full parity with real submission
- Added migrate-stats-shape.py and fix-class-keys.py maintenance scripts
2026-06-22 04:27:03 +01:00
Nuno Duque Nunes
da0f90f5d7 fix char autocomplete, /tg char active legacy code 2026-06-20 03:28:22 +01:00
Nuno Duque Nunes
9e8877483d feat: Leaderboard & Result systems with aligned columns, call/confirm-no commands, persistent message slots
- TextAlign: column alignment for embeds using real gg sans font metrics
- EmbedHelpers: per-player grid/column layouts immune to 1024-char field limit
- Layout: domain-aware formatting wrapper (wrank, bringer, cockroach, tgCount)
- PersistentMessage: multi-slot support for independently-updatable embeds
- Leaderboard: weekly rankings + highlights embed (most kills/deaths, next Bringer)
- Result: per-TG breakdown with wRankAtSubmission snapshot for historical accuracy
- /tg call, /tg poll confirm-no, /tg-admin score-inject, result/leaderboard post commands
- Fix: CharacterRegistry wasn't hydrating ownerKey, breaking K/D bot-wide
- Fix: Leaderboard.buildEntries used current week instead of passed-in week param
- /tg-admin test-align: permanent calibration tool for embed text alignment

Includes data/emojis/anima-mastery.json for new combat stat icons.
2026-06-20 03:04:52 +01:00
Nuno Duque Nunes
b22602f431 feat: TGKey branded type, PersistentMessage abstraction, createBuildEmbed factory, BaseLayout refactor 2026-06-13 02:23:56 +01:00
Nuno Duque Nunes
a4d772b81d fix date() formatter 2026-06-12 23:24:15 +01:00
Nuno Duque Nunes
63e3a63a7c add date() formatter, add PersistentMessage feature, refactor updates to use PersistentMessage 2026-06-12 23:23:19 +01:00
Nuno Duque Nunes
c26d2047a9 chore: untrack messages/users files 2026-06-12 18:34:21 +01:00
Nuno Duque Nunes
6f10db832e update gitignore 2026-06-12 17:11:39 +01:00
Nuno Duque Nunes
d7a01d1c7f possibly fixed emojis broken display in update embeds 2026-06-12 17:03:38 +01:00
Nuno Duque Nunes
41c813661b test: revert systems/updates.ts 2026-06-12 16:56:57 +01:00
Nuno Duque Nunes
f97a77a5e9 attempt #1 to fix Emoji.resolveTokens() 2026-06-12 16:55:25 +01:00
Nuno Duque Nunes
c8c79d3eae refactor Emoji.resolveTokens() to include 🔑 emoji format 2026-06-12 16:49:24 +01:00
Nuno Duque Nunes
3806d8d445 add updated systems/updates.ts 2026-06-12 16:46:02 +01:00
Nuno Duque Nunes
cc5dd22b82 fix subcommands/updates.ts namespace missing 2026-06-12 16:31:38 +01:00
Nuno Duque Nunes
666986afb1 refactor update messageId system / Discord.Interaction refactors 2026-06-12 16:27:36 +01:00
Nuno Duque Nunes
be84fa2fb6 fix ayana GL to DM in update poll example 2026-06-12 04:32:01 +01:00
Nuno Duque Nunes
3dbf8c7cab feat: Updates/changelog system, BaseLayout shared functions, Leaves system, WRank delta fix 2026-06-12 04:29:00 +01:00
Nuno Duque Nunes
d2377ff404 feat: BaseLayout shared functions, WRank delta placeholder fix, Leaves system 2026-06-11 23:53:06 +01:00
Nuno Duque Nunes
a0876f0af8 remove wrank numbers, use simple numbers for cockroach system for leaves 2026-06-11 05:23:37 +01:00
Nuno Duque Nunes
fd1b8ed50c add leave system, add cockroach on players that leave 2026-06-11 05:17:29 +01:00
Nuno Duque Nunes
347d1423fc fix format.char() 2026-06-11 04:44:20 +01:00
Nuno Duque Nunes
ed9e7209d0 feat: WRankEntry hydration, Nation enum keys, Config section access, Cron system rework fix (remove old), WRank delta fix with lastRankChangeAt, midnight snapshot cron 2026-06-11 04:29:17 +01:00
Nuno Duque Nunes
17ff1d932f feat: nested Config system with section/key access pattern, Discord API abstraction start 2026-06-11 02:42:30 +01:00
Nuno Duque Nunes
1911cbe225 feat: Runtime lifecycle system, poll layout persistence 2026-06-10 04:44:57 +01:00
Nuno Duque Nunes
2cde01e633 feat: UI layout system, Config namespace, Bootstrap phases design, Logger/Benchmark 2026-06-10 04:20:03 +01:00
Nuno Duque Nunes
3c4aed93df big architectural changes, add Attendance/Score/TG/Registry/Scheduler systems, logger & benchmarker, tg-admin command 2026-06-09 23:13:21 +01:00
Nuno Duque Nunes
61bb590c87 fix history overwritten for same userKey with different chars 2026-06-05 03:51:36 +01:00
Nuno Duque Nunes
e40594e107 fix wrank deltas sync, fix wrank no rank display unalignment 2026-06-05 03:07:51 +01:00
Nuno Duque Nunes
ce92315b48 remove cached files 2026-06-05 01:43:55 +01:00
Nuno Duque Nunes
8ffe8348bb update .gitignore 2026-06-04 03:09:12 +01:00
Nuno Duque Nunes
29aa853723 feat: character sharing/borrowing, impersonation, conflict resolution, W.Rank per char, autocomplete, UI improvements 2026-06-04 03:08:01 +01:00
Nuno Duque Nunes
a4b4b5ae8e various features done, bug fixes on char conflicts 2026-06-03 01:51:26 +01:00
Nuno Duque Nunes
1446cd10fc initial commit 2026-06-01 13:36:51 +01:00