* feat(gateway): hashed key store with grant + hot reload
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(gateway): channel registry + aiohttp app (keyed auth, whoami, per-channel ws/proxy)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(gateway): manage_keys CLI (add/list/revoke)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(gateway): retire srebot_external, run relay-gateway under PM2
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(gateway): point ecosystem + README at relay-gateway
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(tss): replay outbox producer for relay gateway
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(tss): forward processed games to relay outbox
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(tss-api): db helpers, app skeleton, info endpoint, fixtures
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(tss-api): player, games, history, search endpoints
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(tss-api): live, match, scoreboard, matches-search, maps
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(tss-api): filter-required leaderboards (players/vehicles/stats)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(tss-api): tournament list/detail/standings/matches
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat: wire tss upstream through gateway + tssbot-api PM2 app
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
teams_data and team_name_history used long_name (an SRE concept for
teams with both a long and short name). TSS teams have one name only.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds /api/tss/teams/* and /api/tss/leaderboard/teams to SREBOT/server.js,
reading tss_battles.db and tss_teams.db with queries adapted to the
team_id / team_name / teams_data schema. Mirrors the existing
/api/squadrons/* endpoints. SREBOT/web/server.js gains matching proxy
routes so the frontend can reach them via the website host.
TSSBOT/BOT/storage.py picks up the columns and table the endpoints need
to return meaningful data: teams_data.clanrating, team_members.points,
and a new teams_points history table. All idempotent under the existing
init_tss_dbs() call.
Co-authored-by: Heidi <clippii@protonmail.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PR #1223 only staged the deletions of the old paths because the new
top-level directories were still untracked when the commit was authored.
This commit adds the actual restructured tree: SREBOT/ (existing bot),
SHARED/ (vromfs, data_parser, ICONS/MAPS/FONTS, DAGOR_FILES,
update_game_files), and TSSBOT/ (skeleton).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>