{
 "schema": "flintstack.releases/1",
 "updated": "2026-09-28",
 "current": "0.11.3",
 "first": "0.1.0",
 "license": "Apache-2.0",
 "store_format_breaks": [
  "0.7.0"
 ],
 "count": 13,
 "releases": [
  {
   "version": "0.11.3",
   "date": "2026-09-28",
   "kind": "fix",
   "store_format_change": false,
   "url": "/release-0-11-3.html",
   "changes": [
    "Fixed a race where two wrappers computing the same key at the same moment could both write, leaving one temporary file behind per collision.",
    "flint doctor now reports the clock offset between client and daemon; a skew over five minutes was quietly breaking TTL arithmetic.",
    "prune --label matched a prefix instead of the whole label, so --label test also removed testdata entries."
   ]
  },
  {
   "version": "0.11.0",
   "date": "2026-06-02",
   "kind": "feature",
   "store_format_change": false,
   "url": "/release-0-11-0.html",
   "changes": [
    "New peer backend: a second daemon over TCP, conventionally on port 7914, with optional mutual TLS.",
    "Added --require-daemon so a build can insist on the cache instead of falling through to a plain compile.",
    "Added slow_ms logging. Store format unchanged."
   ]
  },
  {
   "version": "0.10.4",
   "date": "2026-03-17",
   "kind": "fix",
   "store_format_change": false,
   "url": "/release-0-10-4.html",
   "changes": [
    "Credential and token files must now be mode 0600 and owned by the daemon user; the daemon exits instead of starting with loose permissions.",
    "Three crashes on malformed configuration replaced with a parse error that names the line."
   ]
  },
  {
   "version": "0.10.0",
   "date": "2026-01-21",
   "kind": "feature",
   "store_format_change": false,
   "url": "/release-0-10-0.html",
   "changes": [
    "Compression level is configurable per store, zstd-1 through zstd-9.",
    "Index rebuild at startup is roughly four times faster: 120 GiB now scans in under three seconds.",
    "Removed the 0.6 compatibility reader. Rolling back below 0.7 is no longer possible."
   ]
  },
  {
   "version": "0.9.1",
   "date": "2025-10-08",
   "kind": "fix",
   "store_format_change": false,
   "url": "/release-0-9-1.html",
   "changes": [
    "A community-maintained FreeBSD target joins the release matrix.",
    "Fixed the p95 regression introduced in 0.9.0, where a full write queue blocked readers instead of dropping the write."
   ]
  },
  {
   "version": "0.8.0",
   "date": "2025-07-15",
   "kind": "feature",
   "store_format_change": false,
   "url": "/release-0-8-0.html",
   "changes": [
    "toolchain_probe = \"digest\": hash the compiler binary rather than trust its version string.",
    "Entry labels and flint stats --by-label for attributing hits to parts of a build."
   ]
  },
  {
   "version": "0.7.0",
   "date": "2025-04-24",
   "kind": "breaking",
   "store_format_change": true,
   "url": "/release-0-7-0.html",
   "changes": [
    "Store format change. The index database is gone; the store is scanned into memory at startup and the shards are the only source of truth. This fixed the whole class of «index disagrees with shards after a crash» reports.",
    "Entries gained a trailing digest over header and payload, checked on every read.",
    "Upgrading keeps nothing: the first start after 0.7.0 sees an empty store."
   ]
  },
  {
   "version": "0.6.2",
   "date": "2025-02-19",
   "kind": "fix",
   "store_format_change": false,
   "url": "/release-0-6-2.html",
   "changes": [
    "Last release with the index database. Two corruption fixes, both reachable by killing the daemon during a write."
   ]
  },
  {
   "version": "0.5.0",
   "date": "2024-12-11",
   "kind": "feature",
   "store_format_change": false,
   "url": "/release-0-5-0.html",
   "changes": [
    "First remote backend: objs, object storage over signed HTTPS, with a parallel request setting.",
    "A backend timeout now counts as a miss rather than an error."
   ]
  },
  {
   "version": "0.4.0",
   "date": "2024-10-09",
   "kind": "feature",
   "store_format_change": false,
   "url": "/release-0-4-0.html",
   "changes": [
    "Eviction gained hysteresis - sweep starts at 95 % of the ceiling and stops at 85 % - after a user reported eviction running continuously for a full day.",
    "Added ttl for age-based expiry independent of size."
   ]
  },
  {
   "version": "0.3.1",
   "date": "2024-08-21",
   "kind": "feature",
   "store_format_change": false,
   "url": "/release-0-3-1.html",
   "changes": [
    "The daemon arrives. The wrapper no longer opens the store directly, which removes the lock contention that capped useful parallelism at about twelve jobs.",
    "Unix socket at /run/flint/flintd.sock; the wrapper falls through to the real compiler when nothing answers."
   ]
  },
  {
   "version": "0.2.0",
   "date": "2024-07-02",
   "kind": "feature",
   "store_format_change": false,
   "url": "/release-0-2-0.html",
   "changes": [
    "Environment allowlist instead of hashing the whole environment, which had made every entry unique under CI.",
    "Path normalization in the argument vector, so two checkouts in different directories share entries."
   ]
  },
  {
   "version": "0.1.0",
   "date": "2024-05-16",
   "kind": "feature",
   "store_format_change": false,
   "url": "/release-0-1-0.html",
   "changes": [
    "First tag, four weeks after the work started. A local directory cache, one lock, no daemon, no remote tier, and a wrapper that already fell through on error."
   ]
  }
 ]
}