Skip to content

Update system nexus generation to include notification service - #1925

Draft
VegetarianOrc wants to merge 6 commits into
mainfrom
amazzeo/nexus-handler-callbacks
Draft

VegetarianOrc wants to merge 6 commits into
mainfrom
amazzeo/nexus-handler-callbacks

Conversation

@VegetarianOrc

@VegetarianOrc VegetarianOrc commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Note

This PR depends on a temporary branch of core that includes the notification-service.wit file. Before merging this, those changes will be reviewed and propagated to a proper core commit.

What was changed

  • The Nexus system API generator also generates the new temporalio.nexus.notifications package from notification-service.wit.
  • The generated packages share one support module at temporalio/nexus/_support.
  • NexGen changes from version 0.2.4 to version 0.2.7. The workflow_service package is generated again with the new version.
  • The support file adds failure converters and a type hint for payload decoding.

Why

Nexus handler callbacks need typed Python models for the OnComplete request and response of the notification service. This PR uses the NexGen pipeline that already generates the workflow service system API to generate these models. The support module moves to a shared location so that the two generated packages can use it. The handler callback implementation is in the stacked PR (#1926).

Checklist

  1. How was it tested?
  • New tests send the notification models through the payload converter and back.

@VegetarianOrc
VegetarianOrc added this pull request to stack #1927 October 5, 2026 18:02
@VegetarianOrc
VegetarianOrc force-pushed the amazzeo/nexus-handler-callbacks branch 2 times, most recently from f7380fa to d9adf4b Compare October 5, 2026 18:12
@VegetarianOrc
VegetarianOrc force-pushed the amazzeo/nexus-handler-callbacks branch from d9adf4b to e81a1d8 Compare October 5, 2026 18:43

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Just a reminder it seems like we need to put this in rust main/API before completing.

source.write_text(rewritten)


def workflow_exports() -> list[str]:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I assume we need something like this for notification service too.

staged_notification / "_support",
]
staged_support = staged_workflow.parent / "_support"
merge_support_trees(staged_support_dirs, staged_support)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I don't think we should be merging the independent support directories into one. The support files should live with the service they are defined by.

This branch has not been deployed

No deployments
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