Skip to content

Embassy v4.7.0

Latest

Choose a tag to compare

@github-actions github-actions released this 19 Sep 17:48

Embassy 4.7.0 — retiring your own route is no longer a one-way door

A Codex agent that retired its own route could not come back for 24 hours: the retirement fenced the thread's identity so that automatic discovery would not quietly resurrect it, and that fence also blocked the agent's own explicit re-registration. Several real incidents followed the same script — an agent "cleans up" its registration, cancels its own queued messages, then cannot register again.

Now an explicit embassy register-codex from the same live thread lifts the fence. Embassy takes a fresh, exact observation of that thread from the managed App Server (loaded and live, idle or busy), performs no resume, turn or steer, and commits atomically: the old retirement evidence stays, the retirement must not have changed during the read, and the thread gets a new endpoint ID. Automatic discovery still cannot resurrect a retired thread, old deliveries and conversation references never retarget the new ID, and --succeeds of a retired predecessor works only for the thread that owned it. embassy retire now says what it does: it cancels queued work in both directions, and a retired Codex thread stays out of discovery until it registers itself again (a retired Claude session reappears on its own, as since 4.6.0).

RPC_REJECTED explained — when the App Server refuses a wake, the route's last operation now carries a bounded detail: the numeric JSON-RPC code and which call was refused (resume, start or steer), kept in memory only, never error text, bodies or thread IDs. The hint distinguishes a refused resume (another host owns the thread, or the session predates a daemon restart) from a refused turn.

Which Codex agents can receive — the docs and the packaged skill now say it plainly: sessions attached to the managed App Server daemon (the Codex CLI, codex exec) receive and are woken; Codex running inside other hosts, such as the ChatGPT desktop app, can send but cannot be woken. They also say never to retire your own route as a troubleshooting step.

Protocol — private control protocol is now 8 for the new status detail. Update the CLI and broker together: npm install -g agent-embassy@4.7.0 then embassy service install. State schema 7 and federation protocol 3 are unchanged; no reset.

Tested with offline suite 444/444 on Node 22 (macOS and Ubuntu); 126 focused tests over the recovery path, fake-wire refusal details and the closed projection; an adversarial review; and a live drill on this Mac.