NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Go modules · #432 by repository stars
Last release today
06 Oct 2026
Ships on a steady schedule
a new release about every 8 days
Most releases are documented
notes for 53 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
2419 releases · first in 2023
One column per quarter.
Hatchet v0.107.0 adds a local MCP server to the CLI. It also introduces some performance and query optimizations.
Hatchet v0.107.0 adds a local MCP server to the CLI. It also introduces some performance and query optimizations.
hatchet mcp: the CLI now ships a local MCP server so AI coding agents can trigger runs, inspect run status and events, list workers, replay runs, and check engine status against a Hatchet deployment. hatchet mcp install writes the server into Claude Code, Cursor, VS Code, or Codex configs, and hatchet mcp auth controls which CLI profiles it may use. See MCP Server (#4911).v1_match rows written on repeated child spawns were never cleaned up, growing the table indefinitely and leaking database CPU (#4923, #4927).GetTenantTaskStats no longer sequentially scans v1_task, fixing task-stats latency once a paused workflow accumulates queued runs (#4934).v1_match, v1_concurrency_slot, and v1_retry_queue_item (#4951).WithLogger still available to override (#4941).cancelled due to concurrency is shown as an info-level log, and feature flag rendering no longer flashes ([#4938]v1_match rows by @mrkaye97 in #4927@hatchet-dev/typescript-sdk/edge by @abelanger5 in #4925GetTenantTaskStats query by @mrkaye97 in #4934io.Writer destination for the shared logger by @abelanger5 in #4939hatchet mcp serve with a new MCP implementation by @abelanger5 in #4911Full Changelog: v0.106.5...v0.107.0
Nothing published for this version
Nothing published for this version
refactor(cli): extract the profile store into a public package
refactor(cli): extract the profile store into a public package (#4942)
Merge branch 'main' into mk/try-assign-spans
Merge branch 'main' into mk/try-assign-spans
ReplayTasks held one try-lock per tenant, so every replay for a tenant was serialized through a single controller and any concurrent attempt failed an
ReplayTasks held one try-lock per tenant, so every replay for a tenant was
serialized through a single controller and any concurrent attempt failed
and cycled through the DLQ.
Lock each workflow run in the batch instead, with a blocking advisory lock
taken in ascending key order so overlapping batches cannot deadlock. The
batch still runs in one transaction. A concurrent replay of the same run
waits, then finds the tasks already queued and discards them in the
preflight check, so it degrades to a no-op rather than a duplicate replay.
Tasks without a workflow run id are locked on their own external id.
refactor(replay): replay each batch in one transaction, fetch inputs …
refactor(replay): replay each batch in one transaction, fetch inputs …
Nothing published for this version
feat: disable the jit in more places
feat: disable the jit in more places
Nothing published for this version
fix: attempt to optimize concurrency queries
fix: attempt to optimize concurrency queries
fix: on conflict + retry handling
fix: check retry count later
chore: add more spans inside try-assign-batch
chore: add more spans inside try-assign-batch
fix: cancelled due to concurrency should show as info log
fix: cancelled due to concurrency should show as info log
feat: pretty-print json-parseable error messages as json
fix: open side panel for standalone tasks again
fix: feature flag causing flashing
chore: lint
fix: handle error state
fix: make all cancellation logs the same color
fix: attempt to optimize concurrency queries
fix: attempt to optimize concurrency queries
Nothing published for this version
Nothing published for this version
Nothing published for this version
fix: optimize GetTenantTaskStats to try to make it less likely to seq scan v1_task
fix: optimize GetTenantTaskStats to try to make it less likely to seq scan v1_task
fix: compiler
Merge remote-tracking branch 'origin/main' into belanger/serverless-o…
Merge remote-tracking branch 'origin/main' into belanger/serverless-o…
Nothing published for this version
Nothing published for this version
Nothing published for this version
fix: more gating of matches for operator spawns
fix: more gating of matches for operator spawns
fix: rm unneeded skip
fix: oh boy....
fix: oh boy.... (#4923)
Go SDK: all required symbols are exported and deprecated constructs are no longer depended on ( #4875 ).
Hatchet v0.106.5 is a concurrency-focused release, adding support for dynamic concurrency limits, shared concurrency across workflows, and two new queue-depth concurrency strategies.
input.tier == 'premium' ? 10 : 1 (#4863, #4873).workflow_a and workflow_b to 10 concurrent runs per user total. Previously this pattern required a parent router task; shared concurrency replaces it (#4845, #4873).CANCEL_QUEUED_EXCEPT_NEWEST and CANCEL_QUEUED_EXCEPT_OLDEST: configure the queue depth for each concurrency key, keeping only the most or least recent queued item until in-progress runs complete — conceptually similar to debouncing (#4793).UpdateDurableEventLogEntriesSatisfied (#4891).UpsertDurableChildSignalCreatedEvents by @mrkaye97 in #4860go test output required by @mnafees in #4878qs in the TS SDK to fix Dependabot alerts by @mnafees in #4884UpdateDurableEventLogEntriesSatisfied by @mrkaye97 in #4891isActive using a session id instead of just a timestamp by @abelanger5 in #4916RunMany should return results in the same order of the inputs by @mnafees in #4825Full Changelog: v0.105.16...v0.106.5
Nothing published for this version
Nothing published for this version
fix: hanging from child never spawned
fix: hanging from child never spawned
refactor: rm ReExecuted field on stuct
chore: rm more dead code, rename struct
fix: greptile concern
Nothing published for this version
Nothing published for this version
Nothing published for this version
feat: allow posthog flags to target users by email / id
feat: allow posthog flags to target users by email / id (#4896)
Nothing published for this version
fix race between dag starting and terminal statuses
initial commit
nested dag
try this to fix issues
fix started at incongruity
fix race between dag starting and terminal statuses
fix for stuck dags on engine restart
ok try this
ok try this
alternative fix
conditionally add to map
fix other issues
rewrite/remove bad comments
add comment
fix not null issue
Nothing published for this version
fix(engine): prune partitions in `UpdateDurableEventLogEntriesSatisfi…
fix(engine): prune partitions in `UpdateDurableEventLogEntriesSatisfi…
Nothing published for this version
Nothing published for this version
Nothing published for this version
chore: Bump github.com/rabbitmq/amqp091-go in /examples/go/embedded (…
chore: Bump github.com/rabbitmq/amqp091-go in /examples/go/embedded (…
Nothing published for this version
Nothing published for this version
Nothing published for this version
no verbose go test output required
no verbose go test output required
remove atlas steps from CI
Nothing published for this version
feat(engine): enable durable tasks running on the dag operator to be …
feat(engine): enable durable tasks running on the dag operator to be …
Nothing published for this version
Nothing published for this version
fix for stuck dags on engine restart
fix for stuck dags on engine restart
Merge branch 'main' into repro_load_test_dag
Merge branch 'main' into repro_load_test_dag
Merge branch 'main' into repro_load_test_dag
Merge branch 'main' into repro_load_test_dag
Nothing published for this version
Merge branch 'main' into repro_load_test_dag
Merge branch 'main' into repro_load_test_dag
Nothing published for this version
Nothing published for this version
Nothing published for this version
refactor(engine): bulk operation for `UpsertDurableChildSignalCreated…
refactor(engine): bulk operation for `UpsertDurableChildSignalCreated…
Nothing published for this version
chore: add more spans to ingest
chore: add more spans to ingest
chore: decrease flush interval
Merge branch 'main' into repro_load_test_dag
Merge branch 'main' into repro_load_test_dag
Your coding agent can read these notes before it upgrades. Set up the MCP server →