Repository navigation
Conversation
…ndows-plugin-parity-unified
Connect task and test approval, output and cancellation to the native owner; validate passive Maven model snapshots and queued refreshes. Revoke stale editor attachments and queued text across buffer, workspace and package changes. Cover real WebView lifecycle workflows through the product Quit path.
Connect reviewed Provider model/dependency and page build workflows, workspace test discovery, source-backed plugin settings, transactional project generation, and passive VCS root ownership. Keep rollout gates closed until product acceptance is complete. Retain cleanup owners for Stop retry, preserve framework-specific actions and Core reply data, and repair page refresh cancellation routing. Merge preview d369c9a, classify its new debugger fixtures and make the debug baseline checker resolve Windows file URLs correctly.
Integrate the reviewed R9 changes and preview 32021a8. Preserve typed archive interruptions and staging identity, global settings reload receipts, and isolated VCS session cleanup completion. Validation: 1252 passed / 5 skipped, Windows x64 Release, shared contracts, runtime bundle immutability, Rust documentation, localization and matrix gates.
Integrate reviewed R10 settings functions, generator requirement interactions and segmented forms, and guarded VCS mappings/watch leases. Preserve original owners on late native completion, invalidate stale reviews and release late watcher publication on window destruction. Validation: 1061 passed / 6 skipped, complete TypeScript check, Windows x64 Release, contracts, localization, runtime resource immutability and actual-tree matrix gates.
Route web function requests through the existing Core-owned provider lifecycle, retain exact-window cleanup retries, and retire completed receipts with their native window instance. Add native tree/list/form rendering and Core data validation while keeping ui:3 admission closed. Extend VCS short sessions with read-only history and baseline diffs, cancellation and cleanup recovery. Cover approval/result shapes, form drafts, virtualized controls, deleted and renamed paths, junction escapes and late-owner races. Update fixture coverage, localization, capability evidence and the owning architecture note.
…in-parity-unified
接入原生面板三侧布局、精确关闭与焦点恢复;新增受约束的 VCS resolve/cleanup 及真实 Core stdio 回归。补充设置实包验收驱动、源码身份校验、CI、共享翻译、资源复用规则和功能矩阵。未开放 ui:3/vcsProviders,真实完整包与系统客户端验收继续 pending。
Map all approved host icons to fixed theme resources and reuse a shared accessible InfoTip for disabled fields and actions. Register isolated UI regression suites and record remaining settings runtime and VCS move safety evidence.
Reuse the public input accessory for localized search clearing, preserve native form draft and focus behavior, and register isolated consumer regressions. Complete controlled settings package declarations and installation approval checks, observe frozen Tauri IPC through fetch callbacks, and verify bounded shutdown before resource snapshots. Record real SVN move counterexamples while retaining capability gates and explicit runtime evidence limits. Validation: 946 passed, 5 existing skips; full TypeScript, focused lint/format, shared contracts, stability and platform gates; formal Windows x64 Release.
Correct primary/normal native button variants and cover shared-fixture actions. Verify real WebView2 SearchField default keyboard activation in settings acceptance. Add bounded fixed-input SVN move diagnostics with proven cleanup, path isolation, and failure reporting; wire timed CI reports and resource reuse exclusions. Update owning decisions and partial feature matrices without opening gates.
…back Open the shared context menu for the selected virtual tree row, preserve outside and action-owned focus, and retain expand-button keyboard navigation. Add bounded controlled ui:2 fixture and real WebView2 postMessage fallback acceptance with exact fault injection, identity checks and failure cleanup. Register helper reports and nonreusable resources; document the SVN upstream replacement boundary without opening capability gates.
Use native Bun file isolation and explicit SVG file loading, retain reports for absent or partial JUnit, and repair mock exports and deterministic synchronization. Preserve pinned PlantUML bytes on Windows and use a bounded raw-byte DAP fixture. Full integration and Release remain pending the dependency installer and shared native validation mutex; this is a local checkpoint only.
Let native panels and explicitly selected shared-language settings actions borrow an existing approved Provider through its exact launch review and Core request guards. Keep editor ownership and cancellation isolated from each invocation. Preserve immutable startup evidence while tracking only successful same-session workspace configuration updates for following exact launch comparisons. Retain saved settings after an effect failure and offer an identity-checked effect-only Retry with duplicate-click and stale-page protection. Expand complete dedicated/shared workflow fixtures and product evidence for registration withdrawal, immediate/restart/reload settings, selectors and structured errors. Require explicit native Retry after saved settings revoke an old panel receipt. Keep production capability and release admission closed. Validation and remaining failures are recorded in the local R37 handoff. Full Windows Rust retains two Agent tree-cleanup timeouts; no baseline attribution or full-version/platform admission is claimed.
…ugin-review-integration-r38
…ugin-review-integration-r38
Keep exact launch identity and the existing model-only reload lifecycle. Classify changed immutable startup inputs for the unique shared owner as restart-required; translate the recovery and allow only that cleaned failure to be explicitly postponed before Disable/Enable and fresh model consent. Freeze the complete controlled workflow driver with its fixtures. Exercise ordinary reload, restart-save then model reload refusal, retained PID/value, and explicit lifecycle recovery continuously; add keyboard selector, input, cross-slot narrow layout and close-focus checks without claiming IME proof. Add ownership/configuration and localized receipt regressions. Lightweight logic and offline timing passed; React dependency, Rust compilation and source-bound product execution remain assigned to the integration owner.
…ugin-review-integration-r40 # Conflicts: # shared/platform-feature-matrix/features/plugin-functions.json # shared/platform-feature-matrix/features/plugin-registered-settings-pages.json
Align archive and expanded package budgets with macOS while retaining file, entry, path and metadata limits. Stream package digests with bounded reads and keep generator downloads on their existing budget. Add runtime-sized directory/ZIP, deep-path digest and metadata/archive rejection coverage; update the architecture note and feature matrix without opening production capabilities.
Display native publisher verification for disk imports and refresh language ownership after scans and admitted model changes. Retry pending Java imports without restarting open sessions, release startup switching indicators, and revoke ready or pending language sessions by plugin identity. Separate mounted-buffer identity from native attachment identity. Drain restored document initialization before saving, serialize saves per attachment, and let close await their completion without an initialization cycle. Bound callback and initialization replacement; preserve exact-session cleanup receipts. Discover plain Java Main entries through the existing JDT session and retain Core workspace filtering. Align Java and generator acceptance with public contracts, qualified classes, default form values, approval order and resolved runtime ownership. Stop applications while their Playwright loop is alive; yield during descendant waits so queued CDP teardown completes. wait for the exact Run action and allow one bounded catalog query without retrying unknown completion. Establish fresh Maven error compilation through reviewed clean and compile tasks, keeping distinct native receipts. Use process-local thread snapshots to resume owned Windows children. Keep Git integration allowances local to measured fixtures and cases, move cold Monaco setup outside case timing, and update CI, contracts, notes and capability evidence. Production trust anchors and capability admission remain unchanged. The Draft PR records validation and remaining platform/external-package limits.
xiaoyumuxi
added a commit
that referenced
this pull request
Nov 4, 2026
…1724) * feat(core): 拆出 #1478 的共享 Core 改动 从 #1478 拆出 Rust Core、共享契约和 macOS 测试部分,基于最新 preview 重新整理;Windows 宿主改动留在 #1478 后续适配。 - LSP:启动失败的会话进入积压,下次启动前最多再清理一次,清理不了就拒绝新启动; 非法初始配置在启动进程前拒绝;destroy 先确认进程退出再移除会话; 新增 start_lsp_owned 在注册时交出 session id - 进程 dispose:非 Windows 在时限内重复 kill 并轮询退出状态; RemoteProcess 以强制 PROCESS_KILL 回执完成 dispose - Java:javaEntrypoints 不再传作用域,结果只保留工作区拥有的源文件; java.main 带 javaLaunch 时直接用 JDT 路径启动,Maven 只在没有 buildPrepared 回执时补资源步骤 - build.detect:根目录不存在或不是目录时返回空,真实目录的 I/O 错误不再吞掉 - 项目归档解压:预检深度与路径字节上限、只走真实目录、分块复制并检查取消、 区分 Invalid/Interrupted,Windows 拒绝保留设备名 - 插件签名跨平台向量与 macOS 测试;CryptoKit 签名带随机数, macOS 改为用验签证明规范载荷一致 - 同步 rust-core-api 契约与相关 Agent Note - 更新 lsp-lifecycle、run-discovery、build-system-plugins、 plugin-project-generators、declarative-plugin-contract 五项功能矩阵记录 Co-authored-by: Mucheen <1528136628@qq.com> * fix(core): 处理 LSP 进程收尾时被丢弃的结果,通过结构化日志门禁 - process.rs:非 Windows 的 dispose 轮询不再丢弃 terminate_native 的错误, 进程超过期限仍未退出时,把最后一次 kill 失败作为 details 附在 "Language-server root did not exit." 上返回。 - engine.rs:启动失败后的收尾清理属于“同一次失败已经记录过”的例外, 补上 log-exempt 标记写明原因;残留仍由 failed_starts 持有,下一次 启动会先回收并在失败时返回 ProcessFailed。 * test(ci): 给普通 Java 文件夹的真实 JDT 测试单独放宽 Windows 用时上限 - ci-windows.yml:real-JDT 通道给 real_jdtls_lists_entrypoints_in_a_plain_java_folder 加 240 秒的 --test-budget。它和 Java 25 用例一样要冷启动真实 JDT LS,Windows run 41817286665 在默认 15 秒看门狗处被终止(无断言失败),同一提交在 macOS arm64 上 6.0 秒通过。 240 秒覆盖用例自身的 90 秒就绪 + 120 秒入口导入期限,其他用例和整套期限不变。 - write-stable-tests 的 windows-and-rust 参考页记录这项放宽的依据。 * fix(core): 远程构建根经宿主检查,索引取消不记成插件启动失败 - build/detect.rs:scan_directory_root 改用 workspace_io::metadata,远程工作区根 (包括经宿主符号链接打开的根)在宿主上判断,不再读本机未实体化的投影而返回空检测。 新增 remote_build_detects_a_root_opened_through_a_host_symbolic_link 回归测试。 - lsp/interface/engine.rs:两条索引策略取消路径先 abandon 启动 attempt 再 session.fail, 取消不再被 fail 记成 Initialize 握手失败。两个既有取消测试附加 startupOperation 并断言没有插件操作记录。 --------- Co-authored-by: Mucheen <1528136628@qq.com>
xiaoyumuxi
added a commit
that referenced
this pull request
Nov 5, 2026
Windows 的签名验证还在未合入的 Draft #1478,preview 上只有 macOS 的 PluginPackageSignature 测试使用这组向量。
xiaoyumuxi
added a commit
that referenced
this pull request
Nov 5, 2026
* docs(contracts): 插件契约 fixtures 按功能分目录并修正能力版本表 - fixtures/ 下的平铺文件按契约领域移入 manifest、languages、backend、editor、ui、 settings、build-systems、build-providers、debug-adapters、vcs、keymap-import、 project-generators、toolchains、package-trust、marketplace 子目录 - toolchains.md 移为 toolchains/README.md,proposals/toolchains/ 并入 toolchains/proposal/(示例与用例在 fixtures/toolchains/proposal/) - 项目生成器模板移入 fixtures/project-generators/templates/,Java 示例原样保留 - 三个顶层 schema 路径与 $id 不变 - verify-shared-contracts.sh 新增检查:fixtures/ 根目录不得有散落文件、 fixture 文件名在各子目录间唯一(用例文件只按文件名引用基础清单) - Rust Core、macOS、Windows 测试与 Agent Note、功能矩阵证据路径同步更新; Windows plugin_host 测试改为按文件名在子目录中查找 fixture - 契约 README 能力版本表:serverProcess 补版本 2,合并重复的 executableResolution 行,补 keymapImportProviders 行,API 级别补 4; schema 的 requires.buildSystems 枚举补 4 * docs(contracts): 注明 serverProcess 2 只有 Core 支持,两个宿主只声明 1 macOS 的 PluginManifest.hostCapabilities 与 Windows 的 host_capabilities() 都只声明 serverProcess 1,需要 serverProcess 2(debugAdapters 的 runSelectedRuntime)的插件目前在两个平台都会被宿主拒绝。 * docs(contracts): litheBuild 协商版本列表补到 11 构建提供者一节写的宿主提供版本还停在 [8…1],与同文件前文和 Core build_provider.rs 的 SUPPORTED_VERSIONS(11…1)不一致;补上 9(语义测试选择器)、10(类型化运行选项与服务/任务运行准备)、11(注册表连接调试)的说明。 * docs(contracts): 修正工具链、快捷键导入、VCS 与 Windows 宿主现状的过时说明 - 契约目录表和工具链 fixtures 说明:macOS 已为设置页、Build 与运行工具使用插件工具链,Windows 未接入 - 工具链一节:Build 工具和运行计划里指向插件定义工具的 toolchain 可执行文件走独立的新鲜解析 - 能力表 toolDefinitions/toolchainProviders/executableResolution 的宿主说明同步 - Shared executable candidates 锚点改为 -12(两处) - 快捷键导入:macOS 已声明能力,三个官方 SDK 已实现 - Current Windows availability:Windows 声明 ui 1、2,不声明 3、4 - 工具链提案 README 的示例目录改为 fixtures/toolchains/proposal/ - vcs-provider-v1 状态行:macOS 已启动提供者 * docs(contracts): 工具链契约去掉 preview 上不存在的 Windows Build 管道说明 - toolchains/README.md 状态段原说 Windows 已有目录固定、声明式扫描、shell 候选和提供者查询的 Build 管道;这些代码在未合入的 Draft #1722,preview 的 Windows 宿主没有工具链适配器,也不声明 toolDefinitions、toolchainProviders。改为如实说明,并写明 Core 在 Windows 上拒绝需要这两项能力的包。 * docs(contracts): Windows 市场现状与 Lua 模板平台说明对齐 Core 的 validateIndex 规则 Core 的 plugins.marketplace.validateIndex 只在 darwin-* 平台把没有 requires 的级别 2 版本标为可用,Windows 只支持从磁盘安装声明式插件、没有市场浏览入口。Lua 模板第 5 步原写可列 macOS 和 Windows,改为只列 darwin-*;顶部工具链说明不再写死命令数量。 * docs(contracts): 按 Windows 已合入的磁盘安装实现改写其现状说明 Windows #1424 已实现私有快照、installReview 和用户确认的磁盘安装,原文仍写 Windows 没有这套流程。改为写明它做了什么,以及与 macOS 的差距:不验证发布者签名、只比对 plugin.json、不记录已批准程序和来源、没有市场安装入口。 * docs(contracts): 签名向量的说明不再声称 Windows 已有签名模块 Windows 的签名验证还在未合入的 Draft #1478,preview 上只有 macOS 的 PluginPackageSignature 测试使用这组向量。
This was referenced Nov 5, 2026
Keep native open/focus and close commands available after the settings row unmounts or the native window closes independently. Serialize row actions, surface native failures for retry, and ignore late updates after unmount. Cover remounts in both locales, duplicate clicks, failure recovery and stale owners with deterministic regressions. Update the owning note and matrix.
26 tasks done
Keep the existing floating document generation and pending requests when Open focuses its native window. Reject reuse after revocation or workspace identity changes; new document creation still retires the old requests. Add deterministic native regressions and update the owning note and matrix.
2 tasks done
Resolve conflicts with preview, preserve current Windows plugin work, and use Core-provided runtime probe arguments. Handoff: architecture gate fails on added language-specific host logic; marketplace HTTPS transaction acceptance is incomplete. The latest runtime probe change has not been compiled or run on Windows.
2 tasks done
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.
插件网页窗口:聚焦、设置页恢复与生命周期
真实 WebView2 验收发现:再次点击设置页 Open 后,原页面的文档版本被覆盖,后续 ui.getState/ui.setState 被拒绝。现在聚焦保留存活浮动页的版本和待处理请求;已撤销、正在销毁或工作区路径/版本变化的旧窗口不能借此恢复权限,新文档创建仍撤销旧请求。
关闭设置页、切换分类或原生窗口独立关闭后,设置页始终保留打开/聚焦与关闭动作。每行只允许一个在途操作,同步拒绝重复点击,失败就地显示且可重试,已卸载设置页的迟到结果不影响重开的页面。
Windows 的契约插件现在接入原生安装、市场、设置、工具窗口、Provider 和项目生成工作流。语言与构建事实继续由共享 Core、既有 Java owner 和 JDT/上游工具提供,Windows 宿主负责权限确认、作用域隔离、有界执行和资源清理。
PR 保持 Draft。ui3、buildProviders/buildSystems、backend2/ui4、正式 Java packageTrust 和 releaseEnabled 等尚未准入的生产能力继续关闭;受控签名与隔离镜像只用于验收,不授予正式发布者信任。
功能与行为
--isolate联合执行;修正 Java 无 JDT/JDT 两条测试契约、Monaco 冷加载计时与确定性生命周期夹具。Windows Git 集成仅对实测案例与特定夹具请求设置局部预算,生产期限、断言和套件总预算不变。资源复用清单、CI 路由、Notes、契约与跨平台矩阵同步维护。Java 产品驱动覆盖生成、JDT ready、编辑保存同步、精确 Core prepareLaunch、真实输出、Stop、编译错误拒绝与恢复;Maven/Gradle 使用各自完整构建插件输入。完整运行时包的目录与 prepare 等待精确可见启用动作,保留案例和工作总期限;JDK 选择复用可见完整路径校验,运行配置及工作区收据只接受当前 version 2 的 toolchain.java.homePath。驱动在 JDT 导入前审批 Maven/Gradle 模型,在保存同步后执行任务;切换工作区后重建审批代次。路径比较兼容 Win32 扩展驱动器/UNC,JDT 归属解析存在资源后核对精确包目录,兼容 MSIX 重定向并拒绝相邻包。plain 默认值须有同包同表单的成功 Core 求值证据;输入使用真实键盘单行 Java 源码,避免多行自动缩进改变夹具;保存前等待当前会话和精确文件同步,保存读冲突或临时替换间隙在原期限内等精确原始字节。切换标签使用其公开 title 解析实际目录并等待选中且可操作。观察器校验 operation/workspace/plugin/generation 和唯一有序终态;failedToStart、取消、错身份、缺失报告或重复终态均不能计为成功。是否通过以各变体的实际产品报告为准。
Plain Java 的 JDT 隐式项目位于可写缓存,当前 Java Debug 的路径限定搜索会提前排除它;入口与 prepareLaunch 现在复用当前 JDT 会话的完整查询,再由既有 Core normalizer 筛选工作区及解析后的目录,拒绝相邻或外部源码,入口语义仍由 JDT 判定。新增真实 plain 文件夹与跨工作区归属回归,保留链接路径验证。驱动遇同会话同文件较新的 close(包括未完成请求)时撤销旧同步证据,重新同步后才保存。
文档生命周期与验收行为
当前源码验证
--isolate完整前端联合测试 4149/4149 通过;最终 TypeScript 检查通过。5870282d9通过 1557/1557,此前失败或超时的 18 项全部通过。逐项期限采用提交中的 Windows 预算,原失败报告保留。Maven 冷下载首次超时和增量编译跳过错误源码的原始失败均保留;编译器依赖通过 Maven 严格校验下载并离线复查,错误分支明确审批公开 clean 后执行原 compile,继续要求真实非零终态、精确错误符号、Run 拒绝和恢复。当前结果来自更新驱动后重新冻结并构建的正式镜像;案例与工作流期限未扩大。下表保留各轮实际证据:生产与受控基础验收、Java 三变体来自最终源码库存绑定的 x64 隔离 Release;文本、WebView2 网页桥接回退及设置子集在
5870282d9的隔离 x64 Release 复验。项目生成器用aa36f8416的验收源码复验。原生 Provider 子集沿用较早镜像的独立证据。受控镜像临时固定验收公钥与必要能力,使用正常验签和审批,不等于正式发布准入。生成器回归通过项目设置核对工作区切回后选中的 JDK 路径和有效版本。首轮旧驱动传入空路径,误把系统自动 JDK 17 当成项目选中的 JDK 21,保留了原始结果和同镜像对照。新增回归拒绝自动结果,即使它碰巧使用同一路径。
产品收尾:隔离 profile 清除=True。每项进程清理与资源哈希检查以独立报告为准,跳过项不计为通过。
临时受控源码已恢复:True。
剩余验收与环境限制
.artifacts/r42-fixes/,不入库。主工作树原有三个矩阵文件与.zcode/修改未纳入此 PR。PR 继续保持 Draft,不 ready、merge 或 release;本轮不派发新任务。