diff --git a/fern/changelog/2026-09-28.mdx b/fern/changelog/2026-09-28.mdx new file mode 100644 index 000000000..48af15fcf --- /dev/null +++ b/fern/changelog/2026-09-28.mdx @@ -0,0 +1,9 @@ +# What's New: Week of September 28, 2026 + +1. **Composer Per-Conversation Approval Modes**: [Composer](/composer) now lets you choose when each conversation pauses for approval: ask before all changes, allow creates but ask before updates, deletes, runs, or publishing, bypass approvals entirely, or set custom permissions by resource and action. + +2. **Eval Run History**: You can now browse your complete [Eval run history](/observability/evals-quickstart#view-run-history) with search and pagination, and share a specific run result by URL. + +3. **Fixes and Improvements**: + - **Call logs**: The logs table now shows clearer, deterministic error messages for 4xx responses instead of retrying unnecessarily, and the date picker now lets you select the full retention window. + - **Voice fallback**: xAI terminal voice failures raised before a call starts are now delivered, the fallback voice no longer greets out of turn, and replacing a voice no longer consumes a second fallback. diff --git a/fern/composer.mdx b/fern/composer.mdx index ca7892586..dba826f67 100644 --- a/fern/composer.mdx +++ b/fern/composer.mdx @@ -173,41 +173,34 @@ Composer understands voice agent architecture and Vapi's capabilities. It can cr ## Safety features -Composer includes safeguards to prevent accidental or irreversible changes to your account. +Composer includes safeguards to prevent accidental or irreversible changes to your account. You control how much Composer can do on its own with per-conversation approval modes. -### No deletion capability +### Approval modes -Composer **cannot delete any resources** — assistants, tools, phone numbers, squads, files, or anything else. This is a deliberate safety measure, not a limitation. +You choose when Composer pauses for your approval, and the setting persists for that conversation: -If you ask Composer to delete something, it directs you to do it yourself: +- **Ask before every change**: Composer requests approval for all creates, updates, deletes, runs, and publishes. +- **Ask before updates, deletes, runs, and publishing**: Composer creates new resources on its own, but asks before changing, deleting, running, or publishing anything that already exists. +- **Bypass approvals**: Composer applies changes without pausing. +- **Custom**: set permissions for each resource and action individually. -```txt title="Deletion request example" -You: "Delete my old test assistant" +Approval enforcement always happens on the server, and read operations never require approval. -Composer: "I'm not able to delete resources to prevent accidental data loss. -You can delete it yourself from the dashboard — use the sidebar on the left, -go to Assistants, select the one you want to remove, and delete it from there." -``` - - -Unlike creating or updating a resource (which can be undone or re-done), deletion is permanent. Requiring manual confirmation through the dashboard UI prevents accidental loss of important configurations. - - -### Approval required for updates +### Deletion -When Composer modifies an existing resource (like updating an assistant's prompt, changing a voice setting, or editing a tool configuration), it pauses and asks for your explicit approval first. +Composer can delete resources such as assistants, tools, phone numbers, squads, and files. Deletion follows your approval mode: unless you have selected Bypass, Composer asks for your explicit approval before it deletes anything. Because deletion is permanent, keep an approval mode on if you want a confirmation step before a resource is removed. -**How the approval flow works:** +### How the approval flow works - Composer shows you a summary of the update it wants to make. + Composer shows you a summary of the change it wants to make. The chat interface displays **Approve** and **Deny** buttons. Click **Approve** to proceed or **Deny** to cancel. - If approved, Composer makes the update and confirms. If denied, no changes are made. + If approved, Composer makes the change and confirms. If denied, no changes are made. @@ -215,7 +208,7 @@ When Composer modifies an existing resource (like updating an assistant's prompt You: "Change my agent's voice to sound more energetic" Composer: [Proposes update] -→ UI shows: "Update Resource — Updating voice settings on assistant xyz" +UI shows: "Update Resource, updating voice settings on assistant xyz" [Approve] [Deny] You: [Clicks Approve] @@ -226,10 +219,9 @@ know if you'd like to adjust further." **Key details about approvals:** -- **Tokens expire after 10 minutes** — if you don't respond in time, Composer needs to re-propose the change -- **Each approval is specific** — approval tokens are cryptographically bound to the exact change being made; multiple updates each require individual approval -- **Read operations don't require approval** — Composer can freely read and list your resources without permission -- **Creating new resources doesn't require approval** — new assistants, tools, and other resources are additive and non-destructive +- **Tokens expire after 10 minutes**: if you don't respond in time, Composer re-proposes the change. +- **Each approval is specific**: approval tokens are cryptographically bound to the exact change being made, so multiple changes each require individual approval. +- **Read operations don't require approval**: Composer can freely read and list your resources. ## Tips for best results diff --git a/fern/observability/evals-quickstart.mdx b/fern/observability/evals-quickstart.mdx index 1461dca33..efb740e7d 100644 --- a/fern/observability/evals-quickstart.mdx +++ b/fern/observability/evals-quickstart.mdx @@ -1136,7 +1136,12 @@ For API details, see [Delete Eval](/api-reference/eval/delete). - Target (assistant/squad) - Status (pass/fail) - Duration - 4. Click any run to view detailed results + 4. Search and paginate through your complete run history to find older runs + 5. Click any run to view detailed results + + + To share a result, open a run and copy its URL. Anyone with access to your organization can open the link to view that same result, including older runs outside the current page. +