Files
security-game/TODO.md
T
zwitschi 3f4ac7e9aa
Full build / Import + headless tests (push) Successful in 33s
Full build / Full desktop build + optional release (push) Failing after 3m31s
Add accessibility pass: escalation meter and working HUD font scale
- Escalation cue now includes a shape meter and numeric level
  ("Escalation: Blocking [###--] L3/5") in addition to the colour and name, so it
  reads in grayscale. Hud.escalation_meter(level) is pure and tested.
- HUD font scale from settings actually works: set_font_scale() resizes fonts via
  theme overrides instead of Control.scale, which pushed the right-anchored clock
  label off-screen. It now covers the top, log, target, hint, time, mode,
  escalation, cooldown, and debug labels.
- Settings load before the HUD exists, so _ready() re-applies player settings after
  _build_ui(); previously a saved font scale was ignored until the next apply.

Tests/docs
- Headless suite 134 -> 139 (test_accessibility.gd).
- Verified visually at 1.4x scale: no overflow, meter readable.
- README, TODO section moved to DONE, MEMORY. Version 0.2.9.
2026-10-31 21:17:42 +01:00

2.3 KiB

TODO

Godot 4.3 prototype. Release v0.2.9 is tagged. Headless suite 139/139, plus the session, PLAN-verb, crowd, emergency, timeline, audio, and windowed focus/radial smokes.

Host REQUIRE_SIGNIN_VIEW stays deferred.

Scenario content still missing vs PLAN lists

  • Joke Shop: guest on the reservation list without ID; borrowed/mismatched ID; guest refuses wand screening; late arrival during a performance.
  • Studio: filming-boundary repeat (influencer ignores a posted line); celebrity-arrival crowd spike (more rubberneckers, not only one arrive spawn).
  • Building: "activate body camera" and "request reason" once those verbs exist, used in at least one authored event.

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.1 now carries all five artifacts (portable binaries + NSIS installer + AppImage).
  • Remaining host setting: instance-wide [service] REQUIRE_SIGNIN_VIEW=true makes anonymous browsing/downloads redirect to login. Host admin: REQUIRE_SIGNIN_VIEW = false under [service] in app.ini, restart Gitea. Alternative: mirror downloads.

Open Polish

  • Keep % placeholders stable in Strings.fmt when adding keys (positional formatting).

Screen design references (QA tooling)

  • tools/screen_designs.py generate writes one reference design per screen (from the docs/ descriptions) to docs/screens/designs/, with an offline --draft wireframe mode and an OpenRouter --ai mockup mode.
  • tools/screen_designs.py compare checks docs/screenshots/*.png against 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 .tres resources instead of ScenarioFactory functions.