releases.shpreview

Email Routing addresses in config; DO storage access in test harness

wrangler@4.112.0

July 17, 2026Workers SDKView original ↗
3 features2 enhancements1 fixThis release3 featuresNew capabilities2 enhancementsImprovements to existing features1 fixBug fixesAI-tallied from the release notes
From the original release noteView original ↗

Minor Changes

  • #14470 3de70df Thanks @DiogoSantoss! - Add a top-level addresses field to Wrangler configuration for Email Routing

    You can now declare the inbound email addresses handled by your Worker directly in wrangler.json:

    {
      "name": "my-worker",
      "main": "src/index.ts",
      "compatibility_date": "2026-05-21",
      "addresses": ["support@example.com", "*@example.com"]
    }
  • #14706 cb6c3f9 Thanks @edmundhung! - Add Durable Object storage access to createTestHarness()

    You can now execute SQL against a SQLite-backed Durable Object to seed or assert the storage state.

    const server = createTestHarness({
      workers: [{ configPath: "./wrangler.json" }],
    });
    await server.listen();
    
    const worker = server.getWorker();
    const storage = await worker.getDurableObjectStorage("COUNTER", {
      name: "user-123",
    });
    
    await worker.fetch("/counter/user-123");
    
    const rows = await storage.exec(
      "SELECT value FROM counters WHERE id = ?",
      "user-123"
    );
    expect(rows).toEqual([{ value: 1 }]);
  • #14562 9f04a7e Thanks @martijnwalraven! - Emit a typed runtimeError event on the unstable_startWorker DevEnv for uncaught Worker exceptions

    Uncaught Worker exceptions were only source-mapped and printed, so programmatic consumers had to scrape terminal output to observe them. The DevEnv now re-emits a RuntimeErrorEvent (like reloadComplete) carrying the exception text and source-mapped stack — fed from Miniflare's pretty-error seam via the new handleUncaughtError option for exceptions the runtime catches, and from the inspector for those it does not.

Patch Changes

  • #14682 d39ae01 Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"

    The following dependency versions have been updated:

    DependencyFromTo
    @cloudflare/workers-types^5.20260710.1^5.20260714.1
    workerd1.20260710.11.20260714.1
  • #14725 c79504f Thanks @edmundhung! - Support containers in createTestHarness()

    Workers configured with containers can now be tested using createTestHarness(). The harness builds configured images and makes container-backed Durable Objects available during integration tests.

  • #14696 c7dbe1a Thanks @martijnwalraven! - Type unstable_startWorker, DevEnv.startWorker, and ConfigController.set/patch against WranglerStartDevWorkerInput, so the wrangler-specific dev.structuredLogsHandler field the runtime already honors is expressible through the public API. Previously the public signatures took the base StartDevWorkerInput, and callers passing the handler needed a cast while internal callers (the test harness) routed the wider type around the signature.

  • #14494 4e1a7a7 Thanks @petebacondarwin! - Register a workers.dev subdomain before uploading a new Worker

    Deploying a Worker for the first time on an account that has no workers.dev subdomain failed with an opaque API error raised by the upload request itself (code 10063, "You need a workers.dev subdomain in order to proceed"). Wrangler now checks for a workers.dev subdomain before uploading a brand-new Worker that publishes to workers.dev and prompts you to register one, so you get a clear, actionable message instead of a cryptic API failure. The check is skipped for deploys that don't target workers.dev (routes-only deploys, or workers_dev: false) and for existing Workers, since their account already has a subdomain.

  • Updated dependencies [34e696d, d39ae01, 9f04a7e, 9f04a7e, cb30df3, cb6c3f9, 3f3afbb, e6fbc4e]:

    • miniflare@4.20260714.0

Fetched July 17, 2026

Email Routing addresses in config; DO storage access in… — releases.sh