Bump KitsuneCommand to v2.6.3#63
Open
AdaInTheLab wants to merge 1 commit intomainfrom
Open
Conversation
Marquee additions since v2.6.2: - Graceful Restart feature: scheduled daily restarts with player-friendly in-game countdown warnings. Configurable warning ladder, IANA-timezone schedule (DST-aware), krestart console command, REST endpoints, panel Settings tab. - Backups bug fix: BackupService had a redundant conn.Open() call that silently dropped writes (custom System.Data.SQLite quirk). Reads kept working so the bug wasn't caught until the first hands-on test. - Vote Rewards player-id resolution: dispatch now resolves the voter via LivePlayerManager so points land on the player's real EOS-keyed row instead of orphaning a Steam_-keyed sibling row. - 3 new locales: German, French, Spanish. Polite-form translations throughout. Browser auto-detect now matches de-* / fr-* / es-* visitors to their locale. Plus a tooltip on the language switcher explaining that in-game broadcast strings stay in their saved language. - Favicon refresh: regenerated from the canonical kitsune-command-logo PNG so browser-tab and panel-sidebar branding match. README: - Vote Rewards added to the Economy & Rewards features list (was missing — the feature shipped in v2.6.2 but the README missed it) - Graceful Restart added to Server Management features - Trader Zone Toggle added to Server Management (was missing too) - Localization bumped 5 -> 8 languages, with auto-detect note Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Version bump for v2.6.3 + README catch-up. Tag the release after this merges.
What's in v2.6.3
Marquee feature: Graceful Restart
Schedule a daily server restart with player-friendly in-game countdown warnings. Configurable warning ladder (default 10/5/1/0 min with escalating colors), IANA-timezone schedule that handles DST automatically, manual `krestart` console command, REST API at `/api/restart/*`, dedicated Settings tab. Replaces the brittle "systemctl restart at 4am with no warning" pattern most admins were stuck with. (#57, #58)
3 new locales: German, French, Spanish
Full polite-form translations alongside the existing English / 简体中文 / 繁體中文 / 日本語 / 한국어. Browser auto-detect now matches `de-` / `fr-` / `es-*` visitors directly to their language. New tooltip on the language switcher flags that in-game broadcast strings (vote thanks, restart warnings) stay in their saved language — they don't auto-translate when the panel UI does. (#59, #61, #62)
Backups: silent write loss fix
`BackupService` had six redundant `conn.Open()` calls inside `using (var conn = _db.CreateConnection())` blocks. The factory already returns an opened connection, so this was opening twice — and the custom-built System.Data.SQLite that ships with the mod has a quirk where this silently drops subsequent INSERT/UPDATE statements without throwing. Result: clicking Create Backup made the ZIP on disk but the audit row never persisted, the schedule scheduler's settings save silently dropped, and the panel reported "No backups yet" forever. Fix: remove the double-Opens. Self-explanatory. (#56)
Vote Rewards: correct player-id resolution
Dispatch was naively returning `Steam_<76digit>` as the player_id, which doesn't match the actual cross-platform id 7D2D V2 uses (`EOS_<32hex>` for everyone, including Steam-platform players). Result: every vote-grant created an orphan `points_info` row keyed by Steam_-form instead of merging with the player's real EOS-keyed row. Fix: resolve via LivePlayerManager when the voter is online; document the offline-fallback edge case in code. (#54)
Favicon refresh
Browser-tab favicon was the original orange cartoon-fox silhouette from v2.6.1. The actual panel logo (sidebar, login) is the green geometric circuit-kitsune in a ring. They didn't read as the same brand. Regenerated all four favicon variants (`favicon.svg` / `favicon-{16,32}x{16,32}.png` / `favicon.ico`) from the canonical `kitsune-command-logo-transparent.png` so the tab matches the panel. `tools/regen-favicons.py` keeps them in lockstep if the logo ever changes. (#60)
README catch-up
The features list missed:
Added all three. Localization bumped from "5 Languages" to "8 Languages" with auto-detect note.
Files
Test plan
🤖 Generated with Claude Code