diff --git a/changelog.mdx b/changelog.mdx
index 9ca6847..a714742 100644
--- a/changelog.mdx
+++ b/changelog.mdx
@@ -22,6 +22,31 @@ export const STAGE_SELF_MANAGED_M66 = "$0.0001";
usezombie is in **stealth-mode testing** and pre-production. APIs and agent behavior may change between releases without long deprecation windows. Email [usezombie@agentmail.to](mailto:usezombie@agentmail.to) if you want a hand calibrating an agent or to join as a design partner.
+
+ ## Enroll runners from the dashboard, plus a regrouped left navigation
+
+ You can now add a runner to your fleet from the dashboard instead of the command line. A platform admin opens **Runners**, clicks **Add runner**, and copies a one-time runner token to install on the host — your platform-admin login never touches a shell. The runner list shows each host's liveness honestly: a host you just enrolled reads **registered** until it first checks in, instead of a false **online**.
+
+ The dashboard's left navigation is regrouped into **Operations** (Agents, Approvals, Events), **Configuration** (Credentials, Model, and Runners for platform admins), and **Organization** (Settings, Billing). The model-and-provider settings move out of Settings to their own **Model** entry at `/settings/models`.
+
+ ## Upgrading
+
+ - **`zombie-runner register` is removed.** The runner CLI no longer accepts `--token`, `--host-id`, or `ZOMBIE_TOKEN`. To enroll a host, a platform admin mints a runner token from the dashboard (Runners → Add runner) and installs it on the host as `ZOMBIE_RUNNER_TOKEN`. Runners already enrolled keep working — only the enrollment step changed.
+ - **Server errors on non-idempotent requests are no longer retried.** The dashboard and `zombiectl` HTTP clients now retry a server 5xx only for idempotent methods (`GET`/`PUT`/`DELETE`/`HEAD`); a failed `POST` or `PATCH` surfaces immediately instead of risking a duplicate write. Network errors and `Retry-After` responses (`429`/`503`/`504`) retry as before.
+
+ ## What's new
+
+ - **Fleet list in the dashboard** — platform admins see every enrolled runner with its derived liveness: `registered`, `online`, `busy`, or `offline`.
+
+ ## API reference
+
+ - **`GET /v1/fleet/runners`** — platform-admin only; paginated. Each item carries `liveness ∈ {registered, online, busy, offline}` and never includes the token hash. A tenant token gets `403`.
+
+ ## CLI
+
+ - **`zombie-runner register` is gone.** The subcommand and its `--token` / `--host-id` flags no longer exist; see **Upgrading** above for the dashboard enrollment flow.
+
+
## One name across the product: the thing you install is an "agent"