Skip to content

feat: migrate all workers to iii-sdk 0.22.0-alpha.5 with namespace support - #604

Draft
guibeira wants to merge 80 commits into
mainfrom
feat/new-sdk-migration
Draft

feat: migrate all workers to iii-sdk 0.22.0-alpha.5 with namespace support#604
guibeira wants to merge 80 commits into
mainfrom
feat/new-sdk-migration

Conversation

@guibeira

@guibeira guibeira commented Jul 26, 2026

Copy link
Copy Markdown
Collaborator

Summary

Migrates the workers to iii-sdk 0.22.0-alpha.5 with end-to-end namespace support. A worker running with III_NAMESPACE registers its functions and routes cross-worker calls in that namespace; engine builtins continue to use default. Without a namespace, existing behaviour is unchanged.

This branch also incorporates the latest main updates, including the injectable console UI work.

What changed

SDK upgrade

  • Updates Rust workers and direct iii-helpers dependencies to 0.22.0-alpha.5.
  • Updates the claude-code, opencode, and pi workers to iii-sdk@0.22.0-alpha.5.
  • Regenerates Cargo and pnpm lockfiles for the new release.

Namespace adoption

  • Trigger registrations pass each worker's resolved namespace so registrations target the correct worker namespace.
  • Cross-worker calls route to the worker namespace, while engine builtins (state::, stream::, queue::, pubsub::, configuration::, cron::, http::, engine::, sandbox::, log::, secret::, kv::, and iii::) remain in default.
  • Dynamic fan-out keeps builtin-aware routing: worker targets are namespaced and builtin targets remain in default.
  • The provider-to-router registration path is namespaced so providers and the router can operate together outside the default namespace.

Main integration

  • Integrates the latest main release and console UI changes.
  • Resolves manifest conflicts by retaining the console UI path dependencies while pinning them to iii-sdk = 0.22.0-alpha.5.
  • Resolves the harness reaction conflict using the current subagent spawning path, preserving reactive-child policy inheritance and ownership lineage.

Validation

  • cargo fmt --check on the affected Rust crates.
  • cargo check --locked for iii-console-ui and harness.
  • Type checks for claude-code, opencode, and pi with their updated pnpm lockfiles.
  • Confirmed no remaining 0.22.0-alpha.3 references in tracked dependency manifests or lockfiles.

Notes

  • The browser, GitHub, memory, and worktree workers now retain their console UI path dependencies while using the updated SDK pin.

guibeira added 30 commits July 25, 2026 19:46
…support

Bump iii-sdk to the 0.22.0-alpha.2 namespace release and adopt namespace
registration: a --namespace flag (III_NAMESPACE env fallback) is threaded into
InitOptions so the worker can register under a namespace. Absent, it keeps the
engine's default namespace, so existing deploys are unchanged. Verified at
runtime: the worker connects and image_resize::resize resolves in the declared
namespace via engine::functions::list.
…upport

Bump iii-sdk to the 0.22.0-alpha.2 namespace release and pass III_NAMESPACE
through registerWorker so claude::* register under a namespace when one is set
(the SDK also resolves the env; passed explicitly for visibility). Absent, the
engine's default namespace is used. Verified at runtime: all six claude::*
functions resolve in the declared namespace via engine::functions::list.
Bump iii-sdk and iii-helpers to the 0.22.0a2 namespace release and pass
III_NAMESPACE through InitOptions so hermes::* register under a namespace when
one is set (the SDK also resolves the env; passed explicitly for visibility).
Absent, the engine's default namespace is used. Verified at runtime: all seven
hermes::* functions resolve in the declared namespace via engine::functions::list.
Bump iii-sdk to the 0.22.0-alpha.2 namespace release. The SDK made
RegisterTriggerInput.namespace required; pass iii.namespace() so the ACP event
subscriber resolves its target in the worker's namespace (None => engine
default, unchanged). Namespace itself is env-driven (III_NAMESPACE) via the SDK.
Build-verified; runtime registration is driven by an ACP stdio client, so the
functions::list smoke does not apply to this worker.
Bump iii-sdk to 0.22.0-alpha.2 and pass III_NAMESPACE through registerWorker so
opencode::* register under a namespace when one is set (SDK also resolves the
env). Absent, the engine's default namespace is used. Smoke-verified: all seven
opencode::* functions resolve in the declared namespace.
Bump iii-sdk to 0.22.0-alpha.2 and pass III_NAMESPACE through registerWorker so
pi::* register under a namespace when one is set (SDK also resolves the env).
Absent, the engine's default namespace is used. Smoke-verified: all nine pi::*
functions resolve in the declared namespace.
…port

Bump iii-sdk to 0.22.0a2 and pass III_NAMESPACE through InitOptions so
scrapling::* register under a namespace when one is set (SDK also resolves the
env). Pin iii-helpers==0.22.0a2 (transitive iii-sdk dep) so uv resolves the
pre-release. Absent a namespace, the engine's default is used. Smoke-verified:
all 19 scrapling::* functions resolve in the declared namespace.
… support

Bump iii-sdk to 0.22.0-alpha.2. Namespace is env-driven (III_NAMESPACE via the SDK); the now-required RegisterTriggerInput.namespace is threaded to the worker's namespace so triggers resolve where functions register. Smoke-verified: functions register in the declared namespace.
Bump iii-sdk to 0.22.0-alpha.2. Namespace is env-driven (III_NAMESPACE via the SDK); the now-required RegisterTriggerInput.namespace is threaded to the worker's namespace so triggers resolve where functions register. Also migrate off the removed new_async_with_bad_request (#1966) to new_async, dropping the custom bad-request mapper. Smoke-verified: functions register in the declared namespace.
Bump iii-sdk to 0.22.0-alpha.2. Namespace is env-driven (III_NAMESPACE via the SDK); the now-required RegisterTriggerInput.namespace is threaded to the worker's namespace so triggers resolve where functions register. Smoke-verified: functions register in the declared namespace.
Bump iii-sdk to 0.22.0-alpha.2. Namespace is env-driven (III_NAMESPACE via the SDK); the now-required RegisterTriggerInput.namespace is threaded to the worker's namespace so triggers resolve where functions register. Smoke-verified: functions register in the declared namespace.
…ce support

Bump iii-sdk to 0.22.0-alpha.2. Namespace is env-driven (III_NAMESPACE via the SDK); the now-required RegisterTriggerInput.namespace is threaded to the worker's namespace so triggers resolve where functions register. Smoke-verified: functions register in the declared namespace.
Bump iii-sdk to 0.22.0-alpha.2. Namespace is env-driven (III_NAMESPACE via the SDK); the now-required RegisterTriggerInput.namespace is threaded to the worker's namespace so triggers resolve where functions register. Smoke-verified: functions register in the declared namespace.
Bump iii-sdk to 0.22.0-alpha.2. Namespace is env-driven (III_NAMESPACE via the SDK); the now-required RegisterTriggerInput.namespace is threaded to the worker's namespace so triggers resolve where functions register. Smoke-verified: functions register in the declared namespace.
Bump iii-sdk to 0.22.0-alpha.2. Namespace is env-driven (III_NAMESPACE via the SDK); the now-required RegisterTriggerInput.namespace is threaded to the worker's namespace so triggers resolve where functions register. Smoke-verified: functions register in the declared namespace.
Bump iii-sdk to 0.22.0-alpha.2. Namespace is env-driven (III_NAMESPACE via the SDK); the now-required RegisterTriggerInput.namespace is threaded to the worker's namespace so triggers resolve where functions register. Smoke-verified: functions register in the declared namespace.
Bump iii-sdk to 0.22.0-alpha.2. Namespace is env-driven (III_NAMESPACE via the SDK); the now-required RegisterTriggerInput.namespace is threaded to the worker's namespace so triggers resolve where functions register. Smoke-verified: functions register in the declared namespace.
Bump iii-sdk to 0.22.0-alpha.2. Namespace is env-driven (III_NAMESPACE via the SDK); the now-required RegisterTriggerInput.namespace is threaded to the worker's namespace so triggers resolve where functions register. Smoke-verified: functions register in the declared namespace.
Bump iii-sdk to 0.22.0-alpha.2. Namespace is env-driven (III_NAMESPACE via the SDK); the now-required RegisterTriggerInput.namespace is threaded to the worker's namespace so triggers resolve where functions register. Smoke-verified: functions register in the declared namespace.
Bump iii-sdk to 0.22.0-alpha.2. Namespace is env-driven (III_NAMESPACE via the SDK); the now-required RegisterTriggerInput.namespace is threaded to the worker's namespace so triggers resolve where functions register. Smoke-verified: functions register in the declared namespace.
… support

Bump iii-sdk to 0.22.0-alpha.2. Namespace is env-driven (III_NAMESPACE via the SDK); the now-required RegisterTriggerInput.namespace is threaded to the worker's namespace so triggers resolve where functions register. Smoke-verified: functions register in the declared namespace.
…pport

Bump iii-sdk to 0.22.0-alpha.2. Namespace is env-driven (III_NAMESPACE via the SDK); the now-required RegisterTriggerInput.namespace is threaded to the worker's namespace so triggers resolve where functions register. Also migrate off the removed new_async_with_bad_request (#1966) to new_async, dropping the custom bad-request mapper. Smoke-verified: functions register in the declared namespace.
Bump iii-sdk to 0.22.0-alpha.2. Namespace is env-driven (III_NAMESPACE via the SDK); the now-required RegisterTriggerInput.namespace is threaded to the worker's namespace so triggers resolve where functions register. Smoke-verified: functions register in the declared namespace.
Bump iii-sdk to 0.22.0-alpha.2. Namespace is env-driven (III_NAMESPACE via the SDK); the now-required RegisterTriggerInput.namespace is threaded to the worker's namespace so triggers resolve where functions register. Smoke-verified: functions register in the declared namespace.
…space support

Bump iii-sdk to 0.22.0-alpha.2. Namespace is env-driven (III_NAMESPACE via the SDK); the now-required RegisterTriggerInput.namespace is threaded to the worker's namespace so triggers resolve where functions register. Smoke-verified: functions register in the declared namespace.
…space support

Bump iii-sdk to 0.22.0-alpha.2. Namespace is env-driven (III_NAMESPACE via the SDK); the now-required RegisterTriggerInput.namespace is threaded to the worker's namespace so triggers resolve where functions register. Also migrate off the removed new_async_with_bad_request (#1966) to new_async, dropping the custom bad-request mapper. Build- and connect-verified; full registration needs external creds/deps or a driver.
… support

Bump iii-sdk to 0.22.0-alpha.2. Namespace is env-driven (III_NAMESPACE via the SDK); the now-required RegisterTriggerInput.namespace is threaded to the worker's namespace so triggers resolve where functions register. Also migrate off the removed new_async_with_bad_request (#1966) to new_async, dropping the custom bad-request mapper. Smoke-verified: functions register in the declared namespace.
…pace support

Bump iii-sdk to 0.22.0-alpha.2. Namespace is env-driven (III_NAMESPACE via the SDK); the now-required RegisterTriggerInput.namespace is threaded to the worker's namespace so triggers resolve where functions register. Also migrate off the removed new_async_with_bad_request (#1966) to new_async, dropping the custom bad-request mapper. Smoke-verified: functions register in the declared namespace.
…ce support

Bump iii-sdk to 0.22.0-alpha.2. Namespace is env-driven (III_NAMESPACE via the SDK); the now-required RegisterTriggerInput.namespace is threaded to the worker's namespace so triggers resolve where functions register. Also migrate off the removed new_async_with_bad_request (#1966) to new_async, dropping the custom bad-request mapper. Build- and connect-verified; full registration needs external creds/deps or a driver.
…amespace support

Bump iii-sdk to 0.22.0-alpha.2. Namespace is env-driven (III_NAMESPACE via the SDK); the now-required RegisterTriggerInput.namespace is threaded to the worker's namespace so triggers resolve where functions register. Also migrate off the removed new_async_with_bad_request (#1966) to new_async, dropping the custom bad-request mapper. Build- and connect-verified; full registration needs external creds/deps or a driver.
@github-actions

Copy link
Copy Markdown
Contributor

skill-check — worker

0 verified, 49 skipped (no docs/).

Layer Result
structure
vale
ai
render

Four for four. Nicely done.

@guibeira guibeira changed the title feat: migrate all workers to iii-sdk 0.22.0-alpha.2 with namespace support feat: migrate all workers to iii-sdk 0.22.0-alpha.3 with namespace support Jul 27, 2026
# Conflicts:
#	browser/Cargo.toml
#	github/Cargo.toml
#	harness/src/functions/react.rs
#	memory/Cargo.lock
#	memory/Cargo.toml
#	worktree/Cargo.toml
@guibeira guibeira changed the title feat: migrate all workers to iii-sdk 0.22.0-alpha.3 with namespace support feat: migrate all workers to iii-sdk 0.22.0-alpha.5 with namespace support Jul 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-ticket PR deliberately has no Linear ticket (bump/typo/CI-only)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant