ci(publish): publish @agent-relay/fleet in the release pipeline

Merged
WI
4mo ago
+51-1

Problem

The Publish Package workflow (run 27600505024) failed twice in Publish Main Package:

Waiting for npm registry propagation: @agent-relay/fleet@8.8.0
...
Timed out waiting for CLI @agent-relay/* dependencies:
  - @agent-relay/fleet@8.8.0

The root agent-relay CLI now depends on @agent-relay/fleet, so publish-main's "Wait for CLI internal dependencies" step (which derives its list from packages/cli/package.json's @agent-relay/* deps) blocks on @agent-relay/fleet@<bumped version>. But fleet was never added to the publish workflow, so on the all-package release nothing publishes it → the wait loop (12×10s) times out.

Note: the Build & Version job (which runs the test suite) passed this time — the earlier mock fix (#1135) is working. This is a separate, downstream gap.

Fix

Add a publish-fleet job that:

  • runs after publish-harnesses — fleet pins @agent-relay/{harnesses,harness-driver,sdk} by exact version, so it must land after harnesses to avoid the same install-resolution race the broker/sdk/harnesses ordering already guards against;
  • is gated if: package == 'all' (mirrors publish-harnesses);
  • skips if the version already exists, and publishes with --provenance like every other package.

Wire it into publish-main's needs + if so the root tarball is only published once fleet is on the registry.

⚠️ Manual step required before the next release

@agent-relay/fleet@8.7.2 was a manual token publish (no provenance attestations), so the package has no npm Trusted Publisher configured. This workflow publishes via OIDC (id-token: write + --provenance, no NODE_AUTH_TOKEN anywhere), so the new publish-fleet job will fail auth until the Trusted Publisher for @agent-relay/fleet is added on npmjs.com → Package settings → Trusted Publishing → GitHub Actions → repo AgentWorkforce/relay, workflow publish.yml.

Validation

  • actionlint clean (no new findings).
  • Job graph verified: publish-fleet defined, referenced in publish-main needs + if.
  • npm publish --dry-run for packages/fleet packs cleanly (6 files: dist/ + README + package.json).

Follow-up (not in this PR)

The main / cli-prerelease release path (publish-main-runtime-deps) also doesn't publish fleet (or its harnesses dep). It's a less-common path and was already incomplete for fleet; worth covering separately if those paths are used.

🤖 Generated with Claude Code