* fix: small optimization, no need to query if there are no claims
* feat: add idempotency key expr to proto, workflow version
* feat: wiring
* fix: wiring to db
* feat: add ttl col
* chore: gen a whole bunch of python
* feat: wire up idempotency config on the sdk
* fix: engine wiring
* fix: py type
* chore: revert worker changes
* feat: new example
* feat: fix migration, add cols
* feat: wiring
* feat: wire up idempotency to the triggerTuple
* feat: initial engine wiring
* fix: len
* fix: types
* feat: add test
* chore: rm unused deps
* fix: use the v1 trigger endpoint on python
* fix: make the python test do a real thing
* feat: first pass bypassing mq fallback for idempotency
* fix: remove todo, return the same id
* feat: wire up existing run ids
* fix: use test run id to dedupe across test runs
* fix: improve test a bit
* chore: lock
* fix: add grpcio types
* fix: drive by fix for a flaky test caused by event condition race
* fix: not found behavior on the get_details method
* fix: revert python changes
* fix: handle collisions in the v1 ingest endpoint :facepalm:
* chore: gen
* chore: add back some comments to shrink diff
* chore: python version, changelog
* fix: use the correct tx
* fix: couple query bugs
* fix: couple more event changes
* feat: idempotency test with events
* fix: type issue
* fix: tests, lint
* fix: test cleanup
* fix: handle deduplication in the query
* fix: test, gen
* fix: conflict
* fix: add prefix to idempotency key claim, clean up a tiny bit
* fix: migration name, add idempotency key to cel eval failure source enum
* fix: pr comments
* chore: gen
* feat: snippets, initial doc work
* chore: vibe code other sdks
* chore: vendor the status proto for js
* fix: go docs
* fix: ruby simplification
* chore: changelogs
* fix: ruby ci
* fix: more test fixes
* chore: gen
* chore: gen again
* fix: tests
* chore: gen
* chore: changelogs
* chore: lockfile
* chore: lint
* chore: appease the cop
* chore: fix copilot comments
* chore: gen
* chore: migration version
* chore: migration version
* fix: ordering to prevent deadlocks
* fix: add validation, add skeleton for handling collisions on bulk trigger
* feat: add key to v1_task
* feat: wiring
* feat: add idempotency keys to runs, dags, etc. tables
* feat: wire up sending idempotency back over the api to the dash
* feat: wire up idempotency filter and column on the fe
* feat: return partial success on bulk trigger via an error
* feat: wrap bulk triggers
* feat: add test
* feat: go migration for indexes
* fix: order
* fix: down
* fix: weird diff
* fix: always create trigger writer
* chore: gen other sdks
* fix: queries
* fix: param ordering
* chore: gen
* chore: prettier
* fix: merge
* fix: migration
* chore: lint
* chore: bundle
* chore: gen changelogs
* feat: add TTL-based idempotency config + ABC to allow for better extensibility for other strategies
* chore: other sdks, gen
* chore: lint
* fix: rubocop
* fix: rm generic
* chore: schema