From 1faf134c8153b15ca48c8f47eafb1a267cce067d Mon Sep 17 00:00:00 2001 From: Natalie Date: Thu, 14 May 2026 15:34:01 -0700 Subject: [PATCH] =?UTF-8?q?fix(@projects/@magic-civilization):=20?= =?UTF-8?q?=F0=9F=90=9B=20update=20regression=20objective=20with=20latest?= =?UTF-8?q?=20status?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- .../objectives/p2-10-regression-ci-gate.md | 50 +++++++++++++++++-- 1 file changed, 47 insertions(+), 3 deletions(-) diff --git a/.project/objectives/p2-10-regression-ci-gate.md b/.project/objectives/p2-10-regression-ci-gate.md index 5823b1a8..d3356251 100644 --- a/.project/objectives/p2-10-regression-ci-gate.md +++ b/.project/objectives/p2-10-regression-ci-gate.md @@ -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.