From dfea40ef91c7a4f25451bc7811bd62b9230d2c9c Mon Sep 17 00:00:00 2001 From: CF Runtime Workflow Bot Date: Sat, 25 Apr 2026 10:54:31 +0200 Subject: [PATCH 1/2] ci(publish): add @agent-assistant/cloudflare-runtime to runtime-core matrix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds the new cloudflare-runtime package (currently published manually as 0.1.0) to the publish.yml runtime-core group so future bumps are automated. Two updates: 1. PACKAGES array in resolve-packages job — appended cloudflare-runtime AFTER webhook-runtime (cloudflare-runtime depends on webhook-runtime types so the existing max-parallel: 1 ordering preserves the dependency chain at publish time). 2. ORDER array in 'Build packages in dependency-aware order' step — appended cloudflare-runtime at the end of the topological sort. No other changes: - cloudflare-runtime has scripts.test (vitest run) so the test step picks it up automatically. - cloudflare-runtime has tsconfig.json so the typecheck step picks it up via the tsc --noEmit fallback. - cloudflare-runtime has no prepack hook today; the 'Restore package artifacts' step in the publish job copies the dist from the build job's artifact, so prepack is not required. First automated bump will turn 0.1.0 into 0.1.1 (or whatever the input selects). --- .github/workflows/publish.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 3b1606e..f8e9b46 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -88,7 +88,7 @@ jobs: # DelegationRequest types) — must build + publish after it. Same # max-parallel: 1 contract keeps webhook-runtime's publish after # specialists'. - PACKAGES='["traits","connectivity","coordination","core","sessions","surfaces","policy","proactive","harness","telemetry","memory","turn-context","inbox","continuation","sdk","vfs","specialists","webhook-runtime"]' + PACKAGES='["traits","connectivity","coordination","core","sessions","surfaces","policy","proactive","harness","telemetry","memory","turn-context","inbox","continuation","sdk","vfs","specialists","webhook-runtime","cloudflare-runtime"]' FIRST='traits' ;; *) @@ -167,7 +167,7 @@ jobs: set -euo pipefail # Topological build order. dist/ is no longer committed, so each # package's tsc needs its workspace deps' dist on disk first. - ORDER=(traits connectivity memory vfs core coordination surfaces sessions policy harness turn-context proactive inbox continuation telemetry specialists sdk webhook-runtime) + ORDER=(traits connectivity memory vfs core coordination surfaces sessions policy harness turn-context proactive inbox continuation telemetry specialists sdk webhook-runtime cloudflare-runtime) for pkg in "${ORDER[@]}"; do if echo '${{ needs.resolve-packages.outputs.matrix }}' | jq -e --arg pkg "$pkg" '.[] | select(. == $pkg)' >/dev/null; then echo "==> Building $pkg" From ad9a21ab00904793fb087efe92dfa5582990a26d Mon Sep 17 00:00:00 2001 From: CF Runtime Workflow Bot Date: Sat, 25 Apr 2026 11:18:10 +0200 Subject: [PATCH 2/2] fix(publish): pre-build surfaces + specialists + continuation + webhook-runtime so cloudflare-runtime tests resolve their workspace deps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Devin Review on PR #58 caught: cloudflare-runtime tests import from @agent-assistant/surfaces, @agent-assistant/continuation, and @agent-assistant/webhook-runtime. Those packages' package.json exports point at dist/ which is not committed. The publish workflow's test step runs BEFORE the full dependency-aware build step, so vitest would fail to resolve the imports. Extends the pre-test pre-build step to cover the full dep closure: surfaces, specialists, continuation, webhook-runtime (in topological order, on top of the existing harness chain). Verified locally — npm run build -w @agent-assistant/cloudflare-runtime succeeds after the chain runs. --- .github/workflows/publish.yml | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index f8e9b46..c88c659 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -132,12 +132,23 @@ jobs: echo "Publishing Agent Assistant package group: ${{ github.event.inputs.package_group }}" echo "Packages: ${{ needs.resolve-packages.outputs.package_list }}" - # Harness tests import from @agent-assistant/{traits,connectivity, - # coordination,turn-context,vfs,core}. dist/ is not committed, so build - # the chain before running vitest. connectivity + coordination are not - # in the publish matrix, so the dependency-aware Build step below does - # not cover them. - - name: Prepare harness test dependencies + # Tests import from @agent-assistant/* siblings whose package.json + # exports point at dist/. dist/ is not committed, so every dep that + # any test in the matrix imports must be built before vitest runs. + # The publish matrix's dependency-aware Build step further down only + # runs AFTER tests, so this step has to cover the full pre-test + # dep closure. + # + # Coverage: + # - Harness tests pull traits/connectivity/coordination/turn-context/vfs/core. + # - cloudflare-runtime tests pull surfaces (SlackEventDedupGate), + # continuation, and webhook-runtime (and webhook-runtime in turn + # pulls specialists at runtime via specialist-bridge re-exports). + # + # Build order respects deps: traits → memory → connectivity → + # coordination → vfs → core → harness → turn-context, then surfaces, + # specialists, continuation, webhook-runtime on top. + - name: Pre-build workspace deps for tests shell: bash run: | set -euo pipefail @@ -149,6 +160,10 @@ jobs: npm run build -w @agent-assistant/core npm run build -w @agent-assistant/harness npm run build -w @agent-assistant/turn-context + npm run build -w @agent-assistant/surfaces + npm run build -w @agent-assistant/specialists + npm run build -w @agent-assistant/continuation + npm run build -w @agent-assistant/webhook-runtime - name: Run tests shell: bash