Skip to content

fix: SDK bridge vision + docker timeout/env (containerised-api updates)#20

Closed
cfoucher wants to merge 6 commits into
standardagents:mainfrom
cfoucher:containerised-api
Closed

fix: SDK bridge vision + docker timeout/env (containerised-api updates)#20
cfoucher wants to merge 6 commits into
standardagents:mainfrom
cfoucher:containerised-api

Conversation

@cfoucher

Copy link
Copy Markdown

Summary

  • Vision: Pass images to the SDK bridge via a separate images array (not base64 embedded in the prompt), enable NDJSON stream draining, set promptAlreadyPrepared, and raise the bridge JSON body limit default — fixes OpenClaw/WhatsApp vision (Request body too large, "I don't see a photo").
  • Docker: Raise bridge timeout defaults to 6 min, wire CURSOR_BACKEND_BASE_URL / chat endpoints for direct vision transport (issue Documentation: how to obtain CURSOR_BACKEND_BASE_URL, CURSOR_CHAT_ENDPOINT, and CURSOR_LOCAL_AGENT_ENDPOINT values #13), and set CURSOR_SDK_BRIDGE_MAX_JSON_BYTES=16MB in compose.

Commits

  • 654b791 fix: deliver SDK bridge vision via images array and streaming NDJSON
  • 28f3651 fix: raise docker bridge timeouts and wire Cursor backend env vars

Note

This extends the self-hosted/docker work in #17. If #17 merges first, these two commits can be cherry-picked onto that branch on MRDGH2821/composer-api.

Test plan

  • npm test (232 tests pass in docker)
  • OpenClaw WhatsApp photo Q&A end-to-end (Composer vision ~17–20s)
  • Voice note STT transcription verified

Made with Cursor

MRDGH2821 and others added 6 commits June 4, 2026 07:28
Add Docker Compose deployment with a Node API server and SDK bridge,
route non-Composer models to SDK tool prompts, and parse legacy Kimi
tool markers in the bridge so Gemini, Kimi, and Grok execute tools.

Co-authored-by: Cursor <cursoragent@cursor.com>
Treat ConnectRPC abort errors as benign after capturing client tool calls,
and add develop.watch rules to sync api and bridge code during development.

Co-authored-by: Cursor <cursoragent@cursor.com>
Fetch Cursor's model catalog for authenticated /v1/models requests,
rename default to auto in the list, and sort merged results by id.

Co-authored-by: Cursor <cursoragent@cursor.com>
OpenClaw and other clients send base64 image payloads that exceeded the
bridge JSON limit and never reached Agent.send as native vision input.
Strip embedded images from the bridge prompt, pass them in a separate
images field, enable streamEvents draining, and mark prompts as already
prepared to avoid double-wrapping.

Co-authored-by: Cursor <cursoragent@cursor.com>
Self-hosted OpenClaw vision runs need longer bridge timeouts and the
api2 backend endpoints for direct chat transport. Also raise the bridge
JSON body limit default for large agent contexts with images.

Co-authored-by: Cursor <cursoragent@cursor.com>
@cfoucher

Copy link
Copy Markdown
Author

Closing — these commits belong on the existing #17 branch (MRDGH2821:containerised-api), not as a duplicate fork PR. Pushing to origin/containerised-api will update #17 directly.

@cfoucher cfoucher closed this Jun 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants