Files
mopac-pmo/archive/TASK-20260829-0830-mred-version-update.md

20 lines
1.6 KiB
Markdown

# TASK: mred `version update` — finish 524 (loop flash turn round-limited, delivered nothing)
## Context
Redmine 524. The loop's study-class turn burned 12 rounds reading and shipped zero; repo untouched at main@788f6fe. You are the finish turn. Repo: `~/projects/meta/MOPAC/redmine-go` (ukrrs/mopac-redmine-go, branch main, clean).
## Scope (small, surgical)
1. `mred version update ID [--status open|closed] [--due YYYY-MM-DD] [--name NAME]`:
- API: PUT /versions/{id}.json — note: Redmine returns **204 empty body** on success (handle it; do not parse).
- Only provided flags are sent; at least one required (usage error otherwise).
- Same output/exit-code conventions as existing subcommands (`updated version #N` line, `-o json` emits the re-fetched version).
2. Table-driven tests against the existing fake (it already serves versions): status flip, due change, combined flags, 204 handling, error mapping. Red first, then implement.
3. README command reference row + status table line.
4. Verify read-only against production after push: `mred version list -p MOPAC` must still show all 5 versions (no mutation of prod).
## Build discipline
ALL DEV IN DOCKER via ./dev.sh (digest-pinned builder). NEVER broad pkill. TDD. Atomic conventional commits, push origin main. Exit 0 only if tests green + pushed.
## Deliverable
`REPORT-20260829-0830-mred-version-update.md` in `~/.coordinate/inbox-pmo/`: diff summary, test counts, prod read verification. No journal/status writes to Redmine — PMO handles 524's ticket (it is currently Resolved; PMO re-verifies on your REPORT).