{ "$comment": [ "Which `workflows/99_e2e` fixtures this app implements, and which individual", "tests its runtime cannot pass yet. Format and ratcheting rules:", "`packages/core/e2e/e2e-conformance.example.json`.", "", "Grow the list as fixtures are ported to `workflows/99_e2e.py`, one at a time,", "and only once the test passes. Never shrink it without saying why." ], "language": "python", "fixtures": [ "abortParallelWorkflow", "abortReasonWorkflow", "abortTimeoutWorkflow", "abortViaHookWorkflow", "addTenWorkflow", "errorFatalCatchable", "errorRetryCustomDelay", "errorRetryDisabled", "errorRetryFatal", "errorRetrySuccess", "errorStepThrowFatalRoundTrip", "errorWorkflowThrowFatalRoundTrip", "hookAdoptOwnerResultWorkflow", "hookClaimOnlyMutexWorkflow", "hookCleanupTestWorkflow", "hookDisposeTestWorkflow", "hookGetConflictThenStepParallelWorkflow", "hookGetConflictWithParallelStepWorkflow", "hookGetConflictWithPriorStepWorkflow", "hookGetConflictWorkflow", "hookSignalOwnerWorkflow", "hookTokenReuseLoopWorkflow", "hookWithSleepFinalStepWorkflow", "hookWithSleepWorkflow", "hookWorkflow", "metadataFromHelperWorkflow", "nullByteWorkflow", "outputStreamInsideStepWorkflow", "outputStreamWorkflow", "parallelSleepWorkflow", "promiseAllWorkflow", "promiseAnyWorkflow", "promiseRaceStressTestWorkflow", "promiseRaceWorkflow", "retainedInterleavingWorkflow", "setAttributesFireAndForgetWorkflow", "setAttributesInsideStepWorkflow", "setAttributesParallelWorkflow", "setAttributesThrowsAfterWorkflow", "setAttributesValidationWorkflow", "setAttributesWorkflow", "sleepInLoopWorkflow", "sleepWinsRaceWorkflow", "sleepWithSequentialStepsWorkflow", "sleepingWorkflow", "spawnWorkflowFromStepWorkflow", "stepNotRegisteredCatchable", "stepNotRegisteredUncaught", "stepWinsRaceWorkflow", "utf8StreamWorkflow", "writableForwardedFromStepWorkflow", "writableForwardedFromWorkflowWorkflow" ], "unsupported": { "fire-and-forget: void setAttributes lands without awaiting": "`set_attributes()` is now an `async def`: scheduling it can reproduce the unawaited writes before a later suspension, but the final scheduled coroutine does not start before the workflow body returns, so there is no final `attr_set` to drain. The run completes with `phase: mid` instead of `phase: done`.", "validation DX: invalid writes throw catchable FatalErrors naming rule and limit": "The new `set_attributes()` validator still raises a catchable `FatalError` for a reserved key, but its message ends at `starts with reserved prefix '$'` and no longer names the `allow_reserved_attributes=True` escape hatch that this test requires. The other six validation cases and the valid write afterwards pass." } }