DesignOps Agent 2234dc071f
designops-gateway / build (push) Failing after 2s
feat(p3): Penpot 画框 → exporter 渲染 → SVG 资产库 端到端打通
新增共享 Transit-JSON 编解码(gateway/src/connectors/transit.ts)
- encode: map 用 '^ ' 标记、RPC 参数键用 keyword、DTCG 键保持字符串、UUID 用 ~u
- decode: 兼容两种实测线格式(RPC 错误体 map 数组 / exporter 成功体普通对象 + '~:' 前缀 + '~#uri')

PenpotExporter 重写为真实实现
- transit+json + X-Shared-Key + 会话 cookie
- 逐 frame 导出(页面导出必超时:viewer 只对 frame 生成 #screenshot-<id>)
- 两跳取字节:句柄 :uri → 回 backend GET /assets/by-id/<id>

P3 管道
- 按 name 匹配 set-file-shared/create-share-link(type 被 Penpot dissoc)
- props 嵌套的 fileId 解析;空页面/无 frame 显式报错而非假成功
- SVG 头校验,杜绝非 SVG 冒充 kind=svg

修复
- exporter PENPOT_REDIS_URI: penpot-valkey-master → penpot-valkey-primary(真实 service 名)
- 两管道 fileId/profileId 解析补充 props 分支

验证:真实 set-file-shared webhook → status=success;GET /assets/<sha> 200 image/svg+xml 1367B
测试 26/26 pass;镜像 designops-gateway:0.1.5
okf: 新增 exporter 契约规则 + P3 复盘 + 2 条 feedback→rule
2026-09-28 01:43:34 +08:00
S
Description
DesignOps 中台 monorepo(OpenPencil+Penpot+Excalidraw+StyleDictionary+Storybook)
578 MiB
Languages
Rust 40.9%
TypeScript 31.3%
Clojure 15.8%
JavaScript 4.3%
MDX 1.8%
Other 5.5%