diff --git a/api-reference/error-codes.mdx b/api-reference/error-codes.mdx
index 60baf01..bcc84e2 100644
--- a/api-reference/error-codes.mdx
+++ b/api-reference/error-codes.mdx
@@ -3,8 +3,8 @@ title: Error codes
description: API error response fields and stable error codes.
type: reference
audience: user
-verified: 2026-10-19
-product_version: 0.62.1
+verified: 2026-10-23
+product_version: 0.64.0
executable: false
---
@@ -195,15 +195,15 @@ These codes answer private drafts, Save, Apply, and Library publication.
| `UZ-AUTHOR-005` | 409 | Operation key conflict | That operation key already belongs to a different request. Reuse a key only for the same request from the same person. |
| `UZ-AUTHOR-006` | 409 | Setup review changed | This setup changed. Review it before saving. The response carries the fresh `review_digest`. |
| `UZ-AUTHOR-007` | 402 | Authoring balance insufficient | The workspace balance cannot cover this authoring request. The workspace owner adds credit, or the request waits for earlier usage to settle. |
-| `UZ-AUTHOR-008` | 409 | Authoring model unavailable | Choose an available authoring model. The selected model is missing, disabled, or not eligible for authoring. |
+| `UZ-AUTHOR-008` | 409 | Authoring model unavailable | The selected model is missing, disabled, or ineligible, or its credential was rejected. Replace the credential or choose another available authoring model. |
| `UZ-AUTHOR-009` | 409 | Setup policy changed | This setup needs a new review. Review the current setup before continuing. |
| `UZ-AUTHOR-010` | 422 | Authoring context too large | This request exceeds the authoring model's context limit. Shorten the request or choose a model with a larger window. |
| `UZ-AUTHOR-011` | 400 | Invalid setup cursor | Reload this list to continue. A cursor works only with the same person, filters, and page size. |
| `UZ-AUTHOR-012` | 409 | Authoring lease lost | This authoring attempt can no longer update the draft. Refresh the draft before sending another message. |
| `UZ-AUTHOR-013` | 410 | Setup resource purged | This setup was deleted. Start a new operation. |
| `UZ-AUTHOR-014` | 502 | Authoring provider failed | The authoring provider could not finish this request. Send the message again. |
-| `UZ-AUTHOR-015` | 409 | Authoring usage unresolved | This model request is waiting for accounting. Wait before sending again. |
-| `UZ-AUTHOR-016` | 504 | Authoring attempt timed out | This authoring attempt ran out of time. Send the message again once its accounting settles. |
+| `UZ-AUTHOR-015` | 409 | Authoring usage unresolved | An earlier attempt still has unresolved provider usage. Choose **Stop authoring** on that reply before sending a new message. Its reserved balance can still limit new work until accounting finishes. |
+| `UZ-AUTHOR-016` | 504 | Authoring attempt timed out | This attempt timed out after its provider accounting resolved. Send a new message to retry. |
### Secrets
diff --git a/changelog.mdx b/changelog.mdx
index ce6d35b..cf3343f 100644
--- a/changelog.mdx
+++ b/changelog.mdx
@@ -7,6 +7,32 @@ description: "Stay up to date with the latest agentsfleet product updates, new f
agentsfleet is in **stealth-mode testing** and pre-production. APIs and agent behavior may change between releases without long deprecation windows. Email [agentsfleet@agentmail.to](mailto:agentsfleet@agentmail.to) if you want a hand calibrating an agent or to join as a design partner.
+
+ ## Edit fleet setup beside the conversation
+
+ **Edit setup** opens a private chat beside the fleet conversation. Saving applies your changes to new runs.
+
+ - **Saving** — **Save fleet** stays beside the setup-chat title. **Save changes** stays below the message field when editing a fleet.
+ - **Recent** — return to fleets and your unsaved setup chats from one sidebar section.
+ - **Streaming** — replies appear while the model answers. Live text stops when you stop a reply, and completed replies remain available after reconnecting.
+
+
+
+ ## Resume setup chat after Stop
+
+ Stop an uncertain setup reply, then send a new message. Earlier usage remains available for billing reconciliation.
+
+ ## What's new
+
+ - **MiniMax** — the model library includes OpenRouter's `minimax/minimax-m3.1-flash:free`. An administrator must enable it before you can select it.
+
+ ## Bug fixes
+
+ - **Recovery** — stopped attempts no longer block later replies. Existing balance and capacity limits still apply.
+ - **Credentials** — definite key rejections fail the reply; repair the credential or select another model before sending again.
+ - **Sidebar** — **Recent setup** shows chat titles in navigation text. Search and fleet recents are removed; the folded **New fleet** plus is compact.
+
+
## Docs match the product branding
diff --git a/fleets/approvals.mdx b/fleets/approvals.mdx
index ff912d8..b18c5a2 100644
--- a/fleets/approvals.mdx
+++ b/fleets/approvals.mdx
@@ -3,8 +3,8 @@ title: Approve a waiting run
description: Review requested access, approve or deny it, and revoke standing grants.
type: how-to
audience: user
-verified: 2026-10-19
-product_version: 0.62.1
+verified: 2026-10-23
+product_version: 0.64.0
executable: false
---
@@ -122,8 +122,8 @@ Then run `agentsfleet grant delete --fleet `.
To change which repositories a fleet may reach, or to drop it to read-only,
change `repositories` or `repository_access` in a private improvement chat.
-Open the fleet's **Setup → Edit fleet**, ask for the change, check the
-updated setup, and choose **Save changes**.
+Choose **Edit setup** in the fleet header, then ask for the change.
+Review the updated setup through **… → Edit instructions**, then choose **Save changes** beside the chat.
The next service credential uses the updated repository access. The grant stays
approved, and the fleet keeps running.
diff --git a/fleets/authoring.mdx b/fleets/authoring.mdx
index c6e9e35..9b5bf6d 100644
--- a/fleets/authoring.mdx
+++ b/fleets/authoring.mdx
@@ -3,8 +3,8 @@ title: Author a fleet
description: Describe a fleet in a private chat, check its setup, and save it.
type: how-to
audience: user
-verified: 2026-10-19
-product_version: 0.62.1
+verified: 2026-10-23
+product_version: 0.64.0
executable: false
---
@@ -35,36 +35,52 @@ Each chat message is charged to the workspace owner's balance. A message the bal
1. Open **New fleet** in the workspace sidebar.
2. Check the selected model, then describe the task. New chats select an available authoring model by default. Each reply can change the draft setup.
-3. Read **Your fleet setup** below the chat. It shows the proposed task, instructions, triggers, access, and spending limits. Keep chatting until they match what you asked for.
-4. Choose **Save fleet**. To request a first run immediately, enter a message under **Optional first run** and choose **Save and run now** instead.
-5. Choose **Open fleet** when the saved fleet appears. Its sections are **Chat**, **Activity**, **Memory**, and **Setup**.
+3. Open the chat's **… → Edit instructions**. Check the instructions and **Review and run options**. Keep chatting until the proposal matches your task.
+4. Choose **Save fleet** beside the chat title. For an immediate first run, enter a message under **Optional first run** in the editor and choose **Save and run now**.
+5. Saving opens the fleet conversation. Its sections are **Chat**, **Activity**, and **Memory**.
The proposed setup creates no fleet and requests no run. **Save fleet** checks the current setup, then saves it. It requests no first run, but configured automatic triggers can start work once setup is ready.
-**Edit instructions** opens the proposed instructions for a direct edit. **Cancel editing** returns to the setup without changes.
+**Edit instructions** opens a panel beside the chat, or across the screen on a phone. Your unsent chat message stays in place.
-**Fleet saved** shows setup and first-run status separately. Setup readiness means the fleet can receive work. An accepted first run can still be running.
+Choose **Update instructions** to apply manual edits to the draft, then **Save fleet** or **Save changes** beside the chat. **Cancel editing** discards unsubmitted edits.
+
+The setup chat shows a compact saved-version summary. Setup and first-run warnings remain visible when setup needs attention.
Keep unfinished setup steps and schedule registration warnings in view. Use the displayed retry action when setup needs attention.
-To change a saved fleet, open **Setup** and choose **Edit fleet**. A private chat opens for the fleet's saved setup revision.
+To change a saved fleet, choose **Edit setup** in its header. A private chat opens beside the fleet conversation, based on its saved setup revision. On a phone, the editor fills the page.
-Describe the change, check **Update fleet setup**, then choose **Save changes**.
+Describe the change, review it through **Edit instructions**, then choose **Save changes** beside the chat.
New work uses the updated instructions; work already running keeps its current version.
+### Recover a stopped or failed reply
+
+**Queued…** means your message is waiting to start. **Working…** means a reply has started.
+
+If the provider outcome is uncertain, choose **Stop authoring**, then send a new message.
+Earlier usage stays under review, and its reserved balance can limit new work until accounting finishes.
+
+A definite credential rejection fails the reply without requiring **Stop**.
+Ask the credential owner to replace the key, or choose another available authoring model before sending a new message.
+A key that worked earlier can expire or be revoked.
+
+**Stop** keeps setup changes already accepted into the proposal. Review the current proposal before saving.
+Stopping setup chat leaves saved fleets running.
+
### Find, rename, and delete setup chats
-The sidebar lists your chats under **Fleet setup chats**. Only you see them.
+The sidebar lists fleets and your unsaved setup chats under **Recent**. Select a fleet to return to its conversation.
A new chat is titled with the first line of your first message, cut to 100 characters. A chat started from a Definition or a Library revision takes the first line of its description. A chat with neither reads **New fleet**.
-Choose **Rename** beside the chat title to change it. A renamed chat keeps your title, and the saved fleet keeps its own name. A chat cannot be renamed while a reply or a Save is running, or after it closes.
+Choose **… → Rename chat** above the conversation to change its title. A renamed chat keeps your title, and the saved fleet keeps its own name.
-**Search all chats** matches your chat titles and the text of every message, ignoring case. It searches all your chats, not only the ones loaded in the sidebar.
+You cannot rename a chat while a reply or Save is running, while earlier usage is being checked, or after the chat closes.
To delete a chat, choose its delete action and confirm **Delete chat**. The private conversation is removed. Saved fleets keep running, and published Library revisions stay available.
-Each chat shows the versions it reached. **Proposed** is its latest setup while the chat is open. **Saved** is the fleet's current setup revision, and **Published** is the Library revision it published.
+Hover or focus a setup-chat row to read its full title and status. The editor identifies the saved fleet revision on which your changes are based.
### In the terminal
@@ -191,7 +207,8 @@ A Save that prints `installing` and exits with code `1` is waiting on a setup ch
`UZ-AUTHOR-006` means the setup or its access changed after your review. Review the draft again and save with the new digest.
-`UZ-AUTHOR-008` means the authoring model is missing or disabled. In the terminal, run `/model ` with another eligible model.
+`UZ-AUTHOR-008` means the authoring model is unavailable, including a rejected credential. Repair its configuration or select another eligible model.
+In the terminal, run `/model ` to change models.
If the dashboard has no eligible model, open model settings. Check the saved endpoint, API format, token limits, and credentials. Loading failures show a retry action separately from missing configuration.
diff --git a/fleets/model-providers.mdx b/fleets/model-providers.mdx
index d101f4e..585f6f7 100644
--- a/fleets/model-providers.mdx
+++ b/fleets/model-providers.mdx
@@ -3,8 +3,8 @@ title: Use your own model provider
description: Store a model-provider credential and run fleets on it instead of the platform default.
type: how-to
audience: user
-verified: 2026-10-19
-product_version: 0.62.1
+verified: 2026-10-23
+product_version: 0.64.0
executable: false
---
@@ -87,7 +87,7 @@ New setup reviews resolve your account default unless the Definition selects a m
Check **Runtime model** in the review before saving.
Changing the account default does not replace an existing fleet's saved model reference.
-To change that reference, open **Setup → Edit fleet**, update the model, then review and save the setup.
+To change that reference, choose **Edit setup** in the fleet header. Update the model in the chat, then review and save the setup.
## Point at your own endpoint
@@ -117,6 +117,10 @@ Check the response and usage in your provider account.
## Common problems
+A saved key can expire or be revoked. If setup chat reports `UZ-AUTHOR-008` after a credential rejection, replace the key or select another model.
+
+The rejected reply fails without requiring **Stop**. If the provider outcome is uncertain, follow [setup-chat recovery](/fleets/authoring#recover-a-stopped-or-failed-reply).
+
An unknown provider or model returns the accepted values. Run
`agentsfleet models --provider ` to check your choice.
Ask an administrator to add a missing model and its inference settings.
diff --git a/fleets/overview.mdx b/fleets/overview.mdx
index bce1ccf..f9c4efe 100644
--- a/fleets/overview.mdx
+++ b/fleets/overview.mdx
@@ -3,8 +3,8 @@ title: Fleet overview
description: Understand what a fleet owns and how its lifecycle works.
type: explanation
audience: user
-verified: 2026-10-19
-product_version: 0.62.1
+verified: 2026-10-23
+product_version: 0.64.0
executable: false
---
@@ -42,9 +42,10 @@ Use the fleet navigation for one task at a time:
- **Chat** sends instructions and shows the fleet's replies. A message is sent when you submit it, whether or not the live feed is connected. The fleet handles what arrives in order, so a busy fleet does not block you.
- **Activity** lists saved activity, outcomes, token use, spend, and duration.
- **Memory** shows lessons the fleet can use in later runs.
-- **Setup** shows what the fleet does, its saved instructions, its saved version, its triggers, and its schedules. **Edit fleet** opens a private chat for that saved setup.
-The fleet header contains stop, resume, kill, and delete controls, according to its current state.
+Choose **Edit setup** in the fleet header to open a private setup chat beside the conversation. Closing the editor returns to the conversation.
+
+Other controls include stop, resume, kill, and delete, according to the fleet's state.
Each Chat entry shows its sender, the time, and what happened. Your own messages read `Operator`. The fleet's replies read the fleet's name.
@@ -72,18 +73,18 @@ Each unsent message keeps its own **Resend** and **Dismiss** until you choose on
An expired session shows **Sign in** beside **Resend**, so you can sign in and then resend. Resending the same message is safe; changing the text makes it a new message. A message can be at most 8,192 bytes.
-The fleet's `webhook_urls` lists each provider webhook address. Setup shows each declared source and its event filters without copying a webhook URL.
+The fleet API's `webhook_urls` lists each provider webhook address. Open **Edit setup → … → Edit instructions** to review declared triggers and their filters.
-Under **Schedule**, Setup reads each saved schedule in words with its time zone, such as `At 9:00 AM (Asia/Kolkata)`. The line below says whether it will run:
+Each schedule's `description` states its timing and time zone, such as `At 9:00 AM (Asia/Kolkata)`. Its `run_state` and nullable `next_run_at` describe whether it will run:
-| Shown | Meaning |
+| `run_state` | Meaning |
|---|---|
-| **Next run:** a time | The schedule is active and registered. The time is the next match of its expression in its zone. |
-| **Schedule paused.** | The schedule is stored and does not fire until you resume it. |
-| **Schedule saved; activation is pending.** | The schedule is saved but not yet registered with the scheduler. |
-| **Next run time unavailable.** | The schedule will not run on its own. Registration failed, it is being deleted, its one-time run passed, or its expression has no future match. |
+| `scheduled` | The schedule is active and registered. `next_run_at` is the next match of its expression in its zone. |
+| `paused` | The schedule is stored and does not fire until you resume it. |
+| `activation_pending` | The schedule is saved but not yet registered with the scheduler. |
+| `next_run_unavailable` | The schedule will not run on its own. Registration failed, it is being deleted, its one-time run passed, or its expression has no future match. |
-A fleet with no schedule reads **No schedule set.** The server works out the state and the next run when you load the page. Run history stays in **Chat** and **Activity**.
+The server works out the state and next run when you request the fleet. Run history stays in **Chat** and **Activity**.
An improvement runs in a private chat pinned to the fleet's current setup revision. Choose **Save changes** to make it the fleet's next revision. Running work keeps the revision it started with.
diff --git a/fleets/slack.mdx b/fleets/slack.mdx
index 1a908da..0681e12 100644
--- a/fleets/slack.mdx
+++ b/fleets/slack.mdx
@@ -3,8 +3,8 @@ title: Answer mentions in Slack
description: Attach a fleet to a Slack channel so it answers when someone mentions agentsfleet there.
type: how-to
audience: user
-verified: 2026-10-19
-product_version: 0.62.1
+verified: 2026-10-23
+product_version: 0.64.0
executable: false
---
@@ -53,7 +53,7 @@ Find the channel identifier (ID) in Slack. Open the channel's details and copy *
✓ Fleet : active
```
- In the dashboard, check **Your fleet setup** and choose **Save fleet**.
+ In the dashboard, review the setup through **… → Edit instructions**, then choose **Save fleet** beside the chat.
3. Mention the app in the channel and ask your question.
@@ -141,9 +141,9 @@ A mention from a Slack workspace that is not connected to an `agentsfleet` works
To detach a fleet from the channel, remove its `mention` trigger and apply the change.
-1. Open the fleet in the dashboard and choose **Setup → Edit fleet**.
+1. Open the fleet in the dashboard and choose **Edit setup** in its header.
2. Ask the chat to remove the Slack mention trigger.
-3. Check that the trigger is gone from **Update fleet setup**, then choose **Save changes**.
+3. Open **… → Edit instructions** and check that the trigger is gone. Choose **Save changes** beside the chat.
In the terminal, start the same chat with `agentsfleet chat --fleet --setup-revision --model `. `` is the `setup_revision` field that `agentsfleet --json fleet show ` prints. Ask for the change, then run `/review` and `/apply`.
diff --git a/fleets/webhooks.mdx b/fleets/webhooks.mdx
index ac013f9..b55a59b 100644
--- a/fleets/webhooks.mdx
+++ b/fleets/webhooks.mdx
@@ -3,8 +3,8 @@ title: Configure a webhook
description: Send signed provider events to a fleet.
type: how-to
audience: user
-verified: 2026-10-19
-product_version: 0.62.1
+verified: 2026-10-23
+product_version: 0.64.0
executable: false
---
@@ -185,7 +185,8 @@ Rate-limited requests include `Retry-After`. The provider should wait for that d
## Remove or undo
-Delete the webhook from the provider first. Then open the fleet's **Setup → Edit fleet**, ask the chat to remove the trigger, and choose **Save changes**.
+Delete the webhook from the provider first. Choose **Edit setup** in the fleet header, then ask the chat to remove the trigger.
+Review the updated setup and choose **Save changes** beside the chat.
Deleting the fleet removes its webhook URL. Requests to the old URL then return `UZ-WH-001`.