Skip to content

v0.12.0

Choose a tag to compare

@eadwinCode eadwinCode released this 30 Oct 07:48
· 19 commits to main since this release
b9b61d3

Operator tools and limits for queues, in both runtimes: a shared QueueAdmin port, and FlowQueue gets it plus new options. Go module github.com/eadwinCode/agentic-kit/packages/go-agentenkit@v0.12.0, npm agentenkit@0.12.0 and use-agentenkit@0.12.0.

No breaking changes.

New: QueueAdmin port (#40)

pause, resume, purge, listDead, redrive and purgeDead (Go: Pause, Resume, Purge, ListDead, Redrive, PurgeDead). The Go Postgres queue and FlowQueue both have it, so admin code works with either. The Go Postgres PurgeFilter and DeadJob now point to the shared ports types, so existing code still compiles.

On FlowQueue:

  • pause pauses the Flow function. Jobs enqueued meanwhile wait and start on resume.
  • A dead job is a failed run.
    • redrive retries it, but never a run that purge cancelled.
    • purge cancels waiting runs that match. Running ones are left alone, and an empty filter is refused.
    • purgeDead deletes failed runs, except ones kept in the dashboard.

New: FlowQueue options (#40)

  • maxDepth (Go: MaxDepth) refuses a fresh dispatch with QueueFullError. The count lags a few seconds.
  • namespace (Go: Namespace) goes in front of the function ID, so two environments can share one Flow app.
  • stats asks Flow for the oldest queued job, so oldestReadyMs no longer reads low.

New: agentRunFunction options (#40)

Go: clevixflow.Functions.

  • globalConcurrency limits all jobs at once, beside the per-partitionKey limit.
  • retryBackoffMs and retryBackoffMaxMs (Go: RetryBackoff, RetryBackoffMax) set the wait between tries, as on the Postgres queue.
  • segmentTimeoutMs (Go: SegmentTimeout) throws if a segment is not shorter than the step time.

Needs: Flow SDK v0.8.0 (TS: @clevix/flow, from the flow-sdk release), and Flow engine v2.2.0 or newer.

See Setup: On Clevix Flow, with a new note on rollouts, and QueueAdmin.