Commit Graph

13 Commits

Author SHA1 Message Date
Matt Kaye
3442c11106 Feat: Top-level stream consumer in the SDKs (#1917)
* feat: add stream sub on top level

* feat: clean up examples

* chore: gen

* feat: move stream onto the runs client in ts

* fix: examples

* chore: gen

* fix: circular import issues

* chore: lint

* feat: first pass at Next app

* fix: pull next out to top level

* fix: all the things

* fix: get it all wired up

* fix: imports

* fix: lint rule

* fix: just use js

* fix: revert tsconfig changes

* fix: check in pages

* fix: hangup event in streaming impl

* chore: gen

* chore: generate again, remove lots of nextjs stuff

* fix: one more ignore

* fix: gen

* fix: ignore

* fix: ugh

* fix: simplify a bunch

* fix: lint

* fix: rm gen cruft

* fix: changelog

* feat: implement list with pagination

* feat: add some tests

* feat: add warnings

* fix: update workflow / task methods

* chore: version

* feat: retries
2025-07-03 18:49:16 -04:00
Matt Kaye
2f33dd4dbd Feat: Misc. Python improvements + Streaming Improvements (#1846)
* fix: contextvars explicit copy

* feat: fix a ton of ruff errors

* fix: couple more ruff rules

* fix: ignore unhelpful rule

* fix: exception group in newer Python versions for improved handling

* fix: workflow docs

* feat: context docs

* feat: simple task counter

* feat: config for setting max tasks

* feat: graceful exit once worker exceeds max tasks

* fix: optional

* fix: docs

* fix: events docs + gen

* chore: gen

* fix: one more dangling task

* feat: add xdist in ci

* fix: CI

* fix: xdist fails me once again

* fix: fix + extend some tests

* fix: test cleanup

* fix: exception group

* fix: ugh

* feat: changelog

* Add Ruff linter callout to post

* refactor: clean up runner error handling

* feat: improved errors

* fix: lint

* feat: hacky serde impl

* fix: improve serde + formatting

* fix: logging

* fix: lint

* fix: unexpected errors

* fix: naming, ruff

* fix: rm cruft

* Fix: Attempt to fix namespacing issue in event waits (#1885)

* feat: add xdist in ci

* fix: attempt to fix namespacing issue in event waits

* fix: namespaced worker names

* fix: applied namespace to the wrong thing

* fix: rm hack

* drive by: namespacing improvement

* fix: delay

* fix: changelog

* fix: initial log work

* fix: more logging work

* fix: rm print cruft

* feat: use a queue to send logs

* fix: sentinel value to stop the loop

* fix: use the log sender everywhere

* fix: make streaming blocking, remove more thread pools

* feat: changelog

* fix: linting issues

* fix: broken test

* chore: bunch more generated stuff

* fix: changelog

* fix: one more

* fix: mypy

* chore: gen

* Feat: Streaming Improvements (#1886)

* Fix: Filter list improvements (#1899)

* fix: uuid validation

* fix: improve filter filtering

* fix: inner join

* fix: bug in workflow cached prop

* chore: bump

* fix: lint

* chore: changelog

* fix: separate filter queries

* feat: improve filter filtering

* fix: queries and the like

* feat: add xdist in ci

* feat: streaming test + gen

* feat: add index to stream event

* fix: rm langfuse dep

* fix: lf

* chore: gen

* feat: impl index for stream on context

* feat: tweak protos

* feat: extend test

* feat: send event index through queue

* feat: first pass + debug logging

* debug: fixes

* debug: more possible issues

* feat: generate new stream event protos

* feat: first pass at using an alternate exchange for replaying incoming stream events

* fix: exchange create timing

* fix: rm unused protos

* chore: gen

* feat: python cleanup

* fix: revert rabbit changes

* fix: unwind a bunch of cruft

* fix: optional index

* chore: gen python

* fix: event index nil handling

* feat: improve test

* fix: stream impl in sdk

* fix: make test faster

* chore: gen a ton more stuff

* fix: test

* fix: sorting helper

* fix: bug

* fix: one more ordering bug

* feat: add some tests for buffering logic

* feat: hangup test

* feat: test no buffering if no index sent

* fix: regular mutex

* fix: pr feedback

* fix: conflicts
2025-06-25 10:11:01 -04:00
Matt Kaye
e4b1d36de6 Fix: Spawn index incorrect on retry (#1752)
* fix: child index on retry not being reset correctly

* chore: ver

* chore: changelog

* feat: test
2025-05-19 15:38:52 -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
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
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
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
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
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
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
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
abelanger5
1f2096313d feat: v1 engine (#1318) 2025-03-11 14:57:13 -04:00