openpencil/crates
ganondev db93a2ac74
fix(mcp): return get_screenshot as MCP ImageContent block (#205)
The get_screenshot MCP tool serialized its PNG through OkJson, which
wraps the payload in a text content block. Vision-capable MCP clients
(Copilot, Claude Code) therefore received a large base64 string as text
instead of an image, making the screenshot unusable for visual reasoning
(openpencil issue #204).

- Add ToolOutcome::OkImageContent carrying base64 + mime_type plus an
  optional metadata JSON string
- Thread an optional ImageContent through ToolResponse::Ok and emit it
  as an MCP {"type":"image","data":...,"mimeType":...} content
  block in tool_response_to_json before any text block
- get_screenshot now returns OkImageContent (image/png) while retaining
  image_base64 in its text metadata for the in-app chat-agent path
- Update the get_screenshot schema description to state the use case
  (PNG image for visual verification) without the base64 implementation
  detail
2026-08-10 06:16:27 +08:00
..
op-acp fix(services): carry cli output into failures as bounded redacted tails 2026-08-09 02:22:02 +08:00
op-ai feat(editor): chat panel round — chips, thinking, caret, hover card 2026-08-09 02:22:02 +08:00
op-ai-skills fix(ai): compare the CJK tracking cap as a ratio, not a rounded number 2026-08-09 21:16:35 +08:00
op-auth-bridge fix(collab): rotate production trust roots safely 2026-08-09 17:17:08 +08:00
op-chrome-extension-core feat(web): chrome extension offline download emits a ready-to-open .op file 2026-08-05 22:15:09 +08:00
op-cli chore: bump version to 0.8.3 2026-08-06 21:15:39 +08:00
op-codegen refactor: typed error enums across the whole workspace 2026-07-27 21:09:06 +08:00
op-collab chore(rust): align workspace checks 2026-08-01 16:19:26 +08:00
op-collab-host fix(collab): rotate production trust roots safely 2026-08-09 17:17:08 +08:00
op-collab-policy-file fix(collab): rotate production trust roots safely 2026-08-09 17:17:08 +08:00
op-collab-relay-client fix(collab): close review follow-ups and align the reauth budget test 2026-08-01 11:42:10 +08:00
op-collab-relay-control-plane refactor(collab): split the control-plane pairing wire tests 2026-08-03 21:05:11 +08:00
op-collab-relay-locator-hsm fix(collab): make the hsm relay locator unix-only 2026-08-09 02:22:02 +08:00
op-collab-relay-locator-server fix(collab): rotate production trust roots safely 2026-08-09 17:17:08 +08:00
op-collab-relay-protocol feat(collab): replace public invites with 10-char region-tagged pairing codes 2026-08-02 08:31:13 +08:00
op-collab-relay-server fix(collab): rotate production trust roots safely 2026-08-09 17:17:08 +08:00
op-collab-smoke fix(desktop): update collab smoke to the PeerIdentityPolicy admission API 2026-08-08 22:59:05 +08:00
op-collab-transport fix(collab): clamp kernel keepalive to whole seconds 2026-08-09 02:22:02 +08:00
op-config-store test(desktop): keep persistence tests out of the real user config 2026-07-28 00:29:39 +08:00
op-design-lint refactor(agent): move the surface classifier below the orchestrator 2026-08-09 19:56:12 +08:00
op-editor-core style(editor): re-align template tracking to the ratio cap 2026-08-09 21:16:46 +08:00
op-editor-host-core feat(editor): chat panel round — chips, thinking, caret, hover card 2026-08-09 02:22:02 +08:00
op-editor-ui feat(web): fetch peer collaboration avatars through the daemon proxy 2026-08-09 22:44:10 +08:00
op-figma refactor: typed error enums across the whole workspace 2026-07-27 21:09:06 +08:00
op-git
op-host-desktop feat(editor): grow the template library to fifty-eight across six scenes 2026-08-09 02:24:43 +08:00
op-host-native fix(canvas): drop an image onto an empty placeholder fills it again 2026-08-09 22:54:21 +08:00
op-host-services fix(mcp): return get_screenshot as MCP ImageContent block (#205) 2026-08-10 06:16:27 +08:00
op-host-web feat(web): fetch peer collaboration avatars through the daemon proxy 2026-08-09 22:44:10 +08:00
op-host-web-server chore(web): forward the dev op-auth ticket feature to the serve-web daemon 2026-08-09 12:52:07 +08:00
op-html fix(html): make web-snapshot text, icon and layout capture faithful 2026-08-05 22:15:09 +08:00
op-i18n feat(editor): register the six deck templates in the picker 2026-08-09 19:54:23 +08:00
op-mcp fix(mcp): return get_screenshot as MCP ImageContent block (#205) 2026-08-10 06:16:27 +08:00
op-opmerge
op-orchestrator fix(ai): compact sub-agent skills before spending the budget 2026-08-09 19:57:24 +08:00
op-pen-loader fix(renderer): hit only the active tabs panel and drop unpainted widget strokes 2026-08-09 02:24:43 +08:00
op-process-io
op-rpc-transport fix(mcp): authenticate the live endpoint and degrade the bootstrap cache 2026-08-01 12:23:09 +08:00
op-smoke test(cli): windows-safe temp names in the modify smoke, enumerate failures 2026-08-09 12:38:23 +08:00
op-util test(desktop): unflag the redaction fixture and de-unixify relay path tests 2026-08-09 08:59:43 +08:00
op-web-sdk feat(web): fetch scene templates and the icon catalog at runtime 2026-08-09 12:26:39 +08:00
CLAUDE.md feat(editor): register the six deck templates in the picker 2026-08-09 19:54:23 +08:00