Commit Graph

759 Commits

Author SHA1 Message Date
Julius Park
86b25fe4e8 Remove dispatch backlog, replace with timeout lock acquisition (#3290) 2026-03-17 16:09:58 -04:00
Gabe Ruttner
8d4217425e fix: cleanup orphaned metrics (#3300) 2026-03-17 11:24:17 -07:00
Gabe Ruttner
a3275ac101 fix: enhance SQL query name extraction in otel tracer and fallback (#3277)
* fix: enhance SQL query name extraction in otel tracer and fallback

* feat: propagate context to logger

* feat: correlation ids

* feat: add tenant ids

* feat: more richness for partitionable things

* fix: tests

* feat: capture http errors on spans

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-03-17 07:31:21 -07:00
matt
a899c3216f Feat: Add workflow_run_external_id to trigger run ack proto (#3299)
* feat: add external id to runs entry

* chore: gen

* fix: python wiring

* chore: gen ts

* chore: version

* fix: wiring

* chore: changelog, version

* chore: gen
2026-03-17 09:53:48 -04:00
Gabe Ruttner
f988511a1f fix: silence tenant alert error (#3298) 2026-03-17 06:34:50 -07:00
Gabe Ruttner
b3208f4d62 fix: remove join in currency queries (#3294)
* fix: remove join in currency queries

* chore: generate
2026-03-16 17:14:54 -04:00
Julius Park
aebad9ed01 Add cleanup module to handle graceful shutdown, improve logging experience (#3260)
* initial commit

* fix logs

* make warn, fix

* add buffering

* make logger part of cleanup struct

* change it so deadline collection starts in goroutine

* use channels, reduce timelimit by 1 second

* make chan unbuffered, defer close
2026-03-16 13:55:43 -04:00
matt
43e7466d0f Feat: Durable Execution Revamp (#2954)
* Feat: Durable Execution Revamp

---------

Co-authored-by: Gabe Ruttner <gabriel.ruttner@gmail.com>
2026-03-16 11:24:29 -04:00
Gabe Ruttner
a9b5c634b3 feat(authz): Add support for additional RBAC configruation via YAML configuration (#3285)
* feat(authz): Add support for additional RBAC permissions via YAML configuration

* feat: allowed operations
2026-03-15 12:04:30 -07:00
Greg Furman
794fbe7527 fix: Validate the presence of null unicode in output (#3164)
* fix: Validate the presence of null unicode in output

* chore: Update changelog and bump SDK version
2026-03-14 15:26:11 +02:00
Greg Furman
588be514f3 fix(sdk): Configure logger for Hatchet client (#3046) 2026-03-14 15:24:26 +02:00
matt
a07cc9aec7 fix: delete missing workers (#3273) 2026-03-13 15:41:52 -04:00
Mohammed Nafees
344d7fa00f Attempt to fix deadlock in PollScheduledWorkflows by scoping FOR UPDATE lock (#3261)
* make sure skip locked semantics is meaningful

* fix: order by cond

* fix: refs

* chore: decrease diff size

* fix: run triggered by not exists instead of left join

* feat: add index for polling

* chore: schema

* fix: make cte doing the filtering also do the locking

* fix: one more cte fix

* fix: rm dupe for update lock

* fix: order by

---------

Co-authored-by: mrkaye97 <mrkaye97@gmail.com>
2026-03-13 11:04:32 -04:00
matt
b5351a921d Janky Fix: Extract input payloads for standalone tasks for dashboard (#3128)
* fix: extract input payload correctly

* chore: todo -> fixme

* fix: naming + handle panic
2026-03-13 11:03:59 -04:00
Gabe Ruttner
4cdd468100 fix: error on max aggregate keys (#3267)
* fix: error on max aggregate keys

* fix: other err
2026-03-13 07:55:32 -07:00
Gabe Ruttner
8b442db32b fix: otel config loader and trunc query name (#3266)
* fix: otel config loader and trunc query name

* fix: cleanup the span name
2026-03-13 06:20:28 -07:00
Gabe Ruttner
e8c7cfdf19 fix: analytics no set (#3264)
* fix: analytics no set

* fix: add server url to group and identify
2026-03-13 04:25:29 -07:00
Gabe Ruttner
69951ac811 fix: add user id to context on login (#3256)
* fix: add user id to context on login

* feat: expose extra group

* fix: add source ui to context
2026-03-12 14:01:42 -07:00
Gabe Ruttner
732d1a87a6 fix: dont burry analytics properties (#3254)
* fix: dont burry analytics properties

* chore: lint
2026-03-12 13:00:35 -07:00
Gabe Ruttner
6419ad33dc Feat--consistent-analytics-events (#3239)
* chore: log when enqueue errors

* feat: standardize and improve actor model

* feat: track entire surface

* chore: remove heartbeats

* cleanup

* fix: merge

* chore: cleanup and AI

* fix: getter

* chore: feedback

* flush mu

* feat: source attribute

* feat: cli source

* fix: webhook

* feat: add server url
2026-03-12 12:02:36 -07:00
Gabe Ruttner
7748898c59 fix: failure after cancellation (#3243)
* fix: failure after cancellation

* chore: generate

* fix: list multiple concurrency strategies

* fix: lock concerns
2026-03-11 18:11:15 -07:00
matt
b942092ba5 Feat: env var for stream event buffer timeout (#3223)
* feat: env var for stream event buffer timeout

* chore: gen
2026-03-11 11:41:18 -04:00
Mohammed Nafees
ab6cae4420 Test PgBouncer against our code-level partitioning logic (#3178)
* test partition drops with pgbouncer

* dedicated DDLPool to bypass pgbouncer

* fix generate

* add env var

* min env var

* update documentation

* no go mod redundancy
2026-03-10 12:24:07 +01:00
abelanger5
46c4297b32 feat: add callback support for tenant and tenant member updates (#3201)
* feat: add callback support for tenant and tenant member updates

* add callbacks into tenant_invite.go
2026-03-07 17:31:44 -05:00
matt
46b3041eb1 Fix: Go unexported type (#3160)
* fix: internal types

* fix: rm unused helper
2026-03-04 17:40:13 -05:00
matt
6c29e48204 Feat: Dynamic worker label assign (#3137)
* feat: initial wiring work on desired labels

* feat: initial wiring

* chore: gen python

* fix: use the whole desired label thing instead

* fix: more wiring, improve types

* fix: sql type

* fix: len check

* chore: gen python

* fix: initial plural label work

* fix: store the labels properly on the task

* fix: skip cache on override

* fix: bug

* fix: scoping bug whoops

* chore: lint

* fix: send labels back over the api correctly

* feat: python test

* fix: lint

* fix: comment

* fix: override

* fix: namespaces, ugh

* fix: no need for error here

* chore: version

* feat: ruby, go, ts

* feat: versions

* fix: appease the rubocop

* chore: lint

* chore: bundle install

* fix: tests

* chore: lint

* chore: lint more

* fix: ts test

* fix: rb

* chore: gen

* chore: reset gemfile

* chore: reset changelog

* fix: pgroup

* fix: tests, part i

* Revert "chore: reset changelog"

This reverts commit b63bf7d3e5.

* Revert "chore: reset gemfile"

This reverts commit bb848bb6f0.

* fix: go -> golang mapping hack

* fix: go enums

* fix: appease the cop

* fix: namespace

* chore: gen
2026-03-04 11:03:58 -05:00
Gabe Ruttner
c8f762c12e chore: simplify ruby e2e ci scripts (#3152)
* chore: simplify start script

* chore: log

* fix: log paths

* fix: race?

* fix: deadlock?

---------

Co-authored-by: mrkaye97 <mrkaye97@gmail.com>
2026-03-03 15:16:11 -08:00
Mohammed Nafees
e72051877e Enable loadtest with PgBouncer (#3143)
* enable loadtest with pgbouncer

* use default_query_exec_mode=cache_describe for pgbouncer

* increase threshold

* make sure no regression
2026-03-03 15:24:30 +01:00
Julius Park
5e4bb9d151 Add seconds granularity to cron jobs (#3136) 2026-03-02 18:07:15 -05:00
abelanger5
e9eb65d9a8 feat: user callback additional methods (#3057)
* add more opts to create user callback

* add session callbacks

* add more options to authenticate

* add full route info to routes map

* small refactor to reduce deps on session helpers
2026-03-02 16:25:41 -05:00
matt
deee6e213c fix: external ids (#3111) 2026-02-26 12:57:33 -05:00
Mohammed Nafees
ef2c01a499 Add ctx.WasSkipped helper to the Go SDK (#3094)
* introduce ctx.WasSkipped just like Py SDK

* fix lint and example
2026-02-26 17:56:45 +01:00
Mohammed Nafees
fa695fc8ca non blocking ctx.Log with meaningful retries (#3106) 2026-02-25 18:55:17 +01:00
matt
5e672d0514 [Go] Feat: Details Getter (#3105)
* feat: add details getter

* fix: naming

* fix: structs
2026-02-25 12:11:19 -05:00
Mohammed Nafees
f3ec9597a6 Add env vars for max conn lifetime and idle time for pgx (#3096)
* add env vars for max conn lifetime and idele time for pgx

* add doc
2026-02-24 21:54:09 +01:00
Mohammed Nafees
444a335c18 Fix cross-strategy slot contamination in chained concurrency gates (#3089)
* filter properly based on strategy ids

* remove remnants

* add concurency integration test

* more tests
2026-02-24 12:54:04 +01:00
Mohammed Nafees
44069cef89 make sure to use 60 seconds timeout for PutWorkflowVersion (#3085) 2026-02-23 16:20:31 +01:00
matt
df9e86081a Fix: Move event log to a tab on the task run detail (#3067)
* fix: separate tab for activity on run detail

* fix: output payload bug

* fix: couple more uuid bugs

* fix: set var

* fix: add event type check
2026-02-22 19:02:22 -08:00
abelanger5
73ef4747e7 feat: new search bar component (#2909)
* fix: compute payload size correctly for pg_notify

* refactor: pull search bar into its own component

* just use tab for autocomplete

* fix: log line typing

* Refactor Search Bar (#2964)

* Add empty search state

* V1 table layout logviewer

* Add temp hatchet-worker for testing

* Fix log css grid when expanded

* undo search notfound logic, needs API logic

* Rework workflow example

* use correct info color

* better table headers

* Add back ansi formatting

* Allow enter along with tab to traverse chips

* remove tutorial

* Add syntax color to search chips

* styling progress

* styling progress

* constrain width

* Add rel time

* Readd flag conditional

* remove hatchet-worker, feature flag, and cypress test

* remove tenant hook

---------

Co-authored-by: Alexander Belanger <alexander@hatchet.run>

* fix: remove ansi-to-html, review feedback

---------

Co-authored-by: Sebastian Graz <graz@live.se>
2026-02-17 20:47:20 -08:00
Gabe Ruttner
2fdc47a6af feat: multiple slot types (#2927)
* feat: adds support for multiple slot types, primarily motivated by durable slots

---------

Co-authored-by: mrkaye97 <mrkaye97@gmail.com>
2026-02-17 05:43:47 -08:00
Mohammed Nafees
eefbcdc532 Return event ID after successful webhook trigger (#3039)
* return webhook event ID on successful receive

* fix pytest

* err handling for json unmarshal

* if clause
2026-02-16 18:36:51 +01:00
Gabe Ruttner
7875d78057 Feat: Official Ruby SDK (#3004)
* feat: initial ruby sdk

* fix: run listener

* fix: scope

* feat: rest feature clients

* fix: bugs

* fix: concurrent register

* fix: tests and ergonomics

* docs: all of them

* chore: lint

* feat: add RBS

* feat: add GitHub Actions workflow for Ruby SDK with linting, testing, and publishing steps

* chore: lint

* refactor: simplify load path setup for Hatchet REST client and remove symlink creation

* fix: cert path

* fix: test

* fix: blocking

* fix: ensure Hatchet client is only initialized once across examples

* fix: tests

* remove: unused example

* fix: bubble up errors

* test: skip flaky for now

* remove: lifespans

* fix: durable context bugs

* fix: bulk replay

* fix: tests

* cleanup: generate tooling

* fix: integration test

* chore: lint

* release: 0.1.0

* chore: remove python comments

* refactor: remove OpenTelemetry configuration and related unused options

* fix: default no healthcheck

* chore: lockfile

* feat: register as ruby

* chore: lint

* chore: update py/ts apis to include ruby

* chore: docs pass

* chore: lint

* chore: generate

* chore: cleanup

* chore: generate examples

* tests: add e2e tests

* tests: cache examples dependencies

* fix: namespace

* fix: namespace

* fix: namespaces

* chore:lint

* fix: improve cancellation workflow polling logic and add error handling

* revert: py/ts versions
2026-02-15 14:32:15 -08:00
Mohammed Nafees
ff15f00c94 [hotfix] Corrected custom value meter for resource limit (#3021)
* fix cvm deducation

* switch clause

* add FIXME
2026-02-13 21:20:33 +01:00
Jishnu
9e0182ec77 feat: add python and typescript webhook client (#2959)
* feat: add python webhook client

* refactor: python webhook client, webhook tests

* add: ts webhook client, example

* remove unwanted assert

* refactor: webhook update eventkey optional

* fix lint

* bump version

* fix: webhooks.create args, webhook example

* fix: infer auth_type from auth payload python

* fix: infer auth type from payload ts

* remove auth type magic strings
2026-02-13 14:04:08 -05:00
Mohammed Nafees
40a1044b44 New UpdateLimits method for TenantResourceLimit table (#2895)
* new UpdateLimits method to tenant limits

* WIP: clean resource limits repo

* fmt changes and cvm needs to remain

* remove unnecessary metering logic

* updated openapi

* last fixes

* PR comments

* fixes

* default limits

* fix generate test

* fix lint
2026-02-13 18:01:46 +01:00
Mohammed Nafees
22fd98e828 More deprecation messages for older Go SDKs (#3006)
* add more deprecation messages to older Go SDKs

* more comments
2026-02-12 15:40:47 +01:00
Mohammed Nafees
64a85498f5 Truncate to first 10k characters of log line in Go SDK (#2998)
* truncate to 10k chars for Go SDK log

* use runes for character length comparison
2026-02-11 23:32:45 +01:00
abelanger5
851fbaf214 feat: reduced cold starts for new workers and queues (#2969)
* feat: reduced cold starts for new workers and queues

* address changes from pr review

* fix: data race

* set logs to debug on the harness

* debug for queue level as well

* debug lines for queuer

* fix: add queue notifier to v0 workflow registration

* revert: lease manager interval

* revert log level changes

* add more debug, revert reverts

* more debug

* add debug to lease manager

* do it, try it

* fix: call upsertQueue as part of workflow version put

* change log level to error again

* pr review changes
2026-02-11 13:12:10 -08:00
Mohammed Nafees
4fd7b94751 Add support for Svix webhooks (#2996)
* support Svix webhooks

* add migration

* use http status codes

* comment fix

* custom svix verification logic

* copilot comments

* copilot comments
2026-02-11 16:41:36 +01:00
Gabe Ruttner
6aff6b6f1f feat: log on delayed heartbeat (#2994)
* feat: log on delayed heartbeat

* don't log on first heartbeat

* fix: 1s
2026-02-11 06:33:51 -08:00