Repository navigation
feat(core): 补齐工具链编辑、Debug 时序与插件设置文档 - #3
Merged
Merged
Conversation
32 of 61 tasks
xiaoyumuxi
marked this pull request as ready for review
November 9, 2026 15:11
1lck
marked this pull request as draft
November 9, 2026 18:15
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.
关联 Issue / Linked issue
PR 类型 / Type
最新进度与接手入口(动态设置页与跨窗口路由)
当前 Core HEAD
d6d9da81b8127dcf03a178905b9619d406f9874d;客户端依赖仍为2db0e03dcf88f319362df33de84a517aa2c53563。客户端f105be68f86e1de516e305da74962cdf7427077b精确固定该已验证依赖。Core 已按用户授权合并;主项目保持 Draft。整次迁移未完成。合并前审查与验证(2026-11-09)
用户已明确授权合并本 Core PR,主项目 #1799 继续保持 Draft。审查范围为 main
0ffd327至当前d6d9da81b8127dcf03a178905b9619d406f9874d,不以全部 Viva 界面和发行验收完成作为本 PR 的合并条件。settingsState身份不匹配时的错误 field/message 参数写反;新增 ID/版本两种回归先失败,修正后通过,仍拒绝不匹配且不返回 state。修正提交d6d9da81b8127dcf03a178905b9619d406f9874d,未改变公开插件协议。2db0e03;采用保留提交历史的 merge,保持此 SHA 可追溯。最后的错误字段修正将随客户端下次依赖更新接入,不为合并单独改动主项目源码。.artifacts/1799-handoff/takeover-2026-11-09/core-3-merge/。Core #3 已合并(2026-11-09)
Core #3 已按用户授权合入
main,merge commit482499cabd128f5c9dfec744c63c7bda1bb9e678,合入的最终 HEADd6d9da81b8127dcf03a178905b9619d406f9874d。采用保留历史的 merge;原客户端依赖2db0e03dcf88f319362df33de84a517aa2c53563已包含在 main 中,SHA 仍有效。合并前审查修复了 settingsState 身份拒绝响应的 field/message 写反问题(先失败回归、再修正)。最终 Core 定向206项、注释工具3项及 Go cgo 消费者100条(7个顶层用例含子用例)通过;10份契约/fixture镜像一致,注释/Rustdoc、定向fmt、稳定性与只读静态检查通过。完整审查和逐项报告在
.artifacts/1799-handoff/takeover-2026-11-09/core-3-merge/。主项目 #1799 继续保持 Draft,客户端源码仍为
f105be68f86e1de516e305da74962cdf7427077b,固定 Core2db0e03;本次没有修改客户端依赖或新增客户端提交。因此最后的 field/message 修正尚未进入客户端 pin,下次依赖更新时接入。macOS 客户端全量失败、原生 GUI、真实插件包及发行验收等限制没有因 Core 合并而消失。历史“Core 尚未合并/保持 Draft”仅描述当时状态,当前以本节为准。已有成果与本次迁移边界(2026-11-09 核对)
本次任务是将外层客户端迁移到跨平台 Viva,继续复用已经实现的 Rust Core、插件市场和组织插件,并在已有 Viva 编辑器上完成接入与验证。以下组件是现有成果,不属于从零开发的剩余任务:
2db0e03dcf88f319362df33de84a517aa2c53563状态必须按三类记录:已有实现、Viva 具体接入缺口、尚未完成验证。
pending表示未验收,unassessed表示未完成盘点,都不能据此推断功能不存在;矩阵条目数不能直接换算剩余开发量。当前没有经过逐项核实的总工期、完成百分比或剩余大节点数量估算。主项目 #1799 保持 Draft,不自动 ready 或合并。Core #3 已按用户授权合并,客户端目前仍按已验证 SHA 固定依赖,具体修订见上方合并记录。本轮只更新描述与恢复资料,没有新增实现或验证结果。
当前验证批次已收尾(2026-11-09)
按用户确认,本次仅收尾当前验证、PR和归档;整次Viva迁移仍未完成。代码保持客户端
f105be68f86e1de516e305da74962cdf7427077b/ Core2db0e03dcf88f319362df33de84a517aa2c53563,没有新增零碎提交。两份PR均保持Draft,Core尚未合并;用户允许必要时使用管理员权限合并Core,主项目继续保持Draft。_dyld_start。新建脚本和最小C程序对照可正常启动,因此未证明是所有进程持续阻塞,也未确定具体策略触发原因。未更改系统安全配置,未以增加预算或跳过断言掩盖失败。.artifacts/1799-handoff/takeover-2026-11-09/core-validation-closeout/保存本次成功/失败HTML、JUnit、系统诊断、PR快照和清理证据,并同步到原始检出的同一路径;上级current-manifest.json的latestVerification指向本批。源代码/bundle仍使用dynamic-settings-node/,不改写历史失败证据。已确认的验证收尾项:macOS 提供方启动失败及异常退出清理、两端原生 GUI 与发行流程验收、#1802 日志/共享边界等价门禁。功能接入按顶部已有成果逐项核对;settings2、toolchainProviders、languageServers3 等应记录新宿主具体未接通/未准入的部分,不代表原 Core 或插件未实现。下方历史节点只记录对应提交时的改动与测试,不能直接充当当前剩余任务清单;最新验证状态以上述收尾记录为准。
改动说明 / What changes
plugins.settings.catalog校验完整清单和私有安装身份,已启用插件生成语言/构建页面;多个贡献者稳定排序,显示名来自已启用声明,不透明ID兜底。64个插件、512个动态页有界。plugins.settings.navigation统一静态/动态两级导航的搜索、父节点保留、展开与顺序;512动态页另加64宿主页预算,并覆盖超过512个总节点的合法容量回归。plugins.settings.delivery只消费原生适配器给出的目录/工作区/版本/启用事实;全局或项目作用域路由、效果校验去重在Core执行。通知不携带设置值,接收方读取自己的项目层。类型专属:feat
范围检查 / Scope checks
验证 / Verification
8e67ff2661b1af73388c1726a5d6221b86e34832bdb0652a1df37736d43ebed0。 已下载校验归档,独占服务器目录已删除,所属进程0。TestCloseSavesEditsMadeDuringFinalDiskCheck超时,最终完整复验通过;保留首次失败,未宣称已定位或修复其偶发原因。SSH控制连接曾断开,之后核验远端同一进程和完整报告,无重复启动或遗漏分组。_dyld_start阻塞,未进入测试。原生cgo缓存用例也因脚本入口加载阻塞超时;均保留报告、采样和有界清理,不把Windows通过替代Mac最终竞态/缓存验收,不宣称系统原因已修复。5a54c41→HEAD能力变更及测试稳定性门禁、运行时bundle只读静态门禁通过。只读静态门禁在Mac覆盖两平台源码,未声称Windows运行了zsh脚本。未改编辑器模块,不触发编辑器预算基线;未新增依赖、下载入口或可复用缓存目录。Draft CI:格式/脚本、Linux vet/全量Go、Notes和功能矩阵均通过(Desktop CI)。macOS/Windows CI按Draft策略跳过,不算原生验收。
客户端恢复包保留全部成功/失败报告、原生预览与清理证据。以下为历史节点,当前固定修订以本节为准。
此前Core节点与验证记录
关联 Issue / Linked issue
PR 类型 / Type
最新进度与接手入口
本节点提交
737e62b6283d8a5af8413886d2dd18e851eeffb9,客户端e26033ce6260eb9012d2b18d207d94473ceb1c9c精确固定此版本。保持 Draft,不合并;整次迁移尚未完成。改动说明 / What changes
设置按钮需要受确认与安装身份保护的调用计划,并且只能复用所属工作区、所属版本已注册函数的现有会话。
plugins.declarative.settingsActionPlan:校验完整清单、安装ID/版本、实际启用及项目事实,返回 confirmationRequired/unavailable/invoke;只有已确认 invoke 才包含函数与空参数。没有 I/O、进程启动或设置保存。lsp.functionProvider:候选最多64个,限制字符串/路径与重复ID,按稳定顺序筛选实际会话注册、ready和工作区;版本事实来自原生launch owner。释放注册表锁再检查各会话,不增加事件读者、不启动进程,不使用relay跨工作区回退。此前pin文档编辑、原生来源计划、插件设置投影/编辑、安装版本选择、URI归属与DAP时序改动仍包含在本Draft中,历史细节如下。
范围检查 / Scope checks
验证 / Verification
此前Core节点记录(历史修订仅供追溯,当前固定737e62b)
最新进度(工具链原生来源保护节点)
新增提交
9bd06ef3ea732ff1d7db6e6f37280c29dab6b25e。保持 Draft,不合并;客户端 PR #1799 继续完整迁移。新增三条内部桌面命令 pinStoragePlan/decodePinDocument/editPinSources:Core 提供来源路径、预算、严格重复键/schema检查、无变化精确字节保留及忽略编辑计划。复用原 pin 选择/继承/合并,并抽取原插件设置 JSON 解析器共享使用。ignore 0.4.33 仅作有界内存匹配,不读取全局文件或启用遍历。共享契约及24组fixture与客户端逐字节一致。
来源3项、既有工具链80项、插件56项通过;Core注释与2021 edition定向格式通过。真实macOS及Windows正常固定此提交的完整Go消费者分别2514/2503项通过(另8/13条件跳过)。首次Mac全量Provider启动失败保留,独立及完整复验通过,未声称根因已修复。原生来源所有权、权限、发布和清理属于客户端适配器。
关联与状态
Refs 1lck/Lithe-IDEA#1794;这是 Draft 客户端 #1799 的增量 Core 依赖。继续使用原 Rust Core,不重写内核。保持 Draft,不自动合并;客户端固定到
36d84b6f115d4edb697deea5a4f95cc313ce0211。改动
Viva 已有原生工具链保存和 Debug 适配,但缺少 Core 文档编辑接口,且启动时忽略实际插件偏好。本 PR 把确定性编辑、继承和 Debug 状态转换继续留在 Core,平台只负责原生 I/O 与呈现。
toolchains.editPins对捕获文档批量编辑目录 pin。复用已有工具、路径与资源校验;非法批次整批拒绝;保留 legacy 字段、其他目录/工具和 dormant pin,仅清理被编辑路径的空容器。Go 不再合并 pin schema。DAP 允许先 stopped/terminated、再确认 launch/attach。确认只将仍 launching 的会话转为 running,避免覆盖暂停或复活已结束会话;完成事件仍正常返回。补齐确定性时序 fixture。
新增
plugins.declarative.settingsState:Core 解析完整全局/项目文档,返回声明、全局与实际生效值、来源、归一化 scope/effect、动作和原生有界读取计划;不依赖宿主拼接或预过滤 JSON。没有设置声明时明确无需读取无关偏好文件。新增
plugins.declarative.editSettings:校验 1–32 个唯一声明的完整编辑批次,限制类型/作用范围/文档大小,null 只清除当前层覆盖;保留其他插件与 dormant 设置,返回完整文档、删除/变化状态和实际改变的效果列表。复用 serde 拒绝重复 JSON 键,拒绝时没有部分替换文本;未变化文档保留原字节。同步 Core 公开契约及共享
settings-documents.jsonfixture。原始声明值保留给启动规划,显式无效程序路径仍失败,不被默认值掩盖。恢复完整 Core 注释门禁:模块文档、英文注释、unsafe Safety、Rustdoc 与链接检查。旧字符匹配会把测试字符串里的注释分隔符误认成注释;改用固定
rustc_lexertoken helper,只分析真实注释,不放宽 Unicode 数据或文档要求。固定 Cargo.lock,helper/文档输出仅写调用者 Cargo target 或检出内.artifacts/rust-core-checks/,不进入发行包或跨工作树复用。设置状态增加清单元数据、Core分组、全局/项目编辑控件初值和重置值、继承/无效存储/可编辑状态;可选owner绑定安装注册的ID/版本。编辑接口接受互斥的原始text输入,整数到保存时才解析,仍整批拒绝;共享编辑样例22→28。
新增
plugins.installed.select,复用原PluginVersion数字比较,对有界原生目录事实先选最新、再按需过滤停用;不复活旧版本。返回索引化拒绝原因,8组共享fixture覆盖版本/身份/重复与停用。新增
lsp.documentIdentity,复用原WorkspaceScope、file URI规范化和workspace-edit原生解码,返回工作区内诊断的原生/显示路径,拒绝Windows无盘符绝对URI误作相对路径。21组跨平台fixture覆盖盘符、UNC、大小写、越界、空格与Unicode。Core现有LSP location解码也复用同一实现,修复真实Windows clangd跳转返回/C:/...而被拒绝;驱动器及percent盘符回归先失败后通过。命令没有文件 I/O,也不授予插件启动许可。确认、原生权限、字节冲突、取消、原子写入和回读由客户端负责。没有新增插件后端方法、宿主协议或 SDK 版本;没有把 settings v2 声明为完整宿主能力。
验证与边界
客户端HTML/JUnit、原生窗口证据、失败采样与源码bundle在其恢复目录。完整Viva迁移仍进行中:settings2全部动作/页面/跨窗口生效、原生GUI与正式市场准入等未验收。保持Draft,不ready、不合并;现有unused/dead-code及最低macOS链接警告继续明确保留。