# Changelog

<style>
/* Scoped to this page (Retype loads this <style> only on the changelog). Turns each
   "## <date>" heading + its list into a single card, and tidies the entries. */
.retype-markdown h2[id^="20"] {
  margin: 1.7rem 0 0;
  padding: .5rem .95rem;
  font-size: 1rem;
  font-weight: 700;
  font-style: normal;
  letter-spacing: .02em;
  color: #16181D;
  background: #F4F7FF;
  border: 1px solid #E3F1FF;
  border-bottom: none;
  border-radius: .6rem .6rem 0 0;
}
.retype-markdown h2[id^="20"] + ul {
  margin: 0;
  padding: .7rem 1.1rem .8rem 2.4rem;
  list-style: disc;
  background: #FFFFFF;
  border: 1px solid #E3F1FF;
  border-top: none;
  border-radius: 0 0 .6rem .6rem;
  box-shadow: 0 1px 3px rgba(38, 0, 230, 0.05);
}
.retype-markdown h2[id^="20"] + ul > li { margin: .55rem 0; }
.retype-markdown h2[id^="20"] + ul > li::marker { color: #9CB6E8; }
html.dark .retype-markdown h2[id^="20"] {
  color: #E6ECFF;
  background: #141B3A;
  border-color: #26306A;
}
html.dark .retype-markdown h2[id^="20"] + ul {
  background: #0E1430;
  border-color: #26306A;
  box-shadow: none;
}
/* Monochrome badge icons, to match the black/white icon style of the left navigation.
   The badge background and text keep their category colour; only the icon goes neutral. */
.retype-markdown [class*="bg-badge"] svg { color: #16181D; fill: currentColor; }
html.dark .retype-markdown [class*="bg-badge"] svg { color: #E6ECFF; }
</style>

Notable customer-facing changes to the TurboStack Platform, newest first. Releases go out roughly
every two weeks; each entry is dated by its release. For the live, in-app feed see
[Platform Updates](platform-updates.md).

Each entry is labelled: [!badge variant="success" text=":icon-rocket: New"]
[!badge variant="info" text=":icon-light-bulb: Improved"] [!badge variant="warning" text=":icon-tools: Fixes"]
[!badge variant="danger" text=":icon-shield-lock: Security"].

> [!IMPORTANT]
> Some changes only take effect on your servers after a **full publish** of the host. See
> [Publishing changes](hosts/publishing.md).

## 2026-07-20

- [!badge variant="info" text=":icon-light-bulb: Improved"] **Faster firewall block and unblock from the command line** - `tscli firewall block` and `unblock` now apply at the firewall immediately, instead of waiting for the background sync. Repeating a block no longer stacks duplicate rules, and an unblock takes effect right away. See [Block an IP address](../technologies/firewall/block-an-ip.md) and the [CLI reference](../api/cli.md).
- [!badge variant="warning" text=":icon-tools: Fixes"] **PHP preloading now takes effect reliably** - A configured preload script now loads correctly. It is applied once per PHP version, at the runtime level. Only one application per PHP version can use preloading, as before. See [`php_opcache_preload_script`](../reference/yaml/applications.md).
- [!badge variant="warning" text=":icon-tools: Fixes"] Account names containing an ampersand (`&`) now display correctly in the account switcher.

## 2026-06-22

- [!badge variant="success" text=":icon-rocket: New"] **Monitoring in the main navigation** - Monitoring
  now has its own entry in the left navigation. Each alert opens a detail page with a downloadable
  PDF report, and the host graphs are clearer and more accurate. See [Monitoring](monitoring.md),
  [Monitoring (concepts)](../concepts/monitoring.md) and the host [Health](hosts/health.md) tab.
- [!badge variant="info" text=":icon-light-bulb: Improved"] **Threat Center: export and manage detections** - You
  can now export Indicators of Compromise, Vulnerabilities and Runtime Detections to CSV, dismiss or
  clear individual detections, and page through long lists more comfortably. See
  [Threat Center](hosts/threat-center.md).
- [!badge variant="success" text=":icon-rocket: New"] **Filter and create hosts over the API** - You can
  now filter the list endpoints by name to find the hosts you need without paging through everything,
  and create a host directly from the API. See the [API reference](../api/reference.md).
- [!badge variant="info" text=":icon-light-bulb: Improved"] **Safer account names** - The Add and Edit Account
  screens now reject reserved or invalid usernames before you save, so a bad name cannot slip
  through. See [Applications and accounts](hosts/applications/index.md).
- [!badge variant="info" text=":icon-light-bulb: Improved"] **Compact responsive sidebar** - The navigation now
  collapses to a compact sidebar on medium-sized screens, so it stays usable on smaller displays.
- [!badge variant="warning" text=":icon-tools: Fixes"] Minor fixes to the host [Health](hosts/health.md)
  tab, [History tab](hosts/revisions.md) pagination, and the CPU load graph.

## 2026-06-09

- [!badge variant="danger" text=":icon-shield-lock: Security"] **Security alerts with one-click fix** - Hosts
  now show security alerts directly in the interface, for example when a component is out of date.
  Each alert has an optional button that deploys the recommended fix for you, and alerts are hidden
  while a deployment is running. See [Security](hosts/security.md).

## 2026-06-01

- [!badge variant="warning" text=":icon-tools: Fixes"] **Clearer deployment errors** - When a step in a
  deployment fails, you now see the actual error message instead of a blank result, so it is clear
  what went wrong. See [Publishing changes](hosts/publishing.md).

## 2026-05-18

- [!badge variant="info" text=":icon-light-bulb: Improved"] **Credentials, database users and FTP** - The
  Credentials area is easier to use. You can create extra database users with a read-only or an admin
  role, and FTP accounts are now grouped under their database. See [Credentials](hosts/credentials.md)
  and [Manage database users](../technologies/mysql/manage-database-users.md).

## 2026-05-11

- [!badge variant="success" text=":icon-rocket: New"] **Create Backup on demand** - You can now start a
  backup yourself with **Create Backup**, instead of waiting for the scheduled run. See
  [Backups](hosts/backups.md).
- [!badge variant="success" text=":icon-rocket: New"] **Ruby application support** - Ruby applications now
  support a custom start command (`ruby_start_cmd`) and an optional Sidekiq background-worker service
  (`ruby_sidekiq`, `ruby_sidekiq_cmd`). See [Ruby](../technologies/ruby/configure.md) and the
  [application parameters](../reference/yaml/applications.md).
- [!badge variant="warning" text=":icon-tools: Fixes"] A host with no system users defined no longer
  causes an error.

## 2026-04-01

- [!badge variant="warning" text=":icon-tools: Fixes"] **Search fixes** - Fixed enabling Elasticsearch, an
  Elasticsearch plugin problem, and search-result sorting. See
  [Elasticsearch](../technologies/elasticsearch/configure.md).

> [!NOTE]
> This changelog is curated from the platform's release history and focuses on changes you can see
> or use as a customer. Internal, infrastructure and staff-only changes are omitted. For the exact,
> always-current behavior of a feature, follow the linked documentation page.

## Related

- [Platform Updates](platform-updates.md) - the live in-app feed
- [Publishing changes](hosts/publishing.md)
- [Support](support.md)
