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
5 changes: 4 additions & 1 deletion api-reference/error-codes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Error codes
description: API error response fields and stable error codes.
type: reference
audience: user
verified: 2026-07-16
verified: 2026-07-18
product_version: 0.17.0
executable: false
---
Expand Down Expand Up @@ -145,6 +145,7 @@ A conflict response also contains `current_state`. Some errors contain `user_mes
| <span id="UZ-AGT-011"></span>`UZ-AGT-011` | 400 | Fleet files disagree on `name:` | This Fleet Bundle's files disagree on its name. `SKILL.md` and `TRIGGER.md` must match. Fix the source and try again. | Use fleet identifiers from the current workspace. |
| <span id="UZ-AGT-012"></span>`UZ-AGT-012` | 409 | Fleet is paused | This Fleet is paused. Resume it before sending new work. | Use fleet identifiers from the current workspace. |
| <span id="UZ-AGT-013"></span>`UZ-AGT-013` | 500 | Fleet install rolled back | We couldn't finish setting up your fleet. Nothing was created — try again. | Use fleet identifiers from the current workspace. |
| <span id="UZ-AGT-014"></span>`UZ-AGT-014` | 412 | Fleet source is stale | Another update changed the fleet source. Reload the current source and `etag`, reapply your change, then retry. | Reload the fleet source before editing and send the latest `etag`. |

### Fleet Bundles

Expand All @@ -161,6 +162,7 @@ A conflict response also contains `current_state`. Some errors contain `user_mes
| Code | HTTP | Title | Why and fix | Prevent |
|---|---|---|---|---|
| <span id="UZ-CATALOG-002"></span>`UZ-CATALOG-002` | 409 | Cannot publish a fleet with no bundle | This entry has no bundle, so it has nothing to publish. Fetch the bundle from its repository, then publish. | Fetch and review the bundle before publishing. |
| <span id="UZ-CATALOG-005"></span>`UZ-CATALOG-005` | 412 | Catalog entry changed since you loaded it | Another update changed the catalog entry. Refresh it, reapply your change, then retry. | Refresh the catalog entry before editing and send the latest `etag`. |

### Secrets

Expand Down Expand Up @@ -256,6 +258,7 @@ A conflict response also contains `current_state`. Some errors contain `user_mes
|---|---|---|---|---|
| <span id="UZ-MEM-002"></span>`UZ-MEM-002` | 404 | Fleet not found for memory op | The fleet_id does not exist or does not belong to the requesting workspace. Verify the fleet_id and workspace scope. | Use an existing fleet and a valid memory category. |
| <span id="UZ-MEM-003"></span>`UZ-MEM-003` | 503 | Saved memory unavailable | Saved memory is unavailable. The fleet uses temporary workspace memory until the service recovers. | Use an existing fleet and a valid memory category. |
| <span id="UZ-MEM-004"></span>`UZ-MEM-004` | 404 | Memory entry not found | No memory entry exists for this key. List memories to confirm the exact key. | Use an existing memory key. |

### API keys

Expand Down
20 changes: 20 additions & 0 deletions changelog.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,26 @@ export const STAGE_SELF_MANAGED_M66 = "$0.0001";
- **A Platform sidebar group** — **Runners**, **Model library**, and **Fleet library** move out of the Configuration list into their own **Platform** group, shown only to an operator holding the matching scope. The group is open by default and can be collapsed with a click.
</Update>

<Update label="Jul 16, 2026" tags={["What's new", "API", "UI", "Performance"]}>
## Fleet detail becomes the operating console

Fleet detail now puts source editing, live steering, memory, run cost, and lifecycle controls on one page.

## What's new

- **Source editing** — read and edit `SKILL.md` or `TRIGGER.md` from the dashboard. A save takes effect on the next wake and keeps the fleet's memory. If someone else saves first, the editor reloads their change instead of overwriting it.
- **Memory correction** — inspect learned entries and forget one incorrect entry from the dashboard. Deleting the fleet still deletes all its memory; editing its source does not.
- **Run cost** — each event can show tokens, wall time, and settled cost. The recent rollup covers the latest 200 events within seven days and labels that bound; lifetime spend remains visible separately.
- **Faster fleet lists** — lifetime event and spend counters are maintained when activity is written, so list reads no longer re-sum the full event history.

## API reference

- **Fleet detail** — `GET /v1/workspaces/{workspace_id}/fleets/{fleet_id}` returns source, triggers, lifecycle state, lifetime counters, and an `ETag` header.
- **Event cost** — fleet event rows now include nullable `cost_nanos`, sourced from settled billing telemetry.
- **Memory forget** — `DELETE /v1/workspaces/{workspace_id}/fleets/{fleet_id}/memories/{key}` requires `fleet:write`, returns `204` when deleted, and returns `UZ-MEM-004` when the key is absent.
- **Stale-write protection** — fleet source and platform library PATCH requests may send `If-Match`. A stale fleet edit returns `UZ-AGT-014`; a stale catalog edit returns `UZ-CATALOG-005`. Both responses use `412` and include the current `ETag`.
Comment thread
greptile-apps[bot] marked this conversation as resolved.
</Update>

<Update label="Jul 14, 2026" tags={["What's new", "API", "UI"]}>
## The fleet catalog stops overstating itself, and operators can fix a mistyped repository in place

Expand Down
4 changes: 3 additions & 1 deletion fleets/library.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Fleet library
description: Understand platform and workspace library entries.
type: explanation
audience: user
verified: 2026-07-12
verified: 2026-07-16
product_version: 0.17.0
executable: false
---
Expand Down Expand Up @@ -60,6 +60,8 @@ A rename survives the next bundle fetch, as the description and credential copy

An entry that is published but holds no bundle shows as **Broken** in the catalog. It is invisible to every workspace; fetch a bundle or unpublish it.

The dashboard protects edits with the row version loaded by the form. If another operator saves first, your stale edit is refused. Refresh the row, review the newer values, and apply your change again.

## Prebuilt fleets

Four fleets ship as platform entries. Each is a public repository under `agentsfleet`, and each installs by its identifier.
Expand Down
8 changes: 7 additions & 1 deletion fleets/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Fleet overview
description: Understand what a fleet owns and how its lifecycle works.
type: explanation
audience: user
verified: 2026-07-12
verified: 2026-07-16
product_version: 0.17.0
executable: false
---
Expand Down Expand Up @@ -31,6 +31,10 @@ A fleet keeps repeated event work in one place. The workspace controls access wh

Installing a library entry creates the fleet. The active workspace owns it, and authorized workspace members control it.

The fleet detail page shows source, live activity, memory, approvals, run metrics, and recent cost together. You can edit `SKILL.md` or `TRIGGER.md` there. A save takes effect on the next wake and keeps the same fleet identifier and memory.

If another operator saves first, your stale source edit is refused. The editor reloads the current source so you can review the newer version and apply your change again.

Stopping a fleet lets the current run finish. Killing a fleet keeps its records but blocks all later work.

Deleting a killed fleet removes all fleet records. A replacement fleet receives a new identifier and new webhook URLs.
Expand All @@ -39,6 +43,8 @@ Deleting a killed fleet removes all fleet records. A replacement fleet receives

The fleet can use only declared tools, secrets, and network hosts. Daily or monthly budgets can block new work.

The recent cost rollup covers the latest 200 events within seven days. The page labels this bound and shows lifetime spend separately.

The service validates `SKILL.md` and `TRIGGER.md` during installation and updates. Invalid files do not replace the active fleet settings.

## Related pages
Expand Down
8 changes: 6 additions & 2 deletions memory.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Memory
description: Learn what a fleet can remember between events.
type: explanation
audience: user
verified: 2026-07-12
verified: 2026-07-18
product_version: 0.17.0
executable: false
---
Expand All @@ -14,7 +14,7 @@ executable: false

Memory stores short facts for one fleet. A later run can recall those facts by key or text.

The fleet creates, owns, updates, and removes its memory entries. Workspace members can inspect entries through the client or API.
The fleet creates, owns, updates, and removes its memory entries. Workspace members can inspect entries through the dashboard or API. Members with fleet write access can forget entries.

## Why it exists

Expand All @@ -33,6 +33,10 @@ Memory lets a fleet keep useful conclusions between events. Store conclusions in

`memory_list` filters entries. `memory_forget` deletes one key.

The dashboard's fleet detail page lists each entry's content, category, and update time. Forgetting an entry requires fleet write access.

The API route is `DELETE /v1/workspaces/{workspace_id}/fleets/{fleet_id}/memories/{key}`. It returns `204` after deletion and `UZ-MEM-004` when the key is absent.
Comment thread
greptile-apps[bot] marked this conversation as resolved.

`<FLEET_ID>` comes from `agentsfleet list`.

```bash
Expand Down
Loading