Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 21 additions & 8 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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 now has self-serve support for tenant-scoped Prometheus metrics and an audit logs API available on the Scale plan.

### 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"
Expand All @@ -18,12 +36,7 @@
);
```

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

Expand Down Expand Up @@ -577,7 +590,7 @@
- Cleanup old workers via daily gocron by @mnafees in [#3663](https://github.com/hatchet-dev/hatchet/pull/3663)

### Removed
- Remove "account" dropdown', add notifications dropdown by @TehShrike in [#3365](https://github.com/hatchet-dev/hatchet/pull/3365)

Check warning on line 593 in CHANGELOG.md

View workflow job for this annotation

GitHub Actions / spelling

"Teh" should be "The".


## [0.83.33] - 2026-04-21
Expand Down Expand Up @@ -807,7 +820,7 @@

### Changed
- Move OTel tables to OLAP repo by @mnafees in [#3369](https://github.com/hatchet-dev/hatchet/pull/3369)
- Don't flicker the runs table when refetching by @TehShrike in [#3367](https://github.com/hatchet-dev/hatchet/pull/3367)

Check warning on line 823 in CHANGELOG.md

View workflow job for this annotation

GitHub Actions / spelling

"Teh" should be "The".


## [0.82.0] - 2026-03-23
Expand All @@ -834,7 +847,7 @@
- Add latency plots to load test by @juliusgeo in [#3259](https://github.com/hatchet-dev/hatchet/pull/3259)

### Changed
- Only return non-archived tenants in TenantMember queries by @TehShrike in [#3317](https://github.com/hatchet-dev/hatchet/pull/3317)

Check warning on line 850 in CHANGELOG.md

View workflow job for this annotation

GitHub Actions / spelling

"Teh" should be "The".


## [0.81.0] - 2026-03-18
Expand All @@ -858,9 +871,9 @@
## [0.80.8] - 2026-03-18

### Changed
- Guarantee that organization tenants will always be an array by @TehShrike in [#3316](https://github.com/hatchet-dev/hatchet/pull/3316)

Check warning on line 874 in CHANGELOG.md

View workflow job for this annotation

GitHub Actions / spelling

"Teh" should be "The".
- New organizations+tenants screen by @TehShrike in [#3198](https://github.com/hatchet-dev/hatchet/pull/3198)

Check warning on line 875 in CHANGELOG.md

View workflow job for this annotation

GitHub Actions / spelling

"Teh" should be "The".
- Improved invitation accept screen by @TehShrike in [#3151](https://github.com/hatchet-dev/hatchet/pull/3151)

Check warning on line 876 in CHANGELOG.md

View workflow job for this annotation

GitHub Actions / spelling

"Teh" should be "The".

### Removed
- Remove dispatch backlog, replace with timeout lock acquisition by @juliusgeo in [#3290](https://github.com/hatchet-dev/hatchet/pull/3290)
Expand Down Expand Up @@ -892,7 +905,7 @@
## [0.79.44] - 2026-03-15

### Added
- Add support for additional RBAC configruation via YAML configuration by @grutt in [#3285](https://github.com/hatchet-dev/hatchet/pull/3285)

Check warning on line 908 in CHANGELOG.md

View workflow job for this annotation

GitHub Actions / spelling

"configruation" should be "configurations" or "configuration".

### Changed
- Gracefully handle empty bulk scheduled deletes by @avirajkhare00 in [#3279](https://github.com/hatchet-dev/hatchet/pull/3279)
Expand Down Expand Up @@ -1026,7 +1039,7 @@
## [0.79.11] - 2026-02-27

### Added
- New "create organization" and "create tenant" interfaces by @TehShrike in [#3068](https://github.com/hatchet-dev/hatchet/pull/3068)

Check warning on line 1042 in CHANGELOG.md

View workflow job for this annotation

GitHub Actions / spelling

"Teh" should be "The".

### Fixed
- Modals should appear above the mobile sidebar by @TehShrike in [#3114](https://github.com/hatchet-dev/hatchet/pull/3114)
Expand Down
2 changes: 1 addition & 1 deletion cmd/hatchet-cli/.goreleaser.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ release:
name: hatchet
draft: false
prerelease: auto
mode: append
mode: replace
footer: |
---

Expand Down
40 changes: 40 additions & 0 deletions frontend/docs/pages/reference/changelog/platform.mdx
Original file line number Diff line number Diff line change
@@ -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 now has self-serve support for tenant-scoped Prometheus metrics and an audit logs API available on the Scale plan.

### 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.
Expand Down
Loading