From 1796605348ed63db09fcbbd2ced6a2a8d7003daf Mon Sep 17 00:00:00 2001 From: Multi-Repo Pushback Bot Date: Tue, 28 Apr 2026 22:38:35 -0700 Subject: [PATCH] fix(ci): pack github-primitive + workflow-types in smoke; publish workflow-types MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The v6.0.3 publish failed because: 1. smoke-broker-packages installed the SDK tarball into a scratch project but only locally packed config alongside it. The SDK's dependencies in 6.0.3 added @agent-relay/github-primitive and already required @agent-relay/workflow-types at the bumped version — neither on the registry yet, so npm install hit ETARGET and failed every smoke leg. 2. Smoke failure cascaded: publish-broker-packages, publish-packages, and publish-sdk-only all skipped on `needs:`, but Publish Main Package has no such gate and shipped agent-relay@6.0.3 pointing at deps (sdk, cloud, broker-*) that were never published. 3. @agent-relay/workflow-types has never been on npm at all because it was missing from the publish-packages matrix, even though SDK declares it as an exact-version hard dep. Pack github-primitive and workflow-types tarballs in the smoke step (and the negative smoke step) so the SDK install resolves entirely from local tarballs, and add workflow-types to the publish-packages matrix so future releases actually publish it. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/publish.yml | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 5dc717405..f695bc6d3 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -633,11 +633,15 @@ jobs: mkdir -p packages/sdk/bin (cd packages/sdk && npm pack --ignore-scripts --pack-destination "$TARBALLS") (cd "packages/${{ matrix.broker_pkg }}" && npm pack --ignore-scripts --pack-destination "$TARBALLS") - # The build job bumped every workspace to NEW_VERSION. The SDK's - # `dependencies` pins `@agent-relay/config` at that version, which - # is not on the registry yet at this point in the workflow — so - # pack it locally and install it alongside the SDK. + # The build job bumped every workspace to NEW_VERSION. The SDK pins + # several internal @agent-relay/* packages at that exact version, + # none of which are on the registry yet at this point in the + # workflow — so pack them locally and install them alongside the + # SDK. Keep this list in sync with packages/sdk/package.json's + # `dependencies` whenever a new internal dep is added. (cd packages/config && npm pack --ignore-scripts --pack-destination "$TARBALLS") + (cd packages/github-primitive && npm pack --ignore-scripts --pack-destination "$TARBALLS") + (cd packages/workflow-types && npm pack --ignore-scripts --pack-destination "$TARBALLS") ls -lh "$TARBALLS" - name: Install tarballs into scratch project @@ -652,9 +656,12 @@ jobs: SDK_TGZ=$(ls "$TARBALLS"/agent-relay-sdk-*.tgz | head -n1) BROKER_TGZ=$(ls "$TARBALLS"/agent-relay-broker-${{ matrix.platform }}-*.tgz | head -n1) CONFIG_TGZ=$(ls "$TARBALLS"/agent-relay-config-*.tgz | head -n1) - echo "Installing $SDK_TGZ + $BROKER_TGZ + $CONFIG_TGZ" + GITHUB_PRIMITIVE_TGZ=$(ls "$TARBALLS"/agent-relay-github-primitive-*.tgz | head -n1) + WORKFLOW_TYPES_TGZ=$(ls "$TARBALLS"/agent-relay-workflow-types-*.tgz | head -n1) + echo "Installing $SDK_TGZ + $BROKER_TGZ + $CONFIG_TGZ + $GITHUB_PRIMITIVE_TGZ + $WORKFLOW_TYPES_TGZ" npm install --ignore-scripts --no-audit --no-fund \ - "$SDK_TGZ" "$BROKER_TGZ" "$CONFIG_TGZ" + "$SDK_TGZ" "$BROKER_TGZ" "$CONFIG_TGZ" \ + "$GITHUB_PRIMITIVE_TGZ" "$WORKFLOW_TYPES_TGZ" ls node_modules/@agent-relay/ - name: Resolver smoke — getBrokerBinaryPath() @@ -705,12 +712,14 @@ jobs: npm init -y --silent >/dev/null SDK_TGZ=$(ls "$TARBALLS"/agent-relay-sdk-*.tgz | head -n1) CONFIG_TGZ=$(ls "$TARBALLS"/agent-relay-config-*.tgz | head -n1) - # Install SDK + config (an internal required dep whose bumped - # version isn't on the registry yet) but skip the broker optional - # deps entirely. The resolver should return null and spawn() - # should throw the clear error. + GITHUB_PRIMITIVE_TGZ=$(ls "$TARBALLS"/agent-relay-github-primitive-*.tgz | head -n1) + WORKFLOW_TYPES_TGZ=$(ls "$TARBALLS"/agent-relay-workflow-types-*.tgz | head -n1) + # Install SDK + every internal required dep whose bumped version + # isn't on the registry yet, but skip the broker optional deps + # entirely. The resolver should return null and spawn() should + # throw the clear error. npm install --ignore-scripts --no-audit --no-fund --no-optional \ - "$SDK_TGZ" "$CONFIG_TGZ" + "$SDK_TGZ" "$CONFIG_TGZ" "$GITHUB_PRIMITIVE_TGZ" "$WORKFLOW_TYPES_TGZ" node --input-type=module -e " import { AgentRelayClient } from '@agent-relay/sdk'; try { @@ -894,6 +903,7 @@ jobs: - credential-proxy - github-primitive - browser-primitive + - workflow-types steps: - name: Checkout code