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
feat(automation): surface structured-region body steps in run observability (#1505) (#1580)
loop / parallel / try_catch ran their body, branch and handler regions against
a region-local step log that was discarded, so listRuns/getRun showed the
container as a single opaque step. runRegion() now RETURNS its body steps and the
container folds them into the parent run log via a new NodeExecutionResult.childSteps
field, appended right after the container's own step.
Each surfaced step is tagged with its immediate container via three new optional
fields on ExecutionStepLogSchema (and the engine's StepLogEntry):
- parentNodeId: enclosing loop/parallel/try_catch node
- iteration: zero-based loop iteration or parallel branch index
- regionKind: loop-body | parallel-branch | try | catch
Tagging fills only undefined fields, so nested regions keep each step's innermost
container. Failed try-attempt partial steps stay unsurfaced (preserves try_catch
retry semantics). Fully additive. +4 tests across loop/parallel/try_catch.
Resolves the ADR-0031 #1505 / TODO(#1479) follow-up.
Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
**Status**: Accepted (2026-06-02) — implemented in #1482 (spec + loop), #1489 (parallel), #1499 (try/catch/retry), #1500 (BPMN mapping); docs #1497. Follow-ups: #1504 (BPMN XML plugin); ~~#1505 (region step logs)~~**done** — `runRegion` now returns its body steps and the container folds them into the run log via `NodeExecutionResult.childSteps`, tagged with `parentNodeId` / `iteration` / `regionKind` (`ExecutionStepLogSchema`).
4
4
**Deciders**: ObjectStack Protocol Architects
5
5
**Builds on**: [ADR-0018](./0018-unified-node-action-registry.md) (open action registry — node types are an open vocabulary, executors are the source of truth), [ADR-0019](./0019-approval-as-flow-node.md) (durable-pause node via suspend/resume), [ADR-0010](./0010-nl-to-flow-authoring.md) + [ADR-0011](./0011-actions-as-ai-tools.md) (AI flow authoring — **the design center**)
0 commit comments