Repository navigation
Add original execution IDs to Temporal workflow spans - #958
Ehsan-hash wants to merge 3 commits into
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
|
||
| @pytest_asyncio.fixture | ||
| async def temporal_local_env(): | ||
| """Create a full local Temporal server for capabilities absent from the test server.""" |
There was a problem hiding this comment.
this doesn't seem right, why do we have it?
There was a problem hiding this comment.
The new reset regression test uses this fixture because WorkflowEnvironment.start_time_skipping() returns UNIMPLEMENTED for ResetWorkflowExecution. start_local() provides that RPC without a hosted Temporal service.
The test performs a real reset so the original execution ID differs from the current run ID. That distinction catches accidentally recording run_id as original_execution_run_id, which an ordinary run would miss. The existing tests still use temporal_env; only this reset test starts the local server.
There was a problem hiding this comment.
hmm, i wonder if we can better consolidate the tests then?
There was a problem hiding this comment.
Consolidated the setup into the existing temporal_env fixture. Ordinary tests still use the time-skipping server; only the reset test selects the local server through indirect parametrization. Both modes now share the download cache setup, with the appropriate TTL option for each server.
The real reset assertions are unchanged. The full Temporal matrix passes: 1.34.0 has 11 passes; 1.20.0 and 1.19.0 each have 10 passes and one expected skip for the unavailable metadata field. make fixup and independent review also pass.
|
The remaining Windows Python 3.11 shard-2 failure occurs during dependency installation for The aggregate |
Temporal resets create a new run ID, which makes related workflow traces hard to connect. Workflow spans now include
temporal.original_execution_run_idwhen the Temporal SDK exposes it. Currenttemporal.run_idand run-based span identities remain separate, and older supported SDK versions omit the unavailable field.Closes #868.
Validation on Python 3.14.7:
make fixup, scoped Ruff andgit diff --checkpass. Fresh independent review covers both changed files.The tests use synthetic local workflows and an in-memory logger. No live Braintrust account, provider model, new cassette recording, dependency or release change is involved. The full Python/provider matrix was not run locally.
AI-assisted with Codex: gpt-6.1-sol/high for integration, gpt-5.6-luna/high for implementation and gpt-5.6-sol/high for independent review.