Skip to content

docs(agents): Java 插件改为普通插件身份,记录宿主前置条件 - #1754

Merged
xiaoyumuxi merged 1 commit into
previewfrom
docs/java-community-identity
Nov 5, 2026
Merged

xiaoyumuxi merged 1 commit into
previewfrom
docs/java-community-identity

Conversation

@xiaoyumuxi

Copy link
Copy Markdown
Collaborator

背景

Lithe 不再区分官方插件和普通插件,所有插件都按普通插件处理,不带发布者签名。区别只在 Lithe Store 的收录方式:Lithe-IDEA 组织的 lithe-plugin-* 仓库由 bot 自动收录,组织外的插件提 PR 由维护者审核。

Java 插件因此改成和 Cargo、Maven、Gradle 一样的普通插件:ID io.github.lithe-idea.java-support,vendor Lithe Community,signatureRequirement: "none"(Lithe-IDEA/lithe-plugin-java#3)。本 PR 只改 Agent Note,记录这次改定和阶段 E 必须先解决的宿主限制;不改代码。

改动

.agents/notes/proposed/architecture/2026-11-04-java-extraction-generic-apis-and-gate.md(通用 API 与语言闸门)

  • Q1 原来写“保留官方 ID dev.lithe.plugin.java-support”,改为 2026-11-05 的新身份:普通插件 ID、vendor、signatureRequirement: "none"、不带发布者签名和 packageTrust、从 Lithe-IDEA/lithe-plugin-java 构建、由 Store 自动收录;短工具 ID java 保留。
  • 写明 E1 必须先做的两件事,否则宿主会拒绝这个包:
    1. 去掉 rust/lithe-core/src/plugins/declarative.rs 里 languageServers[].hostIntegration 按 is_official_namespace 判定官方的限制(其他 ID 现在得到 plugin.integration.unsupported);
    2. 去掉 rust/lithe-core/src/toolchain/definitions.rs 里不带 : 的短工具 ID 要求 verifiedOfficial 的限制(Maven 插件依赖工具 ID java)。
  • 旧 ID 按 feat(plugins): Go 与 PHP Support 迁移为 Lithe Store 社区插件 #1357(Go、PHP)的先例留在 OfficialPluginCatalog 并填写 communityReplacementID;在这之前 Java 仓库只发预发布。

.agents/notes/proposed/architecture/2026-10-24-java-support-independent-distribution.md(Java 独立分发提案)

  • 先说结论:去掉“官方签名”,加一段 2026-11-05 改定身份的说明。
  • 问题第 1、3 条:信任方式和旧宿主兼容性改为新身份下的实际原因(旧宿主只允许官方命名空间用 hostIntegration 和短工具 ID)。
  • ID:下载版用新 ID,旧 ID 只留给内置包,按 communityReplacementID 迁移,插件设置、项目 JDK、运行配置随 ID 迁移。
  • 仓库:源码、组装、发布已在 Lithe-IDEA/lithe-plugin-java;主仓库 Plugins/mac/Official/JavaSupport/ 只服务旧 ID 内置包,随旧 ID 退役。收录改由 Lithe Store 负责。
  • 信任:signatureRequirement: "none",来源信任靠 Store 登记的 SHA-256 和安装前确认;新 ID 需要宿主解除两条官方限制,且不继承旧 ID 的任何信任。原来的私钥分发段落改为“不需要私钥”。
  • 安装阶段、单一生效来源(新旧 ID 只有一个生效)、Windows 依赖、阶段表(“1:下载安装”和“独立仓库”两行)、正确做法、验收和验证条目同步改为新身份。
  • 备选方案“换用社区插件 ID”改为“保留官方 ID 并加发布者签名”,记录它的好处和 2026-11-05 放弃的原因。

.agents/notes/implemented/architecture/2026-10-25-java-plugin-distribution-foundation.md(Java 插件分发基础,已实现)

  • 结论后加一段:下载版改用新 ID、不签名,本篇描述的是旧 ID 内置包的现状,随旧 ID 退役,指向上面 Q1。

验证

  • ./scripts/agent-notes/verify-agent-notes.sh:210 篇 active Agent Note 通过(已变基到最新 preview 后重跑)。

相关 PR

Lithe 不再区分官方插件和普通插件,Java 插件和 Cargo、Maven、Gradle 一样使用
io.github.lithe-idea.java-support,不带发布者签名,由 Lithe Store 自动收录。

- 通用 API 与语言闸门 Q1:改定新身份;E1 必须先取消 hostIntegration 按官方
  命名空间判定的限制(plugins/declarative.rs is_official_namespace)和短工具 ID
  要求 verifiedOfficial 的限制(toolchain/definitions.rs);旧 ID 按 #1357 留在
  OfficialPluginCatalog 并填 communityReplacementID;之前 Java 仓库只发预发布
- Java 独立分发提案:结论、ID、仓库、信任、私钥、安装阶段、单一生效来源、
  阶段表、验收和验证改为新身份;“保留官方 ID 并加发布者签名”改为被放弃的备选
- Java 插件分发基础(已实现):注明本篇描述的是旧 ID 内置包的现状,随旧 ID 退役
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant