Joke Shop - Reservation list without ID (guest list valid, ID missing) — denied. - Borrowed/mismatched ID (ID valid but mismatched) — denied. - Guest who refuses the wand screen: new `refuses_screening` event flag, copied onto NPCController, handled in _toggle_wand_screening (logs wand.refused, records a wand_refused event, small prop hit, panel stays closed). - Late arrival during the performance (ID + ticket, "arrive" intent). Studio - Filming-boundary event and a later repeat, both using the new `film_boundary` intent which maps to `steps_end` so the influencer stands past the posted line. - Celebrity arrival now pulls in a small crowd via a new `extra_spawns` event field (two tourists + an influencer), spawned through the normal path. Building - Filming-boundary event whose hint points at the body camera and request-reason verbs, plus an unclear-intent event that hints at asking for a reason. Engine support - Events may carry `hint` (string key logged on spawn), `extra_spawns`, and `refuses_screening`; 9 new localized hint strings. Tests/docs - Headless suite 139 -> 149 (test_scenario_content.gd) and a new smoke_scenario_content.gd that spawns the refusal and celebrity events through the real signal path. - README, TODO section moved to DONE, MEMORY. Version 0.2.13.
3.0 KiB
3.0 KiB
TODO
Godot 4.3 prototype. Release v0.2.13 is tagged. Headless suite 149/149, plus the session, PLAN-verb, crowd, emergency, timeline, audio, scenario-content, and windowed focus/radial smokes.
Host REQUIRE_SIGNIN_VIEW stays deferred.
Distribution follow-up (host config, deferred)
Verified via API+host credentials (2026-10-31):
- Repo is public (
private:false) and account has admin rights. - Release
v0.2.1now carries all five artifacts (portable binaries + NSIS installer + AppImage). - Remaining host setting: instance-wide
[service] REQUIRE_SIGNIN_VIEW=truemakes anonymous browsing/downloads redirect to login. Host admin:REQUIRE_SIGNIN_VIEW = falseunder[service]inapp.ini, restart Gitea. Alternative: mirror downloads.
Release pipeline follow-up
- Fix
tools/publish_release.sh: the~/.git-credentialsbranch never setAUTH, so every tag build since v0.2.2 failed to publish. - Add a
github.tokenfallback in.gitea/workflows/build.yml(the repo has noGITEA_TOKENsecret). - Fall back to the checkout's git extraheader when no token/credentials exist (the
Gitea runner does not expose
github.token). - Uploads now fail loudly and the release is verified to carry every artifact (a silent HTTP 4xx used to leave an empty release with a green job).
- Host disk expanded to 16G; v0.2.0 and v0.2.9 releases restored from the local artifacts.
- Host maintenance via
root@192.168.88.30: apt cache cleaned and journald capped (SystemMaxUse=300Min/etc/systemd/journald.conf.d/99-size.conf); ~7.6G free. - Verified end to end: tagging v0.2.12 produced a release with all five artifacts (AppImage, Linux, macOS, NSIS installer, Windows) from CI, with no repo secret.
- Optionally backfill releases for v0.2.4–v0.2.8 (their CI artifacts were not retained; would need local rebuilds) or leave them superseded by the latest.
Open Polish
- Keep
%placeholders stable inStrings.fmtwhen adding keys (positional formatting).
Screen design references (QA tooling)
tools/screen_designs.py generatewrites one reference design per screen (from thedocs/descriptions) todocs/screens/designs/, with an offline--draftwireframe mode and an OpenRouter--aimockup mode.tools/screen_designs.py comparechecksdocs/screenshots/*.pngagainst the designs (aspect ratio, size, blank-frame, and layout/palette/detail drift).- Vision-model judge for semantic screenshot comparison. Pixel and perceptual metrics cannot decide whether a frame's composition is correct; a follow-up should send the capture + reference design to a vision model and ask whether they depict the same screen.
Tooling (when an editor workflow exists)
- IDE/editor-based GUT integration. Until then the custom headless runner stays.
- Optional later: author venues as
.tresresources instead ofScenarioFactoryfunctions.