[2026] rollout support, to be short lived I suppose

This commit is contained in:
Devin Zuczek
2026-10-19 22:54:18 -04:00
parent a3291bc9ce
commit 05d7fe4c32
13 changed files with 462 additions and 56 deletions
+23 -4
View File
@@ -153,8 +153,8 @@ RECFLARE_DOMAIN=rec.example.com
# use the pool above.
# RECFLARE_TACHYON_HOST_PORT_SANDBOX=198.51.100.12:7777,198.51.100.12:7778
#
# The pool players on a build under staged rollout (ROLLOUT_GAME_VERSIONS, currently
# `20260323.14`; see RECFLARE_DISCORD_ROLLOUT_ROLE_IDS below) are served from, same format,
# The pool players on a build under staged rollout (RECFLARE_ROLLOUT_GAME_VERSIONS below,
# by default `20260323`; see RECFLARE_DISCORD_ROLLOUT_ROLE_IDS too) are served from, same format,
# ids `rollout-1`, `rollout-2`, … — the new build gets its own voice servers while it rolls
# out. A sandbox account on that build still gets the sandbox pool. Unset, rollout players
# use the pool above.
@@ -234,9 +234,28 @@ RECFLARE_DOMAIN=rec.example.com
# The binding has to resolve for `www` to deploy, so create it with a placeholder even if
# you don't want the sweep — it then does nothing. It never touches hasPlus.
# Which client BUILDS this server serves (`auth` and `api`, with `match` reading the rollout
# list). Both are comma-separated lists of builds — the `YYYYMMDD` of the client version;
# a copied `20250718.01` is read as `20250718` — or `off` for an empty list. Unset means
# the defaults in packages/domain/src/presence-db.ts (SUPPORTED_GAME_VERSIONS: the 2023
# and 2025 builds plus the alphas; ROLLOUT_GAME_VERSIONS: `20260323`).
#
# A build outside SUPPORTED is told to update by `api`'s version check AND refused a token
# by `auth` (every grant, staff included), so dropping a build here is how its players are
# made to upgrade. A build in ROLLOUT is served too, whether or not SUPPORTED names it, but
# only to staff and the Discord roles below. The lifecycle these exist for:
# 1. Rollout (both unset): the 2026 build is for staff and supporters only.
# 2. General availability: ROLLOUT_GAME_VERSIONS=off — the 2026 build opens to everyone.
# 3. Forced upgrade: SUPPORTED_GAME_VERSIONS=20230414,20260323 (with `off` above) — the
# 2025 build is refused and has to update.
# To pull a rollout back instead, list neither: SUPPORTED_GAME_VERSIONS=20230414,20250718
# with ROLLOUT_GAME_VERSIONS=off.
# RECFLARE_SUPPORTED_GAME_VERSIONS=20230414,20250718,20260323
# RECFLARE_ROLLOUT_GAME_VERSIONS=20260323
# OPTIONAL: a staged rollout of a new client build to Discord supporters (`auth`). The
# Discord ROLE ids whose holders may sign in on a ROLLOUT-GATED build — currently
# `20260323.14`, listed in ROLLOUT_GAME_VERSIONS in packages/domain/src/presence-db.ts. A login
# Discord ROLE ids whose holders may sign in on a ROLLOUT-GATED build — by default
# `20260323`, see RECFLARE_ROLLOUT_GAME_VERSIONS above. A login
# posting that build as `ver` is refused ("this build is limited to Discord supporters")
# unless the account is staff (developer or moderator — always let in) or its Discord link
# holds one of these roles; every other build is never touched. Same rules as ROLE_IDS above: snowflakes, not names; commas, no spaces; ANY one