# 工作台市场规范适配(0.12.2) 0.12.2 启动兼容修复:市场服务通过条件注入使用,探测使用 ctx.get(),禁止直接访问未注入的属性。旧宿主启用独立侧栏兼容入口,新版服务出现后释放旧入口并切换市场注册。根包和子包的客户端资源依赖保持一致,不把新版市场包声明为所有宿主必需依赖。旧宿主缺少会话嵌入接口时应明确提示,不能阻塞业务面板启动。 本次只调整市场接入和宿主边界。原有选题、达人、Campaign、排期、图表、采集与四窗口布局保持原样。 ## 已完成修改清单 | 原有差异 | 最小适配 | | --- | --- | | 工作台身份曾由包内清单声明 | 删除 `workbench.json` 和注册时的自定义 id;Desktop 根据仓库确定 `cinderzhan/dsh-media-workbench`,客户端使用 Panel 收到的 `entry.id` 判断归属 | | 独立侧栏入口及 shell.overlay | 由 Desktop 统一固定入口、切换及关闭视图,注册 customFrame | | 全屏根容器可能覆盖 Desktop 会话栏 | customFrame 根节点使用正常 flex 布局填满宿主分配区域,不使用相对外层生效的 `position: absolute` / `inset` | | 依赖旧版 Profile 会话抢占补丁 | 接收宿主唯一会话节点,放回原有可拖动、可收起的聊天窗口 | | 业务会话只存插件自己的绑定 | 显式创建/恢复时调用 ensureSession,登记工作台归属,仍保留选题/Campaign 业务关联 | | 隐藏窗口仍可能发起会话请求 | 只接受前台工作台中已登记 iframe 的同源消息;异步导航由宿主管理 | | 新版连接路由读取请求体 | 声明 buffered 请求体;认证仍通过原生 connection 管道 | | 原文档要求手动改宿主 | 标明历史适配弃用,本版无需用户操作 Profile 补丁 | ## 必须保留的原有行为 创建选题或 Campaign 只保存业务记录,不自动建立会话。用户在对象详情或聊天窗口明确新建/打开会话,才创建或恢复原生工作区和会话。新会话的原有提示词写入空草稿,不自动发送、不覆盖用户已有草稿或引用。失效旧会话明确报错,用户可以另建。 业务窗口在尚无会话或工作区时即可使用。四窗口拖动、缩放、收起、放大和恢复仍由原有 dock 管理,但其根节点、最大化窗口与拖拽换位都必须限制在 Desktop 为 customFrame 分配的主内容区域内,不得越过宿主裁剪边界或覆盖左侧会话栏。窗口退出只改变前台视图,不清理业务数据、后台采集或会话。宿主负责同时只有一个前台工作台和一个原生会话输入框。 ## 验证 原版基线 npm run check 通过,198 项 Vitest + 8 项 Node 测试通过。适配后的测试覆盖业务无会话可见、唯一会话节点、显式新建业务关联、原有提示词、已有草稿保护、隐藏消息拒绝、旧会话恢复及异工作台归属拒绝。旧 Profile 桥接测试仅验证保留的历史工具,不代表市场版仍依赖它。 未执行外部作品采集、浏览器登录、真实模型请求或公开发布。真实 Desktop 市场安装与操作由宿主集成阶段验证。