Complete Phase 3 interpreter parity by routing workflow graph execution through legacy seam handlers. - Simplify workflow IR schema and built-in coding workflow to seam-based v1 nodes/edges. - Add workflow node handler layer with default legacy seam adapters and dedicated handler/parity tests. - Update engine exports/executor behavior for conditional traversal, retries, outcome context, and parity assertions. - Refresh core workflow IR tests/coverage for the new shape (including seam-stage expectations without triage) and remove obsolete schema fixture test. Files changed: .changeset/fn-5767-interpreter-parity.md | 5 + .github/actions/setup-node-pnpm/action.yml | 41 +--- docs/workflow-steps.md | 17 ++ .../__tests__/builtin-coding-workflow-ir.test.ts | 25 +-- packages/core/src/__tests__/workflow-ir.test.ts | 70 ------ packages/core/src/builtin-coding-workflow-ir.ts | 71 ++---- packages/core/src/index.ts | 31 +-- packages/core/src/workflow-ir-types.ts | 91 +------- packages/core/src/workflow-ir.ts | 246 ++------------------- .../workflow-graph-executor-handlers.test.ts | 201 +++++++++++++++++ .../workflow-graph-executor-parity.test.ts | 126 ++++++++--- .../src/__tests__/workflow-node-handlers.test.ts | 50 +++++ packages/engine/src/index.ts | 16 +- packages/engine/src/workflow-graph-executor.ts | 205 ++++++++++++----- packages/engine/src/workflow-node-handlers.ts | 56 +++++ 15 files changed, 661 insertions(+), 590 deletions(-) Fusion-Task-Id: FN-5767 Fusion-Task-Lineage: 0c68586e-2709-4521-a2ce-938ba1006ae0
46 lines
1.7 KiB
YAML
46 lines
1.7 KiB
YAML
name: setup-node-pnpm
|
|
description: "Install pnpm, setup Node.js, install dependencies"
|
|
inputs:
|
|
node-version:
|
|
description: Node.js version
|
|
required: false
|
|
default: "24"
|
|
install-args:
|
|
description: Arguments passed to pnpm install
|
|
required: false
|
|
default: "--frozen-lockfile"
|
|
registry-url:
|
|
description: Optional npm registry URL passed to actions/setup-node
|
|
required: false
|
|
default: ""
|
|
skip-install:
|
|
description: Set to 'true' to skip the pnpm install step; caller runs install themselves
|
|
required: false
|
|
default: "false"
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: Install pnpm
|
|
uses: pnpm/action-setup@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v5
|
|
with:
|
|
node-version: ${{ inputs.node-version }}
|
|
cache: pnpm
|
|
registry-url: ${{ inputs.registry-url }}
|
|
|
|
# Do NOT cache the linked node_modules tree. pnpm builds node_modules from
|
|
# symlinks/junctions into the content-addressable store, and actions/cache does
|
|
# not preserve Windows junctions across its tar/restore — a restored tree has
|
|
# broken peer links (e.g. @vitejs/plugin-react can't resolve its `vite` peer →
|
|
# ERR_MODULE_NOT_FOUND), which silently broke the Windows release build. The
|
|
# pnpm *store* is already cached by actions/setup-node above (`cache: pnpm`), so
|
|
# `pnpm install --frozen-lockfile` is fast with a warm store and relinks
|
|
# correctly per-OS/arch every time (also fixing the prior arch-key and per-job
|
|
# cache-race issues this node_modules cache was patched for).
|
|
- name: Install dependencies
|
|
if: ${{ inputs.skip-install != 'true' }}
|
|
shell: bash
|
|
run: pnpm install ${{ inputs.install-args }}
|