iii- prefix from the workers that ship with the engine, removes one engine CLI
flag, and removes one Rust SDK constructor. The worker rename is a deprecation with a migration
window: the old names still resolve but emit a warning. The other two are clean breaks. Apply the
steps below that touch surfaces your project uses.
Step 1: Rename the always-running workers
The following workers lost theiriii- prefix. Rename them wherever you reference them:
config.yaml entries, iii worker add commands, etc.
config.yaml
iii worker add prints a deprecation warning for them and a future release will remove the aliases.
Rename now to clear the warning.
All other workers with iii- prefix keep those prefixes for now. Most of them will be removed in a
future version.
Step 2: Remove duplicate worker entries from config.yaml
The engine now rejects aconfig.yaml that lists both a deprecated name and its replacement,
failing to boot with a Duplicate worker configurations error that names the conflicting pair.
Remove or rename those entries.
Step 3: Drop the removed engine flag
The--use-default-config engine flag is removed. Running iii with no config.yaml now creates
one with an empty workers: list: it prompts in an interactive terminal and writes the file without
asking in a non-interactive session (CI, containers). Drop the flag from scripts, Dockerfiles, and
CI.
The recommended way to start a new iii project is with: iii project init.
Step 4: Update the Rust register-function API
The Rust SDK removedRegisterFunction::new_async_with_bad_request. Register async handlers with
RegisterFunction::new_async; a deserialization failure on the input now surfaces as Error::Serde
rather than through a caller-supplied mapper.
Migration checklist
- Rename the always-running workers to their unprefixed names in
config.yaml,iii worker add, and trigger types (Step 1) - Remove any duplicate old/new worker entry from
config.yaml(Step 2) - Drop
--use-default-configfrom scripts and CI (Step 3) - Replace Rust
new_async_with_bad_requestwithnew_async(Step 4)
Result
The project boots on 0.22.x with no deprecation warnings: the always-running workers use their unprefixed names,config.yaml lists each worker once, the engine starts without the removed flag,
and Rust workers build against the current register-function API.