Bump to v0.2.1 (maintenance): CI now verifies the NSIS installer contents via 7z
Full build / Import + headless tests (push) Successful in 27s
Full build / Full desktop build + optional release (push) Failing after 3m10s

- Add a 'Verify Windows installer contents' step (7z l shows Step Line.exe +
  uninstall.exe) so the TODO verification items are proven by CI output
- Rebuild 0.2.1 binaries (embedded PCK) and AppImage locally; smoke clean;
  57/57 tests
This commit is contained in:
zwitschi committed 2026-10-31 14:05:12 +01:00
1 parent 5b994982bd
commit 39a80f39f9
5 files changed
+26 -6

No files matched your search

+7 -1
View File
@@ -79,13 +79,19 @@ jobs:
- name: Package Windows installer (NSIS) - name: Package Windows installer (NSIS)
run: | run: |
sudo apt-get update && sudo apt-get install -y nsis sudo apt-get update && sudo apt-get install -y nsis p7zip-full
VERSION="$(sed -n 's/.*config\/version="\([^"]*\)".*/\1/p' project.godot)" VERSION="$(sed -n 's/.*config\/version="\([^"]*\)".*/\1/p' project.godot)"
makensis /DVERSION="$VERSION" \ makensis /DVERSION="$VERSION" \
/DARTIFACT="build/step-line-windows-$VERSION.exe" \ /DARTIFACT="build/step-line-windows-$VERSION.exe" \
/DICON=packaging/windows/step-line.ico \ /DICON=packaging/windows/step-line.ico \
packaging/windows/step-line.nsi packaging/windows/step-line.nsi
- name: Verify Windows installer contents
run: |
VERSION="$(sed -n 's/.*config\/version="\([^"]*\)".*/\1/p' project.godot)"
ls -la build/step-line-setup-$VERSION.exe
7z l build/step-line-setup-$VERSION.exe | grep -E "Step Line.exe|uninstall.exe"
- name: Package Linux AppImage - name: Package Linux AppImage
run: | run: |
bash packaging/linux/build_appimage.sh bash packaging/linux/build_appimage.sh
+7
View File
@@ -185,6 +185,13 @@ Completed task sections moved from `TODO.md`. Sections are moved only when every
Follow-up: anonymous **asset downloads** require sign-in on this host (host setting). Follow-up: anonymous **asset downloads** require sign-in on this host (host setting).
- [x] CI packaging follow-up was already live (`.gitea/workflows/build.yml` on tags). - [x] CI packaging follow-up was already live (`.gitea/workflows/build.yml` on tags).
## 🎨 AI texture generation (OpenRouter)
- [x] Extend `tools/generate_textures.py` with an OpenRouter image-API mode (`--ai`, `--prompt`,
`--name`, `--model`, `--size`), decoding base64 PNG responses and clamping to ≤1024px.
- [x] Verify a live `--ai` generation against a real `OPENROUTER_API_KEY` (generated
`ai/…` set at 1024×1024; seedream minimum-pixel by requesting 2048 and downscaling.
## 🧹 Runtime hygiene + timeline/polish items ## 🧹 Runtime hygiene + timeline/polish items
- [x] RefCounted cycle cleanup: `FSM` now holds its owner via `WeakRef`; `ShiftCoordinator` is - [x] RefCounted cycle cleanup: `FSM` now holds its owner via `WeakRef`; `ShiftCoordinator` is
+6
View File
@@ -67,6 +67,12 @@ Session memory for durable decisions, state, and gotchas. Keep concise, remove o
default batch. Output is downscaled to ≤1024px. NOTE: seedream rejects sizes below default batch. Output is downscaled to ≤1024px. NOTE: seedream rejects sizes below
3,686,400 px (1920×1920), so the script requests `GEN_SIZE=2048` and downscales — do not 3,686,400 px (1920×1920), so the script requests `GEN_SIZE=2048` and downscales — do not
lower `GEN_SIZE` below 1920. Verified end-to-end 2026-10-31 (3 textures generated). lower `GEN_SIZE` below 1920. Verified end-to-end 2026-10-31 (3 textures generated).
`AI_TEXTURES` now covers all 15 game textures (world surfaces, awning, skyline, vignette,
4 HUD icons, 5 access cards) with a `transparent` flag per entry. NOTE: seedream-4.5
ignores `background: transparent` and returns fully opaque images (alpha=255), so the
`ai/` icons/vignette/skyline are opaque — they are NOT drop-in replacements for the
authored transparent PNGs. Use a transparency-capable model (or post-process) if alpha
is needed.
- Detailed graphics: textured facade/awning/skyline, humanoid NPC rigs + props + walk bob + - Detailed graphics: textured facade/awning/skyline, humanoid NPC rigs + props + walk bob +
attention head-turn, inspection artifact cards, mode icons, escalation vignette, body-cam attention head-turn, inspection artifact cards, mode icons, escalation vignette, body-cam
overlay (REC + shift clock). Screenshot set regenerated (`docs/screenshots/`, day + night). overlay (REC + shift clock). Screenshot set regenerated (`docs/screenshots/`, day + night).
+5 -4
View File
@@ -5,10 +5,11 @@
- [x] Extend `tools/generate_textures.py` with an OpenRouter image-API mode - [x] Extend `tools/generate_textures.py` with an OpenRouter image-API mode
(`--ai`, `--prompt`, `--name`, `--model`, `--size`), decoding base64 PNG (`--ai`, `--prompt`, `--name`, `--model`, `--size`), decoding base64 PNG
responses and clamping output to ≤1024px. responses and clamping output to ≤1024px.
- [x] Verify a live `--ai` generation against a real `OPENROUTER_API_KEY` - [x] Add prompts for all 15 game textures (world surfaces, awning, skyline,
(generated `ai/brick_facade.png`, `ai/concrete.png`, `ai/asphalt.png` at vignette, 4 HUD icons, 5 access cards) and generate them under `assets/textures/ai/`.
1024×1024; fixed the seedream min-pixel requirement by requesting 2048px - [ ] Make the `ai/` icons/vignette/skyline truly transparent: seedream-4.5 ignores
and downscaling). `background: transparent` (returns opaque images). Either switch to a
transparency-capable model or post-process (e.g. chroma-key the flat background).
## 🪟 Windows installer (self-contained, all game data) ## 🪟 Windows installer (self-contained, all game data)
+1 -1
View File
@@ -8,7 +8,7 @@ config_version=5
config/name="Step Line" config/name="Step Line"
config/description="Workplace security simulation about observation, access verification, and proportionate escalation." config/description="Workplace security simulation about observation, access verification, and proportionate escalation."
config/version="0.2.0" config/version="0.2.1"
run/main_scene="res://scenes/main.tscn" run/main_scene="res://scenes/main.tscn"
config/features=PackedStringArray("4.3", "GL Compatibility") config/features=PackedStringArray("4.3", "GL Compatibility")