Skip to content

v0.11.0 - automatic web search and prompt caching

Choose a tag to compare

@yoloyash yoloyash released this 26 Jul 18:46
· 208 commits to main since this release

What's changed

  • Reworked web search around automatic tool choice. Tool-capable models now decide when to search instead of requiring a per-chat toggle, with a one-message Search action in the composer for forcing it and a persistent hard-disable under Settings → Tools.
  • Added a per-model Tool calling switch (migration 0004) so models without tool support can be excluded from tool-bearing requests. The connection tester now verifies an actual tool call when the switch is on.
  • Added provider prompt caching: Anthropic cache breakpoints on the system prefix and the latest user turn, and a stable per-chat promptCacheKey for OpenAI derived from a hash of the chat ID. The prompt is append-only so prior prefixes stay byte-for-byte reusable.
  • Surfaced cache accounting in message stats — uncached input, cache read, and cache write tokens.
  • Replaced the per-request runtime-context block with a date-only Current date: line resolved against a validated client time zone, keeping the system prefix cache-stable across turns.
  • Rewrote the citation instructions and anchor scheme so anchors address the search call and result index (turnNsearchI), fixing attribution when a response performs more than one search.
  • Upgraded the Vercel AI SDK from v6 to v7 across web, mobile, and shared, moving chat execution onto ToolLoopAgent with createUIMessageStreamResponse.
  • Expanded model brand icon coverage and model-ID matching to more top providers.
  • Added a ?q= shortcut for starting a new chat from a URL, normalizing repeated and blank values and waiting for a valid selected model before submitting.
  • Restructured the chat title prompt as a single labelled task with the user's message fenced at the end, which stops markdown formatting and conversational replies from leaking into titles.
  • Updated the default Compose app image to 0.11.0.

Upgrade note

Migration 0004 runs on startup and adds tool_calling_enabled, defaulting to on for existing model configurations.

Web search is now automatic and on by default, where it used to be opt-in per chat. Turn it off under Settings → Tools, or switch off Tool calling for a model that can't use tools — otherwise its connection test will fail, since the test now requires a real tool call. Older Android clients keep working and will start searching once the server is upgraded.

One caveat if you self-host inference: the Search action and the connection test both send tool_choice: "required", and vLLM's XML-format tool parsers (poolside_v1, GLM-4) silently downgrade that to auto instead of erroring — so on a model like Laguna S2.1, automatic search works but forcing it doesn't, and the connection test can fail on a model whose tool calls are otherwise fine. Nothing to fix on this side; see vllm-project/vllm#47175.

Validation

npm run test (166), lint, typecheck, build, deps:check, docker compose config, docker build. Playwright smoke against the standalone server with live Gemini streaming. Upgraded a v0.10.0-era database to confirm 0004 applies and existing model configurations survive.

Image

  • ghcr.io/yoloyash/overtchat-app:0.11.0
  • ghcr.io/yoloyash/overtchat-app:latest
  • Platforms: linux/amd64 and linux/arm64

Full Changelog: v0.10.0...v0.11.0