From 8b33daf08cf4ba0b7547a8b55011f71fb8a4571f Mon Sep 17 00:00:00 2001 From: Multi-Repo Pushback Bot Date: Thu, 30 Apr 2026 14:21:54 -0700 Subject: [PATCH 1/2] fix: add repository metadata for workflow types --- packages/workflow-types/package.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/workflow-types/package.json b/packages/workflow-types/package.json index 10a4ce37c..2207e9c4e 100644 --- a/packages/workflow-types/package.json +++ b/packages/workflow-types/package.json @@ -20,5 +20,10 @@ ], "publishConfig": { "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/AgentWorkforce/relay.git", + "directory": "packages/workflow-types" } } From c7c087b5cc2f97378d3ac6348693d33f43df621e Mon Sep 17 00:00:00 2001 From: Multi-Repo Pushback Bot Date: Mon, 4 May 2026 09:32:15 +0200 Subject: [PATCH 2/2] fix(cloud): exclude volatile workflow files when applying sync patches Adds path excludes to `git apply --stat` and `git apply` in `cloud sync` so agent bookkeeping (`.agent-bin/`, `.relayfile.acl`, `.relayfile-mount-state.json[.tmp-*]`, `.trajectories/`, `.workflow-context/`) doesn't get rewritten on the local checkout. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/cli/commands/cloud.test.ts | 13 ++++++++++++- src/cli/commands/cloud.ts | 18 ++++++++++++++++-- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src/cli/commands/cloud.test.ts b/src/cli/commands/cloud.test.ts index 684a36bab..d732413ad 100644 --- a/src/cli/commands/cloud.test.ts +++ b/src/cli/commands/cloud.test.ts @@ -1,7 +1,7 @@ import { Command } from 'commander'; import { describe, expect, it, vi } from 'vitest'; -import { registerCloudCommands, type CloudDependencies } from './cloud.js'; +import { buildCloudSyncPatchExcludeArgs, registerCloudCommands, type CloudDependencies } from './cloud.js'; function createHarness() { const exit = vi.fn((code: number) => { @@ -98,6 +98,17 @@ describe('registerCloudCommands', () => { expect(optionNames).toContain('--dry-run'); }); + it('sync excludes volatile workflow bookkeeping files when applying patches', () => { + const args = buildCloudSyncPatchExcludeArgs(); + + expect(args).toContain('--exclude=".agent-bin/**"'); + expect(args).toContain('--exclude=".relayfile.acl"'); + expect(args).toContain('--exclude=".relayfile-mount-state.json"'); + expect(args).toContain('--exclude=".relayfile-mount-state.json.tmp-*"'); + expect(args).toContain('--exclude=".trajectories/**"'); + expect(args).toContain('--exclude=".workflow-context/**"'); + }); + it('registers cloud cancel subcommand', () => { const { program } = createHarness(); const cloud = program.commands.find((command) => command.name() === 'cloud'); diff --git a/src/cli/commands/cloud.ts b/src/cli/commands/cloud.ts index d933e2146..bfdaebe07 100644 --- a/src/cli/commands/cloud.ts +++ b/src/cli/commands/cloud.ts @@ -27,6 +27,19 @@ import { import { defaultExit } from '../lib/exit.js'; import { errorClassName } from '../lib/telemetry-helpers.js'; +const CLOUD_SYNC_PATCH_EXCLUDES = [ + '.agent-bin/**', + '.relayfile.acl', + '.relayfile-mount-state.json', + '.relayfile-mount-state.json.tmp-*', + '.trajectories/**', + '.workflow-context/**', +] as const; + +export function buildCloudSyncPatchExcludeArgs(): string { + return CLOUD_SYNC_PATCH_EXCLUDES.map((pattern) => `--exclude=${JSON.stringify(pattern)}`).join(' '); +} + // ── Types ──────────────────────────────────────────────────────────────────── type ExitFn = (code: number) => never; @@ -435,7 +448,8 @@ export function registerCloudCommands(program: Command, overrides: Partial