From 7a120a143f7e009a39b10e248bdd3b03f6ad8e54 Mon Sep 17 00:00:00 2001 From: Greg Furman Date: Mon, 29 Jun 2026 17:48:59 +0200 Subject: [PATCH 1/3] chore: release v0.90.13 --- CHANGELOG.md | 29 +++++++++++++++++++++-------- cmd/hatchet-cli/.goreleaser.yml | 2 +- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d3bcb8ae7..2e4f2847a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,26 @@ -## [Unreleased] +## [0.90.13] - 2026-06-29 + +Hatchet v0.90.13 is a stability-focused release. It keeps long-running deployments healthy by bounding session-table growth, reduces scheduling latency under load, fixes a duration-parsing bug that could silently shorten your timeouts, and ships a batch of dashboard fixes. + +### Highlights + +- The `UserSession` table no longer grows unbounded: an hourly cleanup job now removes expired and orphaned sessions automatically. See [Upgrade Notes](#usersession-bulk-cleanup) for an optional one-time bulk cleanup to run before upgrading. +- Multi-unit duration strings such as `42m30s` are now parsed correctly and enforce their full value, rather than silently truncating to a shorter duration. See [Upgrade Notes](#stricter-duration-validation) for the related behavior and validation changes. +- Reduced engine cold-start latency when moving runs from `QUEUED` to `ASSIGNED_TO_WORKER` under load, and stale concurrency state is now cleaned up automatically so it can no longer build up and slow scheduling. +- Fixed a dashboard race that could return a 500 when triggering a run, alongside several quality-of-life improvements: a system theme option in account settings, a scrollable workflow settings page, persisted sidebar scroll position across navigation, a tooltip for long tenant names, and CodeEditor theming and border fixes in light mode. +- The Go SDK now retries bodyless `GET` and `HEAD` reads with backoff on transient failures, which can be disabled via the `HATCHET_CLIENT_NO_RETRY` environment variable. +- Durable execution is sturdier: dead-lettered callback messages are now handled gracefully instead of erroring, and a failing child task correctly raises an error in its durable parent, matching the behavior of regular tasks. +- Hatchet Cloud adds the foundations for tenant-scoped Prometheus metrics and audit logs. ### Upgrade Notes -* This update includes an additional cleanup job for the `UserSession` table to correctly remove expired/invalid user sessions from the table -- addressing unbounded growth. However, you can optionally run the following query as many times as needed against your Postgres instance to ensure a bulk-cleanup prior to upgrade: +#### Stricter duration validation + +Registration now rejects duration strings that were previously accepted and silently coerced: signed values, bare numbers, sub-millisecond units (`ns`/`us`), and mixed forms using `d`/`w`/`y`. If you register durations in any of these forms, they'll now fail at registration — check your workflow definitions before upgrading. + +#### `UserSession` bulk cleanup + +This update includes an additional cleanup job for the `UserSession` table to correctly remove expired/invalid user sessions from the table -- addressing unbounded growth. However, you can optionally run the following query as many times as needed against your Postgres instance to ensure a bulk-cleanup prior to upgrade: ```sql DELETE FROM "UserSession" @@ -18,12 +36,7 @@ WHERE ctid IN ( ); ``` -Note: The limit of `10 000` can be adjusted if needed. - -### Added - -- Add Go SDK client retry controls, gRPC full-jitter retry backoff, and bounded REST read retries for transient API failures by @igor-kupczynski in [#4240](https://github.com/hatchet-dev/hatchet/pull/4240) - +Note: the `10000` limit can be adjusted as needed. ## [0.89.0] - 2026-06-09 diff --git a/cmd/hatchet-cli/.goreleaser.yml b/cmd/hatchet-cli/.goreleaser.yml index 7fae1af109..66ed29abe3 100644 --- a/cmd/hatchet-cli/.goreleaser.yml +++ b/cmd/hatchet-cli/.goreleaser.yml @@ -82,7 +82,7 @@ release: name: hatchet draft: false prerelease: auto - mode: append + mode: replace footer: | --- From e3ebebdd153be9347f6dfc0c184da845417ad0ef Mon Sep 17 00:00:00 2001 From: Greg Furman Date: Mon, 29 Jun 2026 18:17:10 +0200 Subject: [PATCH 2/3] chore: regen changelog docs --- .../pages/reference/changelog/platform.mdx | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/frontend/docs/pages/reference/changelog/platform.mdx b/frontend/docs/pages/reference/changelog/platform.mdx index 6dcacd953a..8ac22de4a1 100644 --- a/frontend/docs/pages/reference/changelog/platform.mdx +++ b/frontend/docs/pages/reference/changelog/platform.mdx @@ -1,5 +1,45 @@ {/* AUTOGENERATED — do not edit. Run `task sync-changelog` to regenerate from CHANGELOG.md */} +## v0.90.13 - 2026-06-29 + +Hatchet v0.90.13 is a stability-focused release. It keeps long-running deployments healthy by bounding session-table growth, reduces scheduling latency under load, fixes a duration-parsing bug that could silently shorten your timeouts, and ships a batch of dashboard fixes. + +### Highlights + +- The `UserSession` table no longer grows unbounded: an hourly cleanup job now removes expired and orphaned sessions automatically. See [Upgrade Notes](#usersession-bulk-cleanup) for an optional one-time bulk cleanup to run before upgrading. +- Multi-unit duration strings such as `42m30s` are now parsed correctly and enforce their full value, rather than silently truncating to a shorter duration. See [Upgrade Notes](#stricter-duration-validation) for the related behavior and validation changes. +- Reduced engine cold-start latency when moving runs from `QUEUED` to `ASSIGNED_TO_WORKER` under load, and stale concurrency state is now cleaned up automatically so it can no longer build up and slow scheduling. +- Fixed a dashboard race that could return a 500 when triggering a run, alongside several quality-of-life improvements: a system theme option in account settings, a scrollable workflow settings page, persisted sidebar scroll position across navigation, a tooltip for long tenant names, and CodeEditor theming and border fixes in light mode. +- The Go SDK now retries bodyless `GET` and `HEAD` reads with backoff on transient failures, which can be disabled via the `HATCHET_CLIENT_NO_RETRY` environment variable. +- Durable execution is sturdier: dead-lettered callback messages are now handled gracefully instead of erroring, and a failing child task correctly raises an error in its durable parent, matching the behavior of regular tasks. +- Hatchet Cloud adds the foundations for tenant-scoped Prometheus metrics and audit logs. + +### Upgrade Notes + +#### Stricter duration validation + +Registration now rejects duration strings that were previously accepted and silently coerced: signed values, bare numbers, sub-millisecond units (`ns`/`us`), and mixed forms using `d`/`w`/`y`. If you register durations in any of these forms, they'll now fail at registration — check your workflow definitions before upgrading. + +#### `UserSession` bulk cleanup + +This update includes an additional cleanup job for the `UserSession` table to correctly remove expired/invalid user sessions from the table -- addressing unbounded growth. However, you can optionally run the following query as many times as needed against your Postgres instance to ensure a bulk-cleanup prior to upgrade: + +```sql +DELETE FROM "UserSession" +WHERE ctid IN ( + SELECT ctid + FROM "UserSession" + WHERE NOT ( + ("userId" IS NOT NULL AND "expiresAt" >= NOW()) + OR + ("userId" IS NULL AND "createdAt" >= NOW() - INTERVAL '24 hours') + ) + LIMIT 10000 +); +``` + +Note: the `10000` limit can be adjusted as needed. + ## v0.89.0 - 2026-06-09 Hatchet v0.89.0 introduces a range of updates to the platform, consisting largely of performance improvements and bug fixes to the engine, alongside several user-experience changes to the dashboard. From 115906ae63d5555e06e40e67fabfee14d8b7b48b Mon Sep 17 00:00:00 2001 From: Greg Furman Date: Mon, 29 Jun 2026 19:41:04 +0200 Subject: [PATCH 3/3] chore: fix hatchet cloud note --- CHANGELOG.md | 2 +- frontend/docs/pages/reference/changelog/platform.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e4f2847a9..ac8d97e7e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,7 @@ Hatchet v0.90.13 is a stability-focused release. It keeps long-running deploymen - Fixed a dashboard race that could return a 500 when triggering a run, alongside several quality-of-life improvements: a system theme option in account settings, a scrollable workflow settings page, persisted sidebar scroll position across navigation, a tooltip for long tenant names, and CodeEditor theming and border fixes in light mode. - The Go SDK now retries bodyless `GET` and `HEAD` reads with backoff on transient failures, which can be disabled via the `HATCHET_CLIENT_NO_RETRY` environment variable. - Durable execution is sturdier: dead-lettered callback messages are now handled gracefully instead of erroring, and a failing child task correctly raises an error in its durable parent, matching the behavior of regular tasks. -- Hatchet Cloud adds the foundations for tenant-scoped Prometheus metrics and audit logs. +- Hatchet Cloud now has self-serve support for tenant-scoped Prometheus metrics and an audit logs API available on the Scale plan. ### Upgrade Notes diff --git a/frontend/docs/pages/reference/changelog/platform.mdx b/frontend/docs/pages/reference/changelog/platform.mdx index 8ac22de4a1..0f62a24969 100644 --- a/frontend/docs/pages/reference/changelog/platform.mdx +++ b/frontend/docs/pages/reference/changelog/platform.mdx @@ -12,7 +12,7 @@ Hatchet v0.90.13 is a stability-focused release. It keeps long-running deploymen - Fixed a dashboard race that could return a 500 when triggering a run, alongside several quality-of-life improvements: a system theme option in account settings, a scrollable workflow settings page, persisted sidebar scroll position across navigation, a tooltip for long tenant names, and CodeEditor theming and border fixes in light mode. - The Go SDK now retries bodyless `GET` and `HEAD` reads with backoff on transient failures, which can be disabled via the `HATCHET_CLIENT_NO_RETRY` environment variable. - Durable execution is sturdier: dead-lettered callback messages are now handled gracefully instead of erroring, and a failing child task correctly raises an error in its durable parent, matching the behavior of regular tasks. -- Hatchet Cloud adds the foundations for tenant-scoped Prometheus metrics and audit logs. +- Hatchet Cloud now has self-serve support for tenant-scoped Prometheus metrics and an audit logs API available on the Scale plan. ### Upgrade Notes