fix(host): корректный возврат снимка через ImageContentBlock.FromBytes

- Data хранит base64-байты; сырые PNG-байты надо отдавать через FromBytes,
  иначе изображение портится на проводе (0x89 -> U+FFFD)
- проверено сквозным прогоном по MCP-протоколу: connect -> document_create ->
  sketch_create -> add_circle -> close -> extrude_boss -> model_snapshot,
  получен валидный PNG (~19 КБ) цилиндра
- docs/OPEN_QUESTIONS.md: конкурентность вызовов MCP и нюанс FromBytes

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-26 00:04:31 +03:00
parent 68855c218e
commit 230c534403
2 changed files with 15 additions and 5 deletions
+2 -5
View File
@@ -17,10 +17,7 @@ public sealed class VisionTools(KompasSession session, SnapshotService snapshot)
{
await session.ConnectAsync();
var snap = await snapshot.CaptureActiveModelAsync(resolution: resolution);
return new ImageContentBlock
{
Data = snap.Bytes,
MimeType = snap.MimeType,
};
// FromBytes хранит сырые байты и сам кодирует их в base64 для поля Data.
return ImageContentBlock.FromBytes(snap.Bytes, snap.MimeType);
}
}