Skip to content

v0.5.2: no secrets in MCP configs, safer share links

Choose a tag to compare

@aravkek aravkek released this 18 Oct 17:14
· 290 commits to main since this release
5a7df66

Install or upgrade: pipx install quorus-ai / pipx upgrade quorus-ai

Security

  • quorus init, quorus join and agent spawning wrote the relay secret in plaintext into
    the MCP configs they create, including a world-readable ./.mcp.json that projects
    often commit. Those configs now hold no secret or key: quorus-mcp reads it from your
    saved profile (mode 0600).
  • The hub's share card told teammates to install with curl https://q.dev/r/<code>.sh, a
    domain Quorus doesn't own. It now uses your relay's own installer, like quorus share.
    Both build the line only for an http(s) URL, shell-quote it so nothing in a relay URL
    can run when pasted, and pipe it to bash: under sh (dash on Debian/Ubuntu) it
    stopped before installing anything.
  • A new agent no longer gets the relay's shared secret written into its agent dir before
    its first sign-in. The secret is used only when sign-in confirms the relay has no
    participant keys, and that warning prints once instead of on every new agent.

Added

  • quorus init --secret - (or --api-key -) reads it from stdin, so it stays out of
    shell history and ps. llms.txt and every setup hint now use it.
  • Every v* tag lists the release in the official MCP Registry from CI, after PyPI has
    it: GitHub OIDC sign-in, so no token or manual mcp-publisher login.

Fixed

  • Five MCP tools (social_verb, publish_capability, lookup_capability,
    search_capabilities, list_room_tools) answered 403 "legacy auth not permitted" on a
    shared-secret relay, the setup llms.txt teaches. quorus-mcp now claims the agent's
    own participant key once and retries, and the 403 says what to set.
  • Agents set up by quorus join or spawned from the CLI got an MCP config that ran a
    file the package never had, so they started with no room tools. They now run
    quorus-mcp.
  • MCP tools could not send a message over 4 KB: the audit receipt carried the full text
    and the relay refuses audit records over 4 KB. Long fields are now receipted by their
    SHA-256 and size, so messages up to the room limit (50 KB) go through.
  • MCP tool errors say why, like the CLI: the size limit, the name rule, or when to retry.
    The relay's 429 itself now says "try again in Ns", for any client.
  • A free opencode model that opencode models lists but the provider won't serve
    ("Model unavailable") is cooled down and the next free model is tried, as for a rate
    limit, instead of the wake reporting the error. A paid model still reports it.
  • A redirected sign-in stops with a clear error ("the relay redirected the sign-in, so
    your key was not sent", exit 3) instead of a bare HTTP error.
  • llms.txt said to start the relay before quorus init, but the relay needs the secret
    init saves. The MCP server's missing-credential error now says quorus init, as
    llms.txt does, not quorus login.
  • quorus doctor listed a ~/.codex/config.toml that didn't exist under "MCP config
    found".

Full changelog: v0.5.1...v0.5.2