Skip to content

Code Mode v2 — rollout tracker #12

@pratikbin

Description

@pratikbin

Tracker for the v2 cutover. PR: #11.

Cross-repo dependency

Backend gate must merge first: autogen-backend-v2#451 (private) — adds operationId CI gate required by the MCP sidecar's typed SDK codegen.

Pre-merge

Build + publish images

  • docker build -t <registry>/createos-mcp:v2.0.0-rc1 .
  • docker build -t <registry>/createos-mcp-workerd:v2.0.0-rc1 codemode/workerd
  • Push both to internal registry
  • (Optional) Mirror createos-mcp:v2.0.0-rc1 to a public mirror if community needs it

Staging

  • Apply k8s/pod-v2.yaml in staging
  • Pod becomes Ready (/readyz 200, workerd /health 200)
  • bun scripts/smoke.ts against staging URL: ok=50/50, p50<500 ms, p95<2000 ms
  • Manual: real Claude Code session against staging-v2 — deploy a sample Next.js project with ≤6 MCP tool calls
  • bun scripts/soak.tsfailed=0 over 1000 requests
  • Internal team usage for 1 week. Track:
    • tool-call distribution (search vs execute vs pollJob vs natives)
    • ApiError rate
    • wall-timeout count (should be 0 for typical workloads)
    • hot endpoints among the 87 long-tail (consider promoting back to native if any clearly belong on the fast path)

Pre-prod

  • No regressions vs v1 over the 1-week soak
  • Tag prior v1 commit on main as v1.x.y-final
  • Build + push final createos-mcp:v2.0.0 + createos-mcp-workerd:v2.0.0 images

Production rollout (blue-green)

  • 5% traffic → wait 30 min, watch metrics
  • 25% → wait 1 hour
  • 50% → wait 2 hours
  • 100%
  • Halt + rollback if errorKind:infra or overall error rate rises above v1 baseline at any step

Post-rollout

  • Decommission v1 image after 1 incident-free week
  • Tag v2.0.0 on main
  • Merge feat/code-mode-v2main
  • Update README to reflect v2 as the supported surface

Known limitations

  • workerd 2026 has no synchronous isolate.terminate(). Wall-timeout (600 s) and dispatcher dispose sever the api-proxy callback, so runaway code's further calls surface as ProxyError, but the V8 isolate continues until the Worker Loader's LRU evicts it. Upstream tracking: cloudflare/workerd.
  • ConfigMap for MCP config (mounted at /etc/createos) must be created in each cluster; example structure documented in k8s/pod-v2.yaml.

Linked

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions