Repository navigation
feat(agent): 完善技能、全局指令与 MCP 服务器设置 - #1381
Conversation
在 AI 设置中保留独立的指令与技能入口,直接编辑 Codex/Claude 用户指令文件,提供草稿、冲突校验和原子保存。为技能成功提示保留布局空间,覆盖连续启停、深浅主题和窄宽页面的原生几何回归。
将待确认选择按点击顺序串行保存,其他技能保留原生启用外观和交互能力。覆盖同一 Agent 连续写入、单行失败回滚、队列继续、重复点击去重、项目切换及离页清理;同步 Agent Note 与平台矩阵。
Preserve skill and instruction settings while merging preview. Add offline featured MCP discovery, bounded Registry search, reviewed JSON import, adaptive cards, and a non-interactive source caption.
xiaoyumuxi
left a comment
There was a problem hiding this comment.
跨 PR 审查(head 617f7a1c)
结论:Draft 阶段继续完善;当前未从已检查的改动与测试清单中找到可确定的 P0/P1 缺陷,但不能视为完整逐行安全审计。 此次最新 diff 为 94 文件,macOS/Windows/插件/Database 及 Agent Notes、平台矩阵 CI 均报告通过;GitHub 当前 mergeable=false。
建议在转 Ready 前把下列高风险真实流程作为清晰的验收记录,而不只依据各自的模型/fixture 单测:
- Skills 导入/删除:包含子目录与模板的包导入、符号链接/越界/超额拒绝、不覆盖同名技能,导入过程中取消和目录文件锁失败后的暂存清理;项目切换与离页后的迟到结果不能改写新项目列表。
- 共享原生指令文件:Codex override/base 切换、Claude 原生设置合并、异常/重复
LITHE:SHARED-INSTRUCTIONS标记拒绝自动覆盖,关闭同步后保留标记区块外的原字节、换行和文件结尾;外部并发修改与失败恢复。 - MCP 设置与联动:检测/安装/启停/重启、全局与项目作用域、参数/凭据传递和 UI 关闭后的异步结果隔离;确认不会把凭据或用户本地文件路径写入公开日志。
- 视觉与操作:Settings 分类、Action Menu、深浅/中英文和窄布局,实际键盘 Tab/Return/Esc 与焦点恢复。
这条仅记录审查范围和剩余验证边界,不把未执行的真实场景推断成已失败。请同步最新 preview 解决不可合并状态后再跑最终 CI。
Resolve MCP action layout conflicts, use the shared action button style in new settings pages, and update the fullscreen test fixture for the run-service exit confirmation protocol.
Lithe Review结论: Findings
Scope Check
Suggestions
Summary未发现需要阻塞合并的问题。主要建议集中在取消和服务器生命周期的边界处理;现有分层与上游复用方向清晰,但上述两条路径需要补充针对性回归。 Verification
|
|
@lithe review |
Lithe Review结论: Findings
Scope Check
Suggestions
Summary未发现需要阻塞合并的问题。建议集中在取消传播、重命名后的所有权,以及注册变化后的状态刷新;现有回归尚未覆盖这三条组合路径。 Verification
|
|
@xiaoyumuxi 合并一下代码 |

功能
在设置 → AI 中提供技能管理、全局指令和 MCP 服务器设置,沿用现有设置分类与共享控件。
技能管理
skills/list、skills/config/write写入并回读;Claude 按名称合并用户或项目原生配置。保留无关配置与权限,处理锁冲突、外部修改和原子保存。RustCoreCancellation,服务入口及后台工作启动前检查取消;Core 注册回调在分派前补传注册前取消。安装进度保留同一事件通道。共享指令与原生文件
Lithe/AgentInstructions/Shared.md;打开和刷新页面只读,不创建文件或锁。只有明确保存或切换同步时才写入,未开启的 Agent 保持原样。现阶段为一份共享正文和两个 Agent,未增加多套命名方案。LITHE:SHARED-INSTRUCTIONS标记区块及其所属分隔符,保留区块外的字节;关闭可恢复原有换行与文件结尾。开关状态从实际原生文件读取,损坏或重复标记显示异常并拒绝自动覆盖。切换只控制共享区块,不停用 Agent、自有指令或项目指令。AGENTS.override.md/AGENTS.md,清空 override 后显示实际生效的基础文件。共享和各 Agent 草稿独立保留,读取失败不丢草稿,重新加载先确认放弃修改。agent.instructions.shared(read/save/setEnabled)严格请求、Host 文件实现、Core 分派、Swift port/桥接、共享 fixture、Agent Note 和功能矩阵。共享正文、锁及临时文件纳入工作树资源复用排除清单;不写 app bundle,不添加运行时下载或新依赖。MCP 资源库与发现
setup只由随版本提供的精选声明,公开元数据不能伪装。mcp.parseRegistry/mcp.featuredRegistry共享命令、目录契约、网络 port、平台 adapter、功能模型、中英文文案及回归测试;更新资源复用排除清单、Agent Note 和功能矩阵。MCP 配置弹窗与工具检测
CI 与测试稳定性修复
MoveFileExW,原子拒绝包含空目录在内的已有目标;覆盖 Unicode/空格路径、普通文件/非空目录字节保留及 NUL 拒绝。两个 Cargo.lock 同步目标专用依赖。Windows 路径集成测试 CI 修复
39933419913的真实 JDT lane 在git_paths_roundtrip_or_explicitly_reject_a_repository_beyond_max_path调用 Node 时触发夹具十秒期限,返回Cancelled,没有出现路径结果不匹配。提交7717c9afe/54540c12d只为 Windows 的 Node 前端加载设置二十秒期限;Git 命令仍为十秒、Core 请求仍为五秒。SharedRust 与真实 JDT 两个入口按原始测试名git_paths_roundtrip_配置单例六十秒预算,其他单例和总套件期限不变,全部路径断言与原生进程树清理保留。修正了最初带 Cargo target 的前缀,并用报告的maxMs确认生效。本地合并基线
b64dee4d3上 Core 全量 1152 项通过,Node 计时工具自测通过;选取真实git_path_roundtripCargo 集成目标重跑,两项通过(427/1268 ms),JSON 均记录maxMs=60000。Windows 专属点/空格目录用例仍需原生 CI,本机无可用 VM,不把 macOS 结果记为 Windows 运行。报告为.artifacts/test-stability/pr1381-ci-path-{fixed,budget}.{json,html,junit.xml}。Rust 注释/格式、测试稳定性、契约、Windows 边界、138 篇 Note、发行包只读和实际 base/head 功能矩阵检查通过。最新 CI 状态见 PR 检查。Windows 原生报告已确认三项路径测试通过(564/2668/4790 ms),两项往返用例的
maxMs均为 60000。该轮另在git_write_executes_checkout_preflight_clone_and_validation报告全部断言通过(15.22 秒),但完整进程耗时 18.529 秒超过默认十五秒,触发清缓存后又耗尽原套件期限;提交20a28aa7e仅为该用例在两个 Windows 入口设置三十秒预算,不延长请求或总期限。本地真实 checkout/clone 回归 684 ms 通过,报告确认maxMs=30000。后续 Windows run 39939156554 的原生 Rust、前端、真实 JDT 和 gate 均通过;真实 JDT 报告共 1145 项通过,JDT 启动用例耗时 28.5 秒,未改其产品逻辑或期限。最新合并提交按 lane 复用此前通过结果,不能将跳过记为重新执行。macOS Agent Host 冷编译 CI 修复
macOS run 39939156503 的 Agent Host 在仍编译 ACP/MCP 依赖时耗尽两分钟总预算,测试尚未启动。提交
13c8d2379移除该 crate 的两分钟覆盖,使用现有 Rust runner 默认二十分钟总预算(包含编译、枚举和执行);每项仍限制十五秒,Git Host 的两分钟预算及整个 CI job 的三十分钟限制不变。同步维护测试指引和 CI 决策 Note。maxMs=15000,没有修改断言或重试失败用例。./scripts/verify-rust-core-crates.sh通过:Git Host 7 项、Agent Host 217 项(另 39 项跳过)、IDE Host 5 项、Core 1152 项通过;npm 进度观察、注释校验自测、IDE MCP 回归均通过。.artifacts/test-stability/pr1381-ci-agent-cold.{json,html,junit.xml};完整入口日志:.artifacts/test-stability/pr1381-ci-agent-core-entry.log。提交13c8d2379的 macOS CI 和 Windows CI 已通过;数据库、Notes、功能矩阵及插件门禁也通过,插件与真实 JDT 的未受影响 lane 按分类复用/跳过,未计作重跑。macOS 原生报告确认 Agent Host 217 项通过、39 项跳过,编译耗时 75.6 秒,suiteTimeoutMs=1200000且每项maxMs=15000;Core 1152 项通过。Swift 报告记录 2935 项单元测试通过,另外 Git execution/console 21 项、磁盘镜像回滚 1 项、数据库 51 项和 Git 性能 21 项通过;arm64 测试包构建与门禁通过。验证
d19444d3d:Swift 6.3.3 运行技能、原生/共享指令、MCP 的 21 个 suite,129 项通过并记录逐项计时,2 项公网集成默认跳过。新增取消用例 8/2 ms,重命名和外部规则保护 18 ms,批量回滚 10 ms,来源变化三项各 1 ms;最慢相关原生编辑布局 1510 ms,低于硬期限。复现:
./.agents/skills/write-stable-tests/scripts/test-stability-macos.sh \ --report .artifacts/test-stability/pr1381-review-fixed.json -- \ --filter 'AgentSkills|AgentInstructions|Mcp'计时产物:
.artifacts/test-stability/pr1381-review-fixed.{json,html,junit.xml};修改前的失败证据保留在pr1381-review-before.*。产品视图
下载原生产品截图与报告:
mcp-ui/editor-{light,dark}.png、mcp-ui/tools-{light,dark}-{420,760}.png,以及instructions-ui/的中英文、深浅色、500/760pt 指令页面。它们来自隔离 fixture 渲染的真实 SwiftUI/AppKit 产品视图,无用户配置、凭据或桌面内容。最新本地回归重新生成这些视图,布局与此前一致;本轮修复行为状态,没有新增界面布局。本次没有新增产品前后对比图,未将参考图计作验收。验证范围