Skip to content

Release Server 2.4.39 with atomic stream admission - #298

Merged
rmcdaniel merged 1 commit into
mainfrom
fix/stream-refused-completion
Oct 3, 2026
Merged

rmcdaniel merged 1 commit into
mainfrom
fix/stream-refused-completion

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Oct 3, 2026 •

Copy link
Copy Markdown
Member

Summary

Tracks #297. Keep the issue open until the published image and affected SDK conformance are verified.

  • Strip Workflow Stream directives without applying effects before Native normalization.
  • Apply append/close effects only after Native accepts task completion, in the same outer transaction.
  • Preserve Native timeout decisions on refusal and roll back accepted Native admission when a stream fails.
  • Prepare routine Server 2.4.39 and chart 0.1.135 through the existing release manifest and generator.

Verification

Locked published Native 2.3.3, PHP 8.4.26, PHPUnit 11.5.55. Local affected worker/stream/payload/quota/OpenAPI selection: 220 tests / 2374 assertions, zero errors/failures/skips. Pint passes. Regressions cover actual timeout without leaked output, final output plus close on terminal completion, and stream backpressure rolling back Native admission while retaining the original claim/run state.

The original controller fails the new actual-timeout regression by leaving one stream item. The stream implementation and original tests are unchanged between current main and the cancellation branch where the defect was discovered. This PR contains the narrow stable fix and release metadata. Candidate scopes, the optional Native role and protocol 1.20 remain outside this release.

Release gates

Ordinary PR checks, review and merge remain required. Publish the immutable patch image and chart through repository workflows, verify both supported image architectures and the pinned Native authority, then run affected published PHP/Python/Rust Workflow Streams conformance against the exact new image. Keep #297 open until the published result is verified. Rollback uses the existing 2.4.38 image, with no schema or data migration.

@rmcdaniel rmcdaniel left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed exact head 8d37ddc2ce2d4dd04d104ce87bbf183dfd377252 against 7ea89349b7d39c075e742dcf2e14c1ddb0d1050e.

The product change is limited to deferring stream effects until Native reports accepted completion, while retaining the same outer transaction. Refused completions keep legitimate Native timeout decisions and publish no stream items. A stream exception rolls back successful Native history/terminal state and keeps the original claim. Final append/close survives terminal completion. The three focused regressions exercise those real backend decisions. No schema migration, candidate scope field, Native dependency update or protocol change enters this patch.

All required PR checks pass at this head, including the locked-package feature suite, concurrent replay/query HTTP topology, predecessor/successor tests, chart lint/install and bounded cache/performance checks. Local affected regression is 220 / 2374 with the published Native 2.3.3 authority. Release metadata is generated through the existing single manifest for Server 2.4.39 / chart 0.1.135.

Ready for merge and immutable publication. #297 stays open for the exact published image and actual PHP/Python/Rust stream verification. Rollback is the existing 2.4.38 image without a data migration.

@rmcdaniel
rmcdaniel marked this pull request as ready for review October 3, 2026 06:26
@rmcdaniel
rmcdaniel merged commit 7a59259 into main Oct 3, 2026
14 checks passed
@rmcdaniel
rmcdaniel deleted the fix/stream-refused-completion branch October 3, 2026 06:26
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