Skip to content

fix(claude-relay-plugin): align plugin identity and drop the legacy engine pin - #91

Open
willwashburn wants to merge 1 commit into
mainfrom
claude/agent-relay-skills-review-a8mgtd-plugin-config
Open

fix(claude-relay-plugin): align plugin identity and drop the legacy engine pin#91
willwashburn wants to merge 1 commit into
mainfrom
claude/agent-relay-skills-review-a8mgtd-plugin-config

Conversation

@willwashburn

@willwashburn willwashburn commented Aug 3, 2026

Copy link
Copy Markdown
Member

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.json pinned RELAY_BASE_URL to https://gateway.relaycast.dev. Every default in both repos is https://cast.agentrelay.com:

  • relaycast/packages/sdk-typescript/src/client.ts:172
  • relaycast/packages/sdk-typescript/src/relay.ts:316,368
  • relay/packages/sdk/src/messaging/observer-source.ts:272
  • relay/packages/cli/src/cli/commands/integration.ts:509

and the skills in this repo document cast.agentrelay.com too. Plugin users were being sent to a different engine than everything else in the product. relaycast.dev hosts 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.json declared agent-relay; 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.

Worth a second opinion: agent-relay is arguably the nicer user-facing name, and going that direction instead would mean renaming the directory, the marketplace entry, and package.json — and would make the install claude-relay-plugin@agent-relay read as agent-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 own source.url and plugin.json both point at AgentWorkforce/skills — which is where it actually is.

README

Told users to run /plugin marketplace add Agentworkforce/relay. marketplace.json exists only in this repo (find across 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

  • All five touched/related JSON files parse (marketplace.json, plugin.json, .mcp.json, package.json, prpm.json)
  • Verified identifiers now agree: marketplace entry name, plugin.json name, package.json name, and source.path basename are all claude-relay-plugin; both repository fields and source.url point at AgentWorkforce/skills
  • Confirmed cast.agentrelay.com is the default in both SDKs by grepping the relaycast and relay sources
  • Confirmed marketplace.json exists only in this repo, not in relay
  • Fresh /plugin marketplace add + /plugin install against the updated manifest — not run; needs a live Claude Code install. Worth doing before merge since it exercises the renamed plugin identity

Screenshots

n/a


Generated by Claude Code

Review in cubic

…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
@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@willwashburn, you've reached your PR review limit, so we couldn't start this review.

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 @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 16d942d8-413a-4d04-9303-2bcae2dffc25

📥 Commits

Reviewing files that changed from the base of the PR and between 0f3fcf2 and 198cbaa.

📒 Files selected for processing (4)
  • .claude-plugin/marketplace.json
  • README.md
  • plugins/claude-relay-plugin/.claude-plugin/plugin.json
  • plugins/claude-relay-plugin/.mcp.json

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge 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 👍 / 👎.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants