Skip to content

Generate and reuse durable request ids for signals and updates - #180

Merged
rmcdaniel merged 1 commit into
mainfrom
claude/216-command-keys
Oct 21, 2026
Merged

rmcdaniel merged 1 commit into
mainfrom
claude/216-command-keys

Conversation

@rmcdaniel

Copy link
Copy Markdown
Member

signal_workflow accepts request_id, generates sdk-python-signal-<hex> when absent and returns the admission dict; update_workflow keeps generating; the body is built once so TransportRetryPolicy retries resend the identical key. httpx.RemoteProtocolError now joins the retried transport failures (the lost-response case shown on the issue). 409 request_id_conflict maps to SignalFailed/UpdateFailed with reason, request_id and details; transport failures carry request_id. The duplicate_request_idempotency conformance cell encodes the new contract. No version bump yet (waits for the pending 2.6.2 publication); CHANGELOG and docs pending.

Part of durable-workflow/.github#216. Contract: durable-workflow/.github#216 (comment)

🤖 Generated with Claude Code

Part of durable-workflow/.github#216 (safe signal/update retries after a lost response). Work in progress; see the draft PR body for the remaining steps.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@sonarqubecloud

Copy link
Copy Markdown

@rmcdaniel
rmcdaniel merged commit 9f82814 into main Oct 21, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants