fix(@projects/@magic-civilization): 🐛 update regression objective with latest status

Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
Natalie 2026-05-14 15:34:01 -07:00
parent 76be92394a
commit 1faf134c81

View file

@ -5,7 +5,7 @@ priority: p2
status: partial
scope: game1
owner: testwright
updated_at: 2026-05-07
updated_at: 2026-05-14
evidence:
- .forgejo/workflows/ci.yml
- .forgejo/RUNNER_SETUP.md
@ -66,9 +66,26 @@ CI Stage 3 remains `continue-on-error: true` until file-splitting is scheduled.
- Benchmark regression tracking (future).
- Signed commits / tag verification (future; not on the critical path).
## Remaining work (2026-05-04)
## Remaining work (2026-05-14)
Three un-met acceptance items remain. Status stays `partial` until all three flip.
Four un-met acceptance items remain. Status stays `partial` until all four flip.
**Workflow-composition status (2026-05-14):** `.forgejo/workflows/ci.yml` is
complete — every child stage (Rust workspace, gpu-feature best-effort, gdlint,
validate-game-data, objectives-report --check, build-gdext, godot --import,
headless GUT, autoplay smoke, artifact upload) is present and triggers on
`push: branches: [main]` + `workflow_dispatch`. The remaining blockers are
upstream of yaml composition: they live in Rust crate sources, GDScript
authoring, and a workflow-policy decision on `max-file-lines`. None of them
are solvable by editing the workflow yaml.
**Children fold-in:**
- p2-10a (gdlint un-gate) — `done`
- p2-10b (GUT un-gate) — `done`
- p2-10c..p2-10j (regression-batch fixes spawned during un-gating) — all `done`
- p2-10k (51→11 gdlint cleanup) — `partial`; blocks Stage 3 hard-green
- p2-10l (15→3 GUT regression triage) — `partial`; blocks Stage 5 hard-green
**Ground-truth correction (2026-05-04)**: The previous snapshot (2026-04-23)
described 7 gdlint violations and 39 GUT failures. Verified on apricot
@ -120,6 +137,33 @@ fail — the pipeline is red. Tracking children p2-10k (gdlint) and p2-10l
systemctl --user enable --now forge-watch
```
### 4. Stage 1 hard-fails — blocked on p1-42
- **Bullet**: ✓ hard — `cargo test --workspace --locked` (Stage 1) — *workflow
stage is wired and required; underlying compile is currently red on main.*
- **Tracking parent**: `p1-42-ai-full-building-catalog.md` (status `partial`)
- **Verified 2026-05-14** locally on mac (`cargo check -p mc-player-api`):
```
error[E0063]: missing field `building_priors` in initializer of
`TacticalPlayerState`
--> crates/mc-player-api/src/projection.rs:1138:5
```
- **Root cause**: p1-42 added a `building_priors` field to `TacticalPlayerState`
in `mc-player-api/src/state.rs` (the AI-side replacement for the hardcoded
8-id ladder) but the `TacticalPlayerState { ... }` constructor in
`mc-player-api/src/projection.rs::project_player` at line 1138 was not
updated to populate it. The struct literal therefore fails E0063.
- **Resolution path**: a single one-line addition inside `project_player`
populating `building_priors` from the player projection — owned by p1-42
(AI / mc-player-api), out of scope for this objective and explicitly
out of scope for the simulator-infra rotation that filed this audit.
- **Implication for the CI gate**: until p1-42's `building_priors` plumbing
is finished, every push to main will fail at Stage 1 (`cargo test
--workspace --locked`) before any of the GDScript stages even run. The
workflow composition is correct; the underlying source is red. Do NOT
scope-narrow the workflow to compiling crates only — that would mask a
real production breakage on main and violate Rail-1.
### Runtime budget (information-only)
- **Bullet**: 🟡 Runtime budget ≤15 min median — partial data.