From 495b39435eeb8477474f47c36dbb118c61fa0103 Mon Sep 17 00:00:00 2001 From: Kishore Kumar Date: Sat, 6 Jun 2026 22:12:57 +0530 Subject: [PATCH 1/3] docs(changelog): add tag-based runner placement entry (Jun 06) Agents now route to runners by capability: SKILL.md `tags:` become an agent's required_tags, and a runner claims an agent only when those tags are a subset of its advertised labels. Empty tags run anywhere (back-compat). Notes the silent-wait when no runner matches and the UZ-REQ-001 bounds. Co-Authored-By: Claude Opus 4.8 --- changelog.mdx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/changelog.mdx b/changelog.mdx index a714742..4779a87 100644 --- a/changelog.mdx +++ b/changelog.mdx @@ -22,6 +22,18 @@ 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. + + ## Pin an agent to capable runners with tags + + An agent's `tags:` now decide where it runs. Add `tags: [gpu, us-east]` to your SKILL.md frontmatter and the agent runs only on a runner whose advertised labels cover every tag — capability-bound work lands on a host that can serve it. An agent with no tags runs on any runner, exactly as before. The tags you already write in the manifest drive this; there is no separate field to set. + + If no enrolled runner currently advertises the required labels, the agent waits for a matching runner rather than running on an unsuitable host. + + ## API reference + + - **`required_tags` on an agent** — derived from the SKILL.md `tags:` on create and re-derived when you `PATCH` a new `source_markdown`. A runner claims an agent only when `required_tags` is a subset of the runner's labels. Each tag is 1–64 characters and an agent carries at most 32; a tag outside those bounds rejects the request with `UZ-REQ-001`. + + ## Enroll runners from the dashboard, plus a regrouped left navigation From 8c0969970453fe10a283fba306b11b8a40af1472 Mon Sep 17 00:00:00 2001 From: Kishore Kumar Date: Sat, 6 Jun 2026 22:41:25 +0530 Subject: [PATCH 2/3] docs(changelog): disambiguate tag limits, note silent runner wait MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Address greptile review on PR #80: - Split the conflated tag bounds in the API reference bullet — per-tag length (1–64 chars) and per-agent count (≤32) are distinct triggers for UZ-REQ-001; "either bound exceeded" now reads unambiguously. - Add a on the silent-wait behavior. A waiting agent surfaces no separate status today, so the note tells users to confirm a runner advertises matching labels rather than mistaking the wait for a silent failure. Co-Authored-By: Claude Opus 4.8 --- changelog.mdx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/changelog.mdx b/changelog.mdx index 4779a87..5a83582 100644 --- a/changelog.mdx +++ b/changelog.mdx @@ -29,9 +29,13 @@ export const STAGE_SELF_MANAGED_M66 = "$0.0001"; If no enrolled runner currently advertises the required labels, the agent waits for a matching runner rather than running on an unsuitable host. + + A waiting agent surfaces no separate status today. If an agent never starts, confirm an enrolled runner advertises every tag the agent requires. + + ## API reference - - **`required_tags` on an agent** — derived from the SKILL.md `tags:` on create and re-derived when you `PATCH` a new `source_markdown`. A runner claims an agent only when `required_tags` is a subset of the runner's labels. Each tag is 1–64 characters and an agent carries at most 32; a tag outside those bounds rejects the request with `UZ-REQ-001`. + - **`required_tags` on an agent** — derived from the SKILL.md `tags:` on create and re-derived when you `PATCH` a new `source_markdown`. A runner claims an agent only when `required_tags` is a subset of the runner's labels. Each tag is 1–64 characters; an agent carries at most 32. Either bound exceeded rejects the request with `UZ-REQ-001`. From 76d0e7b6d8f8fea12487d96448376a6da8a7c273 Mon Sep 17 00:00:00 2001 From: Kishore Kumar Date: Sat, 6 Jun 2026 22:47:16 +0530 Subject: [PATCH 3/3] docs(api): drop dead agent-memories nav entries POST /v1/.../memories and DELETE /v1/.../memories/{memory_key} were removed from the upstream openapi.json, leaving the nav referencing endpoints Mintlify can't generate. This drift failed `make lint` (openapi-drift gate) and the Mintlify Deployment check on main and every branch off it. Keep GET /v1/.../memories, which still exists upstream. Co-Authored-By: Claude Opus 4.8 --- docs.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs.json b/docs.json index 380478f..274aad0 100644 --- a/docs.json +++ b/docs.json @@ -196,9 +196,7 @@ { "group": "Agent memories", "pages": [ - "GET /v1/workspaces/{workspace_id}/zombies/{zombie_id}/memories", - "POST /v1/workspaces/{workspace_id}/zombies/{zombie_id}/memories", - "DELETE /v1/workspaces/{workspace_id}/zombies/{zombie_id}/memories/{memory_key}" + "GET /v1/workspaces/{workspace_id}/zombies/{zombie_id}/memories" ] }, {