Windows-host go test runs drown in environment failures (ward + cli-guard) #1131

Closed
opened 2026-07-12 06:30:25 +00:00 by coilysiren · 2 comments
Owner

Running go test ./... on Kai''s Windows tower produces dozens of environment failures unrelated to the code under test: hardcoded /bin/echo and /tmp expectations, msys-vs-native path comparisons (/tmp/X vs C:\msys64\tmp\X), docker shims not in %PATH%, and baked-asset case handling (execassets\ward-kdl.aider.guardfile.kdl: file does not exist). cli-guard: cli/shell TestResolve_PluggedInReplacesPathLookup + TestExecIn_RunsInDirectory. ward: dozens across cmd/ward.

Consequence: on the Windows host the suite cannot distinguish a real regression from platform noise - during the 2026-07-11 stability session every local verification needed a clean-main baseline diff to tell them apart. Either make the suites Windows-clean (t.Skip on the genuinely POSIX-only ones, path-normalize the rest) or add a documented -short/tag lane for Windows dev.

Low priority: CI (Linux) stays authoritative. Filed from the stability sweep.

Running `go test ./...` on Kai''s Windows tower produces dozens of environment failures unrelated to the code under test: hardcoded `/bin/echo` and `/tmp` expectations, msys-vs-native path comparisons (`/tmp/X` vs `C:\msys64\tmp\X`), docker shims not in %PATH%, and baked-asset case handling (`execassets\ward-kdl.aider.guardfile.kdl: file does not exist`). cli-guard: `cli/shell` TestResolve_PluggedInReplacesPathLookup + TestExecIn_RunsInDirectory. ward: dozens across cmd/ward. Consequence: on the Windows host the suite cannot distinguish a real regression from platform noise - during the 2026-07-11 stability session every local verification needed a clean-main baseline diff to tell them apart. Either make the suites Windows-clean (t.Skip on the genuinely POSIX-only ones, path-normalize the rest) or add a documented `-short`/tag lane for Windows dev. Low priority: CI (Linux) stays authoritative. Filed from the stability sweep.
Owner

WARD-WORKFLOW: done

details

Summary: documented the full native Windows lane and added ward exec test-windows-compile; clean tests, vet, lint, pre-commit, promotion, and release passed.

workflow: merge-remote-main; review summary: skipped (role-separated QA)

Review: intentionally skipped in-container because implementation and QA are role-separated; QA is a separate, opt-in exact-commit verification role bound to candidate e1b16a6c.

Felt: mostly archaeological—the runtime repair already existed, so making support explicit and regression-checkable was the useful close.

Confidence: high.

Surprises: later Ward issue #1573 had already repaired the native suite; a newer main push superseded the exact promotion, then its descendant passed promotion #2536 and release #2537.

Follow-ups: cli-guard owns its own repository test policy. The verified v0.858.0 binary was refreshed in the user Go bin; the root fleet binary stayed untouched because this container has no privilege escalation.

— Codex

WARD-WORKFLOW: done ✅ <details><summary>details</summary> Summary: documented the full native Windows lane and added ward exec test-windows-compile; clean tests, vet, lint, pre-commit, promotion, and release passed. workflow: merge-remote-main; review summary: skipped (role-separated QA) Review: intentionally skipped in-container because implementation and QA are role-separated; QA is a separate, opt-in exact-commit verification role bound to candidate e1b16a6c. Felt: mostly archaeological—the runtime repair already existed, so making support explicit and regression-checkable was the useful close. Confidence: high. Surprises: later Ward issue #1573 had already repaired the native suite; a newer main push superseded the exact promotion, then its descendant passed promotion #2536 and release #2537. Follow-ups: cli-guard owns its own repository test policy. The verified v0.858.0 binary was refreshed in the user Go bin; the root fleet binary stayed untouched because this container has no privilege escalation. — Codex </details>
Owner

WARD-WORKFLOW: reservation-released

release details

Run finished with WARD-WORKFLOW: done ✅.

ward container reap released container engineer-codex-ward-1131 (--harness codex): the terminal outcome supersedes the reservation, so a later redispatch no longer needs --override-reservation.

— Codex, via ward agent

<!-- ward-agent-reservation-released --> WARD-WORKFLOW: reservation-released <details><summary>release details</summary> Run finished with `WARD-WORKFLOW: done ✅`. `ward container reap` released container `engineer-codex-ward-1131` (`--harness codex`): the terminal outcome supersedes the reservation, so a later redispatch no longer needs `--override-reservation`. </details> <!-- ward-agent-signature --> — Codex, via `ward agent`
Commenting is not possible because the repository is archived.
No milestone
No project
No assignees
2 participants
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-flight-deck/ward#1131
No description provided.