fix(macos): 将运行时生成内容排除在更新检查的认证逻辑上,避免频繁的降级到全量更新 - #893
Open
xiaoyumuxi wants to merge 7 commits into
Open
xiaoyumuxi wants to merge 7 commits into
xiaoyumuxi wants to merge 7 commits into
Conversation
Collaborator
Author
审查问题 1[P1] 拒绝位于 JDTLS bundle 内的配置缓存路径
|
Collaborator
Author
审查问题 2[P1] 根据实际解析到的安装根目录判断是否为 bundled 资源
|
Collaborator
Author
修复结果已在以下提交中修复上述问题:
本地验证已通过:
|
xiaoyumuxi
commented
Sep 25, 2026
xiaoyumuxi
left a comment
Collaborator
Author
There was a problem hiding this comment.
审核结论
基于 cd442587c028c741d91494714c59cadc26c6e4d4 审查完整 diff、resolver 完整实现和新增回归测试。将 JDTLS 可变状态移出发行资源的方向正确,但建议合并前修复以下两处 P2 问题(见 inline):
- 不完整缓存已存在时,原子发布冲突被当成“其他启动已成功填充”,最终仍返回缺少
config.ini的目录。 - 只校验传入的缓存根,而不是最终写入路径;同时所谓 bundle 根实际是 JDTLS 子目录。缓存子目录符号链接和 app bundle 的其他位置仍能绕过这条只读边界。
建议分别补充“不完整目标目录后重新解析”和“缓存根在外部、子目录符号链接指向 bundle”的确定性测试;安全性测试应使用包含 Contents/Resources/LanguageServers/jdtls 及同级资源目录的完整模拟 app 结构。
验证边界
本轮为静态审查,未运行 Swift/macOS/JDTLS。查询当前 head 的 Actions 时,macOS CI 尚在运行、macOS Plugin CI 排队,其余返回的工作流已成功,因此不能将旧提交/拆分前分支的通过记录当作本 head 的完整验收。本次仅提交 Review 评论,不执行批准或合并。
This branch has not been deployed
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.
改动摘要
AGENTS.md、Agent Note 决策记录和 Sparkle 更新文档中记录运行时只读边界。根因
之前 JDTLS 直接使用
Contents/Resources/LanguageServers/jdtls/config_mac*。Eclipse/OSGi 状态会因此写入已安装的 app bundle。Sparkle 增量包基于干净发布归档生成,应用到已经被运行时修改的安装目录时会出现Source doesn't have expected hash,随后只能回退下载完整 ZIP。修复提交
159ffdad:保持运行时 bundle 不可变。fad5c2ef:补充平台功能矩阵记录。b81f482f:拒绝 bundle 内的 JDTLS 缓存目标。cfe73c19:正确处理通过符号链接命中的 bundled JDTLS。cd442587:修正符号链接回归测试的唯一路径。验证
./.agents/skills/write-stable-tests/scripts/verify-test-stability.sh --base origin/preview --head HEAD./.agents/skills/write-stable-tests/scripts/test-stability-macos.sh -- --filter 'macJdtlsResolverSelectsDirectLaunchResourcesDeterministically'./scripts/verify-runtime-bundle-immutability.sh./scripts/verify-agent-notes.sh./scripts/verify-platform-feature-matrix.shgit diff --check以上本地校验均已通过。拆分分支前,等价实现已通过完整 macOS 测试套件。
origin/preview基线下的scripts/test-classify-ci-changes.sh仍受 macOS Bash 3 不支持${path,,}语法影响;本 PR 对分类器的改动仅用于注册新的 macOS 发布守护检查。