Skip to content

Plugins: stop exposing workspace admin keys in observer links #1397

Description

@willwashburn

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions