feat(cli): create hosted workspaces on armadillo by default
What changes
relay init --hostedandrelay workspace createnow create workspaces onhttps://armadillo.agentrelay.comand bind the new key there.- The printed join line now includes
--url https://armadillo.agentrelay.com. - Armadillo credentials are accepted, masked and routed to armadillo in the CLI, cloud, broker and probe. They use different prefixes from cast: workspace keys are
ar_ws_…, agent tokens arear_ag_…. - armadillo is added to the trusted hosted origins for fleet attach, persisted canonical routes and Cloud routes. cast stays trusted.
What deliberately stays on cast
"No recorded server" has to keep meaning cast. Hosted keys were never bound, so every existing workspace key is unbound. If the fallback moved, those keys would be sent to armadillo.
UNBOUND_CREDENTIAL_ORIGIN(TS),DEFAULT_BASE_URL(probe) andDEFAULT_RELAYCAST_BASE_URL(broker) stay on cast.@relaycast/sdkand the Rustrelaycastcrate default to cast, soundefinedstill means cast.- The precedence is: explicit URL, then saved binding, then
ar_ws_/ar_ag_format means armadillo, then cast.
Needs a new probe release
Yes. Merging this is not enough on its own. The probe's fallback default did not change, but the released core 15.0.5 cannot serve armadillo:
- It rejects
ar_ws_keys. - It treats a binding to any
*.agentrelay.comhost as a malformedrelaycast-origins.jsonand fails closed.
Order: merge, cut probe-v<next>, then bump PROBE_VERSION. PROBE_VERSION is not bumped here because that release does not exist yet. The desktop app's bundled core needs the same update. Older brokers and CLIs also refuse a bindings file that contains armadillo. They fail closed and do not misroute keys.
Still on cast, as follow-ups
These write or hold a key with no way to record its server, so moving only the mint would strand the key:
- broker zero-config mint
- SDK
AgentRelay.createWorkspace - MCP
create_workspace - the Gemini and Codex plugin hooks
ar_-prefixed keys reach the right host through the broker, CLI and probe. The plugin hooks and the Swift SDK still need an explicit RELAY_BASE_URL.
Tests
relaycast-origin-binding,init,workspaceandfleet-sandboxtests updated and extended.- Broker
transportand probeorigin_bindingtests added. - Live evidence against armadillo will follow in a comment.
🤖 Generated with Claude Code
![View with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png)
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Need help on this PR? Tag @codesmith-bot with what you need.
Agent Relay sessions
claudesession8ab900cc· opened viagh pr create· last active 2026-10-31