Skip to content

Pinned the Option 7 (external streams) Core and regenerated protos. - #71

Closed
moetemp wants to merge 3 commits into
moe/AI-198-if-py-11-query-publish-refusalfrom
moe/AI-198-o7-py-1-core-pin
Closed

moetemp wants to merge 3 commits into
moe/AI-198-if-py-11-query-publish-refusalfrom
moe/AI-198-o7-py-1-core-pin

Conversation

@moetemp

@moetemp moetemp commented Oct 5, 2026 •

Copy link
Copy Markdown
Owner

This PR pins the Option 7 Core, Max's External Workflow Streams prototype in Core, and regenerates the bridge protos from it.

What changed?

temporalio/bridge/sdk-core points at the top of the Option 7 Core chain, the channel wake in moetemp/sdk-rust#32. poe gen-protos from that pin adds Max's external_stream package to the bridge protos, his external stream jobs and commands in the activation and command protos, the external_data additions, and the WorkflowStreamChannels command the channel wake reports with. Nothing under temporalio/api changes, since the channel api and the envelope are pinned lower in the chain.

Three ### Fixed changelog lines describe the Core fixes this pin brings: a wake met during cold replay resumes the waits, a stale wait no longer forces an output replacement task, and a retained task stays alive with the cache off.

The pin moved once after it was first pushed, to the Core head that adds the reconciled channel tests. That change is test-only on the Rust side, so no generated file moved.

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

Why?

Max's Python commits in the next PR expect his Core. Pinning first, with the regen, settles the gitlink and every generated file before the import. His commits that only moved the pin or regenerated protos then drop out as empty, and the import shows his hand-written code. One pin covers the whole Option 7 Core, wake included, since the Rust chain is finished before the Python side starts.

How did you test it?

Link to a test plan if any -

  • Unit Tests
  • Staging
  • End to End Tests

The bridge builds, the lint set is clean (ruff, pyright, mypy, basedpyright, pydocstyle and the bridge's clippy), and a second poe gen-protos leaves the tree as committed. tests/streams, the replayer, worker and activity suites pass on the dev server the fixtures start. tests/streams also passes with -E against a local server built from the channel server PRs.

@moetemp

moetemp commented Oct 6, 2026

Copy link
Copy Markdown
Owner Author

Replaced by #100 in the v5 series (phase 1, Signal wake only). 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