fix: stabilize consistency make wrappers

This commit is contained in:
2026-06-07 19:49:17 +02:00
parent 54b867192d
commit e9e9168921
4 changed files with 169 additions and 37 deletions

View File

@@ -4,7 +4,7 @@ type: workplan
title: "Fix cross-flavor make fix-consistency failures"
domain: custodian
repo: state-hub
status: ready
status: finished
owner: codex
topic_slug: custodian
created: "2026-06-07"
@@ -57,7 +57,7 @@ still exit 0 because the Make target normalizes warning exit code `2`.)
```task
id: STATE-WP-0060-T01
status: todo
status: done
priority: high
state_hub_task_id: "011a49ad-13a5-46f7-849d-f7b1a0bca005"
```
@@ -85,7 +85,7 @@ Makefile.
```task
id: STATE-WP-0060-T02
status: todo
status: done
priority: high
state_hub_task_id: "49388ab7-db45-4bdb-a89e-bb7f116afd47"
```
@@ -110,7 +110,7 @@ Implementation notes:
```task
id: STATE-WP-0060-T03
status: todo
status: done
priority: medium
state_hub_task_id: "c9939dcb-37da-4073-a5f6-06f94fc7807e"
```
@@ -132,3 +132,32 @@ After workplan updates, run from `~/state-hub`:
```bash
make fix-consistency REPO=state-hub
```
## Verification Notes
Completed 2026-06-07:
- Reproduced the local non-zero path in a non-login WSL shell:
`wsl -d Ubuntu-24.04 --cd /home/worsch/state-hub make fix-consistency
REPO=state-hub` failed with `/bin/sh: 1: uv: not found` before the checker
could apply warning/failure exit semantics. The same command worked through
`bash -lc`, where `uv` is on PATH as `/home/worsch/.local/bin/uv`.
- Confirmed the current Makefile line number is not `227`: the single-repo
`fix-consistency` target is now around line 240, so the older captured
`Makefile:227` reference is from a previous file version.
- Kept direct `scripts/consistency_check.py` strictness: clean exits `0`,
warnings-only exits `2`, and failures exit `1`. Added
`consistency_exit_code()` to make that contract explicit.
- Hardened all Makefile `uv` invocations with `UV ?= ...` so non-login shells
fall back to `~/.local/bin/uv`. Agent/operator consistency Make targets still
normalize warning-only `2` to shell success while preserving warning output.
- Added tests for strict checker exit codes and actual Make targets using a
fake `uv` executable: clean returns success, warning-only returns success for
Make wrappers, and real failures remain non-zero.
Verification:
- `.venv/bin/python -m pytest tests/test_consistency_check.py -q` -> 109 passed
- `wsl -d Ubuntu-24.04 --cd /home/worsch/state-hub make check-consistency
REPO=state-hub` -> PASS without a login shell
- `git diff --check` -> clean