You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
AI recommendation: This is a test-infrastructure fix for a flaky test suite: it gives each spawned Local World test server its own WORKFLOW_LOCAL_DATA_DIR so concurrent test servers stop re-enqueuing each other's in-flight runs, plus a Windows-safe teardown. packages/world-testing/src/util.mts exists on stable with the same unisolated startServer() shared-.workflow-data behavior, and WORKFLOW_LOCAL_DATA_DIR is already supported by world-local on stable, so the fix applies to existing behavior and keeps the maintenance line's tests reliable (note: stable's startServer lacks the opts.env parameter, so a small conflict resolution may be needed).
Merge conflicts were resolved by AI (opencode with anthropic/claude-opus-5). Please review the conflict resolution carefully before merging.
hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_01KYB5ZASW23HBJ4WG10RC37A5 | 🔍 observability
hookClaimOnlyMutexWorkflow - hook works as a pure run mutex without payload data | wrun_01KYB6018JQYZA02S424DTBD2N | 🔍 observability
hookAdoptOwnerResultWorkflow - duplicate adopts the owner result via conflict.returnValue | wrun_01KYB60BFE47C892AK86B1SHHQ | 🔍 observability
hookSignalOwnerWorkflow - duplicate forwards its payload to the owner via resumeHook | wrun_01KYB5ZGNZHTT7P6A57G05SJTM | 🔍 observability
hookSupersedeOwnerWorkflow - duplicate cancels the owner and claims the released token | wrun_01KYB5ZJMBBSTYAZ2WRQA232DW | 🔍 observability
resume-or-start route pattern - resumeHook retried after start() reaches the new run | wrun_01KYB60381CDYT3MM95ZEMJ59W | 🔍 observability
hookDisposeTestWorkflow - hook token reuse after explicit disposal while workflow still running | wrun_01KYB607576DEERRW27639Z1XW | 🔍 observability
stepFunctionWithClosureWorkflow - step function with closure variables passed as argument | wrun_01KYB5ZENEBQAGCN0A7KH4HM9Z | 🔍 observability
hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_01KYB5ZASW23HBJ4WG10RC37A5 | 🔍 observability
hookClaimOnlyMutexWorkflow - hook works as a pure run mutex without payload data | wrun_01KYB6018JQYZA02S424DTBD2N | 🔍 observability
hookAdoptOwnerResultWorkflow - duplicate adopts the owner result via conflict.returnValue | wrun_01KYB60BFE47C892AK86B1SHHQ | 🔍 observability
hookSignalOwnerWorkflow - duplicate forwards its payload to the owner via resumeHook | wrun_01KYB5ZGNZHTT7P6A57G05SJTM | 🔍 observability
hookSupersedeOwnerWorkflow - duplicate cancels the owner and claims the released token | wrun_01KYB5ZJMBBSTYAZ2WRQA232DW | 🔍 observability
resume-or-start route pattern - resumeHook retried after start() reaches the new run | wrun_01KYB60381CDYT3MM95ZEMJ59W | 🔍 observability
hookDisposeTestWorkflow - hook token reuse after explicit disposal while workflow still running | wrun_01KYB607576DEERRW27639Z1XW | 🔍 observability
stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars) | wrun_01KYB6087JZBH9JC0YE9J3FE83 | 🔍 observability
stepFunctionWithClosureWorkflow - step function with closure variables passed as argument | wrun_01KYB5ZENEBQAGCN0A7KH4HM9Z | 🔍 observability
hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_01KYB5ZASW23HBJ4WG10RC37A5 | 🔍 observability
hookClaimOnlyMutexWorkflow - hook works as a pure run mutex without payload data | wrun_01KYB6018JQYZA02S424DTBD2N | 🔍 observability
hookAdoptOwnerResultWorkflow - duplicate adopts the owner result via conflict.returnValue | wrun_01KYB60BFE47C892AK86B1SHHQ | 🔍 observability
hookSignalOwnerWorkflow - duplicate forwards its payload to the owner via resumeHook | wrun_01KYB5ZGNZHTT7P6A57G05SJTM | 🔍 observability
hookSupersedeOwnerWorkflow - duplicate cancels the owner and claims the released token | wrun_01KYB5ZJMBBSTYAZ2WRQA232DW | 🔍 observability
resume-or-start route pattern - resumeHook retried after start() reaches the new run | wrun_01KYB60381CDYT3MM95ZEMJ59W | 🔍 observability
hookDisposeTestWorkflow - hook token reuse after explicit disposal while workflow still running | wrun_01KYB607576DEERRW27639Z1XW | 🔍 observability
stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars) | wrun_01KYB6087JZBH9JC0YE9J3FE83 | 🔍 observability
stepFunctionWithClosureWorkflow - step function with closure variables passed as argument | wrun_01KYB5ZENEBQAGCN0A7KH4HM9Z | 🔍 observability
hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_01KYB5ZASW23HBJ4WG10RC37A5 | 🔍 observability
hookClaimOnlyMutexWorkflow - hook works as a pure run mutex without payload data | wrun_01KYB6018JQYZA02S424DTBD2N | 🔍 observability
hookAdoptOwnerResultWorkflow - duplicate adopts the owner result via conflict.returnValue | wrun_01KYB60BFE47C892AK86B1SHHQ | 🔍 observability
hookSignalOwnerWorkflow - duplicate forwards its payload to the owner via resumeHook | wrun_01KYB5ZGNZHTT7P6A57G05SJTM | 🔍 observability
hookSupersedeOwnerWorkflow - duplicate cancels the owner and claims the released token | wrun_01KYB5ZJMBBSTYAZ2WRQA232DW | 🔍 observability
resume-or-start route pattern - resumeHook retried after start() reaches the new run | wrun_01KYB60381CDYT3MM95ZEMJ59W | 🔍 observability
hookDisposeTestWorkflow - hook token reuse after explicit disposal while workflow still running | wrun_01KYB607576DEERRW27639Z1XW | 🔍 observability
stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars) | wrun_01KYB6087JZBH9JC0YE9J3FE83 | 🔍 observability
stepFunctionWithClosureWorkflow - step function with closure variables passed as argument | wrun_01KYB5ZENEBQAGCN0A7KH4HM9Z | 🔍 observability
hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_01KYB5ZASW23HBJ4WG10RC37A5 | 🔍 observability
hookClaimOnlyMutexWorkflow - hook works as a pure run mutex without payload data | wrun_01KYB6018JQYZA02S424DTBD2N | 🔍 observability
hookAdoptOwnerResultWorkflow - duplicate adopts the owner result via conflict.returnValue | wrun_01KYB60BFE47C892AK86B1SHHQ | 🔍 observability
hookSignalOwnerWorkflow - duplicate forwards its payload to the owner via resumeHook | wrun_01KYB5ZGNZHTT7P6A57G05SJTM | 🔍 observability
hookSupersedeOwnerWorkflow - duplicate cancels the owner and claims the released token | wrun_01KYB5ZJMBBSTYAZ2WRQA232DW | 🔍 observability
resume-or-start route pattern - resumeHook retried after start() reaches the new run | wrun_01KYB60381CDYT3MM95ZEMJ59W | 🔍 observability
hookDisposeTestWorkflow - hook token reuse after explicit disposal while workflow still running | wrun_01KYB607576DEERRW27639Z1XW | 🔍 observability
stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars) | wrun_01KYB6087JZBH9JC0YE9J3FE83 | 🔍 observability
stepFunctionWithClosureWorkflow - step function with closure variables passed as argument | wrun_01KYB5ZENEBQAGCN0A7KH4HM9Z | 🔍 observability
hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_01KYB5ZASW23HBJ4WG10RC37A5 | 🔍 observability
hookClaimOnlyMutexWorkflow - hook works as a pure run mutex without payload data | wrun_01KYB6018JQYZA02S424DTBD2N | 🔍 observability
hookAdoptOwnerResultWorkflow - duplicate adopts the owner result via conflict.returnValue | wrun_01KYB60BFE47C892AK86B1SHHQ | 🔍 observability
hookSignalOwnerWorkflow - duplicate forwards its payload to the owner via resumeHook | wrun_01KYB5ZGNZHTT7P6A57G05SJTM | 🔍 observability
hookSupersedeOwnerWorkflow - duplicate cancels the owner and claims the released token | wrun_01KYB5ZJMBBSTYAZ2WRQA232DW | 🔍 observability
resume-or-start route pattern - resumeHook retried after start() reaches the new run | wrun_01KYB60381CDYT3MM95ZEMJ59W | 🔍 observability
hookDisposeTestWorkflow - hook token reuse after explicit disposal while workflow still running | wrun_01KYB607576DEERRW27639Z1XW | 🔍 observability
stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars) | wrun_01KYB6087JZBH9JC0YE9J3FE83 | 🔍 observability
stepFunctionWithClosureWorkflow - step function with closure variables passed as argument | wrun_01KYB5ZENEBQAGCN0A7KH4HM9Z | 🔍 observability
hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_01KYB5ZASW23HBJ4WG10RC37A5 | 🔍 observability
hookClaimOnlyMutexWorkflow - hook works as a pure run mutex without payload data | wrun_01KYB6018JQYZA02S424DTBD2N | 🔍 observability
hookAdoptOwnerResultWorkflow - duplicate adopts the owner result via conflict.returnValue | wrun_01KYB60BFE47C892AK86B1SHHQ | 🔍 observability
hookSignalOwnerWorkflow - duplicate forwards its payload to the owner via resumeHook | wrun_01KYB5ZGNZHTT7P6A57G05SJTM | 🔍 observability
hookSupersedeOwnerWorkflow - duplicate cancels the owner and claims the released token | wrun_01KYB5ZJMBBSTYAZ2WRQA232DW | 🔍 observability
resume-or-start route pattern - resumeHook retried after start() reaches the new run | wrun_01KYB60381CDYT3MM95ZEMJ59W | 🔍 observability
hookDisposeTestWorkflow - hook token reuse after explicit disposal while workflow still running | wrun_01KYB607576DEERRW27639Z1XW | 🔍 observability
stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars) | wrun_01KYB6087JZBH9JC0YE9J3FE83 | 🔍 observability
stepFunctionWithClosureWorkflow - step function with closure variables passed as argument | wrun_01KYB5ZENEBQAGCN0A7KH4HM9Z | 🔍 observability
hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_01KYB5ZASW23HBJ4WG10RC37A5 | 🔍 observability
hookClaimOnlyMutexWorkflow - hook works as a pure run mutex without payload data | wrun_01KYB6018JQYZA02S424DTBD2N | 🔍 observability
hookAdoptOwnerResultWorkflow - duplicate adopts the owner result via conflict.returnValue | wrun_01KYB60BFE47C892AK86B1SHHQ | 🔍 observability
hookSignalOwnerWorkflow - duplicate forwards its payload to the owner via resumeHook | wrun_01KYB5ZGNZHTT7P6A57G05SJTM | 🔍 observability
hookSupersedeOwnerWorkflow - duplicate cancels the owner and claims the released token | wrun_01KYB5ZJMBBSTYAZ2WRQA232DW | 🔍 observability
hookDisposeTestWorkflow - hook token reuse after explicit disposal while workflow still running | wrun_01KYB607576DEERRW27639Z1XW | 🔍 observability
stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars) | wrun_01KYB6087JZBH9JC0YE9J3FE83 | 🔍 observability
stepFunctionWithClosureWorkflow - step function with closure variables passed as argument | wrun_01KYB5ZENEBQAGCN0A7KH4HM9Z | 🔍 observability
hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_01KYB5ZASW23HBJ4WG10RC37A5 | 🔍 observability
hookClaimOnlyMutexWorkflow - hook works as a pure run mutex without payload data | wrun_01KYB6018JQYZA02S424DTBD2N | 🔍 observability
hookAdoptOwnerResultWorkflow - duplicate adopts the owner result via conflict.returnValue | wrun_01KYB60BFE47C892AK86B1SHHQ | 🔍 observability
hookSignalOwnerWorkflow - duplicate forwards its payload to the owner via resumeHook | wrun_01KYB5ZGNZHTT7P6A57G05SJTM | 🔍 observability
hookSupersedeOwnerWorkflow - duplicate cancels the owner and claims the released token | wrun_01KYB5ZJMBBSTYAZ2WRQA232DW | 🔍 observability
resume-or-start route pattern - resumeHook retried after start() reaches the new run | wrun_01KYB60381CDYT3MM95ZEMJ59W | 🔍 observability
hookDisposeTestWorkflow - hook token reuse after explicit disposal while workflow still running | wrun_01KYB607576DEERRW27639Z1XW | 🔍 observability
stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars) | wrun_01KYB6087JZBH9JC0YE9J3FE83 | 🔍 observability
stepFunctionWithClosureWorkflow - step function with closure variables passed as argument | wrun_01KYB5ZENEBQAGCN0A7KH4HM9Z | 🔍 observability
hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_01KYB5ZASW23HBJ4WG10RC37A5 | 🔍 observability
hookClaimOnlyMutexWorkflow - hook works as a pure run mutex without payload data | wrun_01KYB6018JQYZA02S424DTBD2N | 🔍 observability
hookAdoptOwnerResultWorkflow - duplicate adopts the owner result via conflict.returnValue | wrun_01KYB60BFE47C892AK86B1SHHQ | 🔍 observability
hookSignalOwnerWorkflow - duplicate forwards its payload to the owner via resumeHook | wrun_01KYB5ZGNZHTT7P6A57G05SJTM | 🔍 observability
hookSupersedeOwnerWorkflow - duplicate cancels the owner and claims the released token | wrun_01KYB5ZJMBBSTYAZ2WRQA232DW | 🔍 observability
resume-or-start route pattern - resumeHook retried after start() reaches the new run | wrun_01KYB60381CDYT3MM95ZEMJ59W | 🔍 observability
hookDisposeTestWorkflow - hook token reuse after explicit disposal while workflow still running | wrun_01KYB607576DEERRW27639Z1XW | 🔍 observability
stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars) | wrun_01KYB6087JZBH9JC0YE9J3FE83 | 🔍 observability
stepFunctionWithClosureWorkflow - step function with closure variables passed as argument | wrun_01KYB5ZENEBQAGCN0A7KH4HM9Z | 🔍 observability
hookGetConflictWorkflow - hook.getConflict() resolves with the conflicting run when token is already registered | wrun_01KYB5ZASW23HBJ4WG10RC37A5 | 🔍 observability
hookClaimOnlyMutexWorkflow - hook works as a pure run mutex without payload data | wrun_01KYB6018JQYZA02S424DTBD2N | 🔍 observability
hookAdoptOwnerResultWorkflow - duplicate adopts the owner result via conflict.returnValue | wrun_01KYB60BFE47C892AK86B1SHHQ | 🔍 observability
hookSignalOwnerWorkflow - duplicate forwards its payload to the owner via resumeHook | wrun_01KYB5ZGNZHTT7P6A57G05SJTM | 🔍 observability
hookSupersedeOwnerWorkflow - duplicate cancels the owner and claims the released token | wrun_01KYB5ZJMBBSTYAZ2WRQA232DW | 🔍 observability
resume-or-start route pattern - resumeHook retried after start() reaches the new run | wrun_01KYB60381CDYT3MM95ZEMJ59W | 🔍 observability
hookDisposeTestWorkflow - hook token reuse after explicit disposal while workflow still running | wrun_01KYB607576DEERRW27639Z1XW | 🔍 observability
stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars) | wrun_01KYB6087JZBH9JC0YE9J3FE83 | 🔍 observability
stepFunctionWithClosureWorkflow - step function with closure variables passed as argument | wrun_01KYB5ZENEBQAGCN0A7KH4HM9Z | 🔍 observability
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automated backport of #3055 to
stable(backport job run).AI recommendation: This is a test-infrastructure fix for a flaky test suite: it gives each spawned Local World test server its own
WORKFLOW_LOCAL_DATA_DIRso concurrent test servers stop re-enqueuing each other's in-flight runs, plus a Windows-safe teardown.packages/world-testing/src/util.mtsexists onstablewith the same unisolatedstartServer()shared-.workflow-databehavior, andWORKFLOW_LOCAL_DATA_DIRis already supported byworld-localonstable, so the fix applies to existing behavior and keeps the maintenance line's tests reliable (note:stable'sstartServerlacks theopts.envparameter, so a small conflict resolution may be needed).Merge conflicts were resolved by AI (opencode with
anthropic/claude-opus-5). Please review the conflict resolution carefully before merging.