- 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
52 lines
No EOL
2.4 KiB
JSON
52 lines
No EOL
2.4 KiB
JSON
{
|
|
"version": "v0.9",
|
|
"date": "2026-06-20",
|
|
"title": "Leaderboards, Results & Aligned Stats",
|
|
"layout": "default",
|
|
"sections": [
|
|
{
|
|
"type": "new",
|
|
"label": "New",
|
|
"emoji": "✨",
|
|
"items": [
|
|
{ "text": "Weekly Leaderboard in <:capella:> · <:procyon:> — live rankings updated after every score submission" },
|
|
{ "text": "TG Result posts — full breakdown after each TG, with W.Rank, score, K/D, and per-character stats" },
|
|
{ "text": "Weekly Highlights — most kills, most deaths, and next Storm/Luminous Bringer predictions" },
|
|
{ "text": "/tg call — officers and trusted players can end a TG early when it's called" },
|
|
{ "text": "/tg poll confirm-no — officially mark a TG as cancelled, with a clear visual indicator" }
|
|
]
|
|
},
|
|
{
|
|
"type": "improvement",
|
|
"label": "Improvements",
|
|
"emoji": "⚙️",
|
|
"items": [
|
|
{ "text": "Leaderboard and Result layouts now have aligned columns — name, score, K/D and TG count line up cleanly across all players" },
|
|
{ "text": "Multiple display layouts available for both Leaderboard and Result — officers can switch between them" },
|
|
{ "text": "Secondary combat stats (ATK / DEF / Heal) now shown directly under each player's main stats when recorded" },
|
|
{ "text": "W.Rank shown on Result posts now reflects the rank at the moment the score was submitted, not the current rank — more accurate for historical TGs" }
|
|
]
|
|
},
|
|
{
|
|
"type": "fix",
|
|
"label": "Fixes",
|
|
"emoji": "🔧",
|
|
"items": [
|
|
{ "text": "Fixed a long-standing bug where K/D could silently show as 0/0 even when kills and deaths were recorded" },
|
|
{ "text": "Fixed weekly reset occasionally computing the wrong week after a Timezone inconsistency" },
|
|
{ "text": "Fixed Bringer assignment not correctly carrying over in some weeks" }
|
|
]
|
|
},
|
|
{
|
|
"type": "technical",
|
|
"label": "Under the hood",
|
|
"emoji": "🛠️",
|
|
"items": [
|
|
{ "text": "Built a reusable text-alignment system for embeds, using real font metrics extracted directly from Discord's font" },
|
|
{ "text": "Persistent message system extended to support multiple independently-updatable embeds in one message" },
|
|
{ "text": "Added an event system so different parts of the bot can react to score submissions without being tightly coupled" }
|
|
]
|
|
}
|
|
],
|
|
"examples": []
|
|
} |