@cloudflare/think@0.9.1
Patch Changes
-
#1754
151d457Thanks @threepointone! - Add Browser Run Quick Actions to the browser tools: stateless, one-shot
browsing that needs only thebrowserbinding — no Durable Object, loader, or
sandbox. New primitives inagents/browser(browserMarkdown,
browserExtract,browserLinks,browserScrape,browserContent,
browserSnapshot,browserScreenshot,browserPdf, plusrunQuickAction)
wrap thequickAction()binding and unwrap its{ success, result }envelope.
A newcreateQuickActionTools({ browser })(fromagents/browser/ai) returns
AI SDK tools (browser_markdown,browser_extract,browser_links,
browser_scrape, opt-inbrowser_content) so an agent can read a page as
Markdown, extract structured data with AI, or list/scrape elements in a single
call. Every result is bounded tomaxChars(text truncated, oversized
arrays/objects summarized) to protect the context window, and host-only request
options (cookies,authenticate,gotoOptions,viewport, …) can be passed
once viaoptionsfor authenticated or JavaScript-heavy pages without exposing
them to the model.createBrowserTools/createBrowserRuntimenow expose these tools alongside the
durablebrowser_executetool by default whenever abrowserbinding is
present (passquickActions: falseto opt out), and they resolvectxfrom the
current Agent viagetCurrentAgent()soctxno longer has to be passed
explicitly from inside an Agent. Result bounding is shape-stable — arrays stay
arrays (trimmed), so the model sees a consistent type, except when even the
first element overflows the budget, where the result degrades to the
truncated-preview summary rather than a misleading empty array.
runQuickAction'sparamsare now typed per action.@cloudflare/think/tools/browserre-exports
createQuickActionToolsand the Quick Action primitives/types so a Think agent
can expose them fromgetTools()with a single import. Quick Actions require a
Workercompatibility_dateof2026-03-24+ andremote: trueon the browser
binding for localwrangler dev. -
#1754
151d457Thanks @threepointone! - Align the streamed assistant message id with the persisted id during chat streaming. Providers that emit nostart.messageId(e.g. Workers AI) previously left the client to generate its own id, so the live stream and the persisted message broadcast couldn't reconcile by id and the originating tab briefly rendered the turn twice before collapsing. Thestartchunk is now stamped with the allocated assistant id for new turns (continuations are unaffected). Mirrors the same fix in@cloudflare/ai-chat. -
#1754
151d457Thanks @threepointone! - Bump the defaultcompatibility_dateused when generating a Think app's Worker
config (createThinkWorkerConfig) from2026-01-28to2026-06-11. Apps that
setcompatibility_datein their ownwrangler.jsoncare unaffected; this only
changes the fallback used when none is specified.