Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
4f43fe4
feat(windows): unify plugin parity delivery and fixture coverage
Mucheen Oct 25, 2026
bb0e29a
fix(windows): bind plugin approval and recover install transactions
Mucheen Oct 25, 2026
672a699
feat(windows): integrate plugin sources details and build foundations
Mucheen Oct 25, 2026
5ec3ff4
feat(windows): integrate plugin marketplace and build model workflows
Mucheen Oct 25, 2026
fdb0540
chore: sync preview localization updates
Mucheen Oct 25, 2026
f60f62a
Merge commit '80101d861ffcc0c311ba890ff947875aa4d04f01' into codex/wi…
Mucheen Oct 25, 2026
38171fb
feat(windows): extend plugin build execution and model approvals
Mucheen Oct 26, 2026
3a76a0f
feat(windows): wire plugin build actions and refresh LSP attachments
Mucheen Oct 26, 2026
bfe2fcc
feat(windows): add plugin dependencies, Java imports and web build ac…
Mucheen Oct 26, 2026
3639578
feat(windows): add provider sessions and reviewed plugin execution
Mucheen Oct 26, 2026
2e66c8c
feat(windows): connect plugin providers and workspace workflows
Mucheen Oct 26, 2026
268fea2
feat(windows): add archive generators, settings reload and VCS status
Mucheen Oct 27, 2026
bafae6f
feat(windows): extend plugin actions, generator forms and VCS roots
Mucheen Oct 27, 2026
64c5865
feat(windows): connect plugin functions, native panels and VCS history
Mucheen Oct 27, 2026
0db6a86
Merge remote-tracking branch 'origin/preview' into codex/windows-plug…
Mucheen Oct 27, 2026
2d6c727
feat(windows): integrate scoped plugin reload and native VCS actions
Mucheen Oct 27, 2026
e700c56
Merge latest preview into Windows plugin parity integration
Mucheen Oct 27, 2026
7ee2f1e
feat(windows): 补齐插件停靠与 VCS 解决清理工作流
Mucheen Oct 27, 2026
90214f2
feat(windows): guard VCS file actions and strengthen plugin acceptance
Mucheen Oct 27, 2026
01bef2c
feat(windows): honor native plugin icons and pinnable info tips
Mucheen Oct 27, 2026
33a9ccf
Merge preview into Windows plugin parity integration
Mucheen Oct 28, 2026
ae89d43
feat(windows): add search clearing and verify plugin settings workflows
Mucheen Oct 28, 2026
272f2e3
fix(windows): harden plugin acceptance diagnostics and native controls
Mucheen Oct 28, 2026
f84ddef
fix(windows): preserve native tree keyboard menus and verify web fall…
Mucheen Oct 28, 2026
6e96c64
fix(plugins): stack native actions and add bounded text acceptance
Mucheen Oct 28, 2026
a22945c
test(windows): maintain bounded native plugin browser regression
Mucheen Oct 28, 2026
839949c
test(windows): verify native tree menus and harden acceptance prepara…
Mucheen Oct 28, 2026
8742ef1
fix(windows): select native JDTLS tar and verify plugin form grids
Mucheen Oct 28, 2026
8a05359
test(windows): verify native plugin control input workflows
Mucheen Oct 28, 2026
ae8a365
test(windows): cover native plugin workbench workflows
Mucheen Oct 28, 2026
2193e60
Fix Windows frozen dependency installation sources and proxy lifecycle
Mucheen Oct 28, 2026
732a4ad
fix(windows): preserve installer identity and reject invalid proxy ro…
Mucheen Oct 28, 2026
71229ce
Merge preview into Windows plugin parity R26 baseline
Mucheen Oct 28, 2026
04f4118
test(windows): verify installed plugin bytes across native lifecycle
Mucheen Oct 28, 2026
b5dd6ed
Fix plugin build-input identity and empty-root detection
Mucheen Oct 29, 2026
acb36e0
feat(windows): dock declarative plugin tools in the workbench
Mucheen Oct 29, 2026
0b03109
fix(windows): align docked web clients and retain shutdown cleanup
Mucheen Oct 29, 2026
c933fbe
fix(windows): show docked webviews above the workbench
Mucheen Oct 30, 2026
a9b864d
merge: integrate preview host responsiveness and settings transactions
Mucheen Oct 30, 2026
09ca988
test(windows): document bounded native installer watchdogs
Mucheen Oct 30, 2026
a7f36d0
merge: integrate preview with Windows plugin parity baseline
Mucheen Oct 30, 2026
cffc4be
fix(windows): preserve plugin drafts and validate generator workflows
Mucheen Oct 30, 2026
23dbcf4
merge: preserve plugin workflows with preview LSP and host APIs
Mucheen Oct 30, 2026
c7e3f72
feat(windows): admit consent-bound project generators
Mucheen Oct 30, 2026
4b9f091
merge: preserve plugin workflows with preview performance and Java up…
Mucheen Oct 31, 2026
7e327ea
fix(test): open the compact menu before generator workflows
Mucheen Oct 31, 2026
9ceb197
test(windows): bind generator acceptance to the opened workspace
Mucheen Oct 31, 2026
5f2371b
test(core): bound push fixtures and budget measured Windows cases
Mucheen Oct 31, 2026
31b8635
test(core): bound multi-call Git inspection fixtures
Mucheen Oct 31, 2026
326b3d3
fix(windows): support fieldless generators and isolate acceptance output
Mucheen Oct 31, 2026
ddd5fb7
merge: preserve Windows plugin workflows with preview editor APIs
Mucheen Oct 31, 2026
7bf927e
fix(ci): classify independent editor plugin fixtures
Mucheen Oct 31, 2026
29c46ab
test(windows): add generated Java workflow acceptance driver
Mucheen Oct 31, 2026
aaa934e
Fix Windows generator workspace handoff and real JDK acceptance
Mucheen Oct 31, 2026
7130d94
Fix acceptance capability parsing for test-only host override
Mucheen Oct 31, 2026
81ed9ef
Add gated Windows Java workflow acceptance entry points
Mucheen Oct 31, 2026
d11614a
Add gated Windows Java package candidate and publisher trust
Mucheen Oct 31, 2026
d5e47e1
fix(macos): 修复分支列表悬停长分支名时触控板无法滚动 (#1621) (#1625)
ZJUSCODE Oct 31, 2026
4518758
Fix native folder picker input in Windows acceptance
Mucheen Oct 31, 2026
a0aa559
fix(macos): forward hidden branch expansion clicks and clean up on cl…
xiaoyumuxi Oct 31, 2026
d010689
Fix native picker confirmation through its actual button
Mucheen Oct 31, 2026
1f7ba56
Compare the selected JDK home in its native field
Mucheen Oct 31, 2026
6476208
Merge verified Windows plugin baseline for R33 tasks
Mucheen Oct 31, 2026
0d18ab3
fix(plugins): validate frozen Windows Java signing inputs
Mucheen Oct 31, 2026
65c7d89
Preserve Windows acceptance process identity failure diagnostics
Mucheen Nov 1, 2026
2f10056
Add variant-bound Maven and Gradle workflow preflight
Mucheen Nov 1, 2026
8313f08
Wire Java signing and variant evidence into Windows validation
Mucheen Nov 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,8 @@ LSP 控制中心和语言工具发现沿用现有 Rust Core LSP 会话。组合

macOS 使用声明式插件包和 publisher Ed25519 包签名;Windows 使用自己的 Tauri 插件包和平台签名、缓存适配器,接入共享契约 `shared/contracts/plugins/v1/` 时复用同一份声明语义。Windows 不得因为跨平台而把 macOS 的目录或构建脚本复制到 Windows。两端都必须满足:插件自有资源、构建时校验、运行时只读安装目录、禁用和卸载可清理自有资源。

Windows Java 候选由 `Plugins/win/Official/JavaSupport/` 与 `scripts/plugins/assemble-windows-java-support.py` 独立维护,离线校验固定下载并选择 Windows JDK、PE 架构和 JDT configuration。候选输出与输入回执走不可复用的 `official-plugin-packages` 路由,只有既有哈希校验路由覆盖的 JDT/JDK 下载缓存可以复用。Windows 文件签名不封装相邻资源,当前未签名 bundled Java 仍拒绝,生产 `packageTrust` 保持关闭;具体门槛见 [Java 来源与独立发布笔记](2026-10-25-java-plugin-distribution-foundation.md)。

## 考虑过的备选方案

1. 把所有语言服务器随主程序打包:启动简单,但增加主程序体积和每个用户的维护成本,也无法实现按需安装。
Expand All @@ -79,20 +81,23 @@ macOS 使用声明式插件包和 publisher Ed25519 包签名;Windows 使用

用户只为安装的语言承担下载和索引成本,插件包可以独立发布、验证、重装和卸载。构建过程需要访问固定的上游归档,发布环境必须准备对应架构和签名身份;Node.js 等外部运行时仍由平台能力检查,不由插件偷偷写入安装目录。

插件包、解压结果、语言服务器下载缓存和运行时语言工具没有可靠的跨工作树身份标记,继续在 `scripts/resources/worktree-resources.json` 中作为隔离资源处理,不能通过工作树复用脚本复制。
插件包、解压结果和运行时语言工具没有可靠的跨工作树身份标记,继续在 `scripts/resources/worktree-resources.json` 中作为隔离资源处理。只有注册表明确列出、按固定版本/平台/架构及来源哈希独立校验的下载缓存允许复用,不能用下载哈希替代完整包签名或运行时状态归属。

## 验证

- `./scripts/plugins/verify-official-plugins.sh`:检查官方插件组装、语言服务器清单、启动器、包内无原生代码和包签名。
- `./scripts/macos/verify/verify-runtime-bundle-immutability.sh`:确认典型启动和插件工作流不会改写已安装 bundle。
- `node scripts/resources/test-reuse-worktree-resources.mjs`:确认语言服务器下载和插件包不能跨工作树复用。
- `node scripts/resources/test-reuse-worktree-resources.mjs`:确认未注册的资源与完整插件包拒绝复用,固定下载缓存只走独立校验路由。
- `python scripts/plugins/test-assemble-windows-java-support.py`:确认离线 Windows 候选的完整资源、架构、输入哈希和归档安全边界;不当作正式签名或真实 JDT 验收。
- `./scripts/agent-notes/verify-agent-notes.sh`:确认本笔记格式、路径和验证命令有效。
- 相关 macOS 测试:`MacPluginPackageDownloaderTests`、`LanguageServerToolServiceTests`、`LanguageExtensionProcessLifecycleTests` 和 `PluginPackageStoreTests`。
- 新增插件还必须验证下载失败、校验失败、取消、等待重启、重装、回滚、禁用和卸载后的进程与文件清理。

## 适用范围

- `Plugins/mac/Official/`
- `Plugins/win/Official/JavaSupport/`
- `scripts/plugins/assemble-windows-java-support.py`
- `scripts/plugins/build-official-plugins.sh`
- `macos/Sources/Lithe/Platform/MacOS/Plugins/`
- `macos/Sources/Lithe/Platform/MacOS/Runtime/MacRuntimeToolDiscovery.swift`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ Rust Core 负责校验声明、识别工程、展开每一条命令行,并把

没有声明的能力不报错,也不会出现在界面上。例如 Cargo fixture 没有声明依赖树,Build 工具窗口就不显示依赖区。

`build.detect` 对普通文件根或不存在的根保留空实例结果,这属于检测入口的既有兼容边界。共用工作区扫描器后仍在此入口区分根的类型;真实目录的读取、权限或扫描失败继续返回拒绝,不能把所有 I/O 错误当作“未检测到项目”。不要为了修复 Windows 的非目录错误而放宽共用扫描器,也不要让宿主按操作系统错误码猜测空结果。

字段全集只写在 `shared/contracts/plugins/v1/README.md` 的 “API level 3: build systems” 一节和 `plugin-manifest.schema.json` 里,本 Note 不重复。四个 fixture 各示范一种模型来源,按能力命名而不是按真实插件命名:`build-static-file`(读项目文件,内容用 Cargo)、`build-command-stdout`(解码命令输出,内容用 Go)、`build-command-output-file`(解码命令写出的文件,内容用 Gradle)、`build-host-integration`(交给宿主集成,内容用 Maven)。`build-provider`、`build-provider-language-server` 分别示范 Provider 的两种写法。

### 2. Core 与宿主的分工
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,12 @@ Swift 和 Windows 各写一遍合并规则最直接,但两边一旦有细微
- 代价:项目设置文件会出现在用户仓库里,团队需要决定是否提交它。
- 现有的 Java/Maven 项目设置页(`ProjectRuntimeSettingsView`、`LSPControlCenterView` 中的 Maven 重试)仍是宿主代码,属于历史遗留,后续应迁移到 Java 插件的声明里,不能作为新增特判的先例。

Windows 设置验收使用独立 API3 受控插件,而不是删减正式包的 requires。受控包包含既有 LSP fixture,因此必须披露语言服务器权限和完整程序声明,并把获批声明及归档摘要与安装记录逐项比较。注册语言设置页与真实双窗口覆盖保存、空值、重置、字节冲突、项目及全局重载、升级停用卸载;这些受控检查不能替代正式发布包或插件函数验收。

验收观察器适配锁定 Tauri 的 Windows fetch IPC 与真实 callback Map,不改写被冻结的 invoke,不替换原生命令或回复。收尾先恢复 fetch,随后等待已接纳回调有界排空,再正常退出宿主,最后比较运行镜像和插件资源;未退出、未排空、丢失调用或资源变化都不能报告通过。postMessage 回退传输未覆盖,仍是待验范围。

公共搜索清空的产品验收从已开放的插件设置列表进入,保留明确选中的已安装包与原始行身份。通过浏览器输入通道发送 Enter/Space down/up,观察同一输入节点重新获得焦点、零匹配过滤恢复、原选中项和详情不变;不使用合成 DOM 键盘事件或补发 click。该操作应没有声明式插件 IPC。测试失败也保留部分快照、释放元素句柄,并继续执行观察器、原生进程及资源快照的收尾。CDP 输入不能证明物理键盘或真实输入法。

## 验证

- Windows `plugin_host::settings::transaction_tests` 覆盖两个后台编辑保留各自字段、读取到前一次提交以及临时文件回收;既有 `settings_tests` 覆盖删除最后一个值、保留其他插件及损坏文件不被重置。
Expand Down
Loading
Loading