Repository navigation
Conversation
The channel commands, events, failed causes, RPCs and the notifications on the scheduled event come from the api change that adds the channel. The generated-type tables in the protos crate are exhaustive, so they name the new commands and events here.
Lang learns of a channel's notifications through one job per activation, taken from the scheduled event so replay yields the same job. The Rust SDK and the workflow runtime cannot subscribe, so they drop the job.
Lang clients reach notify, poll, register, unregister and describe through the same proxier as every other workflow service RPC, and the Python bridge generates its RPC table from that trait.
This was referenced Oct 3, 2026
Owner
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR brings the notification channel api into Max's external-stream Core and exposes the channel RPCs to language SDKs.
What changed?
temporal.api.notification.v1, the five channel RPCs with theirrequest_headeroption, the subscribe and unsubscribe commands and events,notificationson the Workflow Task scheduled event, andchannel_subscriptionson describe.NotificationsReceivedis activation job 21. Max's external jobs keep 17 to 20. The Rust SDK and the Rust workflow runtime can't subscribe, so they drop the job.notify_channel,register_channel_listener,unregister_channel_listener,poll_channelanddescribe_channelare on the Core client and in the C bridge dispatch.notificationpackage.Part of AI-198 (epic AI-37).
Why?
This is the main lineage's protos PR on Max's base, so the Python external chain gets the same channel surface as the main chain. The generated Python RPC table doesn't compile without the five client entries. The commands come in the next PR with their machines, because the exhaustive
TryFrom<WorkflowCommand>match needs both at once. So nothing here can send a command Core can't handle.How did you test it?
Link to a test plan if any -
The workspace builds, the lints and fmt are clean, and every commit builds on its own. The Core, client and common lib suites pass. The vendored channel files carry the api PRs' diff exactly. The other vendored files differ only where Max's base already did.