189 Commits

Author SHA1 Message Date
matt
3a94d06bc6 Feat: Add oldest queued + running jobs to task stats (#2638)
* feat: add oldest item in task stat

* feat: extend query

* feat: api wiring

* fix: where we compute this

* chore: gen sdk

* chore: changelog, version
2025-12-11 09:54:12 -05:00
matt
cebf3a6fa7 [Python] Fix: Raise on un-serializable task output (#2562)
* fix: raise on illegal output

* chore: version, changelog
2025-12-08 09:49:20 -05:00
Jishnu
7ab13d3b46 feat: add logs client for go sdk, logs client go example (#2550)
* feat: add logs client for go sdk, logs client go example

* add: comment-based markup for go sdk log example

---------

Co-authored-by: matt <mrkaye97@gmail.com>
2025-12-07 16:38:01 -05:00
matt
6efdba02e8 [Python]: Hotfix: Pydantic serialization error from failing to encode bytes (#2602)
* hotfix: handle pydantic serialization errors

* chore: changelog

* fix(python-sdk): Fix RateLimit validation incorrectly rejects valid CEL expression strings (#2536)

* fix(python-sdk): Fix RateLimit validation incorrectly rejects valid CEL expression strings

* fix(python-sdk): Update RateLimit validation to use union type for limit instead of tuple syntax

* chore(python-sdk): update changelog and bump the patch version to 1.21.4

---------

Co-authored-by: mrkaye97 <mrkaye97@gmail.com>

---------

Co-authored-by: miyelani-inc <139712015+miyelani-inc@users.noreply.github.com>
2025-12-04 14:22:49 -05:00
Sid Premkumar
709dd89a18 Add gzip compression (#2539)
* Add gzip compression init

* revert

* Feat: Initial cross-domain identify setup (#2533)

* feat: initial setup

* fix: factor out

* chore: lint

* fix: xss vuln

* feat: set up properly

* fix: lint

* fix: key

* fix: keys, cleanup

* Fix: use sessionStorage instead of localStorage (#2541)

* chore(deps): bump golang.org/x/crypto from 0.44.0 to 0.45.0 (#2545)

Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.44.0 to 0.45.0.
- [Commits](https://github.com/golang/crypto/compare/v0.44.0...v0.45.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-version: 0.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump google/osv-scanner-action/.github/workflows/osv-scanner-reusable-pr.yml (#2547)

Bumps [google/osv-scanner-action/.github/workflows/osv-scanner-reusable-pr.yml](https://github.com/google/osv-scanner-action) from 2.2.4 to 2.3.0.
- [Release notes](https://github.com/google/osv-scanner-action/releases)
- [Commits](https://github.com/google/osv-scanner-action/compare/v2.2.4...v2.3.0)

---
updated-dependencies:
- dependency-name: google/osv-scanner-action/.github/workflows/osv-scanner-reusable-pr.yml
  dependency-version: 2.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [Go SDK] Resubscribe and get a new listener stream when gRPC connections fail (#2544)

* fix listener cache issue to resubscribe when erroring out

* worker retry message clarification (#2543)

* add another retry layer and add comments

* fix loop logic

* make listener channel retry

* Compression test utils, and add log to indicate its enabled

* clean + fix

* more fallbacks

* common pgxpool afterconnect method (#2553)

* remove

* lint

* lint

* add cpu monitor during test

* fix background monitor and lint

* Make envvar to disable compression

* cleanup monitoring

* PR Feedback

* Update paths in compression tests + bump package versions

* path issue on test script

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: matt <mrkaye97@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mohammed Nafees <hello@mnafees.me>
2025-11-26 17:14:38 -05:00
matt
727a8fe470 Fix: OLAP Task Event Dual Write Bug (#2572)
* fix: task events bug

* fix: fallback bug

* fix: simplfiy test
2025-11-25 17:24:56 -05:00
matt
bef8e916d2 fix: worker fixture (#2527) 2025-11-14 11:18:20 -05:00
Gabe Ruttner
4f3fb99d21 trigger retrier (#2525) 2025-11-14 07:51:57 -08:00
matt
58c0f0c9a2 [Python]: Add span kind to OTel spans (#2521)
* feat: add span kinds

* chore: version, changelog

* feat: root span naming convention

* fix: naming
2025-11-14 10:30:01 -05:00
Mohammed Nafees
f97171f245 [Go SDK] Case on worker labels for durable tasks (#2511)
* fix durable task worker labels

* fix assignment
2025-11-12 18:32:58 +01:00
matt
f14e999a76 Fix: TS & Py versions for log pagination (#2505)
* chore: gen ts

* chore: python

* fix: change default

* chore: regen docs
2025-11-08 10:46:44 +01:00
Jishnu
e82915b626 feat: add pagination support for V1LogLineList (#2354)
* feat: pagination for v1 loglines list

* add: sqlc v1 query for loglines count

* add: generated rest-client changes for python sdk

* refactor: frontend logs UI with pagination elements

* add: ts-sdk logline pagination, py logline list pagination docstring

* feat: add since queryparam for v1logline, add infinitescroll pagination on FE

* add custom polling for logs refresh on FE, remove inefficient default refresh logic

* add since queryparam of v1logline to all rest-clients

* refactor: remove offset query param, add until query param(v1logline)

* remove pagination from v1loglinelist

* fix: inconsistent scroll behaviour, add pagination response schema on v1loglist

* add: infinite scroll behavior for smooth log scrolling; prefetch next page logs in advance

* fix: pagination scroll, when task is running, remove stale pagination data when logs tab inactive

* chore: lint

* chore: lint

---------

Co-authored-by: mrkaye97 <mrkaye97@gmail.com>
2025-11-07 17:38:29 +01:00
matt
25776624ea Docs: Dataclasses (#2488)
* feat: dataclass docs

* fix: add min version
2025-11-06 16:04:39 +01:00
Mohammed Nafees
861e205171 Fix Go SDK cron inputs (#2481)
* cron input in Go SDK

* add example
2025-11-02 18:00:23 +01:00
Jishnu
e1f70ccb13 feat: add health and metrics api on typescript sdk worker (#2457)
* feat: add health and metrics api on typescript sdk worker

add: prom-client to fetch metrics data
add: track health status of worker across different states

* refactor: keep prom-client as optional dependency

* refactor: remove async import of prom-client

* chore: update package version for ts sdk

* fix: lint

* fix: lint, const enum

---------

Co-authored-by: mrkaye97 <mrkaye97@gmail.com>
2025-11-01 20:48:27 +01:00
matt
4518ff771c [Python] Feat: Dataclass Support (#2476)
* fix: prevent lifespan error from hanging worker

* fix: handle cleanup

* feat: dataclass outputs

* feat: dataclasses

* feat: incremental dataclass work

* feat: dataclass tests

* fix: lint

* fix: register wf

* fix: ugh

* chore: changelog

* fix: validation issue

* fix: none check

* fix: lint

* fix: error type
2025-11-01 00:27:28 +01:00
Mohammed Nafees
1560a41751 Apply namespace to event triggers in the TypeScript SDK (#2434)
* TS SDK bugfix for event trigger NS prefix

* fix lint

* update pnpm
2025-10-23 18:43:51 +02:00
Mohammed Nafees
409b611d89 upgrade grpcio libs for python sdk (#2436) 2025-10-23 17:48:12 +02:00
matt
c6e154fd03 Feat: OLAP Payloads (#2410)
* feat: olap payloads table

* feat: olap queue messages for payload puts

* feat: wire up writes on task write

* driveby: add + ignore psql-connect

* fix: down migration

* fix: use external id for pk

* fix: insert query

* fix: more external ids

* fix: bit more cleanup

* feat: dags

* fix: the rest of the refs

* fix: placeholder uuid

* fix: write external ids

* feat: wire up messages over the queue

* fix: panic

* Revert "fix: panic"

This reverts commit c0adccf2ea.

* Revert "feat: wire up messages over the queue"

This reverts commit 36f425f3c1.

* fix: rm unused method

* fix: rm more

* fix: rm cruft

* feat: wire up failures

* feat: start wiring up completed events

* fix: more wiring

* fix: finish wiring up completed event payloads

* fix: lint

* feat: start wiring up external ids in the core

* feat: olap pub

* fix: add returning

* fix: wiring

* debug: log lines for pubs

* fix: external id writes

* Revert "debug: log lines for pubs"

This reverts commit fe430840bd.

* fix: rm sample

* debug: rm pub buffer param

* Revert "debug: rm pub buffer param"

This reverts commit b42a5cacbb.

* debug: stuck queries

* debug: more logs

* debug: yet more logs

* fix: rename BulkRetrieve -> Retrieve

* chore: lint

* fix: naming

* fix: conn leak in putpayloads

* fix: revert debug

* Revert "debug: more logs"

This reverts commit 95da7de64f.

* Revert "debug: stuck queries"

This reverts commit 8fda64adc4.

* feat: improve getters, olap getter

* fix: key type

* feat: first pass at pulling olap payloads from the payload store

* fix: start fixing bugs

* fix: start reworking `includePayloads` param

* fix: include payloads wiring

* feat: analyze for payloads

* fix: simplify writes more + write event payloads

* feat: read out event payloads

* feat: env vars for dual writes

* refactor: clean up task prop drilling a bit

* feat: add include payloads params to python for tests

* fix: tx commit

* fix: dual writes

* fix: not null constraint

* fix: one more

* debug: logging

* fix: more debugging, tweak function sig

* fix: function sig

* fix: refs

* debug: more logging

* debug: more logging

* debug: fix condition

* debug: overwrite properly

* fix: revert debug

* fix: rm more drilling

* fix: comments

* fix: partitioning jobs

* chore: ver

* fix: bug, docs

* hack: dummy id and inserted at for payload offloads

* fix: bug

* fix: no need to handle offloads for task event data

* hack: jitter + current ts

* fix: short circuit

* fix: offload payloads in a tx

* fix: uncomment sampling

* fix: don't offload if external store is disabled

* chore: gen sqlc

* fix: migration

* fix: start reworking types

* fix: couple more

* fix: rm unused code

* fix: drill includePayloads down again

* fix: silence annoying error in some cases

* fix: always store payloads

* debug: use workflow run id for input

* fix: improve logging

* debug: logging on retrieve

* debug: task input

* fix: use correct field

* debug: write even null payloads to limit errors

* debug: hide error lines

* fix: quieting more errors

* fix: duplicate example names, remove print lines

* debug: add logging for olap event writes

* hack: immediate event offloads and cutovers

* fix: rm log line

* fix: import

* fix: short circuit events

* fix: duped names
2025-10-20 09:09:49 -04:00
matt
5b5adcb8ed Feat: Scheduled run detail view, bulk cancel / replay with pagination helper (#2416)
* feat: endpoint for listing external ids

* feat: wire up external id list

* chore: regen api

* feat: py sdk wrapper

* fix: since type

* fix: log

* fix: improve defaults for statuses

* feat: docs

* feat: docs

* fix: rm extra file

* feat: add id column to scheduled runs

* feat: side panel for scheduled runs

* fix: side panel header pinned

* fix: border + padding

* chore: gen

* chore: lint

* chore: changelog, version

* fix: spacing of cols

* fix: empty webhook resource limit

* fix: tsc

* fix: sort organizations and tenants alphabetically
2025-10-15 11:36:45 -04:00
Mohammed Nafees
8a7505589e RunId for Run() (#2413) 2025-10-13 18:23:52 +02:00
Mohammed Nafees
ddfea53d88 Fix type for hatchet.WithRunMetadata (#2406)
* fix type for hatchet.WithRunMetadata

* edit documentation
2025-10-13 14:26:18 +02:00
matt
2a08cbf77b [Python]: Remove refs to *_group_key_* (#2379)
* chore: remove all group key refs

* fix: rm engine version refs

* chore: version + changelog
2025-10-03 12:52:05 -04:00
matt
ab9a1772b8 [TS]: Fix durable task on failure registration, fix dependabot alert (#2361)
* chore: update pino to fix fast-redact dependabot issue

* fix: register on failure task on durable worker too

* chore: bump version
2025-09-30 11:50:59 -04:00
Mohammed Nafees
a3e3cf6372 [Go SDK] Fix type of WithWorkflows (#2359)
* fix type for WithWorkflows

* add comment
2025-09-30 00:03:18 +05:30
matt
35b97be825 [Python]: Pytest improvements (#2348)
* feat: try running in parallel in CI

* fix: simplify

* feat: add task

* fix: increase retry delay
2025-09-26 11:47:34 -04:00
matt
45b71ff058 [Python]: Removes the v0 SDK (#2330)
* fix: remove the v0 code!

* chore: changelog

* fix: rm unused deps

* chore: changelog

* fix: add back urllib3 direct dep
2025-09-24 10:38:06 -04:00
Mohammed Nafees
cf21550502 Update docs to use Go SDK v1 (#2313)
* SDK fixes

* go docs generate

* simple changes

* more docs changes

* bulk docs done

* cancellation example

* concurrency example

* conditional example

* cron example

* dag example

* durable event example

* durable sleep example

* on failure example

* priority example

* rate limit example

* retries example

* run-no-wait example

* on event example

* run with results example

* running your task example

* scheduled runs example

* streaming example

* workers example

* timeouts example

* sticky example

* docker go

* fix lint and build

* update migration doc

* fix lint

* fix some docs

* fix docker mdx

* remove local lint

* go stub example

* make changes

* child spawning

* migration code examples

* fix child workflow example
2025-09-23 19:19:27 +02:00
matt
8b8ded655d Fix: Update payload properly on replay (#2317)
* fix: overwrite payloads when task is in an initially e.g. cancelled state

* fix: add distinct to payload writes to limit conflict resolution

* feat: first pass at test

* fix: tenant in warning

* fix: lint, more assertions

* fix: bug

* fix: my pet peeve
2025-09-18 20:42:39 -04:00
matt
3ebf76b638 Fix: Event filtering edge case (#2311)
* fix: bugs in python tests + extend them to assert more

* fix: bug

* chore: lint

* fix: typo

* fix: longer timeout

* debug: more iterations

* debug: try fixing test again

* fix: allocate memory initially
2025-09-18 09:48:01 -04:00
Mohammed Nafees
b521521985 Bump pnpm version to 10.16.1 to support minimumReleaseAge (#2308)
* bump pnpm version to support minimumReleaseAge

* use pnpm only in TS SDK scripts
2025-09-17 19:04:59 +02:00
Mohammed Nafees
6bd7d0ec4a set pnpm minimumReleaseAge to 1 day (#2306) 2025-09-17 14:50:38 +02:00
dependabot[bot]
ba5423d89a chore(deps): bump axios from 1.11.0 to 1.12.0 in /sdks/typescript (#2305)
Bumps [axios](https://github.com/axios/axios) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.11.0...v1.12.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.12.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-16 19:06:10 +00:00
Mohammed Nafees
c1ebeb518a Fix GetDetails in Runs feature client of Go SDK v1 (#2297)
* fix GetDetails underlying API call

* use Get instead
2025-09-16 12:52:31 -04:00
Mohammed Nafees
651dee625e fix split logic for taskid and signalKey in DurableEventGrpcPooledListener (#2303) 2025-09-16 18:43:47 +02:00
Mohammed Nafees
47a065df83 Add panic handler to Go SDK (#2293) 2025-09-12 19:49:51 +02:00
Gabe Ruttner
9692d0d2f3 feat(ruby): initial commit (#2086)
* initial commit

* init readme

* add gem-release

* tests

* lock file

* init examples

* bundle name

* feat: config

* example

* wip

* init api

* fix patch

* fix patch

* wip events feature

* runs client

* complete feature clients

* modern style

* cleanup

* rm generated

* since

* fix examples

* tests

* alpha

* rest

* rm rest

* fix: pre-commit

---------

Co-authored-by: mrkaye97 <mrkaye97@gmail.com>
2025-09-11 12:52:29 -04:00
Gabe Ruttner
9459dad14d Feat improve auth error handling (#1893)
* common errors

* rate limits

* add IP extractor to api server

* use echo rate limit middleware func

* use rate limit for webhooks as well

---------

Co-authored-by: Mohammed Nafees <hello@mnafees.me>
2025-09-11 18:30:07 +02:00
matt
93454d6e75 Fix: More doc snippets (#2267)
* fix: batch i

* fix: batch ii

* fix: batch iii

* fix: batch iv

* fix: batch v

* fix: guide

* fix: batch vi

* fix: batch vii

* fix: dag docs

* fix: separate dag tasks
2025-09-09 15:37:20 -04:00
Mohammed Nafees
9b0ec2618e Go SDK v1 feature client changes (#2160)
* feature client changes

* remove code duplication

* func name should make sense

* add simple compile gh workflow
2025-09-08 17:10:24 +02:00
matt
4a50e454a6 Fix: Python docs examples (#2255)
* feat: client example

* fix: batch i

* fix: batch ii

* fix: batch iii

* fix: batch iv
2025-09-05 15:08:23 -04:00
Mohammed Nafees
8c85f47cd8 Fix failing Go SDK v1 test (#2254)
* fix failing tests

* semantics

* run tests on go sdk changes
2025-09-05 16:00:44 +02:00
Mohammed Nafees
cd47702495 panic when json unmarshal fails (#2253) 2025-09-05 13:25:18 +02:00
Mohammed Nafees
ef011bfc23 taskoutput takes a string for ease of use (#2237) 2025-09-02 19:06:38 +02:00
Mohammed Nafees
7312b0aed4 Add Into() to extract task result and StandaloneTasks (#2185)
* use mapstructure for input type conversation

* workflowresult into method

* fix dep

* TaskResult and Into()

* support standalone task

* more fixes
2025-08-29 13:45:49 +02:00
Mohammed Nafees
e2e00245ba add test for type conversion (#2220) 2025-08-28 21:25:50 +02:00
abelanger5
669ed0a304 try to convert via json (#2198) 2025-08-27 23:13:54 +02:00
matt
d97f825fe9 [Python]: Fix install issue (#2209)
* fix: naming conflict

* feat: add test install in ci

* chore: lock

* debug: try reverting to see if problem shows up

* Revert "debug: try reverting to see if problem shows up"

This reverts commit 3513b65f33.
2025-08-26 17:10:39 -04:00
matt
cf0aa21623 [Python]: Enable force kill on sigterm for hot reloading, stub workflow + task (#2197)
* feat: exit forcefully

* fix: handler, ver

* chore: lint

* feat: stubs client

* fix: more overloads

* chore: version

* chore: changelog

* feat: example of stubs

* feat: comment

* fix: add dedenting

* fix: snippet for running external tasks
2025-08-26 15:22:46 -04:00
Gabe Ruttner
0a0da076e9 Fix ts: hangup abort controller (#2187)
* fix: abort controller

* task fn optional, linting

* release 1.9.5

* lint
2025-08-22 09:34:27 -07:00