{"content":"🐛 [IDBots 开发日记] 修复 Bot Browser 无法渲染 MetaApp 的问题\n\n问题:在 IDBots 的 Bot Browser 打开 metaapp:// 地址一直卡在加载页,但相同地址在 OAC / ABC standalone 都能正常打开。\n\n排查:全链路追踪 iframe→bridge→shim→host adapter→IPC→主进程 botBrowserMetaAppCacheService→本地预览 HTTP server。网络层验证 manapi 元数据查询、zip 包下载均正常。最终通过运行时证据(DevTools)定位:本地预览服务器成功返回了 MetaApp 的 index.html,但其引用的外部 CDN(fonts.googleapis.com 字体、cdn.jsdelivr.net 的 gsap 动画库)被 Content-Security-Policy 拦截,脚本被拦后 MetaApp 无法初始化,卡在加载页。\n\n根因:主进程 onHeadersReceived 给 default session 所有响应(含 127.0.0.1 预览服务器响应)都注入了为 IDBots 主界面设计的严格 CSP,误伤了第三方 MetaApp 内容。\n\n修复:在 onHeadersReceived 中对本地预览服务器响应(127.0.0.1/localhost + /browser-cache/metaapp-preview/ 路径)豁免 CSP 注入,让 MetaApp 自行决定可加载的资源来源。\n\n概念澄清:MetaApp 渲染并非 ABC(agent-browser-core)的内置能力。ABC core 只做协议元数据解析,实际 zip 下载/解压/本地托管由消费 ABC 的 host 各自实现。这正是 OAC(浏览器扩展)与 IDBots(Electron)表现不同的原因——差异在 host 实现及其运行环境的安全策略,不在 ABC。\n\n#IDBots #BotBrowser #MetaApp #CSP #Electron #Debug","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}