Skip to content

[Brook] Named a Stream by a renamed definition. - #358

Closed
moetemp wants to merge 1 commit into
moe/brook/v4/p30-workflow-local-writesfrom
moe/brook/v4/p31-renamed-definitions
Closed

moetemp wants to merge 1 commit into
moe/brook/v4/p30-workflow-local-writesfrom
moe/brook/v4/p31-renamed-definitions

Conversation

@moetemp

@moetemp moetemp commented Oct 22, 2026

Copy link
Copy Markdown
Owner

This PR names a Stream by a renamed definition, and removes the name= option (S111).

What changed?

streams.with_name(Events, "turn-3") returns a subclass of Events with the same Topics and only the Stream name changed. Events stays unchanged, and Events.tokens is still a Topic of the renamed definition.
workflow.create_stream, create_stream_nowait, stream_handle and StreamClient.workflow_stream no longer take name=. The definition's name is the Stream name. The client id= of create and get_handle stays.
The examples and tests that passed name= now pass a renamed definition.

Why?

S111: a name passed beside the definition is a second way to say which Stream it is. A renamed definition is one value that a Workflow and a client share.
It is a module function and not Events.with_name(...), because @streams.defn can't add a method that a type checker sees. The function returns the definition's own type, so Topic typing and handle types stay as they are.

How did you test it?

New tests: a renamed definition gives another Stream id and a later run reattaches to it with stream_handle(streams.with_name(...)), and the original definition keeps its name and Topics. The streams suite passes on the memory and Redis backends, including the examples, and poe lint is green.

🤖 Generated with Claude Code

@moetemp

moetemp commented Oct 25, 2026

Copy link
Copy Markdown
Owner Author

Closing as stale. This layer is folded into the v5 tip, #365, and the upstream review uses a fresh series instead. Plan: https://www.notion.so/4048fc567738814990b7c796ac28fe3f

@moetemp moetemp closed this Oct 25, 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