> ## Documentation Index
> Fetch the complete documentation index at: https://hellotars.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Product updates and improvements across the Tars platform.

<Update label="September 17, 2026" description="Redesigned experiments and Custom Code help fixes">
  ## Knowledge

  * An experiment scores each retriever on **Recall**, **Precision**, **MRR**, and **Hit Rate**. You set the weight of each metric.
  * An experiment card shows the three best retrievers of the run.
  * The question detail compares the expected answer with the retrieved text and marks the missing parts.
  * When your default retriever already scores best, the result says that there is nothing to change.
  * **Run experiment** stays disabled until the knowledge base has a retriever that is ready to answer.
  * Fixed: a fully retrieved answer is marked found and gets correct metric scores. Run the experiment again to update an older result.
  * Fixed: the best retriever of a run always shows in the ranking.

  ## Agent builder

  * Fixed: the help panel of the Custom Code gambit reads variables through `variables`, such as `variables.response.Name`. See [Custom Code](/docs/guides/building/gambits/custom-code).
</Update>

<Update label="September 16, 2026" description="India data region, campaign reply takeover, WhatsApp fixes, and protected form answers">
  ## Data residency

  * India joins the United States, the European Union, and Qatar as a data region. See [Organization lifecycle](/docs/guides/billing/organization-lifecycle).

  ## Campaigns

  * A campaign reply starts a new conversation even when one is already running, including while a human agent is in control. See [Handle replies](/docs/guides/campaigns/handle-replies).
  * The reply that started the conversation is kept in `trigger.userMessage`.

  ## WhatsApp

  * List and rating buttons read **Show options** and **Choose a rating**, and rating labels show on WhatsApp. See [End user experience](/docs/guides/activity/end-user-experience).
  * A message longer than 4,096 characters is split into more than one message.
  * **Show knowledge citations** now applies on WhatsApp.
  * A message that could not be delivered shows in the Activity tab. See [Watch conversations](/docs/guides/activity/watch-conversations).

  ## Security

  * Form answers follow your personal data protection settings. See [Personal data protection](/docs/guides/security/personal-data-protection).

  ## Agent builder

  * API Call gambits send their headers with the request. See [API Call](/docs/guides/building/gambits/api-call).

  ## Knowledge

  * A new custom retriever gets a readable name from its search type and embedding model, such as `Hybrid · OpenAI · 3-large`. You can change the name. See [Configure a retriever](/docs/guides/knowledge/configure-a-retriever).

  ## Tools and CodeKit

  * Array and object inputs in Workflow Mode keep their structure when a referenced value contains quotes or line breaks.
  * An input that is not valid JSON, or has the wrong type, stops the action before it runs.
</Update>

<Update label="September 15, 2026" description="Redesigned test sets and video in agent replies">
  ## Knowledge

  * The **Dataset** tab is redesigned. Each test set shows as a card, and you can set document priority, question types, and dimensions when you generate test questions.
  * You can edit a test question and select the exact answer text in its source document.
  * Two test sets in one knowledge base cannot share a name.

  ## Chat widget

  * A video from a knowledge base plays directly in the agent reply.
  * Card displays show images from a knowledge base.
  * Captions on agent media replies show formatted text.
</Update>

<Update label="September 14, 2026" description="CodeKit Workflow Mode, retriever status, publish checks, and skippable input gambits">
  ## Tools and CodeKit

  * CodeKit tool gambits run in Workflow Mode, with explicit inputs and success and failure routes. See [Enable and use actions](/docs/guides/tools/enable-and-use-actions).
  * A CodeKit action can be turned on only after it is deployed. The action picker shows the deploy state of each action.
  * You can duplicate a CodeKit action or a whole CodeKit toolkit. A new toolkit starts with a **Greeting** action.
  * The schema editor gains **Form** and **JSON** views and a **Supported schema** guide you can copy.
  * **Change account** and **Reconnect** refresh the existing authorization first. A new authorization tab opens only when the provider rejects the refresh.
  * A CodeKit action is retried only when the call failed before its code started, so a retry never runs the code twice.

  ## Knowledge

  * The **Retriever** tab shows shared indexes, build progress, and documents under repair.
  * Retriever number fields show their allowed range.
  * Validation flags a Knowledge Retrieval gambit whose retriever cannot answer yet, before you publish. See [Attach knowledge to an agent](/docs/guides/knowledge/attach-knowledge-to-an-agent).

  ## Agent builder

  * Input gambits gain an **Allow Skip** switch.
  * Condition rules can compare the value of the gambit itself.

  ## Chat widget

  * A Redirect gambit that opens in a new tab shows a link for the end user to select.
  * A resolved conversation leads to a new conversation in the widget.
  * **Widget Embed** has a **GTM** tab with a Google Tag Manager snippet. See [Embed the widget](/docs/guides/deploy/embed-the-widget).

  ## Live chat

  * Active chat counts drop when a response timeout takes a conversation away from a human agent.
</Update>

<Update label="September 10, 2026" description="Qatar data region, document editing, and builder fixes">
  ## Data residency

  * Qatar joins the United States and the European Union as a data region. See [Organization lifecycle](/docs/guides/billing/organization-lifecycle).

  ## Knowledge

  * You can edit a document title and body inline and group documents by source.
  * A ready document no longer shows a status badge.

  ## Agent builder

  * Fixed: notes keep typed text, Ctrl+Shift shortcuts work, and **Search Canvas** opens again.
</Update>

<Update label="September 9, 2026" description="Personal data erasure">
  ## Security

  * Tars support can erase an end user's personal data on request. See [Erasure and legal holds](/docs/guides/security/erasure-and-legal-holds).
</Update>

<Update label="September 8, 2026" description="WhatsApp through 360dialog, personal data protection, and model parameters">
  ## WhatsApp and campaigns

  * **Connect WhatsApp number** offers two providers, **Direct (Meta)** and **360dialog**. A number you already run on 360dialog connects with its API key. See [Connect WhatsApp](/docs/guides/channels/connect-whatsapp).
  * The number detail sheet shows the provider of each number. For a 360dialog number, it checks where incoming messages go and can point delivery back to Tars.
  * An Admin can copy a 360dialog number's API key from the number detail sheet. Each copy is recorded in the audit log.
  * Templates live in **Campaigns** → **Templates** and apply to the number you select. See [WhatsApp templates](/docs/guides/channels/whatsapp-templates).
  * A template created from a campaign or the builder uses the number that sends it.
  * A number import that fails points to a retry that runs the import again.

  ## Security

  * Admins can turn on personal data protection in **Settings** → **Privacy**. See [Personal data protection](/docs/guides/security/personal-data-protection).
  * Protection finds card numbers, Social Security Numbers, email addresses, phone numbers, IBANs, and custom patterns in end user messages, captured fields, and CSAT feedback.
  * **Redact** removes a value permanently. **Mask** stores a placeholder and keeps an encrypted original for 1 to 365 days.
  * Card numbers and Social Security Numbers are always redacted.
  * A member in live chat can reveal a masked value for 60 seconds, and each reveal is recorded in the audit log.

  ## Agent builder

  * Reasoning is off by default unless the model requires it. The **Model parameters** popover groups its settings and adds **Max reasoning tokens**.
  * A parameter that the selected model does not support stays visible but disabled.
</Update>

<Update label="September 7, 2026" description="File uploads, website import settings, and grace period allowances">
  ## Knowledge

  * When you upload files, you can pick, filter, and clear them. A file that is too large shows before the upload starts.
  * A website import sets max pages and max depth up front. **Advanced settings** holds **Include subdomains** and **User agent**.

  ## Billing

  * The plan conversation allowance keeps renewing during a payment grace period.
</Update>

<Update label="September 4, 2026" description="Refreshed knowledge base list and Language gambit free text">
  ## Knowledge

  * Knowledge bases open in a refreshed list and grid, with descriptions of up to 500 characters, document counts, and a create tile.

  ## Agent builder

  * The Language gambit gains an **Allow Free Text** switch.
  * Turning **Conditions** off brings the option handles back.
  * Fixed: editing a gambit no longer undoes connections drawn while its panel was open.

  ## Fixes

  * The conversation data card no longer lists city and country twice.
</Update>

<Update label="September 3, 2026" description="Auto-read behavior in the widget">
  ## Chat widget

  * Auto-read starts off on every visit and applies only to the current agent.
</Update>

<Update label="September 1, 2026" description="Custom User-Agent and JavaScript-rendered sites">
  ## Knowledge

  * A website import can send a custom **User agent**.
  * Website imports capture content that loads late on JavaScript-rendered sites.
</Update>

<Update label="August 31, 2026" description="Signup phone country">
  ## Fixes

  * The signup phone field preselects your country.
</Update>

<Update label="August 28, 2026" description="Reply toolbar, multi-select cards, and image gallery fix">
  ## Chat widget

  * The toolbar on agent replies stays visible and shows the time. Read aloud and copy on the last message cover the whole run of messages.
  * Multi-select cards collect picks as chips and send them together.
  * Fixed: image galleries show public external image links again.
</Update>

<Update label="August 26, 2026" description="Media search in knowledge bases and video playback">
  ## Knowledge

  * With **Media search** on, an agent can find and show images and videos from a knowledge base. **Manage media** lets you add context to each item.
  * Knowledge base videos play in the chat instead of opening as a link.
</Update>

<Update label="August 24, 2026" description="Location variables">
  ## Agent builder

  * Two new system variables, `system.region` and `system.timezone`, join `system.country` and `system.city` in the [variable panel](/docs/guides/building/variables). The time zone uses the IANA format.
  * Location variables are read when the widget page loads and stored when the conversation is created, so they are set from the first gambit.
</Update>

<Update label="August 21, 2026" description="File reading for agents and live chat fixes">
  ## Agent replies and in-chat input

  * With **File Reading** on, an agent can answer from files the end user sends in the conversation. PDF, Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV, and plain text files are read. Images are described, with their text transcribed.
  * A scanned PDF with no text layer is transcribed, so the agent can still read it. Video and audio files are not read.
  * The agent reads a file by section instead of receiving the whole file, so a large document does not crowd out the conversation. Each read shows as a tool call when tool calls are visible.
  * Files answered through a [Media Upload](/docs/guides/building/gambits/media-upload) gambit or a file upload component earlier in the flow are readable by a later AI Agent gambit in the same way.
  * A file that cannot be read is reported to the agent with a plain reason, such as a password-protected or damaged file. A file over 10 MB is not read.

  ## Chat widget

  * Attached files upload as soon as they are added. Each file shows **uploading**, then its size, or **failed** with a retry message. Send waits until every upload has finished.
  * A message carries at most 10 attachments of up to 10 MB each, and the composer names the file when one is too large.
  * Fixed: the thinking indicator shows only while an AI Agent gambit takes its turn, and no longer on other gambits.

  ## Agent builder

  * A **File Reading** built-in tool joins the **Built-in Tools & Capabilities** dialog. It is off by default, like the other built-in tools. See [Built-in AI capabilities](/docs/guides/building/built-in-ai-capabilities).
  * Fixed: **Copy link** on an agent card copies a working builder link. The old link opened an **Agent not found** page.

  ## WhatsApp

  * A document or image sent to a WhatsApp number is stored by Tars. An agent with **File Reading** on can answer from it like a widget upload.

  ## Live chat

  * Fixed: desktop [notifications](/docs/guides/live-chat/notifications) and sounds no longer fire for a conversation that is resolved or that the agent controls again. New assignments still alert you.
  * Fixed: the agent response timeout no longer bounces a live chat back to a disconnected human agent every few minutes. It now hands the conversation only to a human agent with the dashboard open.
  * When nobody is eligible, the conversation returns to the agent flow or waits unassigned. See [Assignment and availability](/docs/guides/live-chat/assignment-and-availability).
</Update>

<Update label="August 20, 2026" description="Security headers">
  ## Security

  * The dashboard and the chat host send a Content-Security-Policy header. Dashboard pages cannot be loaded inside an iframe on another site.
  * The chat and widget pages still load inside an iframe on any site, so the widget script and the [iframe embed](/docs/developer/embed/iframe-method) keep working. The preview page can be framed only by the chat host itself and the dashboard, and every other chat host page refuses framing.
</Update>

<Update label="August 14, 2026" description="Custom Code gambit fix">
  ## Agent builder

  * Fixed: [Custom Code](/docs/guides/building/gambits/custom-code) gambits run again. Every custom code execution had failed with a sandbox error before the code started.
</Update>

<Update label="August 13, 2026" description="WhatsApp number management, template recovery, and campaign checks">
  ## WhatsApp and campaigns

  * A number alias holds up to 50 characters, a tag name up to 30, and a number up to 5 tags. Counters in the detail sheet show the current length.
  * Length is counted in Unicode code points, so most accented letters and simple emoji count once, while a flag or skin-tone emoji counts more than once.
  * Changing or disconnecting a number's agent asks for confirmation only when an active or paused webhook campaign uses the number. The always-on re-route dialog in **Distribute** is gone.
  * In the agent picker for a number, an agent already used by another number stays listed but disabled, with a **Used by** note naming that number.
  * The number detail sheet is part of the page address. A reload reopens the same sheet, and closing it clears the address so back navigation does not reopen it.
  * A [template](/docs/guides/channels/whatsapp-templates) that Tars could not submit to Meta shows **Template submission failed** with the reason, plus **Edit & resubmit** and **Dismiss failed attempt**. A Meta rejection keeps its own **Fix & resubmit** action.
  * A campaign whose header media is unavailable fails with `media_missing` and asks you to upload the media again before relaunching.
  * Campaign delivery milestones are consistent. A delivery that reaches **Read** or **Replied** also counts as **Delivered**, so a reply never appears without a delivery.
  * The [webhook campaign](/docs/guides/campaigns/webhook-campaigns) **API Contract** card offers an importable Postman Collection and an OpenAPI 3.1.0 document next to the cURL example.
  * A [webhook campaign call](/docs/developer/api/webhook-campaigns/send) with a recipient outside canonical international format fails with `invalid_params` and an `errors` entry of `invalid_e164` on the `to` field.
  * A webhook campaign send matches an existing end user by phone number with or without the leading `+`, instead of creating a duplicate end user.
</Update>

<Update label="August 12, 2026" description="EU data residency and no-input conditions">
  ## Data residency

  * The platform runs regional cells, and an EU cell now joins US. An organization's data and its end-user traffic stay in that organization's region.
  * Widget and API traffic resolve the region from the embed. An organization that moves region keeps working with the embed code already on your site, with no change needed there.
  * A missing or unknown region now fails with a clear error instead of quietly serving another region's data.
  * Knowledge retrieval keeps only vectors and identifiers in the search index. Document content is read from your own region's database.
  * Tars support places a new organization in the EU region and moves an existing one.

  ## Agent builder

  * The **Conditions** panel is available on the no-input gambit, with the same branch routing and **Default** fallback as other gambits.

  ## Fixes

  * A session that expires while the dashboard is open now returns to sign-in instead of an error screen.
  * The error screen gains a **Sign out** button next to **Try again**.
</Update>

<Update label="August 11, 2026" description="Interactive agent replies and a faster widget">
  ## Agent replies and in-chat input

  * Agents can answer with interactive components instead of plain text. The set covers charts, data tables, cards, status lists, metric cards, progress trackers, timelines, accordions, code blocks, image galleries, and maps.
  * Agents can collect answers inside the conversation using forms, button groups, confirmation dialogs, calendars, time slots, file uploads, and one-time code entry.
  * An answered component freezes in place and keeps showing the answer, including on dashboard activity screens.
  * Agent thinking is visible. A thought pill reports how long the agent reasoned, and each tool call shows its status and its payload.
  * Agent replies gain a hover toolbar for read aloud, feedback, and copy. A link an end user sends unfurls into a preview card.
  * Exit routes are editable. You can add, rename, describe, and remove a route, change where it points, and restore the default **Complete** route in one action.
  * Paid plans can hide the Tars badge and set a footer disclaimer of up to 300 characters. Free organizations always show the badge.
  * The escalate-to-human tool is retired, and human handoff now runs through exit routes. The standalone date picker is retired in favor of the calendar component.

  ## Chat widget

  * The widget opens straight into the chat. The home screen and the bottom tab bar are gone.
  * The widget boots in a single round trip and preloads while the browser is idle, so it opens faster.
  * A conversations list is reachable from the chat header. Rows are grouped by day, sorted by last activity, and can be swiped away.
  * A returning end user can land on the conversations list instead of the chat. Turn on **Open to conversations list** in **Distribute** → **Widget Embed**.
  * Spoken replies have a play control under each reply, and playback stops when the conversation changes.
  * Fixed: typing indicators leaking between conversations, doubled question bubbles around components, and scroll losing the bottom of a conversation. A reply now quotes the message it answers, so the agent receives the right context.

  ## Billing

  * A Premium signup now grants the conversation volume it paid for. Some organizations kept the free allotment after upgrading.
</Update>

<Update label="August 6, 2026" description="Knowledge experiments">
  ## Knowledge

  * A knowledge base can now grade itself. The **Dataset** tab builds a test set from your documents, and the **Experiments** tab measures how well each retriever answers it.
  * An experiment compares retrievers over one shared test set, so you can weigh recall against precision before you promote a retriever.
</Update>

<Update label="August 4, 2026" description="WhatsApp onboarding and campaign hardening">
  ## WhatsApp and campaigns

  * Connecting or reconnecting a number shows live progress, keeps a background progress chip, and reports a failure you can retry.
  * The **Connect** and **Reconnect** actions stay disabled until onboarding is available.
  * Template submission is idempotent and shows **Pending** immediately. Header, body, and footer limits count Unicode code points, so accented text and emoji no longer miscount.
  * Media rules are enforced on upload, replacement, submission, activation, and webhook send. Unhealthy and test-only accounts can no longer send a campaign.
  * **Campaign Activity** reconstructs the conversation, pairing one outbound template message with the inbound reply.
  * A webhook campaign dry run causes no delivery, no Meta call, and no credit movement.

  ## Billing

  * Invites are no longer blocked by a stuck seat cap.
  * An invoice settled from a credit balance carries its real value instead of showing zero, and Enterprise credit grants complete correctly.
</Update>

<Update label="July 30, 2026" description="Data lifecycle and indexing reliability">
  ## Organization and data lifecycle

  * Data lifecycle now runs end to end, covering retention by plan, archival, organization-wide legal holds, and authorized archive exports. See [Data retention](/docs/guides/security/data-retention).
  * A legal hold blocks permanent deletion and archive expiry, while lossless archival continues.
  * Test and preview conversations are permanently deleted after 30 days and are never archived.
  * Deleting an organization runs as a bounded, resumable teardown that verifies no data remains before it completes.
  * Onboarding no longer fails for a member who belongs to an organization but has not selected one.
  * Idle conversations are closed by the abandonment sweep again, which had stopped running.

  ## Knowledge

  * Indexing no longer fails under load, and a stalled indexing job now recovers on its own.
  * Indexing inside one knowledge base runs one document at a time. A single large knowledge base now indexes more slowly, and a faster strategy is planned.
</Update>

<Update label="July 28, 2026" description="Support access transparency and knowledge lifecycle">
  ## Support access transparency

  * Tars support access to your organization is now time-limited and visible. A banner shows who has access and the remaining time, and you can end access early.
  * Support actions appear in your audit log as **Tars Support**, with the individual identity kept internally for accountability.

  ## Knowledge lifecycle

  * Retrievers now show a **Needs reindex** state with a **Reindex all** action, so index staleness is visible instead of silent.
  * Imported documents can be edited in place, with revision history that records whether content came from an upload, an edit, or a website sync.
  * Website re-fetch schedules warn when they cannot apply.

  ## Fixes

  * Fixed label creation on the conversations page.
</Update>

<Update label="July 24, 2026" description="Widget file upload size">
  ## Chat widget

  * The widget's file upload now enforces the configured maximum file size.
</Update>

<Update label="July 23, 2026" description="Delivery on every channel, campaign screens, and analytics drilldowns">
  ## Conversations and delivery

  * Agent replies, media, human-agent replies, and voice notes now deliver consistently on every active channel.
  * Publishing reliability improved: live conversations always run the pinned published flow, never a draft in motion.

  ## Campaigns and analytics

  * Campaign screens were reworked for clarity, and delivery hardening reduces stuck or duplicated sends.
  * Analytics gained drilldowns from summary numbers into the supporting conversations.
</Update>

<Update label="July 20, 2026" description="Large toolkits and funnel metrics">
  ## Tools

  * Large toolkits load faster in the tool picker, and their action lists render reliably.
  * Tool outputs can be projected to only the fields an agent needs, which keeps AI context small and answers focused.

  ## Analytics

  * Analytics gained metrics from page load through lead capture.
</Update>

<Update label="July 17, 2026" description="PDF images, citation visibility, and Stripe fixes">
  ## Knowledge and answers

  * PDF image extraction is now plan-gated, and knowledge citation visibility is a per-agent design setting.

  ## Billing

  * Several Stripe purchase edge cases were fixed.
</Update>

<Update label="July 16, 2026" description="Analytics rollup dates">
  ## Analytics

  * Daily analytics rollups now use consistent UTC dates.
</Update>

<Update label="July 15, 2026" description="Plan-scoped pricing">
  ## Billing

  * Plan pricing became plan-scoped, so organization-specific terms never leak between customers.
</Update>

<Update label="July 10, 2026" description="Onboarding, website import, and analytics redesign">
  ## Onboarding and setup

  * Organizations can upload a logo during onboarding.
  * Sign-out is available from the onboarding screen, and invites to existing organizations work reliably.

  ## Knowledge and answers

  * Website import quality improved for hard-to-scrape sites.

  ## Analytics

  * Analytics was redesigned with a generic reporting system that covers campaigns alongside conversations.
</Update>

<Update label="July 9, 2026" description="Tars 3.0">
  ## Tars 3.0

  Tars 3.0 is a ground-up platform release built around organizations.

  * **Organizations** are now the home for every resource: agents, knowledge bases, tools, channels, campaigns, end users, and billing. Five roles (Admin, Member, Viewer, Billing, Auditor) and separate live-chat seats control access.
  * **The agent builder** gains AI Agent gambits, exit routes, drafts and publishing, versioned rollback, and a test preview that is never billed. A rebuilt conversation engine runs every flow the same way across channels.
  * **Conversation variables** move to ten clear namespaces with a pill-based insert menu. A test request can load real sample data, so field autocomplete works from actual responses.
  * **Tools** become a first-class system: a directory of connected toolkits with OAuth and API-key connections, per-action enablement, and tool gambits with success and failure routes on the flow.
  * **CodeKit** lets developers write, test, and deploy custom actions as organization tools. Custom code runs in an isolated runtime, and secrets stay separate from the code.
  * **Knowledge bases** support website crawling with discovery preview, scheduled re-fetch, document editing, and multiple named retrievers with test-and-promote.
  * **The end-user experience** was redesigned: streamed answers with clean partial rendering, generative interfaces such as forms, cards, charts, and date pickers, citations, and full keyboard and screen-reader support.
  * **Live chat** is built in: a real-time inbox, assignment strategies, canned responses, CSAT, and a copilot for human agents. Human replies with rich content reach every active channel.
  * **WhatsApp** connects through Meta Embedded Signup with template sync and campaign delivery from a prepaid campaign wallet.
  * **Analytics** unifies agent, human, channel, and campaign results with drill-through to conversations and a build-your-own **Explore** view.
  * **Background work** is unified: exports, imports, and bulk actions run in the background with visible progress in the task tracker.
  * **Security**: a tamper-evident audit log with chain verification, SIEM streaming for Enterprise, bring-your-own-model-key, signed file downloads, plan-based data retention, and cold-storage archival.
</Update>
