# Changelog Source: https://docs.abundly.ai/changelog/index New features, improvements, and fixes in Abundly New releases and improvements to the Abundly platform. ## ⚠️ Changed Behavior * **For workspace admins: Claude Fable 5 is now on by default** — Fable 5 previously had to be turned on explicitly before workspaces could use it. It now follows the same rules as every other model in the catalog, so it appears for any workspace that hasn't disabled it. [Choosing a model](https://docs.abundly.ai/features/model-selection) ## New Models * **Claude Fable 5 available in the model picker** — Anthropic's most capable model can now be selected for any agent, without needing it enabled first. It's the top of the Claude range, above Opus, for the hardest problems. [Choosing a model](https://docs.abundly.ai/features/model-selection) * **New "Claude Fable Best" alias** — Pick this instead of a specific Fable version and your agent automatically follows the latest version we recommend, the same way the Sonnet, Opus, and Haiku aliases work. [Choosing a model](https://docs.abundly.ai/features/model-selection) ## Improvements * **For workspace admins: Enterprise plans no longer listed twice** — Workspaces on an enterprise plan now see only the plan they are subscribed to on the billing page, instead of one entry per underlying price. * **"What's New" dismissal now syncs across devices** — Dismissing or reading the "What's New" popup on one device now keeps it dismissed everywhere you're signed in, instead of reappearing per device. ## Bug Fixes * **Service status badge readable in dark mode** — The status badge in the Help & support menu now follows your light or dark theme. ## GitHub Enterprise Support The GitHub capability now works with GitHub Enterprise — both Enterprise Cloud with data residency and self-hosted Enterprise Server. Workspace admins can enter the instance's host name in the new **GitHub host** field when configuring the GitHub capability; leave it empty to keep using github.com. Agents in GitHub Enterprise workspaces can browse repositories, review pull requests, and manage issues on their company's GitHub instance just like they already could on github.com. [GitHub integration](https://docs.abundly.ai/integrations/github) ## Bulk Agent Management Actions Two new bulk actions in the Agent Management view make it faster to work with many agents at once: * **Trigger** — Select any number of agents, enter a message, and fire all of them at once. Useful for broadcasting a task or message to multiple agents simultaneously. * **Send notice** — Workspace admins can select multiple agents and send an owner notice to all of their owners in one action, without visiting each agent individually. ## Improvements * **Removed misleading model badge** — The model badge in the agent selector and management table has been removed. It showed a single model but agents use different models per purpose (chat, scheduled tasks, email, etc.), making it actively misleading. ## Agent Owner Notices Agents can now send notices to their owners when they are blocked, need a decision, or want to propose a change they cannot make themselves — for example, a token that needs refreshing, a question only a human can answer, or suggested rewording for their own instructions. The new always-available `notify_owners` tool takes a `title`, a `message` (up to 8 000 characters), and an optional `severity` (`info`, `warning`, or `error`). Each notice is delivered to the agent's owners through the notification system, escalating to team and workspace admins for ownerless agents. Owners can view all notices in full on a new **Owner Notices** tab on the agent's Activity page. Each notice includes a button that opens a chat seeded with the notice content, so the owner can act on it immediately. ## Model Picker Improvements * **Distinct chat-default option** — Chats that follow the agent's model default now show a distinct *(chat default) Model Name* entry in the picker. Selecting the plain model name pins the chat to that model explicitly — fixing a case where this was impossible on mobile. * **Alias target tooltip** — Hovering the picker button for an alias selection now shows which model the alias currently points to, so the moving-pointer nature of the alias is visible at a glance. ## Bug Fixes * **Model picker on new-chat page** — The picker was showing the alias's resolved target instead of the alias itself before the first message was sent. It now shows the alias consistently from the start. ## Per-Chat Model Selection Every new portal chat now keeps the model it was started with. If you change the agent's default model later, existing conversations continue with the model they were created under — no surprises. A model picker in the chat top bar (desktop and mobile) lets you switch the model for that chat only. ## Multi-Account Gmail One agent can now be connected to multiple Gmail accounts — useful for assistants managing both a personal and a work inbox, for example. When two or more accounts are linked, Gmail tools gain a required `account` parameter to specify which inbox to use; single-account setups are unchanged. ## Improvements * **Platform-default alias stamping** — Agents with no model configured now track the platform-default alias itself, so they follow platform retargets automatically. The settings page also makes it clearer when a model is inherited rather than explicitly set. * **Mobile model selector** — The chat model selector on mobile is now functional and correctly styled. ## New Models * **Gemini 3.6 Flash** (`gemini-3.6-flash`) — Google's new default workhorse model is now available. Same input price as Gemini 3.5 Flash ($1.50/M tokens) with cheaper output ($7.50/M vs \$9/M), placing it in cost tier 2. 1M context window with thinking support. * **Gemini 3.5 Flash Lite** (`gemini-3.5-flash-lite`) — The fastest and most affordable model in the 3.5 generation ($0.30/$2.50 per 1M tokens, cost tier 2). 1M context window with thinking support. ## Bug Fixes * **Value dashboard "Learn more" link fixed** — The link in the value dashboard now correctly points to the docs page (previously led to a 404). ## Improvements * **Consistent delete confirmation** — The delete confirmation dialog is now identical whether you delete from the document explorer or from the open document side panel. Previously the two surfaces showed different-looking dialogs for the same action. ## Folder Deletion Safeguard Deleting a document folder that contains documents or subfolders now requires explicit confirmation. The confirmation dialog shows what will be deleted, helping prevent accidental data loss. ## Bug Fixes * **LLM API keys no longer leak across models** — A custom LLM configuration's API key was incorrectly applied to all models from the same vendor. The key now applies only to its specific model, and the settings UI no longer auto-copies it to the shared vendor key on page load. * **Custom models now visible in the model picker** — Catalog models pinned to a specific API key via a per-model override now appear correctly in the model picker. ## Improvements * **LLM settings header shows the editing scope** — The LLM section header in the configuration panel now reads "LLMs (global)", "LLMs (workspace)", or "LLMs (agent)" to make it clear which level you are editing. ## New Models * **Claude Opus 5** (`claude-opus-5`) — Anthropic's latest frontier model is now available on the platform. Like Opus 4.8, it uses adaptive thinking with the `effort` parameter. * **Grok 4.5** (`grok-4.5`) — xAI's Grok 4.5 is now available as a selectable model (standard context: $2/M input, $6/M output). ## Improvements * **Thinking toggle now correct for GPT mini/nano** — `gpt-5-mini`, `gpt-5-nano`, `gpt-5.4-mini`, and `gpt-5.4-nano` now correctly show the thinking toggle as available in the model picker. * **Inherited model thinking gating** — When no model is explicitly selected, the thinking toggle now correctly reflects whether the inherited/default model supports thinking, matching behavior for explicitly-selected models. ## Value Dashboard A new **Value dashboard** is now available in the Management section of the portal. It gives creators a cross-agent overview of triggers & messages, credits used, and actual vs. expected value per agent — with card and table views, trend sparklines, and links to value capture settings for each agent. The dashboard is visible when workspace value capture is enabled. ## Per-interaction Actual Value Agents can now be configured with a **per-interaction rate** for value capture. Instead of entering a manual value, set an amount per trigger or message and the dashboard will compute actual value automatically from usage counts. New value capture entries default to per-interaction mode. ## Bug Fixes * **Gemini image model fix** — The `gemini-3.1-flash-image` model alias has been updated (the previous `-preview` suffix caused the model to not be found). ## Bug Fixes * **`create_agent` tool: agents now assigned to creator's team** — Agents created via the `create_agent` tool are now automatically placed in the same team as the creating agent. Previously, created agents were always ungrouped regardless of which team the creator belonged to. * **Workspace default model now saves correctly** — Changing the default model in Workspace Settings now persists after a page reload. The setting was being applied optimistically in the UI but not saved to the backend. ## Improvements * **Eval editor: "Run plan and security" gated on system prompt** — The *Run plan and security* switch is now disabled (and automatically forced off) when the agent system prompt is not included in an eval (`agentContext = none`). An explanatory tooltip explains why. This prevents creating invalid eval configurations. * **Eval poll timeout extended to 30 minutes** — Long-running evals no longer time out after 5 minutes. The UI also shows a clearer status message if polling does time out, replacing the previous contradictory "Eval Run Complete / Polling timed out" state. ## Bug Fixes * **Claude Sonnet 5: sampling parameters fixed** — Fixed an issue where passing custom `temperature`, `top_p`, or `top_k` values caused API errors with Claude Sonnet 5. The model now uses default sampling parameters, matching Claude Opus 4.7+ behavior. ## Bug Fixes * **Anthropic daily/monthly quota: fail-fast instead of retrying** — Agent runs that hit Anthropic's daily or monthly token quota now fail immediately with a clear error instead of burning through \~10 retries over 30 minutes. Short-term rate limit 429s (TPM/RPM) remain transient and continue retrying as before. ## New Models: GPT-5.6 Sol, Terra, Luna OpenAI's three new GPT-5.6 models are now available in the model picker: * **GPT-5.6 Sol** — Frontier tier. The `gpt-5.6` alias points here, matching GPT-5.5 pricing. * **GPT-5.6 Terra** — Mid-tier, balancing intelligence and cost. * **GPT-5.6 Luna** — Cost-sensitive tier. All three support reasoning tokens and the 1.05M context window. ## Improvements * **Clearer HTTP request progress** — Agent progress messages for HTTP requests now show plain-English outcomes (`success`, `redirected`, `request was rejected`, `server error`) instead of raw status codes, making the activity log easier to read. ## Bug Fixes * **Gemini Flash Lite** — Agents configured with the deprecated `gemini-3.1-flash-lite-preview` model (shut down by Google on 2026-05-25) have been automatically migrated to the GA model ID `gemini-3.1-flash-lite`. Affected agents will now run correctly again. ## UI Improvements * **Microphone button removed from document and instructions editors** — Voice-to-text input has been removed from the document editor and agent instructions editor. The mic remains available in the chat composer and message edit form. ## Bug Fixes * **Stripe billing reliability** — Fixed an issue where duplicate Stripe subscriptions could be created, blocking workspaces with a `SubscriptionNotActive` error. The billing plan card now correctly shows "Cancels on" (instead of "Renews on") when a subscription is set to cancel at period end. ## Workspace User Action Log & Audit Logs Workspace admins now have a full audit trail of configuration changes in their workspace. The new **User action log** tab on the Usage page shows an append-only log of changes to agents, teams, secrets, API capabilities, and workspace settings — with CRUD-colored badges and expandable detail rows. Sensitive values (such as instructions and prompts) are redacted to hash tokens so admins can confirm that content changed without seeing what it was. Workspace admins and team admins see views scoped to what they have access to. A CSV/JSONL export is available (up to 50,000 rows). ## New Google Calendar Tool: Get Event Details The Google Calendar capability gains a new `get_google_calendar_event` tool for fetching the full details of a single event by ID: description, organizer, creator, attendee response statuses, htmlLink, and timestamps. The existing list tool returns a compact view; this tool gives you everything. ## New Fortnox Tool: Upload Files A new `fortnox_upload_file` tool lets agents upload PDFs and images directly to Fortnox Inbox or Archive without routing raw bytes through the LLM. Uploaded files can optionally be attached to vouchers or supplier invoices in the same call. Requires the `inbox`, `archive`, or `connectfile` OAuth scope depending on the operation. ## Proactive "New Chat with Summary" Button A button now appears next to the context usage indicator once your conversation reaches 80% of the context limit. Clicking it summarizes the conversation and starts a fresh chat — the same flow as the context limit dialog, but available proactively before you hit the wall. ## New Gmail Tool: Create Draft The Gmail capability gains a new tool — `create_gmail_draft` — for composing standalone new emails. Previously you could only draft replies and forwards anchored to an existing email. Now you can start a fresh email (with to/cc/bcc/subject/body), review it in Gmail, and send. ## Shareable Document Panel Links Maximizing or going fullscreen in the documents panel now syncs the state to the URL (`?view=maximized` / `?view=fullscreen`). The state survives a page refresh, and sharing the URL opens the document in the same view. ## Gmail Improvements * **Reply-To handling** — Replies now correctly use the original email's `Reply-To` header (rather than `From`) when one is present, matching standard email client behavior. * **Display name quoting** — Names with special characters (e.g. `Engborg, Nikolaj`) are now correctly quoted in email headers, preventing malformed headers that some servers reject. ## Bug Fixes * Fixed an error toast appearing on the admin Credit Usage page when loading workspace statistics. ## New Role: Collaborator A new **Collaborator** workspace role sits between Creator and Guest in the workspace hierarchy. Collaborators can: * Chat with agents and interact with shared ones * Edit agents they've been given access to * View and select existing secrets and API capabilities when configuring agents they edit Collaborators cannot: * Create, clone, or import agents * Create or manage workspace secrets or API capabilities Role hierarchy: **Admin > Creator > Collaborator > Guest** The existing ## Bug Fixes * **SharePoint app-only test connection** — Test connection for SharePoint app-only credentials now works correctly with `Sites.Selected` permissions. Previously it always returned 401 because it probed an endpoint requiring tenant-wide access. The fix uses a live token round-trip as the test, and also ensures the failure flag clears reliably when credentials are corrected. * **Activity log event type filtering** — `read_activity_log` and `read_agent_activity_log` now list all valid `eventType` values (e.g. `WebhookCallEvent` was previously missing from the docs). Passing an unknown event type now returns an error with the valid options instead of silently returning zero rows. ## New Model: Claude Sonnet 5 Claude Sonnet 5 is now available as a selectable model. You can choose it from the model selector — it has a 1M token context window and supports adaptive thinking. The default `claude-sonnet` alias remains on `claude-sonnet-4-6` for now; Sonnet 5 is available as an opt-in while we validate it. ## Improvements * **Faster Slack 👀 acknowledgement** — Slack agents now show the eyes reaction immediately when a message arrives, instead of waiting for the background worker to pick it up. You'll see confirmation right away. ## Read Gmail Attachments Agents with Gmail access can now read files attached to emails. Two new tools make this possible: * **`list_gmail_attachments`** — lists all attachments on a Gmail message (filename, MIME type, size). * **`download_gmail_attachment`** — downloads an attachment and saves it as an agent document, ready to use with `get_document` (text/PDFs) or `get_media_content` (images). Previously the Gmail capability was text-only — attachments were invisible to agents. ## Folder Visibility Cascade You can now hide entire document folders from your agent. When you set a folder to hidden, the visibility cascades to all documents and sub-folders inside it — they are all hidden at read-time without changing individual document settings. The file explorer shows a greyed-out indicator on documents that are hidden via an ancestor folder. ## Improvements * **Admin-blocked capability discovery** — Capabilities that a workspace admin has blocked are now shown as greyed "Not available" cards in the Built-in tab instead of disappearing entirely. You can click them to see why they're unavailable. The Built-in tab sorts unavailable capabilities below available ones, and category badges show an available/total count when some are blocked. ## Save Chat Documents to Google Drive You can now save any chat document directly to Google Drive. A new "Save to Google Drive" option in the chat document menu creates a native Google Doc in your own My Drive and opens it in a new tab. If you haven't connected Google yet, you'll be guided through a quick OAuth flow. ## PDF Export Improvements Several improvements to document PDF export: * **HTML, SVG, and React documents** now export correctly as PDFs — previously these produced a PDF full of raw source code instead of the rendered page. They now use browser print for a proper visual export. * **Images** are now included in PDF exports of image-type documents. * **Large data collections** (over 1,000 rows) no longer show the Download as PDF option, preventing misleadingly partial exports. Use Export Data for full datasets. * **Emoji** in documents are now handled gracefully in PDFs instead of showing as missing glyphs. ## Bug Fixes * **Slack app connection** no longer fails for agents with long descriptions. Slack enforces a 140-character limit on app descriptions — the manifest fields are now properly truncated so connecting any agent to Slack works regardless of description length. ## WhatsApp Capability Agents can now communicate with users directly over WhatsApp. Using Meta's Cloud API, you can give any agent a WhatsApp number and have it hold real 1:1 conversations with contacts — with full chat continuity per sender, image support, and mandatory sender whitelisting to control who can reach your agents. ## Read-only Workspace API A new read-only REST API at `/workspaceapi` lets you query workspace and agent data programmatically, authenticated with existing workspace API keys (`wk_`). Keys now support selectable scopes to limit what each key can access. ## Assign Secrets and API Capabilities to Multiple Teams Secrets and HTTP API capabilities can now be assigned to multiple teams at once. Use the multi-select team picker in the Secrets and API Capabilities editors to share access across teams without duplicating credentials. ## Improvements * **ISO 27001 certified** — The security docs now reflect our ISO 27001 certification. * **Account deletion now auto-cancels subscriptions** — Deleting your account automatically cancels all active Stripe subscriptions, so you're never charged after deletion. * **Chat top bar is now width-aware** — The action bar in chat smoothly switches between icon-only and full-label layout based on its own width, improving the experience in narrow or document-panel layouts. ## New Model: Mistral Medium 3.5 Mistral Medium 3.5 (128B, 256k context) is now available via Scaleway Generative APIs. It supports vision and configurable reasoning, making it a strong mid-tier model option. ## Bug Fixes * **Chat delete options now respect access level** — The delete chat options (single and bulk) were incorrectly shown to users with Use-level access. They are now correctly hidden for users without Edit permissions. ## Improvements * **MCP server icons** are now displayed consistently across the portal — on MCP tab cards, the enabled integrations tab, the settings drawer, and in the "Add a server" library. Icons are matched to known server templates and shown with a small add badge in the library view. ## Bug Fixes * **Team guests can no longer create agents in teams** — A bug allowed workspace members with guest-level team access to create new agents in those teams. This has been fixed; the restriction now applies at every layer (agent creation, snapshot import, and clone). Only team members and above can create agents in a team. ## Bug Fixes * **`edit_file_in_vm` no longer silently fails on non-matching edits** — The tool previously reported success even when `oldString` wasn't found in the file, leaving the file unchanged with no indication that the edit didn't take effect. It now returns `success: false` with a clear message when there are zero matches, so agents can detect and recover from missed edits. ## Advanced OAuth Configuration for MCP Connections The MCP connection auth dialog's advanced section now includes additional fields for servers that auto-discovery can't fully configure: * **Custom token endpoint URL** — For servers like NetSuite where the token endpoint lives on a different host than the authorize endpoint. * **Explicit scopes** — Set a scope string that is honored on both the auto-discovery and custom-auth paths. * **Client ID / Client Secret** are now always visible in the advanced section, not only when the server signals it requires custom credentials. ## Disabled Model Indicator in Chat When an agent is configured with a model that has been disabled, the chat now makes this immediately visible: the model name appears in red with a "(disabled)" badge in the action bar, and the message composer is blocked with a clear warning — instead of sending into a guaranteed error. Agents with disabled models now also fail fast at startup instead of silently substituting a different model. ## Improvements * **LLM reliability** — Transient provider outages (5xx/429/overloaded) and Claude streaming socket drops are now retried automatically, reducing failed scheduled runs and long agent turns caused by temporary network blips. ## Webhook HMAC Signature Verification Inbound agent webhooks can now be **secured with HMAC signature verification**. Configure a signing secret on a webhook definition and the platform will verify the signature header before dispatching — requests with invalid or missing signatures are rejected with 401. A new dedicated **Webhook signing secret** type keeps signing secrets clearly separate from API keys. Covers the common HMAC-over-raw-body pattern used by Jira, GitHub, Linear, Shopify, and similar services. ## Download Documents as PDF Documents can now be downloaded as **PDF** from the document panel menu and the file-explorer row menu, sitting right next to the existing "Download as docx" option. ## Improvements * **Agent Management filter terminology** — The "Admin" labels in the workspace Agent Management filter panel have been renamed to "Owner", completing the terminology migration on that page. * **`code_execution` tool-call view** — The chat now shows bold `Output:` and `Return value:` labels with execution time in the header for `code_execution` tool calls. ## Bug Fixes * **Voice mode restored** — Fixed HTTP 400 errors from the OpenAI Realtime API caused by an unsupported `session.temperature` parameter that broke every voice session. * **Workspace admin team role** — Admins who add themselves to a team can now change their own role (previously shown as a static "MEMBER" badge with no dropdown). * **Chat title generation errors** — Fixed a regression causing repeated `LlmJsonParseError` errors during chat title generation. * **Stale agent load error** — Navigating away from an inaccessible agent now correctly clears the error state, preventing a persistent error screen on subsequent pages. * **Gemini 3 thinking parameter** — Disabling thinking on Gemini 3 models now uses the native `thinkingLevel: 'none'` instead of the deprecated `thinkingBudget: 0`. ## Guest Access — Invite by Email People can now be given access to a single agent **without becoming full workspace members**. From an agent's User Access settings, admins can invite anyone by email. If they're already a workspace member the grant is applied immediately; otherwise a guest invitation is sent. Guests can log in but only see the agents they've been explicitly granted access to — workspace, team, secrets, and API pages are off-limits. Guests **don't consume seats** and are hidden from non-admin member and team lists. ## Scaleway EU Inference — Qwen 3.6 35B A new EU-hosted model is now available: **Qwen 3.6 35B Preview** via Scaleway's serverless inference. Scaleway is registered as a subprocessor from 2026-06-16. ## Gemini via Vertex AI / Project ID Gemini can now authenticate against **Vertex AI** without an API key. A `projectId` field in the vendor credentials lets Gemini use Application Default Credentials (ADC) — ideal for GCP-hosted deployments where the runtime service account already has the required `aiplatform.user` role. ## Continue After Tool-Call Limit When an agent exhausts the per-turn tool-call loop limit (100 iterations), portal chat now shows a **warning card with a Continue button** instead of a generic error. Clicking Continue resumes the task without truncating history, so long agentic workflows can pick up cleanly. ## Improvements * **Copy API Capability** — Each API Capability card now has a Copy button that opens the creation modal pre-filled with all fields from the source (name suffixed with "(copy)", secrets stripped for safety). * **File explorer performance** — Document listing queries no longer load full text bodies, fixing "Failed to load folder" errors in folders with many content-rich documents. Character counts are still shown via a stored `textContentLength` field. * **Instruction-cleanup skill** — New `instruction-cleanup` platform skill guides a behavior-preserving tidy-up of an agent's full instruction suite (main instructions + referenced documents) — without changing what the agent actually does. * **`upload_file_to_vm` with `documentId`** — Agents can now transfer existing agent or chat documents directly into a VM without loading the content into LLM context first. ## `get_models` Tool Agents now have a **`get_models` tool** to enumerate all available models at runtime. The `` section in the system prompt has also been streamlined to show only model aliases — keeping prompts leaner without losing discoverability. ## Document Deep-Links & Copy Link **Deep-linking to documents** is back: `?view=maximized` and `?view=fullscreen` query parameters on the Documents page now correctly open the document in the chosen view. A new **Copy link** button on the Documents page makes it easy to share direct links to any document or app. ## Higher Output Token Limit Max output tokens raised to **48k** across all LLM providers — Claude, Gemini, GPT, and Grok. Agents working on long-form content, large code files, or detailed reports can now produce significantly more in a single response. ## Per-Surface API & MCP Allowlists **API Capabilities and MCP servers** are now properly scoped per surface. Widget conversations only see the capabilities configured for them — API Capabilities and MCP servers no longer leak into widget contexts where they shouldn't be available. ## Improvements * **Better `query_document_data` errors** — Unsupported filter operators now return a helpful error listing all valid operators, instead of just naming the bad one. ## Auto-Transcription & Document Descriptions Uploaded binary files (PDF, Word, Excel, PowerPoint, etc.) are now **automatically transcribed** in the background — no more needing to explicitly ask the agent to read them. The agent's system prompt now correctly reflects the file's contents from the moment it is uploaded. A **description is also auto-generated** after transcription for easier discovery. Auto-transcription now works across all document scopes: agent, workspace, and team. ## Claude Fable 5 **Claude Fable 5** (`claude-fable-5`) is now available as a model option. Anthropic's latest top-tier model, featuring adaptive thinking support and a 1 million token context window. ## MCP Server Templates MCP server connectivity is now driven by a **code-defined template library** rather than admin-curated capabilities. Connect to any server from the template gallery or add one by URL — both produce standard user MCP servers on your agent. ## Improvements * **Unified document actions** — All document actions (Chat about this, Rename, Move, Publish, Export/Import data, Download, Delete) are now consistently available with the same ordering in both the file explorer row menu and the document panel menu. * **Friendly no-access page** — Opening a link to a private agent you don't have permission to view now shows a clear, friendly "no access" message instead of a generic error. * **Dropbox MCP** — The Dropbox MCP server template now correctly guides you to set up your own Dropbox App credentials, since Dropbox requires a custom OAuth app. ## Bug Fixes * **Field-based secrets not saving** — Fixed a silent bug where Snowflake, Cloud Storage, Salesforce, and Meta Ads secrets were silently not being saved when added or edited from the workspace Secrets page. * **Document API insert validation** — `POST /data/insert` now returns clear 400 errors with a helpful hint when the wrong field name is used (`rows` instead of `items`). The public docs have also been corrected. * **`insert_document_data` with null items** — Fixed a crash when `insert_document_data` was called with null or missing `items`. ## Improvements * **Responsive members & invitations lists** — The workspace members and pending-invitations tables now adapt to narrow viewports, rendering as stacked cards on mobile and as a grid on wider screens. ## Bug Fixes * **Agent creation with long names** — Creating an agent whose name (combined with the workspace name) produced a handle longer than 64 characters could fail outright. The handle collision auto-suffix (`…2`, `…3`) now works correctly for long names, and concurrent create requests are handled more robustly. * **Credits for document transcription** — Using the portal "Transcribe" button or the `transcribe_agent_document` tool now correctly deducts credits, matching the behaviour of all other transcription paths. * **Download text content file extension** — Downloading a document's text content now gives the file the correct extension (e.g. `.txt`, `.js`, `.css`) based on its MIME type, instead of always using `.md` or no extension. ## Endpoint Management Capability Agents can now programmatically manage their own exposed surfaces via a new **Endpoint Management** capability. Five tools let agents list, add, update, and remove HTTP API endpoints, webhooks, MCP server tools, and document API entries — and toggle surface-level settings like CORS and activity logging. ## Workspace Tags for Teams & Members Tags are now available on **teams and workspace members**, not just agents. A unified workspace tag vocabulary covers all three entity types, and filtering by tags works across the agents page, teams page, members list, and usage views. A new **Workspace Tag Manager** capability (admin-only) gives agents four tools to list and update tags on agents, teams, and members in bulk. ## Bug Fixes * **SVG documents** — SVGs are now rendered in a sandboxed cross-origin iframe, matching how HTML documents are handled. This prevents embedded `