Skip to content

chore: migrate workers to iii SDK 0.23.0-rc.2 - #604

Merged
guibeira merged 100 commits into
mainfrom
feat/new-sdk-migration
Aug 19, 2026
Merged

guibeira merged 100 commits into
mainfrom
feat/new-sdk-migration

Conversation

@guibeira

@guibeira guibeira commented Jul 26, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Migrates production workers to the namespace-aware iii 0.23.0-rc.2 release across Rust, Node, Python, and the Console browser client.

Workers now rely on the SDK to apply the connected worker namespace to project calls and route reserved engine::* calls to default. Existing behavior remains unchanged when no namespace is configured.

What changed

  • Updates production iii-sdk, iii-browser-sdk, and iii-helpers dependencies and lockfiles to 0.23.0-rc.2.
  • Replaces manual engine::* namespace routing with the RC.2 SDK behavior.
  • Removes intermediate request bindings and explicit III_NAMESPACE wiring where the RC.2 SDK already inherits the worker namespace.
  • Restores the SDK channel helper in harness and llm-router; channel creation now uses the SDK's internal engine routing.
  • Uses RegisterTriggerInput::new(...) so trigger registrations inherit the connected worker namespace without repeated field wiring.
  • Names configuration retry helpers explicitly and routes every configuration::* control-plane call to default, while callbacks remain in the project namespace.
  • Preserves function results across engine restarts by retrying only transient session::append registration gaps with the same deterministic entry ID.
  • Preserves the target namespace through queue enqueue, persistence, retry, DLQ, redrive, availability checks, and delivery. Legacy namespace-less messages continue to use default.
  • Initializes the Console browser client with the namespace exposed by /runtime and renders structured SDK errors as readable text.
  • Updates the production workers added by the latest main branch while retaining older SDK pins in compatibility fixtures.

Namespace flow

project call -----------> connected worker namespace
engine::* call ---------> default (inside the SDK)
configuration::* -------> default (inside worker configuration clients)
configuration callback -> connected worker namespace

Validation

  • Rust format checks passed for all 55 changed Rust crates.
  • cargo check --locked --all-targets passed for all 55 changed Rust crates.
  • Clippy passed for all 55 changed Rust crates with all targets, all features, and warnings denied.
  • Harness: 335 tests passed.
  • Queue: 133 unit tests passed; both durability E2E tests passed against the RC.2 engine.
  • FP, Web, Workflow, Sandbox Code Runner, and Code Runner suites passed.
  • Console: TypeScript typecheck and 1,322 tests passed.
  • Sandbox UI: build and 275 tests passed.
  • Production Node workers: lint, typecheck, and 252 tests passed.
  • Python workers: Ruff checks passed; 131 tests passed.
  • Live compose smoke test with the official RC.2 engine and namespace my-harness-ns: all 10 containers became ready, /runtime returned the project namespace, and the router listed 7 models.
  • git diff --check passed.

Notes

Legacy fixtures outside the production migration keep their existing stable SDK pins.

@vercel

vercel Bot commented Jul 26, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
workers Ready Ready Preview Aug 19, 2026 10:03pm
workers-tech-spec Ready Ready Preview Aug 19, 2026 10:03pm

Request Review

@coderabbitai

coderabbitai Bot commented Jul 26, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 258 files, which is 158 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 4bc394fa-91a9-42ad-8dcb-d5ed6358ad75

📥 Commits

Reviewing files that changed from the base of the PR and between dd91c50 and 5586564.

⛔ Files ignored due to path filters (64)
  • acp/Cargo.lock is excluded by !**/*.lock
  • approval-gate/Cargo.lock is excluded by !**/*.lock
  • bridge/Cargo.lock is excluded by !**/*.lock
  • browser/Cargo.lock is excluded by !**/*.lock
  • canvas/Cargo.lock is excluded by !**/*.lock
  • claude-code/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • code-runner/Cargo.lock is excluded by !**/*.lock
  • codex/Cargo.lock is excluded by !**/*.lock
  • computer/Cargo.lock is excluded by !**/*.lock
  • console/Cargo.lock is excluded by !**/*.lock
  • context-manager/Cargo.lock is excluded by !**/*.lock
  • crates/config-client/Cargo.lock is excluded by !**/*.lock
  • crates/console-ui/Cargo.lock is excluded by !**/*.lock
  • crates/provider-integration-testkit/Cargo.lock is excluded by !**/*.lock
  • cron/Cargo.lock is excluded by !**/*.lock
  • database/Cargo.lock is excluded by !**/*.lock
  • devin/Cargo.lock is excluded by !**/*.lock
  • document/Cargo.lock is excluded by !**/*.lock
  • editor/Cargo.lock is excluded by !**/*.lock
  • email/Cargo.lock is excluded by !**/*.lock
  • eval/Cargo.lock is excluded by !**/*.lock
  • fp/Cargo.lock is excluded by !**/*.lock
  • github/Cargo.lock is excluded by !**/*.lock
  • grok/Cargo.lock is excluded by !**/*.lock
  • harness/Cargo.lock is excluded by !**/*.lock
  • http/Cargo.lock is excluded by !**/*.lock
  • iii-directory/Cargo.lock is excluded by !**/*.lock
  • image-resize/Cargo.lock is excluded by !**/*.lock
  • llm-router/Cargo.lock is excluded by !**/*.lock
  • lsp/Cargo.lock is excluded by !**/*.lock
  • mcp/Cargo.lock is excluded by !**/*.lock
  • memory-consolidate/Cargo.lock is excluded by !**/*.lock
  • memory/Cargo.lock is excluded by !**/*.lock
  • opencode/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • openwiki/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • pdf/Cargo.lock is excluded by !**/*.lock
  • pi/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • provider-anthropic/Cargo.lock is excluded by !**/*.lock
  • provider-claude-code/Cargo.lock is excluded by !**/*.lock
  • provider-deepseek/Cargo.lock is excluded by !**/*.lock
  • provider-github-copilot/Cargo.lock is excluded by !**/*.lock
  • provider-kimi/Cargo.lock is excluded by !**/*.lock
  • provider-llamacpp/Cargo.lock is excluded by !**/*.lock
  • provider-openai-codex/Cargo.lock is excluded by !**/*.lock
  • provider-openai/Cargo.lock is excluded by !**/*.lock
  • provider-opencode-go/Cargo.lock is excluded by !**/*.lock
  • provider-openrouter/Cargo.lock is excluded by !**/*.lock
  • provider-xai/Cargo.lock is excluded by !**/*.lock
  • provider-zai/Cargo.lock is excluded by !**/*.lock
  • pubsub/Cargo.lock is excluded by !**/*.lock
  • queue/Cargo.lock is excluded by !**/*.lock
  • rbac-proxy/Cargo.lock is excluded by !**/*.lock
  • sandbox-code-runner/Cargo.lock is excluded by !**/*.lock
  • session-manager/Cargo.lock is excluded by !**/*.lock
  • shell/Cargo.lock is excluded by !**/*.lock
  • slack/Cargo.lock is excluded by !**/*.lock
  • state/Cargo.lock is excluded by !**/*.lock
  • storage/Cargo.lock is excluded by !**/*.lock
  • telegram-bot/Cargo.lock is excluded by !**/*.lock
  • web/Cargo.lock is excluded by !**/*.lock
  • workers-dev/Cargo.lock is excluded by !**/*.lock
  • workflow/Cargo.lock is excluded by !**/*.lock
  • worktree/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (258)
  • .cargo/audit.toml
  • .github/workflows/ci.yml
  • acp/Cargo.toml
  • acp/src/handler.rs
  • approval-gate/Cargo.toml
  • approval-gate/src/configuration.rs
  • approval-gate/src/events.rs
  • approval-gate/src/main.rs
  • approval-gate/src/shell_config.rs
  • approval-gate/src/testkit/engine.rs
  • bridge/Cargo.toml
  • bridge/src/boot.rs
  • bridge/src/configuration.rs
  • bridge/src/functions.rs
  • bridge/tests/common/engine.rs
  • bridge/tests/e2e_reload.rs
  • browser/Cargo.toml
  • browser/oracle/manifest.json
  • browser/src/configuration.rs
  • browser/src/events.rs
  • browser/src/scrapling/mod.rs
  • canvas/Cargo.toml
  • canvas/src/configuration.rs
  • claude-code/package.json
  • claude-code/src/configuration.ts
  • claude-code/tests/_helpers/fake-iii.ts
  • claude-code/tests/configuration.test.ts
  • code-runner/Cargo.toml
  • code-runner/src/configuration.rs
  • code-runner/src/functions/mod.rs
  • code-runner/src/node_bus.rs
  • codex/Cargo.toml
  • codex/src/configuration.rs
  • computer/Cargo.toml
  • computer/src/configuration.rs
  • computer/src/events.rs
  • console/Cargo.toml
  • console/README.md
  • console/src/configuration.rs
  • console/src/main.rs
  • console/src/server.rs
  • console/src/ui_assets.rs
  • console/tests/integration.rs
  • console/web/package.json
  • console/web/src/lib/backend/real-metadata.test.ts
  • console/web/src/lib/backend/real.ts
  • console/web/src/lib/iii-client.test.ts
  • console/web/src/lib/iii-client.ts
  • context-manager/Cargo.toml
  • context-manager/src/adapters/cache.rs
  • context-manager/src/configuration.rs
  • crates/config-client/Cargo.toml
  • crates/config-client/src/lib.rs
  • crates/console-ui/Cargo.toml
  • crates/console-ui/src/lib.rs
  • crates/provider-integration-testkit/Cargo.toml
  • crates/provider-integration-testkit/src/contract.rs
  • crates/provider-integration-testkit/src/runtime.rs
  • cron/Cargo.toml
  • cron/src/configuration.rs
  • cron/src/trigger.rs
  • cron/tests/e2e_schedule.rs
  • database/Cargo.toml
  • database/src/configuration.rs
  • database/src/triggers/handler.rs
  • devin/Cargo.toml
  • devin/src/configuration.rs
  • docs/sops/binary-worker.md
  • document/Cargo.toml
  • document/src/configuration.rs
  • editor/Cargo.toml
  • editor/src/configuration.rs
  • editor/src/observe.rs
  • email/Cargo.toml
  • email/src/triggers/dispatcher.rs
  • email/src/triggers/new_mail.rs
  • email/src/triggers/registry.rs
  • email/tests/smoke.rs
  • eval/Cargo.toml
  • eval/src/main.rs
  • fp/Cargo.toml
  • fp/src/guidance.rs
  • github/Cargo.toml
  • github/src/configuration.rs
  • grok/Cargo.toml
  • grok/src/configuration.rs
  • harness/Cargo.toml
  • harness/src/configuration.rs
  • harness/src/discovery.rs
  • harness/src/events.rs
  • harness/src/functions/subscribe.rs
  • harness/src/hooks/mod.rs
  • harness/src/hooks/runner.rs
  • harness/src/timer.rs
  • hermes/pyproject.toml
  • http/Cargo.toml
  • http/src/configuration.rs
  • http/src/trigger.rs
  • http/tests/common/backend.rs
  • http/tests/e2e_condition.rs
  • http/tests/e2e_reload.rs
  • http/tests/e2e_request_body.rs
  • http/tests/e2e_streaming.rs
  • iii-directory/Cargo.toml
  • iii-directory/src/configuration.rs
  • iii-directory/src/functions/search.rs
  • iii-directory/src/functions/skills.rs
  • iii-directory/src/hook.rs
  • iii-directory/src/main.rs
  • iii-directory/src/trigger_types.rs
  • image-resize/Cargo.toml
  • image-resize/src/main.rs
  • llm-router/Cargo.toml
  • llm-router/src/config/entry.rs
  • llm-router/src/provider_scaffold/mod.rs
  • llm-router/src/provider_scaffold/registration.rs
  • llm-router/src/register.rs
  • llm-router/src/surface.rs
  • llm-router/src/triggers.rs
  • llm-router/src/types/errors.rs
  • llm-router/tests/integration.rs
  • lsp/Cargo.toml
  • lsp/src/analyzer.rs
  • mcp/Cargo.toml
  • mcp/src/main.rs
  • mcp/tests/common/engine.rs
  • memory-consolidate/Cargo.toml
  • memory-consolidate/src/configuration.rs
  • memory-consolidate/src/main.rs
  • memory/Cargo.toml
  • memory/src/configuration.rs
  • memory/src/events.rs
  • memory/src/main.rs
  • opencode/package.json
  • opencode/src/configuration.ts
  • opencode/tests/_helpers/fake-iii.ts
  • opencode/tests/configuration.test.ts
  • openwiki/package.json
  • openwiki/src/lib/configuration.mjs
  • openwiki/tests/config.test.mjs
  • pdf/Cargo.toml
  • pdf/src/configuration.rs
  • pi/package.json
  • pi/src/configuration.ts
  • pi/tests/_helpers/fake-iii.ts
  • pi/tests/configuration.test.ts
  • pnpm-workspace.yaml
  • provider-anthropic/Cargo.toml
  • provider-anthropic/src/errors.rs
  • provider-anthropic/src/register.rs
  • provider-anthropic/tests/integration.rs
  • provider-claude-code/Cargo.toml
  • provider-claude-code/src/errors.rs
  • provider-claude-code/src/register.rs
  • provider-claude-code/src/router_client.rs
  • provider-deepseek/Cargo.toml
  • provider-deepseek/src/errors.rs
  • provider-deepseek/src/register.rs
  • provider-deepseek/tests/integration.rs
  • provider-github-copilot/Cargo.toml
  • provider-github-copilot/src/errors.rs
  • provider-github-copilot/src/register.rs
  • provider-github-copilot/tests/integration.rs
  • provider-kimi/Cargo.toml
  • provider-kimi/src/errors.rs
  • provider-kimi/src/register.rs
  • provider-kimi/tests/integration.rs
  • provider-llamacpp/Cargo.toml
  • provider-llamacpp/src/errors.rs
  • provider-llamacpp/src/register.rs
  • provider-llamacpp/tests/integration.rs
  • provider-openai-codex/Cargo.toml
  • provider-openai-codex/src/errors.rs
  • provider-openai-codex/src/register.rs
  • provider-openai-codex/src/router_client.rs
  • provider-openai/Cargo.toml
  • provider-openai/src/errors.rs
  • provider-openai/src/register.rs
  • provider-openai/tests/integration.rs
  • provider-opencode-go/Cargo.toml
  • provider-opencode-go/src/errors.rs
  • provider-opencode-go/src/register.rs
  • provider-opencode-go/tests/integration.rs
  • provider-openrouter/Cargo.toml
  • provider-openrouter/src/errors.rs
  • provider-openrouter/src/register.rs
  • provider-openrouter/tests/integration.rs
  • provider-xai/Cargo.toml
  • provider-xai/src/configuration.rs
  • provider-xai/src/errors.rs
  • provider-xai/src/register.rs
  • provider-xai/tests/integration.rs
  • provider-zai/Cargo.toml
  • provider-zai/src/errors.rs
  • provider-zai/src/register.rs
  • provider-zai/tests/integration.rs
  • pubsub/Cargo.toml
  • pubsub/src/configuration.rs
  • pubsub/src/trigger.rs
  • pubsub/tests/e2e_pubsub.rs
  • queue/Cargo.toml
  • queue/README.md
  • queue/src/adapter.rs
  • queue/src/adapters/builtin.rs
  • queue/src/adapters/memory.rs
  • queue/src/adapters/rabbitmq/adapter.rs
  • queue/src/adapters/redis.rs
  • queue/src/boot.rs
  • queue/src/configuration.rs
  • queue/src/functions.rs
  • queue/src/main.rs
  • queue/src/runtime.rs
  • queue/src/trigger.rs
  • queue/tests/e2e_durability.rs
  • queue/tests/e2e_rabbitmq.rs
  • rbac-proxy/Cargo.toml
  • rbac-proxy/src/configuration.rs
  • sandbox-code-runner/Cargo.toml
  • sandbox-code-runner/src/configuration.rs
  • sandbox-code-runner/ui/package.json
  • scrapling/pyproject.toml
  • scrapling/src/configuration.py
  • scrapling/tests/test_configuration.py
  • session-manager/Cargo.toml
  • session-manager/src/configuration.rs
  • session-manager/src/events.rs
  • session-manager/src/resync.rs
  • session-manager/tests/steps/binding_steps.rs
  • session-manager/tests/steps/bridge_steps.rs
  • session-manager/tests/steps/engine_steps.rs
  • shell/Cargo.toml
  • shell/src/configuration.rs
  • shell/src/ui.rs
  • slack/Cargo.toml
  • slack/src/configuration.rs
  • slack/src/functions/bindings.rs
  • slack/src/ingress.rs
  • state/Cargo.toml
  • state/src/configuration.rs
  • state/src/trigger.rs
  • state/tests/e2e_state.rs
  • storage/Cargo.toml
  • storage/src/configuration.rs
  • storage/tests/integration.rs
  • telegram-bot/Cargo.toml
  • telegram-bot/src/approval_gate.rs
  • telegram-bot/src/configuration.rs
  • telegram-bot/src/functions/mod.rs
  • web/Cargo.toml
  • web/src/configuration.rs
  • workers-dev/Cargo.toml
  • workflow/Cargo.toml
  • workflow/src/configuration.rs
  • worktree/Cargo.toml
  • worktree/src/configuration.rs
  • worktree/src/events.rs
  • worktree/src/main.rs
  • worktree/tests/support/mod.rs

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/new-sdk-migration

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Jul 27, 2026 •

Copy link
Copy Markdown
Contributor

skill-check — worker

0 verified, 61 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
@guibeira guibeira added the no-ticket PR deliberately has no Linear ticket (bump/typo/CI-only) label Jul 27, 2026
@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
@guibeira
guibeira force-pushed the feat/new-sdk-migration branch from b62355b to 8b60e96 Compare July 31, 2026 23:23
# Conflicts:
#	crates/provider-integration-testkit/Cargo.lock
#	fp/Cargo.toml
#	fp/src/guidance.rs
#	sandbox-code-runner/src/functions/mod.rs
#	web/src/configuration.rs
#	workflow/Cargo.toml
#	workflow/src/configuration.rs
#	workflow/src/functions/inject_guidance.rs
#	workflow/src/functions/stamp_reply.rs
@guibeira guibeira changed the title feat: migrate workers to namespace-aware iii-sdk 0.23.0-rc.1 chore: migrate workers to iii SDK 0.23.0-rc.2 Aug 18, 2026
# Conflicts:
#	browser/Cargo.toml
#	harness/src/turn_loop.rs
#	iii-directory/Cargo.lock
#	iii-directory/Cargo.toml
#	llm-router/tests/integration.rs

This branch was successfully deployed

2 active deployments
Preview – workers-tech-spec — 5586564a Deployed Aug 19, 2026 by vercel[bot]
Preview – workers — 5586564a Deployed Aug 19, 2026 by vercel[bot]
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