Skip to content

Added the workflow listener of a notification channel. - #3

Closed
moetemp wants to merge 1 commit into
moe/AI-198-ch-api-1-channel-servicefrom
moe/AI-198-ch-api-2-workflow-listener
Closed

moetemp wants to merge 1 commit into
moe/AI-198-ch-api-1-channel-servicefrom
moe/AI-198-ch-api-2-workflow-listener

Conversation

@moetemp

@moetemp moetemp commented Oct 3, 2026

Copy link
Copy Markdown
Owner

This PR lets a Workflow listen on a notification channel.

What changed?

  • SubscribeNotificationChannel and UnsubscribeNotificationChannel commands, each with its own History event and a workflow task failed cause for bad attributes.
  • WorkflowTaskScheduledEventAttributes.notifications carries what a task wakes on.
  • DescribeWorkflowExecutionResponse.channel_subscriptions lists the run's channels as workflow/v1.ChannelSubscriptionInfo.
  • The new enum values and oneof fields take the next free numbers.
  • openapi/ regenerated.

Part of AI-198 (epic AI-37).

Why?

The previous PR gives callbacks and pollers a channel. Workflows need it too, and they need it deterministically. So the notifications ride the scheduled event of the task they wake, and replay sees exactly what the run saw. The subscribe and unsubscribe events record when the run started and stopped listening, so replay matches every command to an event. Describe shows where a run stands on each channel, which is the first thing you'd want when one doesn't wake.

How did you test it?

Link to a test plan if any -

  • Unit Tests
  • Staging
  • End to End Tests

make buf-lint, make api-linter and make http-api-docs are clean. The make go-grpc output builds and vets in a scratch module. The server, Core and Python PRs in the series run workflow subscribe, notify and unsubscribe end to end, replay included.

A Workflow subscribes with a command and gets the notifications on the
scheduled event of its next Workflow Task, so replay sees the same ones.
The new values take the first free numbers.
@moetemp

moetemp commented Oct 6, 2026

Copy link
Copy Markdown
Owner Author

Paused per the 2026-10-05 design review (the decision record is on the proposal page, section 14). Resumes in phase 2 with the CHASM notification work. The branch stays as a pin.

@moetemp moetemp closed this Oct 6, 2026
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.

1 participant