Changelog¶
Version history for QS-Bridge releases.
v0.2.0 — Multi-Server Platform (Current)¶
Released: 2026-03-26
This release marks the completion of the core platform — multi-server architecture, production-ready admin panel, Steam authentication, and comprehensive testing.
Platform¶
- 12 platform tables — ServerRegistry, ServerConfig, BanEntry, WhitelistEntry, AdminRole, ModuleConfig, PanelSession, PanelAuditLog, PlayerServerPresence, GlobalVault, ServerTransferQueue, CrossServerEvent
- 24 platform reducers — admin CRUD, panel wrappers with
is_gateway()guard, server lifecycle (register, heartbeat, player connect/disconnect) - Multi-server architecture —
server_idpartitioning, scoped subscriptions, cluster-wide global tables - Mod Registry schema — 10 tables, 30+ reducers, 8 ModKind variants
Bridge (C++)¶
- 225+ files, 17,200+ lines — clean build, 0 warnings
- BSATN codec — 18 header-only files, full SpacetimeDB binary protocol
- STDB Client — WebSocket with BSATN binary framing, auto-reconnect
- Engine Adapter — abstract interface with UE4 4.27 implementation (vtable hooking)
- HMAC-SHA256 — reducer call signing (RFC 4231 verified)
- 860+ test assertions across 7 test suites:
- 131 BSATN round-trip tests
- 554 integration pipeline assertions (45 tests)
- 108 server message parsing assertions
- 26 protocol framing tests
- 17 mock adapter tests
- 16 E2E SpacetimeDB tests
- 8 HMAC tests
codegen.py— UE4 bindings → C++17 BSATN types (809 lines, 218 generated headers)
Admin Panel¶
- 13 pages — Dashboard, Servers, Players, Users & Roles, Admin, Audit Log, Passport, Settings, Tables, SQL Console, Login
- 16 UI components — Button, Card, Dialog, DataTable, Badge, Input, Toast, Skeleton, EmptyState, Spinner, Switch, Tabs, Select, Textarea, Kbd
- Real-time subscriptions —
useTable<T>hook, no polling - Steam OpenID authentication — via API Gateway, JWT sessions
- BisectHosting integration — server lifecycle controls with rate limiting
- Design system — Red Rose/Inter/JetBrains Mono fonts, warm amber palette, framer-motion animations
- Code splitting — React.lazy(), vendor chunks, <300 KB gzipped
API Gateway¶
- Hono TypeScript server on port 3081
- Steam OpenID 2.0 — redirect-based authentication
- JWT sessions — HttpOnly cookie, 8-hour expiry, HS256 signed
- ~55 REST routes — admin mutations, hosting API proxy, server management
is_gateway()guard — all panel reducers verify caller is the gateway identity
Security¶
- Password hashing (bcrypt/argon2 in reducers)
- Steam OpenID replaces password-based auth
- HMAC-SHA256 bridge-side reducer signing
- Session storage (XSS mitigation)
- SQL console restricted to Owner role
Documentation¶
- wiki.qs-zuq.com — 60-page wiki with public + restricted tiers
- Getting Started (5 pages), Platform (17 pages), Panel (12 pages)
- Game Modules (4 pages), Modding (3 pages), Deployment (5 pages)
- Reference (4 pages), Restricted (9 pages)
v0.1.0 — Initial Release¶
Internal milestone
- Single-server bridge proof-of-concept
- HumanitZ game module (49 tables, 117+ reducers)
- Basic panel with direct STDB authentication
- BSATN codec and WebSocket client
- UE4 4.27 engine adapter
Versioning Policy¶
QS-Bridge follows Semantic Versioning:
- MAJOR — breaking changes to platform tables, SDK traits, or API contracts
- MINOR — new features, new tables, new pages (backwards compatible)
- PATCH — bug fixes, performance improvements, documentation updates
The platform, panel, and bridge are versioned together as a single product.
Related Pages¶
- Roadmap — development phases
- Tech Stack — technologies used
- Overview — what QS-Bridge is