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
@@ -76,6 +76,7 @@ them from the declared locations.
76
76
|`signal_query_runtime_contract`|`durable-workflow.github.io`|`static/platform-conformance/signal-query-runtime-scenarios.json`| Live published-artifact scenarios for signal delivery and query consistency across PHP and Python workers, CLI and SDK clients, replay timing, terminal runs, malformed payloads, and operator visibility. |
77
77
|`history_replay_bundles`|`durable-workflow.github.io`, `workflow`, `sdk-python`|`static/platform-conformance/replay-runtime-scenarios.json`, `tests/Fixtures/V2/GoldenHistory/`, `tests/fixtures/golden_history/`| Deterministic replay coverage for frozen history bundles, worker restart replay, adversarial refusal, and in-flight signal timing across the official PHP and Python runtimes. |
78
78
|`namespace_runtime_contract`|`durable-workflow.github.io`|`static/platform-conformance/namespace-runtime-scenarios.json`| Live published-artifact scenarios for Temporal-parity namespace isolation, lifecycle cleanup, CLI and SDK namespace selection, PHP worker routing, Waterline visibility, Nexus opt-in crossing, and search-attribute value query isolation. |
79
+
|`child_workflow_runtime_contract`|`durable-workflow.github.io`|`static/platform-conformance/child-workflow-runtime-scenarios.json`| Live published-artifact scenarios for child workflow orchestration across PHP and Python workers, cross-language parent/child execution, failure and cancellation propagation, replay after worker restart, concurrent fan-out, and namespace behavior. |
79
80
|`failure_repair_actionability`|`server`, `workflow`|`docs/contracts/external-task-result.md`, `docs/contracts/replay-verification.md`, fixture pointers therein | Failure objects and repair / actionability shapes for stuck tasks, deterministic failure, and replay-mismatch surfaces. |
80
81
|`cli_json_envelopes`|`cli`|`tests/fixtures/control-plane/`, `schemas/`| The `--output=json` and `--output=jsonl` envelopes that automation depends on. Diagnostic-only fields are listed and excluded from the contract diff. |
81
82
|`waterline_observer_envelopes`|`waterline`| (TBD: `tests/fixtures/observer/`) | The `/waterline/api/v2/*` shapes and operator dashboard JSON envelopes. Status: provisional — fixtures land alongside the next Waterline contract slice. |
@@ -186,6 +187,35 @@ and include:
186
187
- result-record evidence with artifact versions, timestamps, outcomes,
187
188
and routed product findings.
188
189
190
+
### Child workflow runtime contract
191
+
192
+
The `child_workflow_runtime_contract` category is stable and
193
+
load-bearing. It must run against published install channels only, pin
194
+
the resolved artifact versions in the result, and name every required
195
+
child workflow scenario as `pass`, `fail`, `unsupported`, `not_covered`,
196
+
or `runner_blocked` with a linked finding. A single parent/child smoke is
197
+
nonconforming until the run covers PHP and Python worker participation,
198
+
same-language and cross-language parent/child execution, typed child
199
+
failure propagation, parent-to-child cancellation, direct child
200
+
cancellation observed by the parent, replay across parent-worker
201
+
restart, concurrent fan-out, and namespace behavior.
202
+
203
+
Required scenarios are published in the public child workflow scenario
204
+
manifest at `static/platform-conformance/child-workflow-runtime-scenarios.json`
205
+
and include:
206
+
207
+
- published-artifact install-only evidence for server, CLI, PHP runtime,
208
+
and Python SDK;
209
+
- Python parent to Python child and PHP parent to PHP child baselines;
210
+
- PHP parent to Python child and Python parent to PHP child
211
+
cross-language execution;
212
+
- typed child failure round-trip across the parent/child runtime matrix;
213
+
- parent cancellation propagation to a running child and direct child
214
+
cancellation observed by the parent as a typed cancellation;
215
+
- replay across parent-worker restart while awaiting a child;
216
+
- concurrent child fan-out with aggregate result and timestamp evidence;
217
+
- namespace behavior for parent/child lineage.
218
+
189
219
## Pass / fail rules
190
220
191
221
The harness runs each fixture against the implementation under test and
@@ -213,14 +243,15 @@ emits a structured result. The rules below are normative.
213
243
release does not conform.
214
244
215
245
5.**Stable runtime scenario coverage.** A stable runtime category such
216
-
as `signal_query_runtime_contract`, `history_replay_bundles`, or
217
-
`namespace_runtime_contract` must
218
-
report every scenario it declares with one of the statuses published
219
-
by its runtime scenario manifest: `pass`, `fail`, `unsupported`,
220
-
`not_covered`, or `runner_blocked`. Full conformance requires every
221
-
required scenario to pass. A smoke-only subset, omitted scenario,
222
-
unsupported public surface, uncovered cell, or runner-blocked cell is
223
-
nonconforming and must link the owning finding.
246
+
as `signal_query_runtime_contract`, `history_replay_bundles`,
247
+
`namespace_runtime_contract`, or
248
+
`child_workflow_runtime_contract` must report every scenario it
249
+
declares with one of the statuses published by its runtime scenario
250
+
manifest: `pass`, `fail`, `unsupported`, `not_covered`, or
251
+
`runner_blocked`. Full conformance requires every required scenario
252
+
to pass. A smoke-only subset, omitted scenario, unsupported public
253
+
surface, uncovered cell, or runner-blocked cell is nonconforming and
254
+
must link the owning finding.
224
255
225
256
6.**Provisional categories warn but do not fail.** A failed fixture in
226
257
a provisional category emits a warning in the harness output. A
@@ -351,6 +382,14 @@ docs. It indexes them under one normative declaration so a single
351
382
`sdk-python/tests/fixtures/golden_history/` are the replay scenario and
'description' => 'Live published-artifact scenarios for child workflow orchestration across PHP and Python workers, cross-language parent/child execution, failure and cancellation propagation, replay after worker restart, concurrent fan-out, and namespace behavior.',
0 commit comments