Repository navigation
docs(workflow): pin run identity in the domain glossary - #3898
Conversation
"Run" is ambiguous in the code itself. Composite and sub-workflow nodes build records typed WorkflowRun with generated ids that are never persisted, which is why observability correlates on the root id rather than the local one.
|
Warning Review limit reached
Next review available in: 25 minutes Limit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?Wait for the limit to reset, then comment An organization admin can change what happens after included review limits in Billing. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
📦 Client bundle boundary
A server module in a client graph aborts hydration in the browser. New leaks fail CI; known leaks are tracked in |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1bfae8bf76
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
The glossary previously described only part of the synthetic workflow-run surface and treated all composite child records as generated. Map and loop also create local WorkflowRun-shaped records, and only subWorkflow adds a random component, so the documentation now distinguishes those identities before readers instrument the wrong run ID. Constraint: PR review thread identified missing map and loop records and inaccurate generated-ID language. Rejected: Keep the shorter glossary wording | it omitted composite records that affect instrumentation and lookup semantics. Confidence: high Scope-risk: narrow Directive: Keep WorkflowHandle.runId as the only externally addressable workflow run identity unless the backend persists child run records. Tested: deno fmt --check CONTEXT.md; git diff --check; scanned CONTEXT.md for em/en dash characters. Not-tested: Runtime workflow execution, documentation-only correction.
"Run" is ambiguous in the code itself, and the ambiguity has already cost work.
A run is one backend-persisted execution record, identified by the id
WorkflowHandle.runIdreturns. Butparallel,branchandsubWorkfloweach construct a second record of the same shape — typedWorkflowRun, with a generated id — while executing their children. Those ids are never persisted and cannot be looked up by a caller.This is why the OpenTelemetry work in #3888 threads a root run id through the executor rather than reading
run.idlocally: a span correlated on a synthetic id is a span nobody can find. Pinning the term so the next person does not have to rediscover it from the executor internals.Glossary only — no behaviour change.