iii/v0.23.0
maximhq/bifrostiii/v0.23.0Sep 1, 2026by iii-hq-ci[bot]
AI Summary
This release introduces namespaces as a core runtime routing dimension across the engine and SDKs, alongside the launch of the Worker Compose daemon for managing worker graphs. It also includes significant improvements to observability, including persistent traces on disk and trigger-driven updates.
Key Highlights
- Namespace support as a runtime routing dimension across Engine and SDKs.
- New Worker Compose daemon for declaring projects and supervising worker graphs.
- Persistent traces on disk with a redesigned observability configuration UI.
- Trigger-driven trace updates replacing live streams and console polling.
- Improved telemetry with rate-limited heartbeats and aggregated CLI usage.
Breaking Changes
- Namespace routing dimension changes may require code updates to explicitly specify namespaces.
- Removal of live streams and console polling for trace updates.
- Queue providers are now scoped by namespace, requiring configuration updates.
New Features
- Namespace as a runtime routing dimension (engine + SDKs)
- Worker-compose daemon
- Persist traces on disk
- Trigger-driven trace updates
- Redesigned observability configuration UI
Full Release Notes
## What's Changed * docs(tech-specs): worker-compose tech pack + interactive deck by @guibeira in https://github.com/iii-hq/iii/pull/1963 * docs(install): provider-picking quickstart panel by @anthonyiscoding in https://github.com/iii-hq/iii/pull/2058 * feat: namespace as a runtime routing dimension (engine + SDKs) by @guibeira in https://github.com/iii-hq/iii/pull/1984 * fix(telemetry): rate-limit heartbeats, aggregate CLI usage, unhash worker names by @anthonyiscoding in https://github.com/iii-hq/iii/pull/2061 * fix(sdk): keep engine invocations in default namespace by @guibeira in https://github.com/iii-hq/iii/pull/2065 * Persist traces on disk + redesigned observability configuration UI by @ytallo in https://github.com/iii-hq/iii/pull/2067 * feat(compose): worker-compose daemon — declare a project, start it as a graph, supervise it by @guibeira in https://github.com/iii-hq/iii/pull/2034 * refactor(observability): trigger-driven trace updates — remove live streams and console polling by @ytallo in https://github.com/iii-hq/iii/pull/2088 * feat(compose): migrate worker lifecycle to Worker Compose by @guibeira in https://github.com/iii-hq/iii/pull/2074 * fix(observability): make trace archive eviction actually reclaim disk by @ytallo in https://github.com/iii-hq/iii/pull/2068 * (MOT-4419) feat(observability): return compact trace summaries by @ytallo in https://github.com/iii-hq/iii/pull/2094 * (MOT-4419) fix(observability): stabilize trace summary pagination by @ytallo in https://github.com/iii-hq/iii/pull/2095 * fix(compose): support empty container declarations by @guibeira in https://github.com/iii-hq/iii/pull/2098 * fix(compose): run local base-image workers in VMs by @guibeira in https://github.com/iii-hq/iii/pull/2099 * Fix namespaced observability UI and live trace updates by @ytallo in https://github.com/iii-hq/iii/pull/2101 * fix(worker): forward local source changes into VMs by @guibeira in https://github.com/iii-hq/iii/pull/2104 * (MOT-3944) fix(engine,sdk): scope queue providers by namespace by @guibeira in https://github.com/iii-hq/iii/pull/2103 * (MOT-3944) fix(engine): allow namespaced queue provider registration by @guibeira in https://github.com/iii-hq/iii/pull/2112 * fix(compose): return concise mutation outcomes by @mfpiccolo in https://github.com/iii-hq/iii/pull/2107 * docs(compose): correct and restructure the Compose reference by @anthonyiscoding in https://github.com/iii-hq/iii/pull/2100 * docs: simplify Quickstart Compose startup by @guibeira in https://github.com/iii-hq/iii/pull/2105 * docs(install): default namespace + one compose::add per recipe by @anthonyiscoding in https://github.com/iii-hq/iii/pull/2116 **Full Changelog**: https://github.com/iii-hq/iii/compare/iii/v0.22.1...iii/v0.23.0