Repository navigation
Conversation
Regenerated from the stream protos, with the submodule pointed at the branch that carries them.
`AddStreamMessagesCommandAttributes` reaches a `Payload` through both the message body and its metadata map, so two more are visitable.
moetemp
force-pushed
the
moe/AI-198-stream-commands
branch
from
September 16, 2026 22:36
3f7be18 to
5ea9c67
Compare
3 tasks
The submodule now tracks the recorded sha rather than the feature branch head, so a later push to that branch cannot change what make proto emits.
The stream record now carries its kind and producer identity on the wire, and the command, event and range names follow the record vocabulary.
The api branch renamed the two stream command fields and gave the appended event the same range fields every other range has. The generated accessors follow the protos.
Pins the submodule to api 9cd8b40, which removed `Wake`, `WakeWorkflowExecution` and the poll response's `wakes` field.
Pins the submodule to api a9e6517, which adds `Notification.linked_to`, the optional `workflow_execution` on the five channel calls, `ChannelKind` and the linked HTTP routes. `nexus-gen` was skipped since its input did not change.
Pins the submodule to api 30918a0, which adds `ChannelSubscriptionInfo` and `DescribeWorkflowExecutionResponse.channel_subscriptions`. The payload visitor walks the new list into `pending_notification`, so a codec reaches its metadata on describe. `nexus-gen` was skipped since its input did not change.
Pins the submodule to api a446be7, which adds the command, its event and their `CommandType`, `EventType` and `WorkflowTaskFailedCause` values. Neither new message carries a payload, so the visitor is unchanged. `nexus-gen` was skipped since its input did not change.
Pins the submodule to api 07a46d0, which puts the channel and the subscribe event id ahead of the task-completed id on the unsubscribe event. Only the history package and the openapi encodings change.
Pins the submodule to api c239d35, which leads the unsubscribe event with the task-completed id as every other event does. Only the history package and the openapi encodings change.
Pins the submodule to api 4304fd8, which puts `common.v1.Execution` in place of `WorkflowExecution` on the five channel requests and both `linked_to` fields and adds the activity routes. `Execution` carries no payload, so the visitor is unchanged. `nexus-gen` was skipped since its input did not change.
Pins the submodule to api 071feb8, which moves the `Execution` fields back to the numbers `workflow_execution` and `linked_to` had and drops the reservations. Only the two message packages change. `nexus-gen` was skipped since its input did not change.
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 adds the generated Go for the stream and notification channel protos from api #1.
What changed?
proto/apipoints at a fixed commit of the api branch, the execution addressing on top of the unsubscribe command, not at the branch tip. A later push there can't change whatmake protoemits..gitmoduleskeeps the fork URL until the api change lands upstream.StreamRecord,StreamSlice, the two stream commands, the appended event,StreamRange,StreamStartPositionand the five new failure causes.notification/v1package withNotification,ChannelListenerandChannelKind, theNotifyChannel,RegisterChannelListener,UnregisterChannelListener,PollChannelandDescribeChannelRPCs with their gateway routes inservice.pb.gw.gofor the independent, workflow and activity bindings, their methods inproxy/service.goand their mocks inworkflowservicemock, the subscribe command and event, andWorkflowTaskScheduledEventAttributes.notifications. The five requests carry the optionalexecution, acommon.v1.Execution, and the describe response carrieskindandlinked_toas the same type.UnsubscribeNotificationChannelCommandAttributes,WorkflowNotificationChannelUnsubscribedEventAttributes, theirCommandandHistoryEventarms and theCommandType,EventTypeandWorkflowTaskFailedCausevalues are generated with their helpers. Neither message carries a payload, so the visitor has no case for them.DescribeWorkflowExecutionResponse.channel_subscriptionsandworkflow/v1.ChannelSubscriptionInfoare generated with their helpers, and the payload visitor walks the list intopending_notification, so a codec reaches the held notification's metadata onDescribeWorkflowExecutiontoo.temporalproto/openapiis regenerated from the api branch's OpenAPI specs.proxy/interceptor.gowalks the two messages that carry aStreamRecord,AppendStreamRecordsCommandAttributes.recordsandPollWorkflowTaskQueueResponse.stream_slices, and walksNotification.metadatathrough the existing payload-map case, so a codec reaches it on the notify request, the poll and describe responses and the scheduled event. A start position carries no payload, so the visitor skips it.proxy/interceptor_test.gocounts the twoPayloadfields thatAppendStreamRecordsCommandAttributesreaches: a record'sbodyand itsmetadatavalues. These counts are the only hand-written change.Part of AI-198 (epic AI-37).
Why?
The server pins
go.temporal.io/apiat this head, so this is the Go half of api #1. The payload visitor lets a codec proxy reach record bodies and metadata on both paths this API owns.How did you test it?
CI runs
make check test. It regenerates from the pinned submodule, fails on a diff, and runs the suite with the payload-walker test. It passes at the head.nexus-rpc-genisn't installed locally, soservice_nexus.pb.gocomes from the tree as is, and the Nexus yaml doesn't change. The server's functional tests run against this module in the temporal PRs of the series.