diff --git a/CHANGELOG.md b/CHANGELOG.md index e1bbdc951..87d9747f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +- Swift SDK: depending on this repository by git URL no longer fails with `no such module 'Relaycast'` — the root `Package.swift` now declares the `relaycast` dependency `AgentRelaySDK` imports. - `HarnessDriverClient.spawn()` now polls the broker's startup handshake for the full `startupTimeoutMs` budget (default 45s) instead of a fixed ~10s, so a slow-but-healthy Relaycast handshake that keeps answering `503` while warming up is no longer misreported as a spawn failure. - `agent-relay integration subscribe` now resolves provider-native `--resource` values through relayfile before binding, so Slack channel names, GitHub repos, Linear team keys, and Telegram chats bind to matching relayfile VFS globs while explicit `/`-prefixed globs still work. - `agent-relay integration subscribe` is now idempotent and supports multiple resources/channels per provider. Each inbound webhook is scoped to its `(provider, resource)` binding (not one-per-provider), so subscribing a second Slack channel — or two sources into the same relay channel — no longer collides on the unique `(workspace, webhook name)` index or clobbers the other binding's webhook. Re-subscribing creates the replacement webhook/subscription before retiring the old one, so a transient failure can't leave you with no working binding; a failed cleanup now warns instead of being silently swallowed. The relay channel id is normalized (`#general` → `general`) consistently across the webhook, subscription filter, relayfile bind, and writeback-secret lookup, and `listBindings` now maps relayfile's `pathGlob` field so unsubscribe/replace match correctly. diff --git a/Package.swift b/Package.swift index 60b4f7983..5d77acdc8 100644 --- a/Package.swift +++ b/Package.swift @@ -13,9 +13,21 @@ let package = Package( .library(name: "AgentRelaySDK", targets: ["AgentRelaySDK"]), .library(name: "AgentRelayBrokerSDK", targets: ["AgentRelayBrokerSDK"]) ], + dependencies: [ + // Must mirror packages/sdk-swift/Package.swift: AgentRelaySDK imports + // Relaycast, and consumers that depend on this repo by git URL resolve + // THIS manifest, so the dependency has to be declared here too. + .package( + url: "https://github.com/AgentWorkforce/relaycast.git", + from: "5.0.5" + ) + ], targets: [ .target( name: "AgentRelaySDK", + dependencies: [ + .product(name: "Relaycast", package: "relaycast") + ], path: "packages/sdk-swift/Sources/AgentRelaySDK" ), .target(