- 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.
57 lines
No EOL
858 B
Text
57 lines
No EOL
858 B
Text
# Dependencies
|
|
node_modules/
|
|
|
|
docker-compose.yml
|
|
package-lock.json
|
|
|
|
# Environment variables — never commit these
|
|
.env
|
|
|
|
# Runtime data — server-specific, never commit
|
|
data/config.json
|
|
data/characters.json
|
|
data/accounts.json
|
|
data/poll-state.json
|
|
data/usermap.json
|
|
data/wrank.json
|
|
data/bringer.json
|
|
data/attendance.json
|
|
data/leaves.json
|
|
data/sessionPreferences.json
|
|
data/tg-history/
|
|
data/updates/.message-ids.json
|
|
data/.message-ids/
|
|
data/snapshots/
|
|
# Emoji data
|
|
emoji-uploads/
|
|
|
|
# Scripts
|
|
scripts/
|
|
|
|
# Tests
|
|
tests/
|
|
|
|
# Keep the data directory structure but not the contents
|
|
!data/.gitkeep
|
|
!data/tg-history/.gitkeep
|
|
|
|
# Messages — user-specific files stay local
|
|
messages/users/
|
|
|
|
# Keep the users directory structure
|
|
!messages/users/.gitkeep
|
|
|
|
# TypeScript build output
|
|
dist/
|
|
|
|
# Logs
|
|
*.log
|
|
npm-debug.log*
|
|
|
|
# OS files
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# Editor
|
|
.vscode/
|
|
.idea/ |