---
title: Changelog
description: "User-visible changes to Dashies, newest first, dated by the day each one shipped to production."
updated: 2026-08-05
---

Every entry below is dated by the day the change **merged and deployed**. Dashies
deploys on merge, so those are the same moment. That is deliberately **not the
same as the day the change became visible to you**: some of this work lands
behind the scenes first and is switched on later, so treat a date as when the
code shipped, not as when the feature appeared.

:::warning{title="Read this before you use the list as evidence"}
**What is here.** Only changes a user can see: a new warehouse engine, a new
cadence, a new tool argument, a behaviour that used to work differently.
Internal refactors, infrastructure work and test coverage are not listed. The
list starts at **2026-07-11**; nothing before that date is recorded.

**How it is kept.** By hand. Someone adds an entry when a user-visible change
ships, and nothing checks that they did.

**So an empty stretch means nobody wrote anything down, not that nothing
shipped.** Do not read a gap as a quiet period, and do not conclude a behaviour
is unchanged because no entry mentions it. If you need to know how something
behaves today, the page describing it is the answer; this list only tells you
what someone thought to record.

**Where the entries come from.** The entries below were each read against the
code, the schema or the design document that defines the behaviour, rather than
against the summary attached to the change that shipped it. Those two disagree
more often than you would expect, and two of the entries here were wrong on
their first draft for exactly that reason. That is a statement about the entries
that exist today, not a guarantee about any added later: nothing enforces it,
for the same reason nothing enforces the rest of this page.
:::

## 2026-08-03

**The documentation moved to `docs.dashies.xyz`.** This site replaced the single
`/docs` page on `dashies.xyz`, which listed five of the eighteen MCP tools and
nothing about warehouses, specs, dataset modes, schedules, versions or teams.
`dashies.xyz/docs` now redirects here permanently.

**A filterable cube costs far fewer raw bytes.** The data island can now store a
dimension column as a dictionary of its distinct values plus one index per row,
rather than repeating every label on every row, and the encoder keeps whichever
form is smaller. Adding a filter dimension no longer multiplies the island the
way it used to.

Three things this is not. It is **not a transfer win**: the edge already serves
dashboards compressed, and compression collapses repeated strings on its own.
It is **not a cap raise**: the publish and island byte limits are unchanged, and
the win is that the bytes are genuinely smaller, which matters because those
limits are enforced on raw bytes and browser parse cost is raw-byte bound too.
And it does **not migrate a dashboard you already published** - a refresh keeps
the island in the shape it already has, so an existing dashboard takes the new
encoding when it is next published, not on its next run.

Nothing changes in how you author a cube. See
[The data island](/concepts/data-island).

## 2026-08-01

**Fixed: the Versions page showed no workspace dashboards.** It listed personal
dashboards only, and a workspace with versions to show rendered the "No
dashboards yet" empty state instead. See
[Version history](/guides/version-history).

## 2026-07-31

**Publish a spec by hash, or by edit.** `publish_dashboard` accepts `spec_hash`
to republish a spec the server already holds, and `spec_edits` to change part of
one, instead of resending the whole document every time. See
[publish_dashboard](/reference/mcp-tools/publish-dashboard) and
[Author a dashboard](/guides/author-a-dashboard).

**Signing in returns you to the workspace you were last in**, rather than always
landing on your personal space.

**Fixed: History and Activity showed the wrong space.** Both feeds now scope to
the workspace on screen instead of mixing in personal activity.

## 2026-07-29

**Warehouse connections can belong to a workspace.** A connection created inside
a workspace is usable by that workspace's members and by its dashboards. The
scope is fixed when the connection is created and cannot be changed afterwards,
in either direction. Read
[Connections and scope](/concepts/connections-and-scope) before you bind one: a
workspace dashboard bound to a personal connection publishes successfully and
then can never refresh.

**A data source now reports what refreshes actually observed**, alongside the
result of the last connection test. The two are separate facts and can disagree
without either being wrong: a credential that tested fine in the morning and has
been failing every refresh since is exactly the state this surfaces.

## 2026-07-26

**Teams.** A team is a group of people inside a workspace with a team screen: an
ordered set of sections holding references to dashboards. A team screen points at
dashboards, it does not contain them, so a dashboard can appear on any number of
screens and removing a tile never deletes the dashboard. See
[Work as a team](/guides/work-as-a-team).

## 2026-07-18

**Refresh every 15 or 30 minutes.** Paid plans can set a sub-hourly cadence on an
hourly dashboard. See [Schedules](/concepts/schedules) for what the cadence
guarantees and what it does not.

**Dashboards store their spec.** The YAML spec a dashboard was published from is
kept server-side, so an AI tool can read it back with
[get_dashboard_spec](/reference/mcp-tools/get-dashboard-spec) rather than
reconstructing it. For a dashboard published before specs existed,
[derive_dashboard_spec](/reference/mcp-tools/derive-dashboard-spec) reconstructs
a **draft** from the stored manifest and the published body; it stores nothing,
and republishing that draft to the same slug is what converts the dashboard.

## 2026-07-17

**SQL Server.** The sixth warehouse engine. Read
[Connect SQL Server](/guides/connect-warehouse/sqlserver) before you plan a cube
against it: its per-query caps and the absence of a Parquet offload are stated
there, and they are the two things that decide whether a dataset fits.

## 2026-07-15

**Databricks.** See [Connect Databricks](/guides/connect-warehouse/databricks).

**Amazon Redshift** gained its connection form in the app, completing the engine.
See [Connect Redshift](/guides/connect-warehouse/redshift).

## 2026-07-11

**Snowflake.** See [Connect Snowflake](/guides/connect-warehouse/snowflake).
