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
Reconcile the staging rebase: finish rename-followed ports, async selector resolution
Rebasing onto origin/staging carried staging's lib/copilot work into our
renamed lib/mothership files via rename detection; this finishes what the
replay left incomplete:
- Complete the #7151 port: cancel_workflow_run handler + registration on
the mothership executor (types, tests, and catalog entry had already
rename-followed in).
- pickRunBlockOutputs awaits the now-async resolveOutputIds (#7346 made
selector resolution child-workflow-aware) and re-imports isValidUuid.
- Slack execution stream + tool-call-lifecycle import getToolDisplayTitle
from the mothership tool-display module (#7296 semantics kept).
- Resolve leftover conflict markers from the first replay's failed batch
checkout (browser-tool hardening #7311, YAML bounds #7319 kept).
- Drop the obsolete lib/mothership/tools/server/blocks scan root: the
block-metadata tool died in the dead-code sweep; blocks reads flow
through the already-guarded v2 blocks routes.
- Regenerate OpenAPI, CLI API, and CLI docs from the merged contracts.
Claude-Session: https://claude.ai/code/session_01CgaxNAaeD3taGdghbXn17w
Copy file name to clipboardExpand all lines: apps/docs/content/docs/cli/reference.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5497,7 +5497,7 @@ sim workflows run <workflowId> [options]
5497
5497
|`--input <json\|@file>`| No | Trigger input as JSON (JSON, or @path / @- to read a file or stdin). |
5498
5498
|`--async`| No | Queue the run and return immediately. |
5499
5499
|`--execution-timeout-seconds <value>`| No | Maximum duration of an asynchronous run, in seconds, capped by the plan's execution timeout. Requires `async: true`; otherwise returns `400`. |
5500
-
|`--select-output <value...>`| No | Return blockName.field values (e.g. agent_1.content) — in blockOutputs on a sync run, or from the streamed result with --follow; missing fields are omitted. Not available with --async (space-separated, or @path / @- with one value per line; @@value for a literal leading @). |
5500
+
|`--select-output <value...>`| No | Return blockName.field values (e.g. agent_1.content), or childWorkflowId.blockName.field for a child workflow (applies to every invocation) — in blockOutputs on a sync run, or from the streamed result with --follow; missing fields are omitted. Not available with --async (space-separated, or @path / @- with one value per line; @@value for a literal leading @). |
5501
5501
|`--include-file-base64`| No | Inline eligible output files as base64 content. Rejected when `async` is true. |
5502
5502
|`--no-include-file-base64`| No | Send --include-file-base64 as false. |
5503
5503
|`--base64-max-bytes <value>`| No | Maximum total bytes of file content to inline as base64, lowering but never raising the server limit of 16 MiB. Rejected when `async` is true. |
Copy file name to clipboardExpand all lines: apps/docs/content/docs/cli/workflows.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -533,7 +533,7 @@ sim workflows run <workflowId> [options]
533
533
|`--input <json\|@file>`| No | Trigger input as JSON (JSON, or @path / @- to read a file or stdin). |
534
534
|`--async`| No | Queue the run and return immediately. |
535
535
|`--execution-timeout-seconds <value>`| No | Maximum duration of an asynchronous run, in seconds, capped by the plan's execution timeout. Requires `async: true`; otherwise returns `400`. |
536
-
|`--select-output <value...>`| No | Return blockName.field values (e.g. agent_1.content) — in blockOutputs on a sync run, or from the streamed result with --follow; missing fields are omitted. Not available with --async (space-separated, or @path / @- with one value per line; @@value for a literal leading @). |
536
+
|`--select-output <value...>`| No | Return blockName.field values (e.g. agent_1.content), or childWorkflowId.blockName.field for a child workflow (applies to every invocation) — in blockOutputs on a sync run, or from the streamed result with --follow; missing fields are omitted. Not available with --async (space-separated, or @path / @- with one value per line; @@value for a literal leading @). |
537
537
|`--include-file-base64`| No | Inline eligible output files as base64 content. Rejected when `async` is true. |
538
538
|`--no-include-file-base64`| No | Send --include-file-base64 as false. |
539
539
|`--base64-max-bytes <value>`| No | Maximum total bytes of file content to inline as base64, lowering but never raising the server limit of 16 MiB. Rejected when `async` is true. |
Copy file name to clipboardExpand all lines: apps/docs/openapi-v2-workflows.json
+15-3Lines changed: 15 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -10989,6 +10989,10 @@
10989
10989
"StoredChatDeploymentOutputConfig": {
10990
10990
"type": "object",
10991
10991
"properties": {
10992
+
"workflowId": {
10993
+
"description": "Child workflow containing the selected block. Omitted for the deployed workflow.",
10994
+
"type": "string"
10995
+
},
10992
10996
"blockId": {
10993
10997
"type": "string",
10994
10998
"description": "Block whose output the chat streams."
@@ -11298,6 +11302,11 @@
11298
11302
"ChatDeploymentOutputConfig": {
11299
11303
"type": "object",
11300
11304
"properties": {
11305
+
"workflowId": {
11306
+
"description": "Child workflow containing the selected block. Omit for the deployed workflow.",
11307
+
"type": "string",
11308
+
"minLength": 1
11309
+
},
11301
11310
"blockId": {
11302
11311
"type": "string",
11303
11312
"minLength": 1,
@@ -11719,7 +11728,7 @@
11719
11728
"type": "boolean"
11720
11729
},
11721
11730
"selectedOutputs": {
11722
-
"description": "Block output references to include in the response, as `blockId`, `blockId.path`, or `BlockName.path` (resolved against the workflow state being run). On a sync request the named outputs come back in `blockOutputs`, keyed by these selector strings; on a stream they shape the streamed envelope. Selectors that resolve to no block or no value are omitted. Rejected when `async` is true — a queued run has produced nothing to select; narrow the finished run via the run resource instead.",
11731
+
"description": "Block output references to include in the response. Use `<blockName>.<outputPath>` for the executed workflow or `<childWorkflowId>.<blockName>.<outputPath>` for a child workflow; block names are normalized workflow reference names, and selecting a child workflow applies to every invocation of it. On a sync request the named outputs come back in `blockOutputs`, keyed by these selector strings; on a stream they shape the streamed envelope. Selectors that resolve to no block or no value are omitted. Rejected when `async` is true — a queued run has produced nothing to select; narrow the finished run via the run resource instead.",
11723
11732
"maxItems": 100,
11724
11733
"type": "array",
11725
11734
"items": {
@@ -12412,7 +12421,7 @@
12412
12421
"description": "Whether a paused execution was cancelled."
12413
12422
},
12414
12423
"reason": {
12415
-
"description": "Machine-readable cancellation outcome, present on every cancellation including full successes. `recorded` is the success value. `already_cancelled`, `already_completed`, and `already_failed` mean the run had already reached that terminal state, so nothing was cancelled and `durablyRecorded` is false. `redis_unavailable` and `redis_write_failed` mean the distributed cancellation signal was not written, so an already-running execution may not observe the cancellation. `paused_event_publish_failed` and `paused_database_cancel_failed` name the failing step for a paused run.",
12424
+
"description": "Machine-readable cancellation outcome, present on every cancellation including full successes. `recorded` and `queue_cancelled` are successful cancellation values. `already_cancelled`, `already_completed`, and `already_failed` mean the run had already reached that terminal state, so nothing was cancelled and `durablyRecorded` is false. The remaining values identify a degraded or incomplete cancellationstep.",
0 commit comments