Releases: affandar/duroxide
Releases · affandar/duroxide
v0.1.9
v0.1.9 (2026-01-05)
New Features
Management API for Instance Deletion and Pruning
This release introduces comprehensive instance lifecycle management APIs:
Client API
delete_instance(id, force)- Delete single instance with cascadingdelete_instance_bulk(filter)- Bulk delete with filters (IDs, timestamp, limit)prune_executions(id, options)- Prune old executions from long-running instancesprune_executions_bulk(filter, options)- Bulk prune across multiple instancesget_instance_tree(id)- Inspect instance hierarchy before deletion
Provider API (ProviderAdmin trait)
delete_instance(id, force)- Provider-level single deletiondelete_instance_bulk(filter)- Provider-level bulk deletiondelete_instances_atomic(ids)- Atomic batch deletion for cascadingprune_executions(id, options)- Provider-level pruningprune_executions_bulk(filter, options)- Provider-level bulk pruningget_instance_tree(id)- Provider-level tree traversallist_children(id)- List direct child sub-orchestrationsget_parent_id(id)- Get parent instance ID
Safety Guarantees
- Running instances protected (skip or error based on API)
- Current execution never pruned
- Sub-orchestrations cannot be deleted directly (must delete root)
- Atomic cascading deletes (all-or-nothing)
- Force delete available for stuck instances
Testing
- 102 new provider validation tests (deletion, bulk deletion, pruning)
- Integration tests for all Client methods
- Cascading delete tests (parent→children)
- Filter combination tests (IDs, timestamps, limits)
- Safety tests (running protection, current execution protection)
Documentation
- Provider implementation guide with contracts
- Provider testing guide updates
- Continue-as-new docs with pruning section
- README instance management section
- Enhanced management-api-deletion proposal with force delete semantics
Other
- Updated release checklist prompt
- README latest release link updated
v0.1.1: Long Polling Support
What's Changed
This release adds long polling support to the Provider interface and makes continue_as_new() awaitable.
Breaking Changes
- Provider trait: Added
poll_timeout: Durationparameter tofetch_orchestration_itemandfetch_work_item - RuntimeOptions: Renamed
dispatcher_idle_sleeptodispatcher_min_poll_interval, addeddispatcher_long_poll_timeout continue_as_new(): Now returns an awaitable future (use:return ctx.continue_as_new(input).await)
New Features
- Long polling support for providers (Redis, Azure Service Bus, etc.)
dispatcher_long_poll_timeoutconfiguration (default: 5 minutes)- Long polling validation tests in
provider_validationsmodule
Migration Guide
See CHANGELOG.md for detailed migration instructions.
Full Changelog: v0.1.0...v0.1.1