# 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).