Skip to content

feat(plugins): Java Support 独立分发、迁移与按需安装 - #1483

Draft
Mucheen wants to merge 2 commits into
1lck:previewfrom
Mucheen:codex/java-support-download-foundation
Draft

Mucheen wants to merge 2 commits into
1lck:previewfrom
Mucheen:codex/java-support-download-foundation

Conversation

@Mucheen

@Mucheen Mucheen commented Oct 25, 2026 •

Copy link
Copy Markdown
Collaborator

Java Support 已经是声明式插件,但资源仍随应用下载,外部副本也不能沿用宿主签名。本 PR 在同一插件 ID 下补齐可信独立发布、老用户切换和按需安装,并让应用在完整双架构官方索引上架后省去内置 Java 资源。当前 releaseEnabled: false 且真实索引为空,默认构建继续保留过渡包。

功能与行为

  • 新增 packageTrust: 1 契约、schema 和 fixture,旧宿主在下载前过滤新版。下载副本要求 publisherPackage;可选 bundledSignatureRequirement: sameTeamAsHost 仅适用于官方目录固定、确实位于宿主 app 内的 bundled 来源。任意来源只要存在签名文档都必须验证,来源伪造不能借用内置例外。
  • Java Support 版本为 1.1.0,上游 JDT、JDK、Lombok、Java Debug/Test 组合不变。安装通过 Core 启动计划验证目标架构运行时、入口及固定资源,拒绝损坏、无签名或缺少架构运行时的包。
  • 内置默认启用的模块在成功安装下载版后保存该选择;显式禁用、插件设置、项目 JDK 和运行配置保持原值;新增模块不继承旧包未拥有的启用状态。重启后同 ID 只选择一个版本;失败安装继续保留有效内置来源。旧卸载标记不再清理已重新安装版本的状态;卸载下载更新也抑制内置副本,避免重启后重新启用。
  • 过渡期内置包接入官方市场来源,同版本也可明确切换为独立包,已卸载的副本可通过安装恢复。直接跳过过渡版升级时,无包保持未安装,不自动下载;打开 Java 文件或项目显示每窗口会话一次的市场/磁盘包提示,新建项目页提供 Java、Maven 和 Spring 模板安装入口。新增文案进入共享翻译源并生成中英文原生资源。
  • bundledUntilPublishedVersion: 1.1.0 控制默认包的退出条件。构建要求官方索引的仓库、API、能力与双架构 URL、平台和哈希完整且唯一,才跳过 Java 组装及 JDT/JDK 准备;缺项保留过渡包,损坏输入中止构建。后续兼容下载版本可继续满足门槛。打包判断和嵌入使用同一索引,支持只读的 LITHE_OFFICIAL_PLUGIN_INDEX / --marketplace-index 构建输入;临时 fixture 不参与发布或工作树复用,运行时不改写发行目录。
  • ARM64、Intel 官方 ZIP 各有独立 SHA-256。发布计划保存真实 API/能力,从不可变 tag 读取历史配置,全部架构验证后一次发布和上架,拒绝部分版本;修改已发布插件输入要求升版。standalone release 要求发布私钥,应用的 --bundled-only 使用宿主签名;开发包只允许 debug 显式生成。
  • 同步架构笔记、提案、CI 构建说明、资源复用排除路由与测试、Java 功能矩阵。CI 对默认/精简 universal app 分别验证资源、架构、签名和 DMG,发布规划包含分发决策回归。

验证

  • macOS 计时入口:迁移/签名、包管理器、包存储、市场状态和项目生成器 95 项通过。迁移与签名用例最慢 278 ms,HTML/JUnit 位于本地 .artifacts/test-stability/。
  • 官方发布和默认分发 13 项、资源复用 24 项通过并记录 JUnit/HTML;共享翻译 35 项通过。
  • 共享契约、测试稳定性、服务/Windows 边界、运行时 bundle 只读、Java 语义所有权、Agent Notes、功能矩阵及相对实际 PR 基线的变更门禁通过;actionlint 1.7.12 和 shell 语法检查通过。
  • 默认及 --slim universal 应用与 DMG 均实际构建通过,ARM64/Intel 架构、资源清单、应用签名和磁盘镜像检查通过。完整 fixture 索引下,缺少 JDT/JDK 构建输入仍可产出无 Java 副本的应用;空真实索引下,过渡包完整保留。临时应用和 DMG 已清理。
  • 可信安装基础提交 00ab21e22 已通过 Rust Core 1207 项及集成测试、Swift 信任安装等 121 项和 Java 消费者 180 项、C ABI/桥接;本次迁移提交 6ab867aeb 未进一步修改 Rust 实现或契约,macOS 受影响模块另按上述 95 项回归验证。
  • 本地组装 ARM64/Intel 真实 Java 开发包,验证 JDK 原生签名、JDK 启动、归档解压字节一致性及安装资源哈希不变。ARM64 原始 415,169,923 字节(ZIP 261,637,060),Intel 原始 388,833,304 字节(ZIP 255,769,180);不作为正式发布资产。

发布边界

没有创建插件线上 Release、真实市场索引或使用正式发布私钥。默认应用当前仍含 Java,必须先发行支持新信任能力的宿主,再验证正式签名双架构包和真实市场安装,最后合并真实索引触发精简。fixture 索引只能证明构建路径,不能替代真实上架、Intel 真机及完整 Java 产品工作流;矩阵保持运行验收 pending。Windows 独立分发尚未实现。

插件契约合并后,需在 lithe-plugin-docs 运行 node scripts/contract.mjs sync --revision <合并后的 preview commit> 并提交完整副本。本 PR 未修改插件后端 wire 协议或 SDK。

@ghfind-review ghfind-review Bot added the review: medium ghfind author score; see https://ghfind.com label Oct 25, 2026
@xiaoyumuxi

Copy link
Copy Markdown
Collaborator

感觉吧,其实也可以拆成插件,但是好像工程量有点大,后面再下载也是可以的吧(但是下载大小可能有点大)

@Mucheen Mucheen changed the title feat(plugins): Java Support 可信安装与双架构独立发布基础 feat(plugins): Java Support 独立分发、迁移与按需安装 Oct 25, 2026
@Mucheen
Mucheen marked this pull request as ready for review October 25, 2026 06:45
@lithe-code-review

lithe-code-review Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Lithe Review

结论: ❓ 审查未完成

任务: 343

审查状态:已由服务器取消

可以重新评论 @lithe review 召唤。维护者可通过任务编号查看服务器日志。

@Mucheen
Mucheen marked this pull request as draft October 25, 2026 06:54
@xiaoyumuxi

xiaoyumuxi commented Oct 25, 2026 •

Copy link
Copy Markdown
Collaborator

#1498 你看看这个issue看看能不能全部从rust核心移出来呗,最近在清理重构代码,很多Java的还是用的之前的入口没有走统一的逻辑

@Mucheen

Mucheen commented Oct 25, 2026

Copy link
Copy Markdown
Collaborator Author

#1498 你看看这个issue看看能不能全部从rust核心移出来呗,最近在清理重构代码,很多Java的还是用的之前的入口没有走统一的逻辑

ok

@Mucheen

Mucheen commented Oct 25, 2026 •

Copy link
Copy Markdown
Collaborator Author

#1498 你看看这个issue看看能不能全部从rust核心移出来呗,最近在清理重构代码,很多Java的还是用的之前的入口没有走统一的逻辑

@xiaoyumuxi 是1495这个issue吗

@xiaoyumuxi

Copy link
Copy Markdown
Collaborator

#1498 你看看这个issue看看能不能全部从rust核心移出来呗,最近在清理重构代码,很多Java的还是用的之前的入口没有走统一的逻辑

@xiaoyumuxi 是1495这个issue吗

是的是的

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

review: medium ghfind author score; see https://ghfind.com

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants