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
@@ -5157,7 +5157,7 @@ sim workflows run <workflowId> [options]
5157
5157
|`--input <json\|@file>`| No | Trigger input as JSON (JSON, or @path / @- to read a file or stdin). |
5158
5158
|`--async`| No | Queue the run and return immediately. |
5159
5159
|`--execution-timeout-seconds <value>`| No | Requested server-side timeout for an asynchronous run, in seconds. An upper bound, not the effective timeout: the run uses the smaller of this value and the plan's execution timeout, so requesting more than the plan allows silently yields the plan timeout. Rejected with `400` unless `async` is true. |
5160
-
|`--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 @). |
5160
+
|`--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 @). |
5161
5161
|`--include-file-base64`| No | Inline eligible output files as base64 content. Rejected when `async` is true. |
5162
5162
|`--no-include-file-base64`| No | Send --include-file-base64 as false. |
5163
5163
|`--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
@@ -532,7 +532,7 @@ sim workflows run <workflowId> [options]
532
532
|`--input <json\|@file>`| No | Trigger input as JSON (JSON, or @path / @- to read a file or stdin). |
533
533
|`--async`| No | Queue the run and return immediately. |
534
534
|`--execution-timeout-seconds <value>`| No | Requested server-side timeout for an asynchronous run, in seconds. An upper bound, not the effective timeout: the run uses the smaller of this value and the plan's execution timeout, so requesting more than the plan allows silently yields the plan timeout. Rejected with `400` unless `async` is true. |
535
-
|`--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 @). |
535
+
|`--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 @). |
536
536
|`--include-file-base64`| No | Inline eligible output files as base64 content. Rejected when `async` is true. |
537
537
|`--no-include-file-base64`| No | Send --include-file-base64 as false. |
538
538
|`--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
@@ -8600,6 +8600,10 @@
8600
8600
"StoredChatDeploymentOutputConfig": {
8601
8601
"type": "object",
8602
8602
"properties": {
8603
+
"workflowId": {
8604
+
"description": "Child workflow containing the selected block. Omitted for the deployed workflow.",
8605
+
"type": "string"
8606
+
},
8603
8607
"blockId": {
8604
8608
"type": "string",
8605
8609
"description": "Block whose output the chat streams."
@@ -8909,6 +8913,11 @@
8909
8913
"ChatDeploymentOutputConfig": {
8910
8914
"type": "object",
8911
8915
"properties": {
8916
+
"workflowId": {
8917
+
"description": "Child workflow containing the selected block. Omit for the deployed workflow.",
8918
+
"type": "string",
8919
+
"minLength": 1
8920
+
},
8912
8921
"blockId": {
8913
8922
"type": "string",
8914
8923
"minLength": 1,
@@ -9330,7 +9339,7 @@
9330
9339
"type": "boolean"
9331
9340
},
9332
9341
"selectedOutputs": {
9333
-
"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.",
9342
+
"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.",
9334
9343
"maxItems": 100,
9335
9344
"type": "array",
9336
9345
"items": {
@@ -10023,7 +10032,7 @@
10023
10032
"description": "Whether a paused execution was cancelled."
10024
10033
},
10025
10034
"reason": {
10026
-
"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.",
10035
+
"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