Rename Game Maker to Feuerwerk #422

Closed
opened 2026-10-13 13:11:32 +02:00 by meleki · 1 comment
Owner

Game Maker gets a name that fits beside Brandmauer, Glutspeicher, Feuerwehr and Rauchmelder: Feuerwerk. A game is show, effects and spectacle, and "Werk" is something built.

The name sits in four layers, and they move in four steps. The code identifier is feuerwerk, the shown name is Feuerwerk.

1. One base path (no visible change)

  • Every /game-maker/ path in the frontend comes from SITE_PATH in src/core/site.ts (API, data files, play page, vite.config.ts).

2. Name and address

  • Feuerwerk in window title, sign-in screen, playground, README, wiki.
  • Served under https://nockal.com/feuerwerk/. nginx sends the bare /game-maker/ there with a 301.
  • Old play links (/game-maker/play.html?game=…) and the API keep working under the old path. Open editors keep saving.
  • localStorage keys game-maker.* move to feuerwerk.* once, on the first page load (settings, panel sizes, folds, saves).
  • Session cookie feuerwerk_session: everyone signs in once more.
  • __feuerwerkPlay, worklet feuerwerk-take, Ogg vendor and Matroska app feuerwerk, package name.

3. Repository and CI (own round, needs melektaus-atx)

  • Rename the Gitea repo to meleki/feuerwerk (check the redirect of the old URL first), remotes of the checkout and the wiki clone.
  • Runner labels game-maker-ci / game-maker-wsl, workflow name, CI image, WSL distro, scheduled task, /usr/local/bin/game-maker-e2e, log paths.
  • Container and image game-maker-video, unit game-maker-e2e (e2e.sh).
  • Environment variables GAME_MAKER_BROWSER, GAME_MAKER_BASE_URL, GAME_MAKER_E2E_PASSWORD, GAME_MAKER_E2E_ADMIN_PASSWORD. They move together with the runner config on melektaus-atx, which sets GAME_MAKER_BROWSER=wsl.
  • README and wiki links to git.nockal.com/meleki/game-maker.
  • After the first CI run with the new ci.yml: drop the old labels game-maker-ci / game-maker-wsl from both runners, the image tag game-maker-ci:latest on both hosts and GAME_MAKER_BROWSER from the runner config on melektaus-atx. Until then both names are there, so CI does not stall in between. (Done after tasks 687/688 on 6097307 were green. The tag game-maker-video:latest on stein2 went too.)
  • Later: redirect the rest of /game-maker/, remove the symlink. (2026-10-13: symlink gone, the old path has no files any more. The bare /game-maker/ keeps its 301. Every deeper path gets a small page that forwards in the browser with location.replace, query and hash included, because the Brandmauer rewrites every redirect of a URL without a trailing slash, see below. Checked in Chromium: an old play link opens the game under /feuerwerk/play.html?game=….)

4. Notes

  • Agent memory and notes.

Stays as it is

  • __gm and the GM_* variables.
  • Commit history and the text of issues.

Found on the way

The Brandmauer answers a redirect from nginx for a path without a trailing slash, or with a query, with its own 307 to the same URL plus /, and it appends that / behind the query. /game-maker/play.html?game=<token> became …?game=<token>/, and the play page no longer knew the token. That is why only the bare folder is redirected.

Game Maker gets a name that fits beside Brandmauer, Glutspeicher, Feuerwehr and Rauchmelder: **Feuerwerk**. A game is show, effects and spectacle, and "Werk" is something built. The name sits in four layers, and they move in four steps. The code identifier is `feuerwerk`, the shown name is *Feuerwerk*. ## 1. One base path (no visible change) - [x] Every `/game-maker/` path in the frontend comes from `SITE_PATH` in `src/core/site.ts` (API, data files, play page, `vite.config.ts`). ## 2. Name and address - [x] *Feuerwerk* in window title, sign-in screen, playground, README, wiki. - [x] Served under `https://nockal.com/feuerwerk/`. nginx sends the bare `/game-maker/` there with a 301. - [x] Old play links (`/game-maker/play.html?game=…`) and the API keep working under the old path. Open editors keep saving. - [x] `localStorage` keys `game-maker.*` move to `feuerwerk.*` once, on the first page load (settings, panel sizes, folds, saves). - [x] Session cookie `feuerwerk_session`: everyone signs in once more. - [x] `__feuerwerkPlay`, worklet `feuerwerk-take`, Ogg vendor and Matroska app `feuerwerk`, package name. ## 3. Repository and CI (own round, needs melektaus-atx) - [x] Rename the Gitea repo to `meleki/feuerwerk` (check the redirect of the old URL first), remotes of the checkout and the wiki clone. - [x] Runner labels `game-maker-ci` / `game-maker-wsl`, workflow name, CI image, WSL distro, scheduled task, `/usr/local/bin/game-maker-e2e`, log paths. - [x] Container and image `game-maker-video`, unit `game-maker-e2e` (`e2e.sh`). - [x] Environment variables `GAME_MAKER_BROWSER`, `GAME_MAKER_BASE_URL`, `GAME_MAKER_E2E_PASSWORD`, `GAME_MAKER_E2E_ADMIN_PASSWORD`. They move together with the runner config on melektaus-atx, which sets `GAME_MAKER_BROWSER=wsl`. - [x] README and wiki links to `git.nockal.com/meleki/game-maker`. - [x] After the first CI run with the new `ci.yml`: drop the old labels `game-maker-ci` / `game-maker-wsl` from both runners, the image tag `game-maker-ci:latest` on both hosts and `GAME_MAKER_BROWSER` from the runner config on melektaus-atx. Until then both names are there, so CI does not stall in between. (Done after tasks 687/688 on `6097307` were green. The tag `game-maker-video:latest` on stein2 went too.) - [x] Later: redirect the rest of `/game-maker/`, remove the symlink. (2026-10-13: symlink gone, the old path has no files any more. The bare `/game-maker/` keeps its 301. Every deeper path gets a small page that forwards in the browser with `location.replace`, query and hash included, because the Brandmauer rewrites every redirect of a URL without a trailing slash, see below. Checked in Chromium: an old play link opens the game under `/feuerwerk/play.html?game=…`.) ## 4. Notes - [x] Agent memory and notes. ## Stays as it is - `__gm` and the `GM_*` variables. - Commit history and the text of issues. ## Found on the way The Brandmauer answers a redirect from nginx for a path without a trailing slash, or with a query, with its own 307 to the same URL plus `/`, and it appends that `/` behind the query. `/game-maker/play.html?game=<token>` became `…?game=<token>/`, and the play page no longer knew the token. That is why only the bare folder is redirected.
admin added this to the Development project 2026-10-13 13:47:38 +02:00
admin moved this to Next in Development on 2026-10-13 13:47:50 +02:00
Author
Owner

Done. Game Maker is Feuerwerk now, live at https://nockal.com/feuerwerk/.

Commits

  • Repo: 043c224 (steps 1, 2 and 4: SITE_PATH, name, address, storage keys, cookie), 6097307 (step 3: variables, ci.yml, links, video container).
  • Wiki: b191009 (name and address), 5c1bb29 (repo links and runners).
  • Outside the repo: nginx config on stein2 (301 for the bare /game-maker/, forwarding page for everything below it, symlink removed), Gitea repo rename, both runner configs, image tags, WSL distro and scheduled task on melektaus-atx. Backups under /root/config-backup-20261013/ (stein2 and the distro) and D:\1\Development\gitea-runner\backup-20261013\.

Checked

  • Gate on melektaus-atx through the renamed distro: CHECK EXIT 0, 307 files, 4756 tests. e2e 60 green there with FEUERWERK_BROWSER=wsl (renderer RTX 4070 over D3D12).
  • First CI run with the new labels (tasks 687 gate and 688 suite on 6097307) green. After that the old labels, tags and GAME_MAKER_BROWSER went, both runners reported only the new labels.
  • From outside: /feuerwerk/ 200, /game-maker/ 301. In Chromium an old play link opens the game under /feuerwerk/play.html?game=…, query and hash arrive.
  • Video container feuerwerk-video: a fresh 3 s WebM (640x360, VP9/Opus, unique hash) uploaded through the live API was ready after 3.3 s. The worker log says ready in 2.0 s, ffprobe shows H.264 yuv420p 30/1 plus AAC. The probe video is deleted again (204). e2e 66 against the live site: all 35 checks passed, but it found its fixture already converted, so it proves no conversion by itself.
  • Unit test for the move of the localStorage keys, with a counter-check (3 of 4 tests red without it).

Not checked

  • A real Windows restart of melektaus-atx with the new scheduled task feuerwerk-ci. It was only started by hand.
  • API and data calls through the old path stop working. nginx saw none of them after the switch.
  • A real 301 for deeper /game-maker/ paths would need a change in the Brandmauer, which was left alone.

Stays as it is

  • __gm, GM_* and the commit history.
Done. Game Maker is **Feuerwerk** now, live at <https://nockal.com/feuerwerk/>. ## Commits - Repo: `043c224` (steps 1, 2 and 4: `SITE_PATH`, name, address, storage keys, cookie), `6097307` (step 3: variables, `ci.yml`, links, video container). - Wiki: `b191009` (name and address), `5c1bb29` (repo links and runners). - Outside the repo: nginx config on stein2 (301 for the bare `/game-maker/`, forwarding page for everything below it, symlink removed), Gitea repo rename, both runner configs, image tags, WSL distro and scheduled task on melektaus-atx. Backups under `/root/config-backup-20261013/` (stein2 and the distro) and `D:\1\Development\gitea-runner\backup-20261013\`. ## Checked - Gate on melektaus-atx through the renamed distro: `CHECK EXIT 0`, 307 files, 4756 tests. e2e 60 green there with `FEUERWERK_BROWSER=wsl` (renderer RTX 4070 over D3D12). - First CI run with the new labels (tasks 687 `gate` and 688 `suite` on `6097307`) green. After that the old labels, tags and `GAME_MAKER_BROWSER` went, both runners reported only the new labels. - From outside: `/feuerwerk/` 200, `/game-maker/` 301. In Chromium an old play link opens the game under `/feuerwerk/play.html?game=…`, query and hash arrive. - Video container `feuerwerk-video`: a fresh 3 s WebM (640x360, VP9/Opus, unique hash) uploaded through the live API was `ready` after 3.3 s. The worker log says `ready in 2.0 s`, ffprobe shows H.264 yuv420p 30/1 plus AAC. The probe video is deleted again (204). e2e 66 against the live site: all 35 checks passed, but it found its fixture already converted, so it proves no conversion by itself. - Unit test for the move of the `localStorage` keys, with a counter-check (3 of 4 tests red without it). ## Not checked - A real Windows restart of melektaus-atx with the new scheduled task `feuerwerk-ci`. It was only started by hand. - API and data calls through the old path stop working. nginx saw none of them after the switch. - A real 301 for deeper `/game-maker/` paths would need a change in the Brandmauer, which was left alone. ## Stays as it is - `__gm`, `GM_*` and the commit history.
admin moved this to Done in Development on 2026-10-13 16:18:35 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: meleki/feuerwerk#422