Problem
Relay ships six plugin surfaces that construct https://agentrelay.com/observer?key=<workspace-key>, and several tell the agent to print the real key. The sharpest case is plugins/gemini-relay-extension/commands/status/status.toml, which explicitly says not to print a placeholder.
Affected surfaces:
plugins/gemini-relay-extension/GEMINI.md
plugins/gemini-relay-extension/commands/status/status.toml
plugins/gemini-relay-extension/commands/team/team.toml
plugins/gemini-relay-extension/commands/fanout/fanout.toml
plugins/gemini-relay-extension/hooks/session-start.sh
plugins/codex-relay-skill/SKILL.md
This conflicts with #1379/#1380: the CLI is removing credentials from default output while shipped agent instructions still require printing an owner/admin credential into a transcribed terminal and query string.
Credential contract verified from source
A workspace key does not authenticate the observer realtime stream. Relaycast authenticateRealtimeWs rejects workspace tokens with Observer token required for workspace stream; only an ot_live_* token with stream:read is accepted.
The dashboard currently accepts either rk_live_* or ot_live_* as a login credential. When given a workspace key, its server-side login route validates the key and mints a scoped observer token for the realtime socket. Thus the existing links may function through the dashboard login bridge, but they expose a more powerful workspace administration key than observation requires. Relaycast documentation also says not to embed workspace keys in browser clients or third-party dashboards.
Required outcome
- Remove every instruction and hook that prints or embeds a workspace key in an observer URL.
- Define a safe follow-along flow using a scoped
ot_live_* observer token, or omit the link when no observer token has been explicitly provisioned.
- Never place either credential in default transcribed output or a query string without an explicit reveal action and warning; prefer a handoff that avoids URL credential material where supported.
- Add regression coverage that searches shipped plugin assets for workspace-key observer URL construction and imperative instructions to print the real key.
- Update plugin/user documentation so workspace admin keys and observer tokens are not conflated.
Relationship
Follow-up to #1379 and #1380. This is intentionally separate from #1380 so the CLI redaction fix remains reviewable and mergeable on its current scope.
Problem
Relay ships six plugin surfaces that construct
https://agentrelay.com/observer?key=<workspace-key>, and several tell the agent to print the real key. The sharpest case isplugins/gemini-relay-extension/commands/status/status.toml, which explicitly says not to print a placeholder.Affected surfaces:
plugins/gemini-relay-extension/GEMINI.mdplugins/gemini-relay-extension/commands/status/status.tomlplugins/gemini-relay-extension/commands/team/team.tomlplugins/gemini-relay-extension/commands/fanout/fanout.tomlplugins/gemini-relay-extension/hooks/session-start.shplugins/codex-relay-skill/SKILL.mdThis conflicts with #1379/#1380: the CLI is removing credentials from default output while shipped agent instructions still require printing an owner/admin credential into a transcribed terminal and query string.
Credential contract verified from source
A workspace key does not authenticate the observer realtime stream. Relaycast
authenticateRealtimeWsrejects workspace tokens withObserver token required for workspace stream; only anot_live_*token withstream:readis accepted.The dashboard currently accepts either
rk_live_*orot_live_*as a login credential. When given a workspace key, its server-side login route validates the key and mints a scoped observer token for the realtime socket. Thus the existing links may function through the dashboard login bridge, but they expose a more powerful workspace administration key than observation requires. Relaycast documentation also says not to embed workspace keys in browser clients or third-party dashboards.Required outcome
ot_live_*observer token, or omit the link when no observer token has been explicitly provisioned.Relationship
Follow-up to #1379 and #1380. This is intentionally separate from #1380 so the CLI redaction fix remains reviewable and mergeable on its current scope.