Matt Kaye
7679732b15
Fix: Skipping conditions with multiple parents ( #1948 )
...
* fix: skipping bug
* fix: move `waits` -> `conditions`
* fix: refs
* chore: ver
* feat: add skipped task to test
* feat: start implementing or groups in wait for
* feat: test of or groups on durable context
* fix: lint
* chore: gen
* fix: lint
* fix: branching hell
2025-07-03 16:50:57 -04:00
Matt Kaye
a73e34cd92
Feat: Batched replays ( #1860 )
...
* feat: batched replays
* fix: add some comments
* feat: e2e test for bulk replays
* chore: gen
* fix: improving tests a bit
* fix: copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* chore: gen
* fix: tag
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-06-13 13:47:50 -04:00
Matt Kaye
08bd27a869
Feat: Dynamic (Event) Filters ( #1704 )
...
* 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: filters api
* feat: table for storing filters
* feat: migration
* fix: pk ordering
* feat: wiring up initial api
* feat: impl filter list
* feat: wire up inserts of filters
* feat: add resource hint to push event
* feat: multi-select filters
* feat: wire up resource hint on event push
* feat: filtering
* fix: small bug
* fix: rm version id
* fix: query
* fix: panic
* fix: schema
* fix: naming
* fix: rm python changes
* chore: lint
* fix: uuid hint
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* fix: use overwrite for listing filters b/c of nullable arg
* fix: naming
* 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: merge issues
* feat: filter delete endpoint
* fix: overwrite
* fix: delete filter api wiring
* fix: migration patch
* chore: gen
* fix: merge hell
* 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: gen
* fix: migration ver
* chore: lint
* fix: missed a couple
* fix: whitespace
* fix: formatting, gen
* fix: uuid id for filters
* feat: rest api for filters
* fix: tag
* feat: add event id, payload, and metadata to cel env
* fix: rename resource hint to scope
* chore: gen
* fix: same conflict, different day
* feat: send filter payload with input
* fix: lint
* fix: invert filter to "positive" case
* fix: naming
* feat: send payloads back with trigger data
* fix: add case to check if no filters were found
* fix: send additional meta back on bulk push
* fix: cleanup from self review
* fix: more small cleanup
* feat: initial pr feedback
* feat: validation
* fix: populator
* Feat: SDK changes for event filtering (#1677 )
* feat: query for event creation
* 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
* fix: diff
* feat: add new partitions
* fix: write external ids into table
* chore: gen
* fix: wiring
* fix: event deduping
* fix: insert in bulk
* fix: unnest ids
* fix: run ids in bulk insert
* feat: two bulk inserts, one tx
* fix: rework to avoid n^2 loop
* feat: proto field for expression
* fix: rm event filter from v0 defn
* chore: gen python
* Revert "fix: select existing partitions"
This reverts commit fefbdd5122b85c5d807c3dce3aed7d974f01a7d8.
* fix: rebase hell
* feat: prio
* chore: docs
* feat: gen ts
* feat: ts wiring
* feat: go
* fix: prio test bug
* chore: gen
* fix: validation bug
* feat: extend events client
* feat: e2e test
* chore: docs
* fix: test
* fix: unwind event filter
* fix: rm should skip
* chore: gen
* chore: gen
* chore: gen
* feat: resource hints + more e2e tests
* fix: use `cached_property` for id
* fix: raises
* fix: rm print cruft
* feat: wiring + e2e test
* chore: gen
* feat: wire up python sdk
* feat: static payload in test
* fix: use test run id in payload
* fix: longer sleeps
* feat: more tests
* feat: intermediate work
* feat: add validator for filter payload
* fix: rm cruft
* fix: event example
* fix: event example
* fix: e2e tests
* fix: finish cleaning up tests
* fix: __hash__ method
* fix: copilot comments!
* fix: apply namespaces to workflow names in a couple of the feature clients
* fix: handle case where namespace is falsey
* refactor: factor out
* fix: all the other refs to namespaced things
* fix: put `apply_namespace` on the client config
* fix: namespace overrides
* fix: implicitly use function name for hatchet task
* fix: name
* fix: refs
* chore: ver
* fix: durable tests
* feat: add a changelog!
* fix: changelog format
* feat: start wiring up filters in ts
* feat: scopes on event push
* feat: wire up triggering event id filter
* feat: initial ts e2e test work
* fix: run the test
* fix: drive-by bug in AI-gen slop
* fix: test naming
* feat: more test cleanup
* fix: api
* fix: ns override
* fix: test + API
* fix: lint
* fix: cruft
* chore: gen
* fix: dont run in ci?
* fix: wire up Go SDK
* fix: compiler
* fix: examples
* fix: event snippet, I think
* chore: docs
* Revert "fix: examples"
This reverts commit cbf33d6299 .
* Revert "fix: compiler"
This reverts commit 52336abeb2 .
* fix: add push opt funcs for prio and scope
* chore: ver
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-05-16 15:44:28 -04:00
Nathan Gage
99bcfa1037
add: CoroutineLike & AwaitableLike types ( #1713 )
...
* add: CoroutineLike & AwaitableLike types
* fix: type checker
* fix: reduce type narrowing on _parse_task_name
* fix: rm _aio_output helper
* Revert "fix: rm _aio_output helper"
This reverts commit ff51126c43 .
* fix: rm _aio_output helper
* chore: version
* feat: add tests for all the standalone run flavors
* refactor: simplify internals a bit
---------
Co-authored-by: mrkaye97 <mrkaye97@gmail.com >
2025-05-14 11:06:14 -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
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
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
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
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
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
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
Matt Kaye
5062bf1e3e
V1 SDKs and Docs ( #1361 )
...
New SDKs and docs for the v1 release.
2025-03-25 15:45:07 -07:00