Skip to content

v0.5.3

Choose a tag to compare

@github-actions github-actions released this 11 May 14:17
· 838 commits to main since this release

Upgrade notes

Breaking changes

None.

Upgrade notes

v0.5.3 is a maintenance release focused on chat reliability: the recommended Ollama Cloud reasoning model was swapped after the previous default soft-deprecated upstream, model errors now surface as actionable in-chat bubbles instead of raw HTTP 500s, and the chat layout was restructured so per-agent runtimes survive in-app navigation. File attachments also got a proper preview surface.

Upgrade with the standard flow:

cd /opt/pinchy
sed -i 's/PINCHY_VERSION=v0.5.2/PINCHY_VERSION=v0.5.3/' .env
docker compose pull && docker compose up -d

No database migration, no docker-compose.yml change, and no env-var changes are required.

Default Ollama Cloud reasoning model swapped

ollama-cloud/kimi-k2-thinking is removed from the curated model list. The model began returning silent HTTP 500s from Ollama Cloud and is no longer a safe default. Agents that resolve via tier=reasoning now fall through to deepseek-v4-pro, which is already configured and tested.

Existing agents that pinned kimi-k2-thinking explicitly keep loading from the database — but the next request will fail upstream. Open Settings → Agent → Model for each affected agent and pick a working model. The new in-chat error surface (below) makes those agents easy to spot.

Actionable model-error bubbles in chat

When an agent's model call returns a 5xx from the upstream provider, the chat now shows a structured error bubble (<Agent> couldn't respond. + provider/model + a deep-link to the agent's model picker) instead of the raw HTTP 500: "Internal Server Error (ref: …)" string. The original error stays available under a collapsible Technical details section so support requests can still cite the upstream ref ID. Every flip into this error state writes an agent.model_unavailable audit entry.

Per-agent chat runtimes survive in-app navigation

Switching between agents in the sidebar no longer tears down and recreates the chat runtime: a new ChatSessionProvider mounts one runtime per agent at the (app) layout level, so streams in-flight on agent A keep running while you read agent B's history. The sidebar shows a subtle pulse on agents with an active turn and a red dot on agents that ended in an error, so background activity is visible without opening every chat.

Existing behavior is preserved on full page reloads: history still rehydrates from OpenClaw, the bundled history cap is now 200 messages, and a transient disconnect bubble shows when the WebSocket drops mid-stream.

Attachment preview and composer chips

Non-image attachments (PDFs and other files) now render as a filename chip in the composer and on sent messages, with the full filename available on hover. Clicking an attachment opens an in-app AttachmentPreview modal with PDF and image preview, instead of forcing a download. The uploads route is now authenticated for both POST and GET, and PDFs/images are routed through OpenClaw's built-in tools rather than inlined.

Background-run audit telemetry

Chat runs that complete while the user is not actively viewing the agent now emit a chat.background_run_completed audit event with the agent identity, run duration, and turn outcome. This makes background activity auditable without leaking conversation content into the audit log.

What's Changed

  • docs(ollama): fix option B/C URL — bare service name fails OpenClaw allowlist by @clemenshelm in #295
  • fix(chat): keep draining OpenClaw stream after browser disconnect (#199 Layer B) by @clemenshelm in #297
  • fix(screenshots): bump chat-ready timeout to 90s by @clemenshelm in #303
  • docs(llm-providers): Ollama Cloud silent-500 troubleshooting + fast-uri CVE bump by @clemenshelm in #312
  • fix: WS frame limit for image attachments by @clemenshelm in #307
  • test(#199): regression guards + E2E for Layer A history-reload path by @clemenshelm in #311
  • fix(onboarding-prompt): reference tools by their prefixed names by @clemenshelm in #317
  • test(setup-provider): guard against process.exit regression (#177) by @clemenshelm in #318
  • fix: drop kimi-k2-thinking + actionable model-error UX (closes #305) by @clemenshelm in #315
  • feat: PDF and audio file attachments in chat composer by @clemenshelm in #316
  • fix(chat): suppress NO_REPLY silent-reply sentinel from chat UI by @clemenshelm in #322
  • feat(chat): in-app navigation chat persistence + sidebar indicators (#199) by @clemenshelm in #319
  • docs(upgrading): freeze v0.5.2 section + add v0.5.3 upgrade notes by @clemenshelm in #323
  • fix(chat): HEAD-probe attachment URL before mounting preview (race seen on staging) by @clemenshelm in #325
  • fix(chat): forward agent.model as provider/model to fix vision uploads by @clemenshelm in #327

Full Changelog: v0.5.2...v0.5.3