Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .changeset/storyboard-schema-task-completion-prefix.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
---

docs(storyboard-schema): document the `task_completion.<inner>` prefix for `context_outputs[].path`. When the immediate response is a non-terminal task envelope (`submitted`/`working`/`input-required`), the runner polls `tasks/get` until terminal and resolves the suffix against the completion artifact's `data` — needed for captures like seller-assigned `media_buy_id` on IO-signing flows. Requires runner >= adcp-client v6.7. Closes #3950.
15 changes: 15 additions & 0 deletions static/compliance/source/universal/storyboard-schema.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -403,6 +403,21 @@
# storyboard run)
# path: string (JSON path against this step's response body, e.g.
# "media_buy_id", "accounts[0].account_id", "plans[0].plan_id")
#
# Special path prefix `task_completion.<inner>`: when the immediate response
# is a non-terminal task envelope (status `submitted` / `working` /
# `input-required`, carrying a `task_id`), the runner polls `tasks/get`
# until the task reaches a terminal state and resolves `<inner>` against
# the completion artifact's `data` instead of the immediate response. Use
# for captures whose value only exists on the completion artifact — e.g.
# the seller-assigned `media_buy_id` on an IO-signing / async-signed HITL
# flow where `create_media_buy` returns `submitted` and the ID lands on
# the completion artifact. Without the prefix, the literal key
# `task_completion` is looked up on the immediate response, which fails
# as `capture_path_not_resolvable`. Requires runner >= adcp-client v6.7;
# older runners treat the prefix as a literal key. See adcp-client#1417
# (rationale) and adcp-client#1426 (implementation).
#
# Runner behavior:
# - Captures occur AFTER the step's validations pass. A failed step MUST NOT
# populate the context accumulator — downstream $context.<name> references
Expand Down
Loading