Remove vendored openclaw package and orchestrating skill; align MCP name to agent-relay#1034
Conversation
OpenClaw lives in its own repo (AgentWorkforce/agent-relay-openclaw); the copy under packages/openclaw was a stale duplicate re-added after the split and nothing in relay depends on it. Drop it (and its package-lock entries + the CI build step). Also align the customer-facing MCP surface with the binary name: - CLI uninstall now cleans up the `agent-relay` .mcp.json key and the legacy `relaycast` key. - Refresh the orchestrating-agent-relay skill for the v8 `local` CLI surface, relay-only messaging, and the `mcp__agent-relay__*` tools. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
CodeAnt AI is reviewing your PR. |
📝 WalkthroughWalkthroughThis PR removes the entire ChangesAgent Relay Orchestration Documentation and Operational Model
OpenClaw Package Removal and Agent Relay Integration Updates
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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.
Code Review
This pull request removes the @agent-relay/openclaw package and its associated files, updates the orchestrating-agent-relay documentation to reflect the new local and message CLI namespaces, and updates the MCP server maintenance logic in core-maintenance.ts to handle both the new agent-relay key and legacy relaycast keys. The review feedback recommends adding defensive checks in core-maintenance.ts when parsing .mcp.json to ensure that the parsed object and its mcpServers property are valid objects before accessing them, which will prevent potential runtime TypeError exceptions.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| const parsed = JSON.parse(raw) as Record<string, unknown>; | ||
| const servers = parsed.mcpServers as Record<string, unknown> | undefined; | ||
| if (!servers || !(RELAYCAST_SERVER_KEY in servers)) { | ||
| if (!servers) { | ||
| return false; | ||
| } |
There was a problem hiding this comment.
To prevent potential runtime TypeError exceptions, it is safer to explicitly validate that parsed and parsed.mcpServers are non-null objects before accessing their properties or using operators like in and Object.keys(). Since JSON.parse can return null, arrays, or primitive values under certain conditions (e.g., if the file is corrupted or contains invalid JSON), adding these defensive checks ensures robust execution without relying solely on the catch block.
const parsed = JSON.parse(raw);
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
return false;
}
const servers = parsed.mcpServers;
if (!servers || typeof servers !== 'object' || Array.isArray(servers)) {
return false;
}There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b37a9d6e8a
ℹ️ 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".
| @@ -1,707 +0,0 @@ | |||
| --- | |||
There was a problem hiding this comment.
Restore the OpenClaw skill source used by web
Deleting this file breaks the web app's OpenClaw skill routes and tests because web/lib/skill-markdown.ts still statically imports ../../packages/openclaw/skill/SKILL.md?raw, and web/app/openclaw/skill/page.tsx plus the invite route call readSkillMarkdown(). In any web build or test run that includes those modules, the bundler will fail to resolve the raw markdown import before the routes can render.
Useful? React with 👍 / 👎.
The skill is maintained in AgentWorkforce/skills (skills/orchestrating-agent-relay); the copies under .claude/ and .agents/ in relay were stale duplicates. Updated canonical version: AgentWorkforce/skills#69. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
🧹 Nitpick comments (2)
.claude/skills/orchestrating-agent-relay/SKILL.md (1)
378-379: ⚡ Quick winClarify MCP configuration key name.
The documentation references "Relaycast MCP server" but the PR renames the customer-facing MCP key from
relaycasttoagent-relay. While "Relaycast" remains the product name, users configuring MCP should look for theagent-relaykey in their.mcp.json. Consider clarifying: "Relaycast MCP server configured in Claude's MCP settings (look for theagent-relaykey in.mcp.json)."🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.claude/skills/orchestrating-agent-relay/SKILL.md around lines 378 - 379, Update the MCP configuration line to clarify the MCP key name change: replace or augment the mention of "Relaycast MCP server" so it instructs users to configure the Relaycast MCP server under the customer-facing key agent-relay in Claude's MCP settings (e.g., "look for the `agent-relay` key in `.mcp.json`"). Ensure the phrase appears near the existing bullet referencing MCP tools and keep the product name "Relaycast" while explicitly naming the `agent-relay` key for `.mcp.json`..agents/skills/orchestrating-agent-relay/SKILL.md (1)
378-379: ⚡ Quick winClarify MCP configuration key name.
The documentation references "Relaycast MCP server" but the PR renames the customer-facing MCP key from
relaycasttoagent-relay. While "Relaycast" remains the product name, users configuring MCP should look for theagent-relaykey in their.mcp.json. Consider clarifying: "Relaycast MCP server configured in Claude's MCP settings (look for theagent-relaykey in.mcp.json)."🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.agents/skills/orchestrating-agent-relay/SKILL.md around lines 378 - 379, Update the sentence that currently reads "For MCP tools (optional): Relaycast MCP server configured in Claude's MCP settings (the message tools need the same registered identity as the CLI)" to clarify the MCP configuration key name: mention that while the product is "Relaycast", users should look for the `agent-relay` key in their `.mcp.json` (e.g., "Relaycast MCP server configured in Claude's MCP settings — look for the `agent-relay` key in `.mcp.json`; the message tools must use the same registered identity as the CLI").
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In @.agents/skills/orchestrating-agent-relay/SKILL.md:
- Around line 378-379: Update the sentence that currently reads "For MCP tools
(optional): Relaycast MCP server configured in Claude's MCP settings (the
message tools need the same registered identity as the CLI)" to clarify the MCP
configuration key name: mention that while the product is "Relaycast", users
should look for the `agent-relay` key in their `.mcp.json` (e.g., "Relaycast MCP
server configured in Claude's MCP settings — look for the `agent-relay` key in
`.mcp.json`; the message tools must use the same registered identity as the
CLI").
In @.claude/skills/orchestrating-agent-relay/SKILL.md:
- Around line 378-379: Update the MCP configuration line to clarify the MCP key
name change: replace or augment the mention of "Relaycast MCP server" so it
instructs users to configure the Relaycast MCP server under the customer-facing
key agent-relay in Claude's MCP settings (e.g., "look for the `agent-relay` key
in `.mcp.json`"). Ensure the phrase appears near the existing bullet referencing
MCP tools and keep the product name "Relaycast" while explicitly naming the
`agent-relay` key for `.mcp.json`.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: e73747a3-a908-4837-8915-817cf87f7f49
⛔ Files ignored due to path filters (1)
package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (42)
.agents/skills/orchestrating-agent-relay/SKILL.md.claude/skills/orchestrating-agent-relay/SKILL.md.github/workflows/package-validation.ymlpackages/cli/src/cli/lib/core-maintenance.tspackages/openclaw/README.mdpackages/openclaw/bin/relay-openclaw.mjspackages/openclaw/bridge/bridge.mjspackages/openclaw/bridge/spawn-from-env.mjspackages/openclaw/package.jsonpackages/openclaw/skill/SKILL.mdpackages/openclaw/src/__tests__/SPEC-ws-client-testing.mdpackages/openclaw/src/__tests__/gateway-control.test.tspackages/openclaw/src/__tests__/gateway-poll-fallback.test.tspackages/openclaw/src/__tests__/gateway-threads.test.tspackages/openclaw/src/__tests__/naming.test.tspackages/openclaw/src/__tests__/spawn-manager.test.tspackages/openclaw/src/__tests__/ws-client.test.tspackages/openclaw/src/auth/converter.tspackages/openclaw/src/cli.tspackages/openclaw/src/config.tspackages/openclaw/src/control.tspackages/openclaw/src/gateway.tspackages/openclaw/src/identity/contract.tspackages/openclaw/src/identity/files.tspackages/openclaw/src/identity/model.tspackages/openclaw/src/identity/naming.tspackages/openclaw/src/index.tspackages/openclaw/src/inject.tspackages/openclaw/src/mcp/server.tspackages/openclaw/src/mcp/tools.tspackages/openclaw/src/runtime/openclaw-config.tspackages/openclaw/src/runtime/patch.tspackages/openclaw/src/runtime/setup.tspackages/openclaw/src/setup.tspackages/openclaw/src/spawn/docker.tspackages/openclaw/src/spawn/manager.tspackages/openclaw/src/spawn/process.tspackages/openclaw/src/spawn/types.tspackages/openclaw/src/types.tspackages/openclaw/templates/SOUL.md.templatepackages/openclaw/test/vitest.setup.tspackages/openclaw/tsconfig.json
💤 Files with no reviewable changes (38)
- packages/openclaw/bin/relay-openclaw.mjs
- packages/openclaw/README.md
- packages/openclaw/test/vitest.setup.ts
- packages/openclaw/src/mcp/server.ts
- packages/openclaw/skill/SKILL.md
- packages/openclaw/src/spawn/types.ts
- packages/openclaw/src/tests/naming.test.ts
- packages/openclaw/src/identity/model.ts
- packages/openclaw/bridge/bridge.mjs
- packages/openclaw/templates/SOUL.md.template
- packages/openclaw/src/tests/ws-client.test.ts
- packages/openclaw/src/runtime/openclaw-config.ts
- packages/openclaw/src/runtime/setup.ts
- packages/openclaw/src/tests/gateway-threads.test.ts
- packages/openclaw/src/identity/naming.ts
- packages/openclaw/src/tests/gateway-control.test.ts
- packages/openclaw/src/spawn/manager.ts
- packages/openclaw/tsconfig.json
- packages/openclaw/src/spawn/docker.ts
- packages/openclaw/src/identity/contract.ts
- packages/openclaw/src/inject.ts
- packages/openclaw/package.json
- packages/openclaw/src/cli.ts
- packages/openclaw/src/mcp/tools.ts
- packages/openclaw/src/types.ts
- packages/openclaw/src/setup.ts
- packages/openclaw/bridge/spawn-from-env.mjs
- packages/openclaw/src/identity/files.ts
- packages/openclaw/src/tests/gateway-poll-fallback.test.ts
- packages/openclaw/src/control.ts
- packages/openclaw/src/tests/spawn-manager.test.ts
- packages/openclaw/src/runtime/patch.ts
- packages/openclaw/src/spawn/process.ts
- packages/openclaw/src/gateway.ts
- packages/openclaw/src/auth/converter.ts
- packages/openclaw/src/tests/SPEC-ws-client-testing.md
- packages/openclaw/src/config.ts
- packages/openclaw/src/index.ts
There was a problem hiding this comment.
No issues found across 43 files
Note: This PR contains a large number of files. Free-tier reviews are limited to 40 files per PR, so some files may not have been reviewed. cubic prioritizes the most important files to review. Paid plans can review more files.
Re-trigger cubic
|
Reviewed and fixed PR #1034 locally. Changed:
Verification run:
|
|
Reviewed and fixed PR #1034 locally. Key fixes:
Validation run:
|
|
Reviewed and fixed PR #1034 locally. Key fixes:
Validation run:
One local attempt at |
|
Reviewed PR #1034 and fixed issues found in the PR impact area. Changed:
Validation:
|
|
Reviewed PR #1034 and fixed issues found in the PR impact area. Changed:
Validation:
|
|
Reviewed PR #1034 and fixed the breakage I found. Changes made:
Verification:
Note: local |
1 similar comment
|
Reviewed PR #1034 and fixed the breakage I found. Changes made:
Verification:
Note: local |
|
Fixed PR fallout from removing
Validation run locally:
|
Summary
Removes two stale in-repo duplicates that are maintained in their own repos, and aligns the customer-facing MCP name.
Delete
packages/openclaw. OpenClaw lives inAgentWorkforce/agent-relay-openclaw. It was split out in86fe101d, then accidentally re-added inb01ee3f8 "Keep OpenClaw adapter". Nothing in relay imports or depends on@agent-relay/openclaw, and the copy had diverged. This deletes the 38-file package, prunes itspackage-lock.jsonentries, and drops the openclaw build step frompackage-validation.yml.Delete the vendored
orchestrating-agent-relayskill (.claude/and.agents/copies). The skill is maintained inAgentWorkforce/skills(skills/orchestrating-agent-relay); the relay copies were stale duplicates. Updated canonical version: Update relay skills for v8 CLI surface + agent-relay MCP skills#69.Customer-facing MCP server is
agent-relay, notrelaycast. The MCP tool prefix is the.mcp.jsonserver key. CLI uninstall now cleans up theagent-relaykey plus the legacyrelaycastkey. The matching setup/identity rename is in Rename customer-facing MCP server to agent-relay agent-relay-openclaw#2.Not changed
The Relaycast product name stays where it means the service (
@relaycast/sdk,*.relaycast.dev,[relaycast:…]message tags) — only the customer-facing MCP key/prefix moves toagent-relay.Verification
tsc --noEmitonpackages/cli— cleanpackage-lock.jsonre-resolved and validated; 0 remaining openclaw references@agent-relay/openclaw; 0orchestrating-agent-relayfiles remain in treeRelated PRs
🤖 Generated with Claude Code