agent-orchestrator/packages
Harsh Batheja 76ced8ca4a fix(pipeline): address PR review — workspace guard, anyFailed bridge, deep-equal
Resolves three review comments on PR #1886:

1. **WorkspaceGuard (P1)** — tightened to require `dependsOn`. The engine's
   `collectSiblingArtifacts` walks `dependsOn` transitively and nothing
   else; routes references and positional neighbors don't seed the BFS, so
   a stage that passed the guard via `hasPriorStage` or `hasRouteRefs`
   alone would silently receive an empty artifacts object at runtime.

2. **anyFailed → any_failed (P2)** — added a dedicated `any_failed` leaf to
   the DSL that checks `status === "failed"` specifically. The previous
   `not(all_pass)` bridge would have (incorrectly) fired for `skipped` /
   `outdated` stages too, since `isStagePassing` returns false for those.
   v1.1's semantics required `status === "failed"`; the dedicated leaf
   preserves it exactly. The reviewer's suggested fix had the same bug —
   `or(not(all_pass([s])))` is semantically identical to `not(all_pass)`.

3. **Key-order deep-equal (P2)** — replaced `JSON.stringify` comparator in
   config-diff.ts with a recursive deep-equal that sorts keys at every
   object level. A YAML reformatter reordering `executor.config` keys
   (`{tone,depth}` → `{depth,tone}`) would otherwise stringify to
   different strings and falsely classify the diff as structural,
   aborting an in-flight run for a no-op edit.

Tests updated to reflect the tightened workspace guard; new tests for
`any_failed` semantics and key-order independence. 1374/1374 passing.
2026-05-16 23:09:39 +05:30
..
ao fix(agent-plugins,lifecycle): distinguish indeterminate probe from "not found" + bump ps timeout (closes #1838) (#1839) 2026-05-14 21:50:39 +05:30
cli chore(pipelines): merge main into pipelines (40 commits) — resolve conflicts 2026-05-16 22:13:41 +05:30
core fix(pipeline): address PR review — workspace guard, anyFailed bridge, deep-equal 2026-05-16 23:09:39 +05:30
integration-tests fix(cli): reap daemon children on stop+SIGINT, sweep orphans on start (closes #1848) (#1849) 2026-05-15 03:38:09 +05:30
plugins feat(lifecycle): inject failed-job/step + log tail into CI-failure agent messages (closes #1807) (#1810) 2026-05-15 05:48:45 +05:30
web fix(core): sm.list() no longer writes terminated state to disk (#1737) 2026-05-16 19:05:49 +05:30