Skip to content

Keep admitted Nexus calls pending during cold replay - #128

Merged
rmcdaniel merged 1 commit into
mainfrom
fix/nexus-pending-replay
Oct 12, 2026
Merged

rmcdaniel merged 1 commit into
mainfrom
fix/nexus-pending-replay

Conversation

@rmcdaniel

Copy link
Copy Markdown
Member

Fix

An admitted, completion-waiting Nexus call remains pending at its original yield. Cold replay now validates the recorded operation and submits no new start_service_operation command.

The published Python 2.6.0rc2 baseline in Server #425 appended 64, 63, 68 and 70 ServiceCallStarted events for one original call per cancellation case. Targets were started once. This fixes the replay readmission path responsible for the growing history.

Existing terminal delivery, async/acceptance-only calls, external results, changed-target rejection and legacy SideEffectRecorded replay retain their tests. Adds an immutable pending cancellation replay fixture.

Verification

  • 70 focused Nexus and replay-corpus tests pass in Python 3.12.
  • Ruff and mypy pass for the changed source.
  • Three regressions fail against unchanged main and pass with the correction.
  • Hosted regression-corpus and source checks must pass before merge.

This is one correction toward #116 and Workflow #753. It does not advertise Nexus cooperative cancellation or qualify a published replacement package. The accepted cancellation request regression intentionally requires no delivery until the separate capability-gated correction exists.

Related: durable-workflow/workflow#753

@rmcdaniel
rmcdaniel merged commit 6288bd3 into main Oct 12, 2026
13 checks passed
@rmcdaniel
rmcdaniel deleted the fix/nexus-pending-replay branch October 12, 2026 08:09
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