内置 visualize@zcode-plugins-official 提供对话内交互视图,普通终端没有对应宿主。
该插件保留内置,默认关闭。升级后首次读取旧配置时,将已保存的 visualize 启用值统一改为
false,并在同一配置文件写入 plugins.visualizeDefaultOffMigrated: true。旧值的来源不可区分,
因此此次迁移同时覆盖过去的默认开启和手动开启。迁移完成后,用户可以重新开启,后续启动保留新值。
读取用户 / 项目配置 → 尚未迁移且有旧开关 → 文件锁内重读 → 原子保存 false + 完成标记
→ 写入 / 锁失败 → warn + 该层内存关闭 → 继续合并和启动
→ 已迁移 → 沿用保存值
用户重新开启 → 同一文件锁 → 原子保存 true + 完成标记 → 后续启动保持开启
配置文件是开关及迁移标记的唯一数据源,不新增 UI 开关或独立状态库。迁移只处理本次加载的用户、 祖先项目和显式项目配置;未打开的项目在首次读取时迁移,不扫描磁盘。没有旧开关的配置不改写, 沿用默认关闭;开关写入入口同时写完成标记,避免新用户首次开启又被当成旧配置关闭。 不同配置层各自迁移,原有 workspace > user 优先级不变。并发迁移、重新开启及其他配置写入 共用文件锁,锁内重读,迁移标记和开关一起原子落盘;迁移写入或文件锁失败时不记录成功,只输出一条包含配置路径和错误码的 warn; 本次加载将失败配置层的 visualize 视为关闭,再参与原有优先级合并,不阻断 App 装配和插件、技能查询。 较高层已重新开启的配置和 CLI 覆盖仍然有效;磁盘恢复可写后,下次加载再次尝试迁移。 配置源只读取和发现一次;无待迁移项时直接合并,有待迁移项时只在文件锁内复核该文件, 使用锁内观察到的开关更新该层。配置诊断只在最终合并入口输出一次。 迁移在插件发现和新建 / 冷恢复会话装配前完成,桌面、手机及远端共用执行端的同一入口。 已运行会话仍按原有重载时机生效,不改写历史提示、渲染能力或控件状态。
非 --stdio 入口(TUI、-p / --prompt / --target、skills list/inspect)默认不注入
该插件的技能根,模型可用技能目录和 Skill 正文加载使用同一份发现结果。
即使 -p 使用 --surface desktop 模拟呈现面,也不自动启用该技能。
--stdio 协议入口在创建 App 和扫描草稿技能目录时显式传入 includeVisualize: true。
这是 bootstrap 内部装配选项,不是用户配置、环境变量或协议请求字段;缺省为关闭。
它与 Desktop context 的 presentation surface 灰度独立,只允许协议端加载已启用的插件,不自动开启插件。
用户禁用插件、禁用技能或卸载内置插件后仍然不可加载,不允许该选项覆盖用户配置。
普通 CLI ── includeVisualize 缺省 ──┐
├─ 官方插件技能根过滤 → 技能发现 / Skill 加载
协议宿主 ─ includeVisualize=true ───┘ ├─ 主会话目录
└─ workflow child 继承
协议草稿目录 ─ includeVisualize=true → 同一过滤规则 → 引用目录
只按官方插件 identity 过滤,保留其他插件和用户/项目自定义的同名技能。
插件市场目录、缓存 seed、安装记录不变;plugins list 仍可管理该插件。
过滤在 App 启动解析插件技能根时完成,主会话与 workflow child 使用同一份结果;
普通 subagent 继续继承父会话技能端口。恢复会话同样按当前启动入口重新装配。
Desktop 本地和附着的 SSH/WSL/Docker workspace 继续走 stdio 协议;手机 /remote
复用同一个 shared host。此变更不改 workspace identity、owner/lease、队列、事件流、
snapshot 或恢复逻辑;桌面 continuous 与手机 replayable 边界保持不变。
-
默认/显式关闭时,正式技能目录没有内置 visualize,按名称和限定名加载均报不存在。
-
插件默认关闭时,协议入口也不发现技能、不注入 Gen UI 上下文;显式启用时可发现并读取完整技能。
-
主会话启动和 workflow child 共享过滤后的根,其他内置技能保持可用。
-
插件启用时协议 App 装配与草稿目录都保留 visualize;普通项目同名技能不受影响。
-
构建实际 CLI,验证非 stdio 的 list/inspect 和 stdio 的技能目录请求。
-
没有修改 Renderer 交互和协议 schema;用 CLI/协议集成验证加载边界,无新增 UI E2E。
-
升级前的用户级、项目级
true均关闭一次;重新开启后重复加载及并发启动不会再次关闭。 -
缺失配置不创建文件,迁移保留其他插件及未知字段;写入失败不产生完成标记。
-
只读项目目录下技能发现成功,visualize 关闭且原文件不变;锁超时和原子写入失败同样降级。
-
降级只影响失败的配置层;高优先级已迁移配置和 CLI 覆盖保持有效。
-
无迁移时每个配置文件只加载一次,配置诊断每次调用只记录一次。