Skip to content

fix(desktop): 恢复 Viva 插件运行调试接线并验证旧 Java 项目 - #1862

Merged
1lck merged 6 commits into
previewfrom
codex/java-viva-integration
Nov 13, 2026
Merged

1lck merged 6 commits into
previewfrom
codex/java-viva-integration

Conversation

@1lck

@1lck 1lck commented Nov 13, 2026 •

Copy link
Copy Markdown
Owner

关联 Issue / Linked issue

PR 类型 / Type

  • fix:缺陷修复

改动说明 / What changes

背景 / Why

安装契约匹配的 Java 插件后,真实 Core 仍会拒绝 Run/语言功能注册;已打开文件的动作不自动刷新;首次调试要求先打开 Debug 面板;工具栏停止附加调试可能留下 Run 持有的暂停进程。本 PR 修复宿主通用接线,并用真实插件 ZIP、Maven、JDT、java-debug 验证完整工作流。Java 专属逻辑全部在独立插件,Core 没有新增 Java 特判。

改动 / Changes

  • 注册 editor actions/providers 时先验证 context/调用方,再只把声明部分交给 Core 严格解码,不放宽未知字段规则。
  • 动作注册/撤回后异步通知窗口,刷新当前工作区已打开文档;在动作锁之外排队,不从注册处理器同步调用后端。
  • 语言服务器就绪后重新收集动作,避免打开文档后必须再编辑才能显示 Run/Debug。
  • 同一文本版本的模型刷新使用文档本地呈现代际;旧空结果/旧错误不能覆盖新动作,新增完全受控的倒序送达回归(修复前失败,修复后通过)。
  • Run 的 attach/launch 调试按需读取适配器,加载完检查请求取消,不要求用户先打开 Debug 面板。
  • 附加会话持有 Run 原生进程的有界清理回调;关闭适配器并销毁 Core 调试会话后,在后台回收它,避免退出宽限耗尽 Core 销毁预算。手动附加外部进程不传此回调,不改变外部进程所有权。
  • 关闭项目/调试会话/应用的重复自动停止保持幂等,不把一次关闭升级为强制结束;用户或插件明确再次停止仍保留强杀语义。新增受控的宽限及清理顺序回归,两项均先红后绿。
  • 真实 Java 夹具始终登记无交互清理,绕过测试拥有项目的保存/退出确认;新增暂停在真实断点后直接返回、由 t.Cleanup 回收 JVM 与 Core 调试会话的场景。
  • 真实 Core 注册回归、首次 attach/launch 回归、连接端口开放后附加/停止回归,以及定向 -race。
  • 新增显式 opt-in 的真实 ZIP 无头测试:隔离存储/安装、补全、Maven compile、第三方 classpath、main 输出、断点/变量、继续/再次调试/停止、编译失败不启动旧 class、两包完整哈希不变。
  • 扩展旧项目矩阵:JDK 8 source/target、旧 Maven 目录/输出目录、真正跨模块依赖和中文空格目录、Profile 源码目录、JDK 8 javax JAXB、JUnit 3/4 Maven goal、Eclipse/Ant 布局的 JDT 构建。
  • Java 5/7 的安全拒绝检查独立命名;历史项目支持固定 checkout 的隔离副本及可选、明确记录的临时 POM source/target 8 修改,不修改下载源或用户项目。
  • 更新三项功能矩阵、通用架构 Note 与缺陷回归 Note,保持未验收平台 pending。

不在本 PR 范围内 / Out of scope

  • 不发布应用或插件版本,不修改 Core/插件契约或 SDK。
  • Java 5/7 原源码级别的完整 Run/Debug 未跑通:Maven/JDK 8 能编译、补全可用,但随包 ECJ 明确最低 source 8,运行前 JDT 构建拒绝。安全拒绝测试通过不能写成旧项目受支持。
  • Eclipse/Ant 布局由 JDT 构建,没有执行 Ant target;JUnit 3/4 覆盖 Maven test goal,没有声称所有行内 Java 测试运行器可用。
  • 原生窗口、Windows/Linux 实机、私有仓库、Java EE 容器未验收,按用户明确要求使用无头模式。Viva 预览版问题聚集贴(preview 最新构建即可) #1832 收集的无构建文件工程、EAR/WAR 的 MANIFEST/WEB-INF/lib/EAR/lib 依赖自动导入和前端支持也不在本次普通 Maven 接入范围;没有关闭该收集帖。
  • 既有 Runner.Stop 通过销毁失败重试等待退出的日志噪声不夹带修复,见 [Feature] 重构插件会话停止回执,避免正常关闭通过销毁失败反复探测 #1860;本轮未观察到进程残留。

类型专属:fix

复现与根因

  • 真实 Core 的声明解码拒绝含 context 的 registration,修复前回归报 plugin.host.invalidParams;原假宿主不做解码而漏报。
  • 不预先打开 Debug 面板,attach/launch 回归修复前返回 the debug adapters are still loading。
  • 真实 Java 第二次调试暂停后点击 Stop,修复前 30 秒仍等待 Run 结束;修复后停止并回收进程。
  • git blame origin/preview 定位这些宿主路径来自 0faecba491 的 Viva 迁移。PR patch 基线为 preview 540ca9eeb;本地先与 preview 6268d9292 合并完成全量及 Java 矩阵,随后与最新 d1e20c8cf 合并,补测构建任务范围选择与普通 Maven 全链路、全模块编译和 vet,并对最终树再跑全量 Go(workbench 146.380 秒)。已合并为 6bc91bc57c9f952e680f9c99d01b849915b20cc1,GitHub 文件树 2af9fe5a02192d77add5db2645cc371595d402ec 已核对与本地实测一致;Core 固定为 f113e9e9f81a30fa9feb61307e4118af111df936;契约与 fixture 仍从正在链接的 Core 检出读取。
  • 影响平台:共享 Viva Go 接线;运行证据仅来自 macOS arm64 无头工作台。

检查项

  • 修复前失败/修复后通过的回归:hostactions_refresh_test.go、hostproviders_routes_test.go、debug_test.go、java_plugin_e2e_test.go;上列错误即修复前结果。
  • [N/A] 无法自动化场景:本 PR 工作流使用真实工具自动化;没有原生窗口界面变更。
  • 已搜索注册处理器、RunDebugRequest、调试会话释放和后端状态通知调用方,包括共享平台、Core 契约/fixture 与独立插件。
  • 两端使用同一 Viva 接线,不新增平台分支;未运行的平台不标记已验收。
  • 无关重构不混入;既有共享状态职责债务已建 [Feature] 重构插件会话停止回执,避免正常关闭通过销毁失败反复探测 #1860。
  • 易复发的约束记录于 .agents/notes/implemented/bug-fix/2026-11-13-viva-plugin-run-debug-lifecycle.md。

范围检查 / Scope checks

功能矩阵 / Feature matrix

  • 更新 plugin-editor-actions、plugin-editor-providers、plugin-backend-run-start 的证据和行为说明;各平台原生验收保持 pending。
  • 已运行 matrix verify/change gate 与生成器,未提交 .artifacts 生成视图。
  • [N/A] matrix-exempt:不使用豁免。

统一日志系统 / Structured logging

  • 沿用已有目录事件/处理边界,无新事件 ID、logger 或自由文本写入器。
  • 真实 Core 核对 Java 运行成功 INFO、编译失败唯一 ERROR run.build_failed、op 身份与高频收集成功抑制;不改写上游输出。
  • 没有把源码、工具输出、环境或凭据写入新增产品日志;测试日志仅含合成 fixture/公开历史项目,原始本机日志未提交。
  • [N/A] 旧 scripts/logging/generate-log-events.mjs / verify-log-usage.mjs 已移除,本次无新目录声明,未将不存在的全局门禁记为通过;现有事实验证与已知 [Feature] 重构插件会话停止回执,避免正常关闭通过销毁失败反复探测 #1860 分开报告。

界面文案 / i18n

N/A:不新增用户文案或词条;已有错误仅因流程恢复而触发。i18n verify 与 generate --check 仍实际执行通过。

逻辑归属 / Logic placement

性能与内存 / Performance and memory

  • 按首次操作加载适配器,动作刷新仅在注册/撤回/服务器就绪触发,无空闲轮询。
  • 清理在后台且有界;窗口不启动/等待进程,不新增持久缓存。
  • 单点 JDT RSS 约 0.5–0.85 GiB;测试隔离安装/状态且验证文件哈希不变,没有做峰值或前后性能改善声明。编辑器核心与性能预算文件未改,无新增运行时/大型依赖。
  • [N/A] 编辑器性能基线:未改 editor/editorview 或其预算;无输入、滚动或绘制算法变更。

设置 / Settings

N/A:未新增设置或影子配置。测试只用隔离存储和显式 opt-in JDK 环境,不修改用户配置。

插件契约 / Plugin contract

N/A:没有新增或修改公共宿主 API/通知/schema。EditorActionsChanged 与 StopRun 是 Go 内部窗口/进程接线,不是插件协议;仍使用已固定的 Core 契约 fixture。

发行包与资源 / Bundle and resources

  • bundle 只读静态门禁通过;真实 Java/Maven 已安装包的全文件哈希在完整工作流前后不变。
  • [N/A] 资源复用清单:没有新增产品下载入口、资源目录或可复用缓存;历史源码是外部提供的测试输入,复制到 TempDir,不提交到仓库。

无用代码与重构 / Dead code and refactoring


验证 / Verification

命令或操作 平台 结果
真实 Java/Maven ZIP 最小工作流 macOS arm64 headless 先前最终包三轮通过;与 preview 6268d92 / Core f113 组合的普通 Maven + 旧项目及中断清理矩阵 14 项通过;最新 d1e20c8 的普通 Maven 全链路再通过
TestJavaPluginCleanupWhilePaused macOS arm64 headless 真实断点暂停后跳过成功关闭路径,t.Cleanup 回收 Run 并确认 Core 会话不存在
TestJavaPluginLegacyWorkflows macOS arm64 headless 8 类全链路通过;第二轮发现的多模块渐进导入刷新遗漏已修复,随后同场景五轮通过,Core f113 完整矩阵再通过
TestJavaPluginLegacySourceBoundaries macOS arm64 headless Java 5/7 安全拒绝通过;完整 Run/Debug 不支持
ECJ 独立 -source 1.5/1.7/1.8 macOS arm64 旧两级别拒绝、1.8 成功,与 JDT 路径一致
Commons CLI 1.3.1 / Joda-Time 2.3 原 POM macOS arm64 headless Maven 编译/补全成功、运行前 JDT 拒绝,不算完整通过
两个历史项目的临时 source/target 8 副本 macOS arm64 headless 加 API 验证 main,完整 IDE 工作流通过(22.13 / 23.71 秒);下载源码保持只读
desktop-go.sh test ./... / vet macOS arm64 最终合并文件树 2af9fe5a 全量通过(workbench 146.380 秒),全模块编译及 vet 通过;构建范围和 Maven 定向 18 项通过
8 项定向 -race macOS arm64 8 项 -race 通过,在 preview 6268d92 组合上再次通过,含同文本版本倒序结果、重复自动停止保留宽限及 Core 销毁先于进程等待
i18n verify / generate --check 本机 通过,11070 中英文词条完整
verify-runtime-bundle-immutability.sh 静态 macOS/Windows 源路径检查通过
功能矩阵 / Agent Notes / 稳定性静态门禁 本机 通过

CI 观察: 初始 c6e73c2 提交的 Windows CI 曾在本 PR 未修改的 TestWindowsShellReportsDirectoryAfterChangingIt/powershell.exe 出现一次 12 秒无输出超时;同 SHA 只重跑失败 Windows job 后通过(首次失败记录)。没有改动该终端测试或延长它的等待时间。最终 99db65e 的 macOS 首次 CI 在本 PR 未修改的 TestUndoAndRedoKeepTheColorsOfEveryLine 出现 5 秒着色未更新;编辑器包、语法依赖、Core 与 preview 相同,本机该测试连续 20 轮通过(desktop-go.sh test ./internal/editorview -run ^TestUndoAndRedoKeepTheColorsOfEveryLine$ -count=20 -timeout=120s),未宣称已修复,首次 失败证据 保留。99db65e33 的 Linux、Windows CI 通过;macOS 首轮为上述着色失败,重跑等待约 15 分钟后被 GitHub 自动取消,注解为 The job was not acquired by Runner of type hosted even after multiple attempts(容量不足记录)。不继续反复消耗 runner;在上述本机完整组合验证通过后,按维护者授权使用管理员合并。远端 macOS CI 未通过,不能记为绿色或原生窗口验收。自动运行验收机器人在初始提交报告 Invalid scenario identity,最终 99db65e 报告 partial:其环境缺少 Go、Java、MinGW、Core 和 Windows 插件包,未能运行对应验收。本 PR 不将它记为通过;实际 Java 工作流证据来自上述本机真实 ZIP 无头测试,三平台 CI 仅证明通用客户端测试。

未能执行的检查和原因: 用户明确选择无头模式,本轮不声称原生窗口或 Windows/Linux 已验收。Java 5/7 原配置、私有库、Java EE 容器、Ant 命令与所有行内测试运行器属于未支持/未覆盖范围,不能从守护测试通过推断功能通过。

提交前确认 / Final checks

  • 分支从最新 preview 基线重放;目标 preview。
  • 先 Draft;本地最终验证完成后再 ready。
  • 没有提交 .artifacts、历史项目副本、target/dist、个人路径或用户日志。
  • 本地最终测试已结束,确认无应用/插件/JVM/测试进程残留;CI 状态单独列出,不将排队当成通过。

@ghfind-review ghfind-review Bot added the review: high ghfind author score; see https://ghfind.com label Nov 13, 2026
@1lck
1lck marked this pull request as ready for review November 13, 2026 17:07
@lithe-code-review

lithe-code-review Bot commented Nov 13, 2026 •

Copy link
Copy Markdown

Lithe Review

结论: ⚠️ 有建议
范围: preview ← codex/java-viva-integration · head: c6e73c2

发现三项 P2 建议,未发现需要阻塞合并的问题。

Findings

  1. [P2 / 本次引入] 自动回收回调会把关闭项目升级为强制终止
    desktop/internal/pluginservice/runs.go:588

    • 实际影响:同一个 Run 的退出宽限可能被跳过,进程无法完成正常收尾。
    • 触发条件:关闭仍有附加调试 Run 的项目。finishCloseProject 同时调用 stopDebugForProject 和 stopRunsForProject;新增回调与已有 StopWorkspace 都进入 stopRun,后到的一次会在 runs.go:248 直接调用 Kill()。
    • 复现步骤:运行带耗时 SIGTERM 收尾的 connection 调试目标,确认关闭项目;两条自动清理路径会把单次关闭当成第二次强制停止。新增回调之前没有这次重复停止。
    • 修复方向:让自动回收使用幂等停止入口,保留用户再次点击停止时的强杀语义,并覆盖关闭项目时的并发清理。
  2. [P2 / 本次引入] 等待 Run 退出会耗尽后续 Core 销毁的截止时间
    desktop/internal/workbench/debug.go:849

    • 实际影响:DestroyDebugSession 可能完全不执行,留下 Core 调试会话;cleanupOnce 已消耗,之后不会重试。
    • 触发条件:新增 stopRun() 阻塞超过十秒。这里的十秒 context 在回调之前创建,而 Runs.stopRun 可以等待退出宽限加十秒;现有设置允许最长六十秒宽限。
    • 复现步骤:将退出宽限设为十二秒,让附加目标在宽限内持续运行,再点击 Debug 停止。回调返回时 context 已过期,core.Client.execute 会在进入 Core 前返回超时。
    • 修复方向:给 Core 销毁单独的有界 context,或在等待 Run 退出前完成销毁;补充慢停止回调的回归。
  3. [P2 / 本次引入] 真实 Java 夹具缺少失败时的无交互清理
    desktop/internal/workbench/java_plugin_e2e_test.go:91

    • 实际影响:新增测试在运行或调试中断言失败时,不能保证回收 Run 和 Core 调试会话,可能污染后续用例。
    • 触发条件:closeAndVerify 只在正常路径调用。通用 harness 的清理调用 closeProject(),但运行中的 Run 会要求确认;其兜底路径只停止语言服务、取消项目和关闭文档,没有调用 stopDebugForProject、stopRunsForProject 或 Runs.StopAll。
    • 复现步骤:在 Java 断点暂停后注入一次失败。测试跳过 closeAndVerify,无人处理关闭确认,兜底清理也不会执行新增的调试会话停止回调。
    • 修复方向:在夹具中注册始终执行、无需确认且有界的清理,显式停止调试和运行,并通过失败注入确认无残留。

Scope Check

  • 关联需求与完成范围:Viva 预览版问题聚集贴(preview 最新构建即可) #1832 是问题收集帖;本 PR 处理插件注册、动作刷新和 Run/Debug 接线,未声称完成 Java EE、前端或 Java 5/7 完整支持,范围说明一致。
  • 上游复用:生产改动未增加 Java 项目模型、classpath 或编译规则的并行实现;独立插件实现未在本次本地审查中复核。
  • 三项 Finding 均由新增回调或新增集成夹具触发,属于当前变更职责范围。

架构归属对账

逻辑块 归属 依据
pluginservice/hostactions.go:editorRegistrationValue、hostproviders.go:handleRegisterEditorProviders 平台桥接 分离路由 envelope 后仍调用 Core 解码;最终经过 C.lithe_core_execute_json,未新增声明规则
workbench/pluginworkbench.go:EditorActionsChanged、pluginbackends.go:servePluginServer 平台 API 向 Viva 窗口队列投递刷新,通过 Invalidator.Invalidate 唤醒
workbench/editor_actions.go:presentEditorActions、documents.go:actionCollection 界面呈现状态 使用 editorview.View.Revision 和图标、链接呈现接口隔离旧结果
workbench/debug_start.go:attachDebugForRun/launchDebugForRun 平台 I/O 与窗口接线 复用安装目录读取、适配器加载和窗口线程启动入口
pluginservice/runs.go:StopRun、workbench/debug.go:releaseDebugSession 原生进程适配 最终调用 buildprocess.Process.Stop/Kill,Unix 端执行 syscall.Kill;清理问题见 Findings
新增 Java 工作流夹具 测试编排与工具输入 使用临时目录、真实插件及上游工具,没有新增产品侧 Java 规则
  • 未沉入清单:本次触及的逻辑未发现新增 Core 迁移项;既有停止回执职责债务见 #1860。

Checked and cleared

  • 注册请求保留严格解码和身份检查,仅删除已经验证的 context,没有放宽未知字段规则。
  • 动作变化通知在动作锁释放后排队;呈现同时检查项目、文档版本和收集代际,能够拒绝旧结果及旧错误。
  • 手动附加入口没有传入 StopRun,新增回调只关联 Run 所拥有的进程。
  • Java 集成测试显式 opt-in;Java 5/7 安全拒绝与完整工作流分别记录,功能矩阵保持平台验收 pending。

Suggestions

  1. 对应 Finding 1:区分自动幂等回收与用户重复停止,覆盖两条清理路径同时到达。
  2. 对应 Finding 2:分开进程等待和 Core 销毁的时间预算。
  3. 对应 Finding 3:补充失败时强制清理及失败注入验证。
  4. 补充已打开文件的 Run/Debug 动作和停止交互截图,已有界面提供前后对比;提供的上下文没有相关截图,视觉效果尚未验证。

Observations

Summary

注册校验、刷新时序和首次加载的修复方向合理。建议补齐自动停止的幂等性、销毁预算和集成测试失败清理;现有成功路径验证未覆盖这些边界。

Verification

  • 静态检查了完整 21 文件变更及直接调用链,范围为 540ca9e...c6e73c2;git diff --check 通过。
  • 作者提供了 macOS arm64 无头工作流、旧项目矩阵、定向竞态、i18n 和包哈希验证结果;这些是提供的结果,本次未复跑。
  • head 的格式、固定修订、功能矩阵和 Agent Notes 检查显示成功;Linux、macOS、Windows 测试仍为 in_progress,不能认定最终 head 全量通过。
  • 按只读要求,未运行仓库代码、测试或边界脚本,未访问网络。原生窗口、Windows/Linux 实机、截图及性能前后对比仍缺验证证据。

@lithe-code-review

Copy link
Copy Markdown

Lithe 运行验收

版本:c6e73c2f59f1f79dbd800bb8f0fc0dda888fae38;状态:blocked。
本报告独立于代码审查;只报告实际执行的场景,不代表所有问题均已修复。

执行未完成:Invalid scenario identity

本次未形成完整验收结果,详见执行原因。
详细步骤和原始证据保存在服务器受限目录(14 天、总计不超过 1 GiB);当前没有公开下载链接。

@lithe-code-review

Copy link
Copy Markdown

Lithe 运行验收

版本:99db65e334bd37c9f6937df5213d12b4e0c06c83;状态:partial。
本报告独立于代码审查;只报告实际执行的场景,不代表所有问题均已修复。

对照:共同祖先 540ca9eeba0f448a825e9f39a4058da84d130b07 → PR head;当前目标分支合并适用性:未运行。

  • 条件不足,未验证:Exercise the actual Go plugin-service handlers with the pinned Core decoder, then the real workbench action-collection path. Register actions and routed providers using a valid workspace context; register and withdraw bindings after opening documents; deliver language-server readiness without editing. Hold an earlier collection at a controlled gate, deliver a newer result at the same text version, then release the earlier empty result/error. Evidence level: native host/Core component integration, not native-window verification.
    • The inventory lacks Go; desktop/go.mod pins go1.27.3. Windows linking additionally requires an unavailable MinGW/cgo toolchain and the external Core f113e9e9f81a30fa9feb61307e4118af111df936 headers/static library and fixtures. No staged Core artifacts or native acceptance executable are present. The new regression test directly references editorActionSnapshot/presentEditorActions, which do not exist on the baseline: copying that test would yield a build failure, not behavioral evidence. A frozen harness using production boundaries available on both revisions is required.
  • 条件不足,未验证:In separate fresh projects, invoke the production Run attach and launch paths before adapter discovery has occurred. Gate adapter discovery to cancel one request before completion. Exercise connection attachment only after the target port opens, then release an attached session owning a real fixture process. Separately control process-stop completion to check duplicate automatic cleanup, explicit repeated stopping and Core-destruction ordering. Evidence level: native lifecycle integration plus deterministic component checks, not toolbar interaction.
    • Go 1.27.3, Windows cgo/MinGW, the pinned Core build/fixtures and a compatible native adapter fixture are unavailable. A baseline-compatible lifecycle harness is also needed; PR-only StopRun fields cannot be used as baseline prerequisites. Windows process_windows.go declares StopsGracefully=false and terminates its Job Object immediately, so Windows runtime timing cannot prove Unix SIGTERM grace. The host stop policy must use controlled synchronization; actual macOS grace requires separate macos capability.
  • 条件不足,未验证:Use identical immutable Windows Java/Maven plugin ZIPs with isolated installation, storage, workspaces and dependency caches. Drive actual Core, JDT LS, Maven and java-debug through the production workbench paths: completion, compile, dependency-backed output, breakpoint/local-variable inspection, continue, second debugging and stop, followed by invalid-source refusal. Repeat with the eight legacy fixture variants. Include Java 5/7 refusal, externally supplied fixed historical-source copies and a workflow that leaves a paused session to unconditional teardown.
    • In addition to the missing Go/cgo/Core prerequisites, Java is explicitly unavailable. No compatible Windows Java/Maven ZIPs, Maven distribution, JDT/java-debug resources, offline artifact repository, project JDKs for Java 8/11/17 or JDK required by the supplied JDT LS were provided. Fixed historical-source fixtures and their identities are absent. The integration tests are opt-in and absent on the baseline; skipped or unmatched tests would provide no evidence. These inputs and a frozen cross-revision harness must be supplied before a runnable probe can be defined.

未覆盖:

  • Valid action/provider registration through the real Core, with caller/context validation and strict rejection of unknown fields, duplicate registrations and unavailable functions, remains unverified.
  • Registration, withdrawal and language-server readiness refreshing already-open documents without an edit, asynchronously outside the action lock, remain unverified.
  • Same-text-version stale empty results and errors being discarded, together with document/project/version isolation, remain unverified.
  • First-use attach and launch, cancellation during adapter discovery, connection-port readiness and launch argument/environment binding remain unverified.
  • Owned-process cleanup, external-process ownership preservation, Core destruction before process waiting, idempotent automatic stops, explicit repeated-stop escalation and cleanup after interrupted workflows remain unverified.
  • Real Java completion, Maven compilation, dependency classpaths, main output, breakpoints, variables, continue, repeated debugging, stopping, stale-bytecode prevention, structured diagnostics and package hash invariance remain unverified.
  • The legacy matrix remains unverified: Java 8 source/target, custom Maven layouts, cross-module dependencies with Chinese/space paths, profile source roots, javax JAXB, JUnit 3/4 Maven goals and Eclipse/Ant-layout JDT builds.
  • Java 5/7 safe refusal and fixed historical-project copies, including explicitly qualified temporary source/target 8 overrides, remain unverified. Safe refusal would not establish full Java 5/7 support.
  • These component/native integration plans provide no native-window, dialog, focus or visual-performance evidence. Native desktop acceptance remains blocked by the absence of an interactive desktop; macOS-specific graceful process termination also cannot be established on Windows.
  • Linked Issue bodies and companion plugin sources/packages were not supplied. Requirements beyond the explicit PR description cannot be established; no acceptance of the entire Viva 预览版问题聚集贴(preview 最新构建即可) #1832 collection thread is implied.

工作副本与运行状态已清理;可复用编译缓存按 12 GiB / 7 天预算保留。
详细步骤和原始证据保存在服务器受限目录(14 天、总计不超过 1 GiB);当前没有公开下载链接。

@1lck
1lck merged commit 6bc91bc into preview Nov 13, 2026
10 of 12 checks passed
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