fix(claude-relay-plugin): align plugin identity and drop the legacy engine pin - #91
fix(claude-relay-plugin): align plugin identity and drop the legacy engine pin#91willwashburn wants to merge 1 commit into
Conversation
…ngine pin Four pieces of the plugin's configuration disagreed with each other. **Engine URL.** `.mcp.json` pinned `RELAY_BASE_URL` to `https://gateway.relaycast.dev`, a legacy host. Every default in both repos is `https://cast.agentrelay.com` (relaycast's `client.ts` and `relay.ts`; relay's `observer-source.ts` and `integration.ts`), and the skills document that host too. Plugin users were being pointed at a different engine than everything else. Removed the pin outright rather than hardcoding the right host, so the plugin follows the SDK default wherever that moves next. **Plugin name.** `plugin.json` declared `agent-relay` while the directory, the marketplace entry, and `package.json` all say `claude-relay-plugin`. Aligned `plugin.json` to the other three rather than renaming three things to match one. **Repository.** The marketplace entry claimed the plugin lives in `AgentWorkforce/relay`, but its own `source.url` and `plugin.json` both point at `AgentWorkforce/skills` — which is where it is. **README.** Told users `/plugin marketplace add Agentworkforce/relay`. The marketplace manifest only exists in this repo, so that command cannot resolve. Now names the right repo and adds the install step. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jmke9G9s7ftrN49opNmdx1
|
Warning Review limit reached
Next review available in: 54 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 198cbaa974
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| ], | ||
| "env": { | ||
| "RELAY_BASE_URL": "https://gateway.relaycast.dev", | ||
| "RELAY_AGENT_TYPE": "agent" |
There was a problem hiding this comment.
Keep hooks on the same relay engine as MCP
When a user relies on the defaults and sets RELAY_TOKEN to enable inbox polling, removing this pin makes the MCP server use https://cast.agentrelay.com, but the registered post-tool-inbox.sh and stop-inbox.js hooks still default to https://gateway.relaycast.dev. The env block applies only to the MCP subprocess, so it cannot update those separately launched hooks; consequently they query the legacy engine with a token from the new engine and silently miss messages, defeating both inbox polling and the stop guard. Update the hook defaults (including the TS source) and related plugin documentation as part of this migration.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
1 issue found across 4 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="plugins/claude-relay-plugin/.mcp.json">
<violation number="1" location="plugins/claude-relay-plugin/.mcp.json:11">
P2: Removing RELAY_BASE_URL makes the MCP server follow the SDK default host (`cast.agentrelay.com`), but the plugin's own hooks still default to the old `gateway.relaycast.dev` host when the variable is unset (in `hooks/post-tool-inbox.sh`, `hooks/stop-inbox.js`, and `hooks/stop-inbox.ts`). So on a fresh install the inbox-polling/stop-guard hooks now talk to a different host than the MCP server — reintroducing the exact config drift this PR is meant to fix. Consider also updating the hooks' DEFAULT_BASE_URL/default fallback to the SDK default (`cast.agentrelay.com`) so the whole plugin moves with the SDK default, and update the plugin README's env-var table, which still documents `gateway.relaycast.dev` as the default.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
| "mcp" | ||
| ], | ||
| "env": { | ||
| "RELAY_BASE_URL": "https://gateway.relaycast.dev", |
There was a problem hiding this comment.
P2: Removing RELAY_BASE_URL makes the MCP server follow the SDK default host (cast.agentrelay.com), but the plugin's own hooks still default to the old gateway.relaycast.dev host when the variable is unset (in hooks/post-tool-inbox.sh, hooks/stop-inbox.js, and hooks/stop-inbox.ts). So on a fresh install the inbox-polling/stop-guard hooks now talk to a different host than the MCP server — reintroducing the exact config drift this PR is meant to fix. Consider also updating the hooks' DEFAULT_BASE_URL/default fallback to the SDK default (cast.agentrelay.com) so the whole plugin moves with the SDK default, and update the plugin README's env-var table, which still documents gateway.relaycast.dev as the default.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At plugins/claude-relay-plugin/.mcp.json, line 11:
<comment>Removing RELAY_BASE_URL makes the MCP server follow the SDK default host (`cast.agentrelay.com`), but the plugin's own hooks still default to the old `gateway.relaycast.dev` host when the variable is unset (in `hooks/post-tool-inbox.sh`, `hooks/stop-inbox.js`, and `hooks/stop-inbox.ts`). So on a fresh install the inbox-polling/stop-guard hooks now talk to a different host than the MCP server — reintroducing the exact config drift this PR is meant to fix. Consider also updating the hooks' DEFAULT_BASE_URL/default fallback to the SDK default (`cast.agentrelay.com`) so the whole plugin moves with the SDK default, and update the plugin README's env-var table, which still documents `gateway.relaycast.dev` as the default.</comment>
<file context>
@@ -8,7 +8,6 @@
],
"env": {
- "RELAY_BASE_URL": "https://gateway.relaycast.dev",
"RELAY_AGENT_TYPE": "agent"
}
}
</file context>
Summary
Four pieces of the plugin's configuration disagreed with each other. Each is small; together they mean a fresh install points at the wrong engine and the documented install command doesn't resolve.
Engine URL
.mcp.jsonpinnedRELAY_BASE_URLtohttps://gateway.relaycast.dev. Every default in both repos ishttps://cast.agentrelay.com:relaycast/packages/sdk-typescript/src/client.ts:172relaycast/packages/sdk-typescript/src/relay.ts:316,368relay/packages/sdk/src/messaging/observer-source.ts:272relay/packages/cli/src/cli/commands/integration.ts:509and the skills in this repo document
cast.agentrelay.comtoo. Plugin users were being sent to a different engine than everything else in the product.relaycast.devhosts are also what relaycast-cloud's legacy strangler router is migrating away from.Removed the pin rather than swapping in the correct host, so the plugin follows the SDK default wherever that moves next instead of needing another fix.
Plugin name
plugin.jsondeclaredagent-relay; the directory, the marketplace entry, andpackage.jsonall sayclaude-relay-plugin. Alignedplugin.jsonto the other three rather than renaming three things to match one.Worth a second opinion:
agent-relayis arguably the nicer user-facing name, and going that direction instead would mean renaming the directory, the marketplace entry, andpackage.json— and would make the installclaude-relay-plugin@agent-relayread asagent-relay@agent-relay. I took the low-risk direction; say the word if you'd rather have the other.Repository
The marketplace entry claimed the plugin lives in
AgentWorkforce/relay, while its ownsource.urlandplugin.jsonboth point atAgentWorkforce/skills— which is where it actually is.README
Told users to run
/plugin marketplace add Agentworkforce/relay.marketplace.jsonexists only in this repo (findacross both confirms it), so that command cannot resolve. Now names the right repo and adds the missing install step.Part of a series from a review of the Agent Relay skills and plugins.
Test Plan
marketplace.json,plugin.json,.mcp.json,package.json,prpm.json)plugin.jsonname,package.jsonname, andsource.pathbasename are allclaude-relay-plugin; both repository fields andsource.urlpoint atAgentWorkforce/skillscast.agentrelay.comis the default in both SDKs by grepping the relaycast and relay sourcesmarketplace.jsonexists only in this repo, not inrelay/plugin marketplace add+/plugin installagainst the updated manifest — not run; needs a live Claude Code install. Worth doing before merge since it exercises the renamed plugin identityScreenshots
n/a
Generated by Claude Code