Repository navigation
feat(plugins): macOS 设置页接入工具链提供方查询 (#1581) - #2
Merged
FxRayHughes merged 1 commit intoNov 1, 2026
Merged
Conversation
- Core: lsp.toolchainRequest 与 litheToolchains 协商,原样回传回复交 toolchains.decodeReply - Core: candidates 接受 providerInstallations 并保留提供方归属 - 修复别名链接 home 只有链接路径事实时被判 unsafePath(机器人 P2) - macOS: 启动或复用插件后端查询,全局+逐目录独立 operationID/代次,超时与取消 - macOS: watchFiles 与回复 watch 变化整份重查,短时间事件合并 - 设置页显示提供方要求、版本与查询结果;文案走 shared/i18n - 更新契约、功能矩阵与 Agent Note
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.
改了什么
1lck#1581 框架的 B 项:macOS 设置页接入工具链提供方查询。合并目标是
feat/plugin-toolchain-sources。Core
lsp.startServer增加toolchainProviders。只有插件拥有、并且声明了提供方的会话,才会被提供capabilities.experimental.litheToolchains {versions:[1],providers}。toolchainProviders事件。lsp.toolchainRequest:not_supported和plugin.toolchain.providerUnavailable,不会写到进程。{id,response}原样返回,错误回复也一样,所有规则交给toolchains.decodeReply。$/cancelRequest。toolchains.candidates接受providerInstallations。它会校验 provider 确实属于注册表、并且声明了该工具;与扫描结果是同一个规范 home 时只算一份,归属记为提供方。latest),宿主只读到链接路径的事实时,以前会判为unsafePath。现在宿主读取${home}前缀目录的事实,Core 已有的链接目标推导能补全规范路径,这个场景已通过。新增了回归测试。macOS
MacPluginBackendSessions.queryToolchainProvider启动或复用插件唯一的后端进程,设置变化时的重启规则和页面调用一致。MacToolchainDiscovery对每个已启用的提供方:workspace:null),再对根目录和有自己版本文件的目录逐个查询,最多 32 个;decodeReply;失败时原样显示提供方给的原因。watchFiles尾部匹配,挂在现有的 350ms 防抖文件事件上;watch用一个 FSEvents 流监听;shared/i18n。验证
cargo test -p lithe-core --lib:1498 个全部通过。新增了引擎脚本后端测试(协商、拒绝未声明的提供方、原样回传错误)、candidates 的归属和拒绝,以及别名链接回归。cargo clippy -p lithe-core --no-deps --all-targets -D warnings:错误数和基线分支一样(85 个,都是已有的),本 PR 没有新增。test-stability-macos.sh --filter 'Toolchain|PluginBackend|LanguageServer|ProjectRuntimeSettings|RunConfigurationIntegration|BuildProvider|PluginHostService':306 个测试全部通过。新增内容:没做或要注意
verify-rust-core-swift-bridge.sh在本机缺少 Lithe 可执行产物,没有跑通;交给 CI。decodeReply已经用真实 mise 输出单独验证过。