Follow-up to the publishing fix: CI created the v0.2.11 release and logged each upload, but the assets never arrived, so the job looked successful while the release was empty. The host root filesystem is full (7.8G, 100%), and Gitea answered HTTP 500 "Attachments.Save: no space left on device". - publish_release.sh now checks the HTTP status of every asset upload and prints the response body on failure, then verifies the release reports as many assets as were sent. Empty releases can no longer pass silently. - Deleted the empty v0.2.11 release so the "latest" release (v0.2.10) still has all five artifacts; the tag itself remains. - TODO/MEMORY record the host disk blocker with concrete cleanup commands and note that v0.2.11 artifacts are built locally in build/ for upload once space exists.
69 lines
3.6 KiB
Markdown
69 lines
3.6 KiB
Markdown
# 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):
|
||
|
||
- [x] Repo is **public** (`private:false`) and account has admin rights.
|
||
- [x] 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.
|
||
|
||
## Release pipeline follow-up
|
||
|
||
- [x] Fix `tools/publish_release.sh`: the `~/.git-credentials` branch never set `AUTH`,
|
||
so every tag build since v0.2.2 failed to publish.
|
||
- [x] Add a `github.token` fallback in `.gitea/workflows/build.yml` (the repo has no
|
||
`GITEA_TOKEN` secret).
|
||
- [x] Fall back to the checkout's git extraheader when no token/credentials exist (the
|
||
Gitea runner does not expose `github.token`).
|
||
- [x] 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 is full** (`/` 7.8G, 100%, 0 bytes free) so release uploads fail with
|
||
HTTP 500 `Attachments.Save: no space left on device`. Root-owned data is using the
|
||
space; `sudo journalctl --vacuum-size=100M` (~700 MB in `/var/log/journal`),
|
||
`sudo apt-get clean` (~90 MB), and clearing `attachments/tmp` would unblock it.
|
||
Alternative: prune superseded releases (v0.2.0 + v0.2.9 assets ≈ 565 MB).
|
||
- [ ] Verify the fallback on the next tag push produces a release automatically (the
|
||
v0.2.11 tag build reached the publish step and created the release; only the
|
||
upload failed on disk space).
|
||
- [ ] 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 in `Strings.fmt` when adding keys (positional formatting).
|
||
|
||
## Screen design references (QA tooling)
|
||
|
||
- [x] `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.
|
||
- [x] `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.
|