fix: bind projection retries and validate exact receipts

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a07ff8-19d0-7820-b4d0-1353833cb7fc
This commit is contained in:
tegwick 2026-09-10 14:11:45 +02:00
parent 84df076e95
commit 0068e34644
3 changed files with 156 additions and 12 deletions

View file

@ -0,0 +1,58 @@
---
id: RMGR-WP-0017
type: workplan
title: "Make reviewed projection retries and receipts reliable"
domain: infotech
repo: repo-manager
status: active
owner: codex
topic_slug: infotech
created: "2026-09-10"
updated: "2026-09-10"
related: [RMGR-WP-0012, HFACT-WP-0001, STATE-WP-0090]
---
Follow-up to HFACT-WP-0001-T02's observed HTTP 409 when a reviewed retirement
acknowledgement changes at the same source commit. File/Forge authority, primary
identity, exact commit and explicit retirement acknowledgement stay unchanged.
## Bind retries to the complete request
```task
id: RMGR-WP-0017-T01
status: done
priority: high
```
Digest the method, repository route and full POST body into the idempotency key.
Identical retries retain their key; an explicit review acknowledgement uses a
different key. Retain acknowledgement and expected instance in queued metadata.
## Verify the returned primary and commit
```task
id: RMGR-WP-0017-T02
status: done
priority: high
```
Reject incomplete or mismatched primary/repository/commit receipts instead of
reporting success or discarding pending state. Keep the two-request fast path.
## Prove convergence and synchronize
```task
id: RMGR-WP-0017-T03
status: todo
priority: high
```
Run real-Git/mocked-transport regressions, the full suite and targeted lint.
Commit/sync; verify exact primary receipts on the selected factory chain using
the corrected client. STATE-WP-0090 owns the server's description/note fix and
live projection convergence. Preserve all existing identities and source files.
Validation: all seven new regressions failed on the original client. The fixed
client passes all 188 repository tests and targeted Ruff checks. Identical
requests replay; changed reviewed payloads do not collide. Exact receipt checks
retain the two-request path. Live synchronization evidence remains T03.