tg-bot-ts/data/updates/v0.8/update.json

52 lines
No EOL
2.5 KiB
JSON

{
"version": "v0.8",
"date": "2026-06-11",
"title": "Framework & Architecture",
"layout": "default",
"sections": [
{
"type": "new",
"label": "New Features",
"emoji": "✨",
"items": [
{ "text": "`/tg poll mark-left` — mark a character as having left TG mid-game with 🪲 counter", "emojiKey": "cockroach" },
{ "text": "Leave counter displays total times a character has left TG", "emojiKey": null },
{ "text": "W.Rank no-rank placeholder alignment — players without rank now align correctly with ranked players", "emojiKey": null }
]
},
{
"type": "improvement",
"label": "Improvements",
"emoji": "⚡",
"items": [
{ "text": "Voting is faster — poll embed and companion ephemeral now update in parallel", "emojiKey": null },
{ "text": "Config changes no longer require a bot restart — hot-reloadable from `config.json`", "emojiKey": null }
]
},
{
"type": "technical",
"label": "Under the Hood",
"emoji": "🔩",
"items": [
{ "text": "`Runtime` lifecycle system — phased startup: load → restore → connect → schedule → ready", "emojiKey": null },
{ "text": "`Config` namespace — `Config.get({ section, key })` with full type safety per section", "emojiKey": null },
{ "text": "All config organized into sections — `poll`, `wrank`, `channels`, `roles`, etc.", "emojiKey": null },
{ "text": "`Store` abstraction — centralized JSON file I/O with error handling", "emojiKey": null },
{ "text": "`Paths` helper — no more `path.join(__dirname, ...)` scattered across the codebase", "emojiKey": null },
{ "text": "`Discord` abstraction layer — `Discord.Interaction`, `Discord.Guild`, `Discord.Channel`", "emojiKey": null },
{ "text": "`Scheduler` plugin system — drop a file in `scheduler/` to add a cron job", "emojiKey": null },
{ "text": "`Logger` with levels and context icons — structured, filterable output", "emojiKey": null },
{ "text": "`WRankEntry` hydration — runtime entries carry full `Character` object", "emojiKey": null },
{ "text": "`Leaves` system — character leave tracking keyed by character name and history key", "emojiKey": null }
]
}
],
"examples": [
{
"caption": "🪲 Leave indicator — cockroach with leave count",
"type": "poll",
"layout": "side-by-side",
"file": "examples/poll-leaves.json"
}
]
}