Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed

- `relay init` now delivers messages by injecting them into running agent sessions instead of having agents poll an MCP inbox. It installs the Agent Relay core (`agent-relay-probe`, SHA-256-verified from a `probe-v<version>` GitHub release) into the install directory's `bin`, runs it in the background or attaches to the one the desktop app already runs, and turns on its delivery for each chosen tool: Claude Code's session inbox and SessionStart hook, Codex hooks, the OpenCode plugin, the Pi extension (installed only when Pi is chosen), Devin hooks and Grok's leader socket. These are per-user settings for every project. Re-running removes an MCP entry an earlier `relay init` added, so each session has one identity. `--delivery mcp` uses the MCP server instead and turns off the injection `relay init` had turned on for those tools; the MCP server is also the fallback for a tool the core cannot deliver to, so no tool is on both routes.
- `relay init --hosted` and `relay init --key` after a solo `relay init` now switch this machine from the `local` workspace to the team one: the core serves it right away and running sessions move onto its roster. Any other saved workspace stays active, and a core run by the desktop app or a service is left alone; `relay init` warns with the command to run.
- `relay init --stop` also stops the core `relay init` started (never the desktop app's), and `relay init --uninstall` turns off exactly the injection settings it turned on.
- `install.sh` and `relay init` use Relaycast engine 11.1.0, which ships as a standalone binary: `install.sh` now installs `relaycast-engine` into `~/.agentworkforce/relay/bin`, so the local server no longer needs Node.js or a native addon.
- The CLI and `@agent-relay/harness-driver` now resolve the broker in this order: `BROKER_BINARY_PATH` / `AGENT_RELAY_BIN`, then `~/.agentworkforce/relay/bin`, then the npm platform package, then `PATH`. A broker in the install directory now wins over one found on `PATH`.
Expand Down
12 changes: 12 additions & 0 deletions docs/probe-move.md
Original file line number Diff line number Diff line change
Expand Up @@ -551,6 +551,18 @@ self-hosted setup whose id cannot be compared says so (for example a desktop sig
another workspace, or a machine-wide active workspace this project does not
use), with the `relay workspace switch` command that aligns them.

`relay init --hosted`, `--key` and `--url` make the new workspace active when
the active one is the `local` workspace of init's own server, or none, unless
a core init did not start is running: that core follows the active workspace
too, so it stays as it is and init warns. The core picks a switch up live on
`workspace.refresh`; a restart adds nothing. A session already on the relay
stays in the workspace it registered with (the store keeps that workspace's
key), so init also runs `agents.unregister` and `agents.register` for each
running agent whose id the local server confirms, under the same name. An agent
with an alias, a reply setting, a webhook, integrations or a spawner is left in
place and named, since a new registration drops that state, and so is one whose
session ended, which could not register again.

**Service.** `relay init` starts the core as a detached background process
and installs no service; when it is not running, `relay init` starts it
again. For an always-on core, install the desktop app (its systemd unit or LaunchAgent), or run the
Expand Down
6 changes: 6 additions & 0 deletions docs/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,12 @@ active on this machine (for example one a fleet node uses), `relay init` leaves
it active and says so; run `relay workspace switch <name>` to make the new one
the default everywhere.

The exception is the `local` workspace a solo `relay init` made. `relay init
--hosted` and `relay init --key` replace it as the active workspace, have the
core serve the new workspace, and move running sessions onto it, so teammates
see your agents. If the desktop app (or a service) runs the core, `relay init`
leaves it and the active workspace alone and prints the command that moves them.

### Flags

Flags change the defaults; `relay init` still asks nothing (and behaves the
Expand Down
Loading
Loading