refactor: 将开放插件重构接入 dev 并保留稳定线修复 - #220
Merged
Merged
Conversation
基于 main 保留角色会话切换和引擎复用,迁入公共 context.bind()、TTS/ASR 实例绑定、Context 中立贡献及规则和便签记忆可选插件。Context 保留逐片段预算,Collection 在 Core 统一解释 scope 并兼容旧声明。 会话完成插件绑定后才发布就绪,ASR 在角色切换期间拒绝新输入。修复并发关闭漏等退出进程及首次清理错误跳过其他插件的问题;新增三个真实进程回归在旧实现上失败,修复后的相关二十项检查通过。 验证:Windows bundled Runtime 的服务绑定与清理、ASR/TTS、Context、便签记忆、真实 Core、角色切换和配置聚焦回归通过。原生窗口、实际音频设备及远端 CI 尚未验证。
编辑值偏离初值才计为草稿,恢复原值后解除阻断。角色 Collection 保护切换,全局 Collection 可跨角色保留;停用和卸载只检查受影响插件的记录。 保留 main 同 Core 角色切换与设置投影。角色切换、同角色刷新及 Core 重启都会失效旧回执和编辑器回调,即使 Snapshot 内容不变也不重放写入。 验证:九十四项聚焦 JavaScript 测试和七项 Rust 插件设置测试通过。未执行原生窗口体验验证。
同步服务绑定、Context、Collection 和角色切换合同,保留 main 的 ADR-0049 至 ADR-0051。旧生态方案重编号为 ADR-0052/0053 并归档,以 ADR-0054 记录最终整合取舍。 补齐可选插件说明、已有数据启动器、隔离验收环境准备脚本和现有 Harness 入口。模型调用解耦保持为后续阶段,历史执行器实验不恢复。 验证:docs profile 通过;隔离环境准备成功,缺少模型配置时返回 setup_required,未写入对话历史。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
将开放插件重构先纳入 dev,main 保持稳定发布线。本分支从 refactor/open-plugin-ecosystem 的三个提交重新建立在 main@ec41d39a 上,保留原分支作为历史来源,不包含服务控制台或发行基础设施。
保留普通 Service Binding、插件 Context 贡献、按 global/character 归属保护的 Collection 草稿,以及可选对话规则和便签记忆插件。正常聊天仍走现有 ChatPipeline,没有恢复 Executor 双轨。移除 Context 的 16 条/8192 字符静默裁剪,统一使用逐片段 budgetHint 和全局模型预算;turn 复用、失败策略与 required 完整性有当前插件消费者,继续保留。
解决 real_chat、runtime_logging、runtime_v4 的 rebase 冲突,保留 telemetry 的工作线程释放、关闭截止时间、RPC 活动异常类型和主动发言历史兼容回退。统一异常退出路径中的 draining 记录,避免 Service Binding 生命周期重新使用旧的裸进程结构。
本地首次生命周期验证有 7 项失败:正常退出后的子进程仍存活,触发
psutil.TimeoutExpired: timeout after 3 seconds;部分断言仍按旧的裸进程结构访问 draining 状态。根因是 POSIX 主进程正常退出后跳过进程组清理。现改为主进程退出后仍回收所属进程组,并同步断言的进程访问方式;原有事件屏障、进程退出和清理失败传播断言保留,未增加超时或重试。修复后的生命周期与 Context 测试 30 项通过。新增真实插件进程与 HTTP Provider 的组合回归,验证 Context 贡献和主动发言历史一起遇到非首位 system 拒绝时,内容完整保留、回退成功、贡献只采集一次。新增夹具首次缺少 Timeline 必填 segment 字段,已按原契约补齐;4 项集成测试通过。
另修复默认 skip 策略吞掉 CONTEXT_SCHEMA_INCOMPATIBLE 的问题:把原 Host 测试延伸到 ContextOrchestrator 后,4 个旧 schema 样本在修复前均未抛出异常;现在明确终止并保留原始原因,Context 相关 36 项通过。
其他本地验证:首轮相关 Python 183 项通过(另有 1 项 Windows 专用跳过),补充 Python 200 项通过;前端设置相关 94 项通过;Rust plugin_settings 7 项通过;docs profile 与 Rust 格式检查通过。最终以本 PR 完整 CI 为准。
dev 用于继续验证高风险重构。打包后的原生窗口、真实音频播放和麦克风体验尚未人工验收,不代表已达到 main 发布条件。ADR-0052~0054 由插件线占用,未来控制台集成需要重新编号。