Skip to content

Portal v0.31.0 — Browser-approved agent connect and pack lifecycle control

Choose a tag to compare

@AndrewDryga AndrewDryga released this 18 Jul 02:53
· 1838 commits to main since this release
Immutable release. Only release title and notes can be modified.
v0.31.0
e46e85d

Connecting a local agent no longer moves an API key by hand: the installer opens a browser approval, you approve the connection on a consent page, and per-client keys are written straight into your agent's config. The secret never touches the clipboard, shell history, or a process argument. Alongside it, operators get real control over the pack catalog, a WCAG AA contrast pass, and a set of security and reliability fixes.

Agent connect

  • Device-flow connect over browser approval. The installer opens an RFC 8628 device grant, you approve on a consent page, and per-client keys land directly in each client's config — the copy-the-key step is gone. Keys are minted per client and delivered once, under a row lock.
  • Thirteen MCP clients configured out of the box, each in its own format: Claude Code, Claude Desktop, Cursor, Gemini CLI, Codex CLI, OpenClaw, OpenCode, Windsurf, Pi, Copilot CLI, Zed, Hermes, and Goose.

Packs

  • An operator-run catalog. Delete a pack or a single version, revoke trust on a version, and auto-remove versions no runner has advertised for a set number of days.
  • Retired is not unknown. A runner still lagging on a version a security fix retired now reads as retired and points at the upgrade, instead of posing as an unknown pack asking to be trusted — approving that would have re-authorized the vulnerable bytes.
  • Nomad 0.2.0 adds deployment control (list, pause, resume, fail), metadata-filtered discovery, node-pool and CSI plugin reads, and one uniform TLS path for its API calls.

Security

  • Argument flag-injection fixed in five pack actions that could read a leading-dash value as a command flag; their vulnerable versions are retired.
  • Environment reads gated. Three actions that dump container or process environment — where secrets like database passwords live — now require approval.

Accessibility

  • Essential text across every marketing and console page is raised to WCAG AA contrast, kept there by a new automated check.

Operability

  • The runner CLI reloads the daemon on its own after a pack install, update, or uninstall, and emisar doctor gains color output and a service-supervisor state check.
  • Under-permissioned roles now get a clean denial instead of a server error on detail routes.

Upgrading

Self-hosted runners: rename the config key auth_key_env to enrollment_key_env (one line) and re-mint any enrollment keys that were never used. Already-connected runners are unaffected.

The portal is the hosted control plane, so there's no portal binary to download. The runner and MCP bridge ship as signed binaries — each with a SHA256SUMS and SLSA-3 build provenance — on their own releases, runner-v0.14.0 and mcp-v0.4.0. The verification recipe lives at emisar.dev/trust.