Minor Changes
-
#13955 a2ef1a3 Thanks @G4brym! - Add support for the new web_search binding kind.
Cloudflare Web Search is a managed, zero-setup web discovery primitive for agents and Workers. Declare the binding as a single object in
wrangler.jsonc:There is exactly one shared web corpus, so there is no namespace, instance, or other field to specify -- only the variable name. The binding exposes a single
search()method that returns URLs and catalog metadata for a query. Web Search is discovery-only -- to read a result's content the caller invokes the globalfetch()API against the result'surl.The binding is always remote in local development: Miniflare proxies to the production Web Search service via the remote-bindings transport. Adds the
websearch.runOAuth scope towrangler login.Also adds a
wrangler websearch searchcommand for running ad-hoc queries from the CLI:npx wrangler websearch search "cloudflare workers" npx wrangler websearch search "cloudflare workers" --limit 5 npx wrangler websearch search "cloudflare workers" --json
--limitis optional (defaults to 10, capped at 20).--jsonprints the raw response; without it the results render as a pretty table. -
#13610
cbb39bdThanks @petebacondarwin! - Add support foragent_memorybindingsAgent Memory bindings allow Workers to connect to Cloudflare's Agent Memory service for storing and retrieving agent conversation state. This binding is remote-only, meaning it always connects to the Cloudflare API during
wrangler devrather than using a local simulation.To configure an
agent_memorybinding, add the following to yourwrangler.json:{ "agent_memory": [ { "binding": "MY_MEMORY", "namespace": "my-namespace", }, ], }Wrangler will automatically provision the namespace during deployment if it does not already exist. Type generation via
wrangler typesis also supported.This change also adds the
agent-memory:writeOAuth scope to Wrangler's default login scopes, sowrangler logincan request the permissions needed to provision and manage Agent Memory namespaces. -
#13610
cbb39bdThanks @petebacondarwin! - Addwrangler agent-memory namespacecommandsThe following commands have been added for managing Agent Memory namespaces:
wrangler agent-memory namespace create <namespace> wrangler agent-memory namespace list [--json] wrangler agent-memory namespace get <namespace_name> [--json] wrangler agent-memory namespace delete <namespace_name> [--force]
-
#14071
f623ae4Thanks @sherryliu-lsy! - Add confirmation prompt towrangler containers images deletePreviously, running
wrangler containers images delete IMAGE:TAGwould delete the image immediately with no confirmation. The command now prompts for confirmation before deleting. Use-yor--skip-confirmationto bypass the prompt in non-interactive or scripted environments. -
#13860
c8c7ec0Thanks @oliy! - Renamepipelinefield tostreamin pipeline bindings configurationThe
pipelinefield insidepipelinesbindings has been renamed tostreamto align with the updated API wire format. The oldpipelinefield is still accepted but deprecated and will emit a warning.Before:
// wrangler.json { "pipelines": [ { "binding": "MY_PIPELINE", "pipeline": "my-stream-name", }, ], }
After:
// wrangler.json { "pipelines": [ { "binding": "MY_PIPELINE", "stream": "my-stream-name", }, ], }
-
#13960
39d8717Thanks @cmackenzie1! - Allow pipeline, stream, and sink commands to resolve resources by name with pagination-aware lookups. -
#14019
ee56ec0Thanks @danielrs! - Support deleting secrets viawrangler secret bulk
You can now delete secrets in bulk by setting their value tonullin the JSON input file:{ "SECRET_TO_DELETE": null, "SECRET_TO_UPDATE": "new-value" } -
#14091
4c0da7bThanks @gpanders! - Add ProxyCommand support forwrangler containers sshwrangler containers sshnow automatically switches to a stdio proxy when invoked by OpenSSH'sProxyCommand, and--stdiocan force this mode. This lets users connect withssh <instance_id>when their SSH config uses Wrangler as the proxy command. -
#13892
13cbadbThanks @penalosa! - Remove the deprecatedexperimental.testModeoption fromunstable_devexperimental.testModepreviously only affected the defaultlogLevel(warnwhentestMode: true,logotherwise) and has been flagged for removal in its type-definition comment since it landed. It is now removed, andunstable_dev's default log level matcheswrangler dev's (log).Callers that explicitly passed
testMode: trueto get quieter logs should now setlogLevel: "warn"directly.
Patch Changes
-
#14016
408432aThanks @petebacondarwin! - report all failing triggers from a single deploywrangler deploydeploys several kinds of trigger in parallel (routes, custom domains, schedules, queue producers/consumers, workflows). Previously, if one of those API calls failed, the first rejection short-circuited the rest, no other deployments were reported, and (in the case of custom-domain confirmation conflicts) some failures were silently logged to stdout without the deploy actually failing.wrangler deploynow waits for every trigger deployment to settle, prints every successfully-deployed target (so you still see what landed), and then throws a single error listing every trigger that failed.Note that this also turns the previously-silent "user declined to override a conflicting Custom Domain" case into a hard failure of
wrangler deploy, which matches what was always implied by the message ("Publishing to Custom Domain ... was skipped, fix conflict and try again"). -
#14125
1103c07Thanks @dario-piotrowicz! - Bumprosie-skillsfrom0.7.6to0.8.1and bundle it into the Wrangler outputThe new version of
rosie-skillsis a pure-TypeScript rewrite that removes the previously necessary ~600kb WASM binary. The package now ships only JavaScript with one minimal dependencies (modern-tar).Additionally,
rosie-skillsis now bundled directly into Wrangler's distributable rather than kept as an external runtime dependency. This eliminates the supply chain concern raised in #14110: there is no separate package to resolve at install time, since all code is inlined into Wrangler's build output. -
#14135
5b5cbd3Thanks @Refaerds! - Update the generated type for browser bindings toBrowserRunWhen running
wrangler types, browser bindings were previously typed as the genericFetcher. They now generate the more specific and accurateBrowserRuntype. -
#14068
2c1d8b2Thanks @dario-piotrowicz! - Bumprosie-skillspackage from 0.6.3 to 0.7.6 -
#14062
ce4eb20Thanks @dario-piotrowicz! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
Dependency From To workerd 1.20260526.1 1.20260527.1 -
#14076
97d7d81Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
Dependency From To workerd 1.20260527.1 1.20260528.1 -
#14100
c647cccThanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
Dependency From To workerd 1.20260528.1 1.20260529.1 -
#13815
5fa3de6Thanks @penalosa! - Disable Sentry error reporting by defaultWRANGLER_SEND_ERROR_REPORTSnow defaults tofalseinstead of prompting on every error. The current prompt produces too many false-positive reports. Users can still opt in explicitly by settingWRANGLER_SEND_ERROR_REPORTS=true. -
#14074
37176e5Thanks @MattieTK! - Fixwrangler setupfailing for Vite projects without a config filewrangler setup(andwrangler deploy --experimental-autoconfig) crashed with "Could not find Vite config file to modify" for Vite projects that don't have avite.config.jsorvite.config.ts. This affected 6 of the 16create-vitetemplates:vanilla,vanilla-ts,react-swc,react-swc-ts,lit, andlit-ts.Autoconfig now creates a minimal Vite config with the Cloudflare plugin when no config file exists, instead of failing. The file extension (
.tsor.js) is chosen based on whether the project has atsconfig.json. -
#14026
66d86baThanks @matingathani! - Show helpful message with URL when browser cannot be opened in headless/container environmentsPreviously, running
wrangler login(or any command that opens a browser) in headless Linux environments withoutxdg-openinstalled would crash with a confusing "A file or directory could not be found — Missing file or directory: xdg-open" error.Now wrangler catches the error and prints a clear warning with the URL so users can copy-paste it into a browser manually.
-
#14020
9dee4ccThanks @shiminshen! -wrangler secrets-store secret createandsecret updatenow reject secret values larger than 64 KiB (65,536 bytes) with a clear error before calling the Cloudflare API. Previously the CLI accepted them, the secret appeared insecret list, and the failure surfaced later (and confusingly) at worker deploy time as a "secret doesn't exist" error against the binding. 64 KiB is the cap enforced by the API; the CLI now enforces it at the same boundary. -
#14059
b64b7e4Thanks @matingathani! - Fixwrangler kv bulk getprinting "Success!" to stdout, which corrupted JSON output when piped to tools likejq -
#14002
e4c8fd9Thanks @danyalahmed1995! - Show a clear error for invalid API token header charactersWrangler now detects API tokens containing characters that cannot be sent in the HTTP Authorization header before making an API request. This avoids a low-level ByteString conversion error and helps users recreate or recopy the token without printing the token value.
-
#14132
2dffeebThanks @dario-piotrowicz! - Adapt React Router autoconfig based onv8_middlewarefuture flagThe React Router autoconfig (
wrangler setup) now detects whetherv8_middleware: trueis set in the user'sreact-router.config.ts. When it is, the generatedworkers/app.tsuses a simplified fetch handler withoutAppLoadContextmodule augmentation, and the generatedapp/entry.server.tsxomits the_loadContextparameter. Whenv8_middlewareis not set, the existingAppLoadContextpattern withenv/ctxparams is preserved.This avoids breaking projects that use the
v8_middlewarefuture flag (which changes the context API fromAppLoadContexttoRouterContextProvider), while keeping the traditional pattern for projects that haven't opted in. -
#14133
59e43e4Thanks @matingathani! - Fixwrangler whoamiprinting a trailing period after the api-tokens URLThe message
To see token permissions visit https://...api-tokens.ended with
a period that became part of the URL when clicked in terminals or GitHub Actions
output, causing a 404. The period is removed and a comma added before "visit"
so the sentence reads naturally without a trailing period on the URL. -
Updated dependencies [
a2ef1a3,cbb39bd,7bb5c7a,c8c7ec0,97d7d81,c647ccc,ce4eb20,0ce88ea,972d13d]:- miniflare@4.20260529.0
{ "web_search": { "binding": "WEBSEARCH" }, }