Commit Graph

95 Commits

Author SHA1 Message Date
Matt Kaye
1db5cb5ee6 [Python]: Fix: Adding Observability + Failure Handling (#1701)
* feat: simple thread pool monitoring job

* feat: sdk-side workflow pause

* Revert "feat: sdk-side workflow pause"

This reverts commit 83b4a63c20.

* feat: set stop signal to stop accepting new work

* proposal: no-op healthcheck workflow

* Revert "proposal: no-op healthcheck workflow"

This reverts commit f651a52137.

* fix: rm removed concurrency strats

* chore: ver

* fix: rm heartbeat wf

* fix: rm zombie keys

* fix: hint on invalid token

* fix: flaky test

* fix: rm buggy / dead code
2025-05-13 14:11:36 -04:00
Matt Kaye
37482a354b Feat: Events in the OLAP Repo (#1707)
* Revert "Revert "Feat: Events in the OLAP Repo (#1633)" (#1706)"

This reverts commit bf29269a27.

* Feat: Events Frontend (#1678)

* feat: add events tables

* fix: tweak PK

* feat: migration

* feat: gen models

* fix: add external id col + index

* fix: uuid pk

* fix: types

* chore: gen

* feat: add index

* Feat: Write events into OLAP tables (#1634)

* feat: query for event creation

* feat: olap impl

* feat: wire up the olap event write

* feat: goroutine?

* feat: start wiring up inserts to triggers

* fix: no `RETURNING`

* fix: hack

* fix: inner join

* feat: attempt 2

* fix: return errors

* chore: lint

* fix: diff

* feat: add new partitions

* fix: eof

* fix: write external ids into table

* chore: gen

* fix: wiring

* fix: event deduping

* fix: insert in bulk

* fix: bug

* refactor: return type of trigger

* fix: unnest ids

* fix: unnest tenant ids

* fix: run ids in bulk insert

* feat: two bulk inserts, one tx

* fix: cruft

* fix: bug

* Update pkg/repository/v1/olap.go

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

* fix: rework to avoid n^2 loop

* fix: transaction timeout

* fix: lint

* fix: use error

* fix: rm penultimate version

* fix: rm penultimate test part ii

* Feat: CEL-based filtering of events (#1676)

* feat: add optional expression to workflow trigger event ref

* feat: proto field for expression

* feat: write and parse the expression

* feat: wire up through put workflow ver request

* feat: query

* fix: naming

* fix: cleanup

* fix: rebase

* Update pkg/repository/v1/trigger.go

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

* fix: skip workflow on cel eval failure

* fix: zero value

* fix: cel evaluator

* fix: usage

* fix: naming + type

* fix: rm event filter from v0 defn

* feat: tests + fix typing

* fix: usage

* fix: construct input

* feat: always write events

---------

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

---------

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

* fix: select existing partitions

* feat: add prio to push event request

* feat: priority from pushed events

* fix: missed a spot

* fix: write events even if they're not tied to any workflows

* fix: revert cel event filtering

* fix: couple more

* fix: simplify

* feat: initial API work

* chore: gen ts

* feat: fe skeleton

* feat: wiring up skeleton data

* feat: hook

* fix: bugs

* fix: lint on gen

* fix: couple more

* feat: wire up counts

* feat: initial events cols + styling

* feat: layout

* feat: styling

* fix: cleanup

* feat: use external ids on the FE

* fix: separate openapi spec for new events route

* fix: required param

* fix: update queries and api

* feat: event detail

* fix: page

* fix: rebase

* tweak: table

* feat: add events page to sidebar

* feat: modify queries to allow fetching by triggering event

* feat: add triggering event id to api

* chore: lint

* feat: wire up events api

* fix: rm log

* fix: gen

* feat: wire up status counts

* fix: rm time series

* fix: rm state

* fix: lint

* fix: eof

* chore: lint

* feat: wire up filters

* fix: lint

* chore: api gen

* feat: add events tables

* fix: tweak PK

* feat: migration

* feat: gen models

* fix: add external id col + index

* fix: uuid pk

* fix: types

* chore: gen

* feat: add index

* Feat: Write events into OLAP tables (#1634)

* feat: query for event creation

* feat: olap impl

* feat: wire up the olap event write

* feat: goroutine?

* feat: start wiring up inserts to triggers

* fix: no `RETURNING`

* fix: hack

* fix: inner join

* feat: attempt 2

* fix: return errors

* chore: lint

* fix: diff

* feat: add new partitions

* fix: eof

* fix: write external ids into table

* chore: gen

* fix: wiring

* fix: event deduping

* fix: insert in bulk

* fix: bug

* refactor: return type of trigger

* fix: unnest ids

* fix: unnest tenant ids

* fix: run ids in bulk insert

* feat: two bulk inserts, one tx

* fix: cruft

* fix: bug

* Update pkg/repository/v1/olap.go

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

* fix: rework to avoid n^2 loop

* fix: transaction timeout

* fix: lint

* fix: use error

* fix: rm penultimate version

* fix: rm penultimate test part ii

* Feat: CEL-based filtering of events (#1676)

* feat: add optional expression to workflow trigger event ref

* feat: proto field for expression

* feat: write and parse the expression

* feat: wire up through put workflow ver request

* feat: query

* fix: naming

* fix: cleanup

* fix: rebase

* Update pkg/repository/v1/trigger.go

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

* fix: skip workflow on cel eval failure

* fix: zero value

* fix: cel evaluator

* fix: usage

* fix: naming + type

* fix: rm event filter from v0 defn

* feat: tests + fix typing

* fix: usage

* fix: construct input

* feat: always write events

---------

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

---------

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

* fix: select existing partitions

* feat: add prio to push event request

* feat: priority from pushed events

* fix: missed a spot

* fix: write events even if they're not tied to any workflows

* fix: revert cel event filtering

* fix: couple more

* fix: simplify

* fix: gen api

* fix: gen

* fix: more merge issues

* chore: gen

* fix: lockfile

* fix: merge issues

* chore: gen again

* fix: rm unused fields from openapi spec

---------

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

* fix: migration ver

* fix: insert trigger, event types

* fix: bunch o refs

* fix: migration

* fix: queries

* fix: finish wiring up inserts

* fix: misc bugs

* fix: fe filtering

* chore: lint

* fix: formatting, gen

* fix: current_date

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-13 14:11:12 -04:00
Matt Kaye
db246df476 Hotfix: ValueError for skipped task (#1689)
* fix: bug

* chore: ver

* fix: bump timeout
2025-05-07 07:50:02 -04:00
Matt Kaye
94d06a643c [Python] Fix: Task defaults, Patching fixes, Datetime conversions (#1667)
* feat: start wiring up defaults

* feat: add test coverage

* fix: test docs

* feat: expand tests

* fix: rm validators for now

* chore: minor version

* fix: skip prio tests in ci for now

* chore: docs

* debug: attempt to fix prio test by running with a single slot and no concurrency

* fix: python script to apply patches

* chore; gen

* feat: atomic patches

* fix: rm sed-based patches

* fix: use current tz

* fix: ordering
2025-05-06 17:31:36 -04:00
Gabe Ruttner
8e80faf2d6 Fe overhaul docs (#1640)
* api changes

* doc changes

* move docs

* generated

* generate

* pkg

* backmerge main

* revert to main

* revert main

* race?

* remove go tests
2025-04-30 14:10:09 -07:00
Matt Kaye
799b5d0dcf Feat: Add cron filters to the API (#1641)
* feat: add params to api

* feat: wire up API to accept params

* fix: queries, gen python

* chore: python version

* feat: gen ts

* chore: ver

* chore: lint

* [Python]: Feat: Workflow runs API wrapper, slightly improved typing, cruft (#1636)

* feat: add runs list wrapper around API

* chore: version

* feat: add to standalone

* chore: docs

* fix: clean up workflow registration

* fix: add additional opts to trigger opts

* fix: warning

* fix: defaults

* fix: docs

* docs: fix cron docs

* fix: gen
2025-04-30 16:41:33 -04:00
Matt Kaye
bea5d94215 Fix: On-Success Bug (#1626)
* fix: on success task

* chore: version

* fix: error message

* fix: docstring

* fix: docs
2025-04-26 10:06:13 -04:00
Matt Kaye
1eeb8e915d Fix: Queue blocking on many concurrency keys + failures (#1622)
* fix: move around case ordering

* feat: move worker fixture around

* fix: clean up fixtures

* feat: expand test, try to repro

* debug: more minimal repro

* fix: bug bashing

* fix: factor out concurrency queries into overwrite

* feat: improve test

* fix: improve test

* fix: lint

* feat: migration for trigger

* Fix: Retry + Cancel Bugs (#1620)

* fix: send original retry count to cancel

* fix: key threads, contexts, and tasks on retry count

* fix: store the key on the action and use it everywhere

* refactor: signature consistency

* fix: instrumentor types

* chore: version

* feat: comment

* fix: thank you mypy

* fix: simplify callback

* fix: ts implementation

* chore: lint

* fix: rework how retries are passed

* Fix: Add Retries to Log Pushes (#1594)

* fix: retry log pushes

* chore: version
2025-04-25 21:49:30 -04:00
Gabe Ruttner
5655f23e07 blog: mergent migration (#1611)
* universal install

* initial migration guide

* fakefake tokens

* fake secret

* fixes

* lint

* lint

* lint

* tidy

* bump go 1.23 -> 1.24

* fix: whitespace lint

* bump golangci-lint version

* try to set up go before pre commit runs

* lint

* names

* lint

* fix: session store

* fix links

---------

Co-authored-by: Alexander Belanger <alexander@hatchet.run>
2025-04-24 12:09:09 -07:00
Matt Kaye
c8f56e0872 Feat: Python SDK Documentation, Part I (#1567)
* feat: initial mkdocs setup

* chore: lock

* fix: config + start getting docs working

* fix: remove lots more redundant :type docs, update config more

* feat: split up clients

* feat: add pydoclint

* fix: rm defaults from docstrings

* fix: pydoclint errors

* feat: run pydoclint in ci

* fix: lint on 3.13

* debug: try explicit config path

* fix: ignore venv

* feat: index, styling

* fix: rm footer

* fix: more style tweaks

* feat: generated docs

* fix: refactor a bit

* fix: regen

* Revert "fix: regen"

This reverts commit 7f66adc77840ad96d0eafe55c8dd467f71eb50fb.

* feat: improve prompting

* feat: add docs, modify theme config to enable toc for docs

* fix: lint

* fix: lint

* feat: regenerate

* feat: bs4 for html parsing

* feat: preview correctly

* fix: exclude site subdir from all the linters

* refactor: break up script into components

* feat: remove a bunch more stuff from the html

* feat: prettier, enable toc

* fix: enable tocs in more places + sort properly

* fix: code blocks, ordering

* fix: ordering

* feat: finish up feature clients

* fix: rm unused deps

* fix: routing + property tags + sidebar

* fix: hatchet client + formatting

* fix: allow selecting single set of files

* fix: lint

* rm: cruft

* fix: naming

* fix: runs client attrs

* fix: rm cruft page

* feat: internal linking + top level description

* [Python]: Fixing some more issues (#1573)

* fix: pass priority through from the task

* fix: improve eof handling slightly

* chore: version

* fix: improve eof handling

* fix: send prio from durable

* fix: naming

* cleanup: use a variable

* chore: version

* feat: comment explaining page depth thing

* chore: bump ver

* feat: standalone docs

* fix: prompting + heading levels
2025-04-18 15:34:07 -04:00
Matt Kaye
8de5cea480 Fix: Duration conversion to Go duration strings (#1578)
* fix: bug in timeouts

* chore: ver

* fix: `total_seconds`

* fix: linter
2025-04-18 14:18:56 -04:00
Matt Kaye
ee0f6ad97d Debug: Priority Tests (#1548)
* debug: prio tests

* debug: try running against staging

* Revert "debug: try running against staging"

This reverts commit de7fcc922b731f2c10497eabd746f90971cdfa5b.

* fix: turn down concurrency run number
2025-04-17 13:55:40 -04:00
abelanger5
ef6668a8c3 fix: go signature and docs (#1561)
* fix: go signature and docs

* Update examples/v1/workflows/concurrency-rr.go

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

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-04-15 17:31:48 -04:00
Matt Kaye
0823ae3316 Hatchet Python Blog Post (#1526)
* feat: initial pass at first parts of blog post

* feat: initial mkdocs setup

* feat: first pass at embedding mkdocs

* fix: config

* debug: paths

* fix: unwind docs hack

* feat: start working on mkdocs theme

* fix: paths

* feat: wrap up post

* fix: proof

* fix: doc links

* fix: rm docs

* fix: lint

* fix: lint

* fix: typos + tweak

* fix: tweaks

* fix: typo

* fix: cleanup
2025-04-15 17:21:31 -04:00
Matt Kaye
3ee5a1ef88 Hotfix: Handle EOF Properly (#1557)
* fix: handle EOF properly

* chore: version

* fix: debug logs

* fix: rm eof type
2025-04-15 13:53:13 -04:00
abelanger5
1dcb50c170 hotfix: priority on schedule workflow (#1556)
* hotfix: priority on schedule workflow

* fix: build
2025-04-15 13:10:40 -04:00
abelanger5
c6abd6b9d2 feat: multiple workflow concurrency keys (#1511)
* feat: multiple workflow concurrency keys

* [Python]: Allow multiple workflow-level concurrency keys (#1512)

* chore: generate

* feat: multi concurrency

* chore: version

* feat: example + test

* fix: expand tests

* Feat  ts multiple wf concurrency (#1522)

* feat: multiple concurrency

* release: 1.2.0

* fix: merge

* fix: concurrency defn

* fix: ts multiple concurrency backwards compat (#1531)

* fix

* gen

* chore: lint

---------

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

---------

Co-authored-by: Gabe Ruttner <gabriel.ruttner@gmail.com>

* chore: ver

* chore: gen

* chore: versions

* fix: manually rename migration

* fix: patch ver

---------

Co-authored-by: mrkaye97 <mrkaye97@gmail.com>
Co-authored-by: Gabe Ruttner <gabriel.ruttner@gmail.com>
2025-04-14 17:29:17 -04:00
Matt Kaye
80137736af Feat: Priority (#1513)
* feat: initial work wiring up priorities

* fix: add default to default prio in the db

* feat: wire priority through api on wf creation

* feat: extend python test

* feat: priority for scheduled workflows

* feat: wire priority through python api

* feat: more wiring priority through the api

* feat: I think it works?

* feat: e2e test for priority

* it works!

* feat: expand tests for default priorities

* feat: e2e scheduling test

* fix: skip broken test for now

* fix: lint

* feat: add priority columns to cron and schedule ref  tables

* feat: update inserts to include prio

* feat: wire up more apis

* feat: more wiring

* feat: wire up more rest api fields

* chore: cruft

* fix: more wiring

* fix: lint

* chore: gen + wire up priorities

* fix: retries

* fix: try changing fixture scope

* chore: bump version again

* feat: send priority with action payload

* fix: generate script

* Feat  priority ts (#1518)

* feat: initial work wiring up priorities

* fix: add default to default prio in the db

* feat: wire priority through api on wf creation

* feat: extend python test

* feat: priority for scheduled workflows

* feat: wire priority through python api

* feat: more wiring priority through the api

* feat: I think it works?

* feat: e2e test for priority

* it works!

* feat: expand tests for default priorities

* feat: e2e scheduling test

* chore: minor version for priority

* fix: skip broken test for now

* fix: lint

* feat: add priority columns to cron and schedule ref  tables

* feat: update inserts to include prio

* feat: wire up more apis

* feat: more wiring

* feat: wire up more rest api fields

* chore: cruft

* fix: more wiring

* fix: lint

* chore: gen + wire up priorities

* fix: increase timeout

* fix: retries

* fix: try changing fixture scope

* chore: generate

* fix: set schedule priority

* feat: priority

* fix: move priority to wf

* release: 1.2.0

* rm log

* fix: import

* fix: add priority to step

---------

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

* fix: add dummy runs to priority test to prevent race conditions

* fix: non-breaking field

* fix: gen

* feat: initial pass at docs

* feat: priority in go sdk

* feat: initial work on go example

* fix: doc examples

* fix: proofread

* chore: version

* feat: go sdk

* fix: lint

* fix: declarations and add back RunAsChild

* fix: child workflows

* fix: namespace

* fix: faster child workflows

* fix: sticky

* add back run as child

---------

Co-authored-by: Gabe Ruttner <gabriel.ruttner@gmail.com>
Co-authored-by: Alexander Belanger <alexander@hatchet.run>
2025-04-14 16:22:00 -04:00
Matt Kaye
eee938e326 Fix: Unique readable data key errors (#1546)
* feat: export readable data key + dedupe better

* chore: ver
2025-04-14 14:45:30 -04:00
Matt Kaye
90805ca763 Feat: Lifespans! (#1541)
* feat: implement lifespans

* feat: add psycopg test dep

* feat: lifespan script

* feat: examples and tests

* drive-by: add license

* drive-by: throw errors for sanity checks

* feat: docs

* feat: sync and async

* fix: docs

* fix: lint

* fix: small tweaks

* fix: rm unused

* fix: typed example

* fix: print
2025-04-14 08:56:39 -04:00
Matt Kaye
e4e57e7951 [Python]: Refactor: Remove validator registry (#1528)
* feat: remove validator registry!

* chore: version

* refactor: rename `WorkflowValidator` -> `TaskIOValidator`

* fix: rm unnecessary variable
2025-04-10 17:45:35 -04:00
Matt Kaye
7781200123 Hotfix: Pydantic validation of actionId (#1525)
* fix: pydantic validation of action

* chore: version
2025-04-10 12:25:39 -04:00
Matt Kaye
993817b049 [Python] Single listener base class + bug fixes + refactors (#1470)
* fix: register durable steps and workflows separately

* chore: initial copy of pooled listener

* feat: initial generic impl

* feat: use pooled listener for wf run listener

* refactor: move listeners to subdir

* feat: refactor durable event listener

* fix: bug

* feat: share single pooled workflow listener and event listener everywhere

* cruft: rm hatchet fixture

* fix: rebase issue

* feat: remove asyncio api client in favor of sync one

* chore: minor version

* proposal: crazy hack idea to make the workflow run listener work

* fix: sleeps and error handling

* Revert "cruft: rm hatchet fixture"

This reverts commit b75f625e6ccec095e8c4e294d6727db166796411.

* fix: set timeout

* fix: rm pytest-timeout

* fix: rm retry

* fix: use v1 by default

* fix: try removing retry state

* fix: try using async client?

* fix: try running sequentially

* debug: loop

* debug: maybe it's this?

* fix: lint

* fix: re-remove unused fixtures

* fix: lazily create clients in admin client

* fix: default

* fix: lazily initialize dispatcher client

* fix: hint

* fix: no. way.

* feat: add back retries in ci

* fix: clients + imports

* fix: loop scope

* debug: try running skipped tests in ci again

* Revert "debug: try running skipped tests in ci again"

This reverts commit 8d9e18150e5207ee6051d8df8a6fe2a7504c722e.

* fix: rm duped code

* refactor: rename everything as `to_proto`

* refactor: removals of `namespace` being passed around

* fix: task output stupidity

* feat: add deprecation warning

* fix: remove more unused code

* feat: mix sync and async in dag example

* fix: autouse

* fix: more input types

* feat: remove ability to pass in loop

* fix: overload key gen
2025-04-10 08:18:17 -04:00
Nick Bradford
247730158e Update workflow.py to use model_dump(mode="json") (#1514)
* Update workflow.py to use model_dump(mode="json")

* drive-by: refactor a bit + fix incorrect input types

* chore: ver

---------

Co-authored-by: Nick Bradford <6633811+nsbradford@users.noreply.github.com>
Co-authored-by: mrkaye97 <mrkaye97@gmail.com>
2025-04-09 21:59:26 -04:00
Matt Kaye
4c97bd5c74 Fix: Test failures (#1510)
* fix: test name

* fix: shrink test

* fix: correct logic for group membership

* fix: expand test again
2025-04-08 18:16:50 -04:00
abelanger5
f09c1d11fa feat: multiple non-workflow level concurrency slots (#1508)
* feat: multiple non-workflow level concurrency slots

* feat: first pass at e2e test

* fix: lint

* fix: try sleeping?

* fix: namespacing

* chore: version

* feat: expand test

* Fix: Add `get_run_ref` to `runs` client (#1509)

* feat: add run ref

* chore: ver

* fix: expand standalone

---------

Co-authored-by: mrkaye97 <mrkaye97@gmail.com>
2025-04-08 17:17:28 -04:00
Matt Kaye
76c0bdfc17 [Python]: Batch Bulk Run Calls (#1504)
* chore: ver

* feat: auto-batch to max batch size of 1000 workflows

* fix: magic number

* feat: bulk for TS

* Revert "feat: bulk for TS"

This reverts commit edbe731bfb.
2025-04-07 17:10:50 -04:00
Matt Kaye
63e10c65c7 Fix: Server URL and Host Port Overrides (#1491)
* fix: host port and server url overrides

* feat: tests

* chore: ver
2025-04-03 19:22:58 -04:00
abelanger5
9c1e6ecf2b docs: durable execution + update self-hosted defaults to use v1 (#1484)
* docs: update self-hosted defaults to use v1

* docs: durable execution

* rm dep

* lint: run black

* redundant readme

* more wording

* other small things

* isort
2025-04-03 11:29:59 -04:00
Gabe Ruttner
747fa28ac4 Wip consistent naming (#1480)
* readme changes

* test readme changes

* try spaces

* readme indent

* add task orchestration features

* newline

* fix: headings and indent

* add flow control

* add scheduling

* rest of readme changes

* Update README.md

* Update README.md

* fix: small setup guide improvements

* Apply suggestions from code review

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

* Update frontend/docs/pages/home/index.mdx

Co-authored-by: Gabe Ruttner <gabriel.ruttner@gmail.com>

* wip

* wip

* naming

* task

* lint

* compute

* fix: add a bunch of redirects

* fix: dynamic

* link to docs

* revert

* revert some changes

---------

Co-authored-by: Alexander Belanger <alexander@hatchet.run>
Co-authored-by: abelanger5 <belanger@sas.upenn.edu>
Co-authored-by: Matt Kaye <mrkaye97@gmail.com>
2025-04-03 11:27:19 -04:00
Matt Kaye
b3e5630e1a Fix: Move Non-Retryable to hatchet_sdk.exceptions (#1483)
* feat: move non-retry to exceptions

* fix: client config default

* chore: ver

* cleanup: fix some dependencies

* feat: add retries to pytest in CI
2025-04-03 09:00:18 -04:00
Matt Kaye
77f81476bd [Docs, Python] Expand Cancellation + Conditional Workflow Docs, Fix cancellation in Python (#1471)
* feat: expand conditional docs

* feat: initial cancellation work + fixing some broken links

* feat: docs on cancellation

* python: fix cancellation

* python: cruft

* chore: version

* feat: python example

* fix: TS cancellation examples

* fix: lint

* feat: go example

* feat: half-baked ts conditional logic workflow

* feat: add ts example conditional workflow

* feat: go example

* feat: go example

* fix: cancellation test

* fix: thanks, copilot!

* Update frontend/docs/pages/home/conditional-workflows.mdx

Co-authored-by: Gabe Ruttner <gabriel.ruttner@gmail.com>

* fix: lint

* chore: lint

* fix: longer sleep

---------

Co-authored-by: Gabe Ruttner <gabriel.ruttner@gmail.com>
2025-04-02 19:51:51 -04:00
Gabe Ruttner
339f505612 Docs: run and wait, child run in run and wait, run no wait, bulk (#1472)
* run and wait

* run no wait

* bulk

* release: 1.1.1

* lint

* lint?

* lint

* lint?

* discord link

* separate examples

* lint

* prettier

* move new examples

* lint

* python...

* fix: python examples

* rm toolchain

---------

Co-authored-by: mrkaye97 <mrkaye97@gmail.com>
2025-04-02 12:20:19 -07:00
Matt Kaye
58d54703b2 Feat: Non-Retryable Exceptions (#1456)
* feat: add boolean flag to proto

* feat: initial wiring up priorities and non-retryables

* fix: query

* fix: cruft comment

* fix: rm priority changes

* feat: python side

* feat: tests for non-retrying workflows

* feat: expand tests

* chore: generate ts

* feat: add name prop to wf

* feat(go-sdk): non retryable error

* feat: start implementing ts

* cleanup: simplify to raising a specific error

* fix: simplify ts

* feat: ts examples

* feat: ver

* feat: docs

* fix: tests + linters

---------

Co-authored-by: Alexander Belanger <alexander@hatchet.run>
2025-04-01 15:34:43 -04:00
Gabe Ruttner
a6cc50f965 fix: typescript v1 bug bash (#1464)
* fix: recommended input output interfaces

* fix: correct type

* fix: single task result data

* lint

* fix: expected type

* release: 1.0.7

* fix: consistent result binding

* fix: readmes

* fix: examples
2025-04-01 06:54:22 -07:00
Matt Kaye
46edb1f0b0 [Python] Fix: Remove global event loop setters everywhere (#1452)
* feat: factor out async to sync

* feat: remove global event loop setter in workflow listener

* fix: rm more global loop sets

* fix: more loop sets

* fix: more

* fix: more

* fix: rm one more

* fix: stream from thread

* fix: dispatcher

* fix: make tests have independent loop scopes (woohoo!)

* feat: use default loop scope

* fix: try adding back tests

* Revert "fix: try adding back tests"

This reverts commit bed34a9bae539650e4fe32e0518aa9d1c5c0af5c.

* fix: rm dead code

* fix: remove redundant `_utils`

* fix: add typing to client stubs + regenerate

* fix: create more clients lazily

* fix: print cruft

* chore: version

* fix: lint
2025-03-31 13:58:50 -04:00
Matt Kaye
8172d59f84 [Python] Fix: Misc. Python Bugs (#1451)
* fix: stop trying to parse payloads back from json

* feat: streaming example

* feat: aio output

* fix: lint

* feat: sync and async examples

* fix: small issues

* fix: one more small thing

* chore: version

* fix: lint

* fix: add sleeps

* feat: factor out run_async_from_sync

* Revert "feat: factor out run_async_from_sync"

This reverts commit fb37395913.

* fix: schedule trigger namespace issue

* fix: log error if action payload fails to decode but don't raise out of listener
2025-03-31 13:47:34 -04:00
Matt Kaye
6aa8f4d555 [Docs, Python]: Durable execution, fixing broken links, Python fixes (#1449)
* feat: show durable execution docs

* fix: move durable execution

* feat: add some more durable notes

* feat: more docs

* fix: broken link bashing

* feat: add test for waits

* fix: clean up a bunch of mypy errors

* chore: version

* feat: make sure durable worker is running

* fix: sleep longer

* fix: skip unreliable tests in ci

* fix: var name

* update durable execution doc

---------

Co-authored-by: Alexander Belanger <alexander@hatchet.run>
2025-03-28 20:17:36 -07:00
Gabe Ruttner
eeda1181ce Docs (#1435)
* concurrency

* retries

* get started

* register

* improvements

* lint

* fix

* lint

* lint

* lint

* more linttttt

* more lint

* bulk
2025-03-27 19:01:29 -07:00
Matt Kaye
c3fe5e5baa Hotfix: Task + Timeout (#1433)
* hotfix: simple task

* fix: add back timeout

* debug: try using loop scoped to session

* fix: decrease timeout

* fix: doc path
2025-03-27 21:06:56 -04:00
Matt Kaye
08f49031be [Python] Feat: Replace REST Client (#1413)
* fix: version

* feat: first pass at new base rest client

* fix: typing

* fix: base client cleanup

* feat: basic runs client

* fix: finally!!

* feat: helper functions for uuid and metadata conversion and api format fix

* fix: patches

* feat: run list apis

* feat: add bulk replay and cancel

* feat: replays and cancels

* feat: result getter

* feat: cron client

* feat: scheduled workflows

* feat: rate limit

* refactor: don't export admin client anymore

* feat: add a bunch more clients and remove the old `rest` thing

* fix: scheduled workflow trigger time

* fix: emptymodel default

* refactor: stop passing pooled workflow run listener around everywhere

* fix: more cleanup of context

* refactor: remove unused stuff from runner

* unwind: keep passing listeners around

* fix: rm some unused stuff

* fix: example

* feat: metrics api

* feat: a couple tests

* feat: more default emptymodels

* fix: tests

* [Docs]: Misc. Python Migration Guide Issues, Rate limits, V1 new features (#1417)

* fix: misc python migration guide

* feat: rate limits docs

* fix: lint

* fix: lint

* feat: skeleton

* feat: add a bunch of docs

* feat: bulk replay and cancel docs

* fix: add task output to example

* fix: otel docs + naming

* fix: lint

* fix: rm timeout

* feat: initial python sdk guide

* fix: raise on dupe on failure or on success

* fix: dags docs

* feat: 1.0.1
2025-03-27 16:32:54 -07:00
Matt Kaye
0c4e52a97c [Docs] Concurrency, Additional Metadata (#1415)
* fix: child spawning python example

* fix: more things

* feat: additional meta

* feat: concurrency

* fix: proof

* fix: lint

* fix: python migration

* fix: test

* fix: lint

* fix: link on migration guide

---------

Co-authored-by: Alexander Belanger <alexander@hatchet.run>
2025-03-26 18:34:02 -07:00
Gabe Ruttner
9681189d84 feat: docs (#1404)
* feat: docs

* fixes

* fix: python examples

* fixes

* fanout

* type

* lint

* lint

---------

Co-authored-by: mrkaye97 <mrkaye97@gmail.com>
2025-03-26 02:52:28 +00:00
Matt Kaye
5062bf1e3e V1 SDKs and Docs (#1361)
New SDKs and docs for the v1 release.
2025-03-25 15:45:07 -07:00
abelanger5
1f2096313d feat: v1 engine (#1318) 2025-03-11 14:57:13 -04:00