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.
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.
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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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)
/game-maker/path in the frontend comes fromSITE_PATHinsrc/core/site.ts(API, data files, play page,vite.config.ts).2. Name and address
https://nockal.com/feuerwerk/. nginx sends the bare/game-maker/there with a 301./game-maker/play.html?game=…) and the API keep working under the old path. Open editors keep saving.localStoragekeysgame-maker.*move tofeuerwerk.*once, on the first page load (settings, panel sizes, folds, saves).feuerwerk_session: everyone signs in once more.__feuerwerkPlay, workletfeuerwerk-take, Ogg vendor and Matroska appfeuerwerk, package name.3. Repository and CI (own round, needs melektaus-atx)
meleki/feuerwerk(check the redirect of the old URL first), remotes of the checkout and the wiki clone.game-maker-ci/game-maker-wsl, workflow name, CI image, WSL distro, scheduled task,/usr/local/bin/game-maker-e2e, log paths.game-maker-video, unitgame-maker-e2e(e2e.sh).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 setsGAME_MAKER_BROWSER=wsl.git.nockal.com/meleki/game-maker.ci.yml: drop the old labelsgame-maker-ci/game-maker-wslfrom both runners, the image taggame-maker-ci:lateston both hosts andGAME_MAKER_BROWSERfrom the runner config on melektaus-atx. Until then both names are there, so CI does not stall in between. (Done after tasks 687/688 on6097307were green. The taggame-maker-video:lateston stein2 went too.)/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 withlocation.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
Stays as it is
__gmand theGM_*variables.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.Done. Game Maker is Feuerwerk now, live at https://nockal.com/feuerwerk/.
Commits
043c224(steps 1, 2 and 4:SITE_PATH, name, address, storage keys, cookie),6097307(step 3: variables,ci.yml, links, video container).b191009(name and address),5c1bb29(repo links and runners)./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) andD:\1\Development\gitea-runner\backup-20261013\.Checked
CHECK EXIT 0, 307 files, 4756 tests. e2e 60 green there withFEUERWERK_BROWSER=wsl(renderer RTX 4070 over D3D12).gateand 688suiteon6097307) green. After that the old labels, tags andGAME_MAKER_BROWSERwent, both runners reported only the new labels./feuerwerk/200,/game-maker/301. In Chromium an old play link opens the game under/feuerwerk/play.html?game=…, query and hash arrive.feuerwerk-video: a fresh 3 s WebM (640x360, VP9/Opus, unique hash) uploaded through the live API wasreadyafter 3.3 s. The worker log saysready 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.localStoragekeys, with a counter-check (3 of 4 tests red without it).Not checked
feuerwerk-ci. It was only started by hand./game-maker/paths would need a change in the Brandmauer, which was left alone.Stays as it is
__gm,GM_*and the commit history.