Skip to content

fix(remote): #1507 远程工作区、构建与插件执行适配 - #1515

Open
xiaoyumuxi wants to merge 6 commits into
previewfrom
codex/1507-remote-backend
Open

xiaoyumuxi wants to merge 6 commits into
previewfrom
codex/1507-remote-backend

Conversation

@xiaoyumuxi

@xiaoyumuxi xiaoyumuxi commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

关联 #1507。远程项目此前有多条工作流访问本机占位目录、运行本机工具,导致终端、环境发现、Git 和搜索无法使用真实主机数据。本 PR 将这些流程的文件和进程 I/O 接到工作区所属连接,并加入构建及通用插件执行的基础适配。

这是阶段性实现,尚未完成整个 issue,不关闭 #1507,也不宣称达到合并/发布条件。 当前 PR 实际为非 Draft;本次只追加提交和更新说明,不切换 Draft/Ready 状态。 已接入的代码、自动化 fixture 与真实 SSH 验收分开记录;功能矩阵保持 partial / pending。

本次改动

工作区身份、文件树与监听

  • Core 请求携带明确的 remoteWorkspace { sessionId, localRoot, remoteRoot },只映射类型化路径字段;拒绝跨主机混合操作。长期历史、进程及清理持有原连接,重连或切换项目不会改投另一台主机;远端失败不回退到本机占位目录。
  • 文件树接入新建文件/目录、复制、重命名、删除和移到主机废纸篓。禁止覆盖的复制先私有暂存再原子发布,保护并发创建的目标;废纸篓复用 trash,不可用时失败而不变成永久删除。
  • 远端 watcher 先订阅再启动,覆盖外部创建、修改、移动和删除;将变化交回文件树、文档、Git 与搜索的现有刷新流程。支持 Git common directory、启动/溢出重扫、根目录删除以及取消后的旧结果屏蔽和释放。
  • 保留文档冲突检测,限制读取、原子写入和启动队列的数据预算;权限错误与断线不当成文件不存在。

终端、环境、Git 与搜索

  • 远程 PTY 接入已有本机终端渲染器,工作目录映射到真实项目路径。启动确认后才发布 PID/就绪,输入有序,缩放合并,重启等待原传输清理;远端 PID 不进入本机进程注册表。
  • JDK、Maven、Shell 与登录环境在所属主机发现,增加有界工作线程、缓存、取消和 generation 检查;不使用本机缓存冒充远端结果。显式 Shell argv 保持原样。
  • Git 继续复用原引擎,替换其文件与进程适配:状态、暂存、提交、历史分页、配置来源、选择文件提交、未保存内容的行历史、worktree 与克隆路径均走所属主机。选择文件提交保留无关暂存数据。
  • 搜索索引与文件/内容搜索读取远端,增量刷新与缓存包含连接身份,防止本地空目录缓存污染远程结果。

构建、插件部署与 stdio

  • 构建模型扫描、工具解析、命令执行、诊断路径、Maven reactor/test reports 和构建输出读取接入远端 I/O。保留退出码、信号、取消和输出预算,stdout/stderr 分别增量解码 UTF-8。
  • 构建状态和临时输出位于远端用户目录,单次运行清理捕获原连接;声明引用插件资源时先部署资源,再展开远端 launch plan。
  • 增加 remote.hostInfo、remote.uploadFile 与可选 upload 主机能力:256 KiB 分块、每文件最多 2 GiB、四个上传槽、五分钟绝对期限、精确 offset、SHA-256 和禁止覆盖的原子发布。失败/取消尝试 abort,断线与到期清理暂存文件,未提高协议单帧上限。
  • 远端插件采用已批准安装的独立运行快照。复核原安装来源/信任;异平台包仅接受市场中同版本、相同规范化声明且不增加批准程序的变体,复用现有 HTTPS、摘要、签名和安全 ZIP 校验。拒绝链接/特殊文件并约束条目数、路径和总大小;上传后复核本地快照未变化。
  • 快照位于远端 ~/.lithe-server/plugin-runs/<UUID>/package,普通文件只读、可执行文件只读可执行;提供者可写状态独立放在 state/plugins。不写 app bundle 或安装资源,进程销毁后才删除快照。
  • 构建/VCS/语言提供者接入远端部署与 launch plan,使用固定连接的 Core。通用 stdio 复用现有协议引擎,有界输入/输出,仅转换协议拥有的 URI/VCS 路径,用户文本、argv、配置和插件自定义数据保持原样。
  • 语言会话支持异步准备与后台启动;启动期间保留有界的最新文档和文件变化,传递 workspace configuration;停止或释放拥有者后到达的会话先销毁再释放包。依赖原生集成的远程 Java 仍明确拒绝。

包体、契约与资源维护

  • 小型 daemon 仍仅提供通用文件、进程、PTY、环境、监听和端口能力,不打包 Core、JDK、LSP 或 Agent Host,保留 panic unwind。
  • daemon socket/锁/日志身份包含完整二进制 SHA-256,版本号不变但内容变化时也不复用旧进程。
  • 更新远程协议/Core API 文档、中文架构笔记、资源复用排除清单与测试、独立工作树构建说明、共享 i18n 及生成结果、平台能力矩阵。

2026-10-27:通用插件 / LSP 续作

本轮只继续通用远程能力,不新增 Java/JDT、JDK 目标包或 SVN 专属实现。原 PR 已有适配保留;Java/SVN 的语言或工具专属验收不作为本轮完成条件。Agent 按用户要求后续单独处理,不关闭 #1507。

  • 服务端在连接读取线程预留 process/terminal/watch 启动身份,防止关闭先于创建登记而留下资源。创建者保留最终清理责任,关闭工作线程饱和返回 BUSY、客户端两秒清理等待到期或连接断开均不撤销已记录的清理;关闭等待本身最多 60 秒。
  • 关闭参数先类型校验;无效关闭不取消启动;强制结束不能被后来的普通结束降级;启动失败、无法调度和旧 guard 释放不会阻塞或删除其他资源的等待身份。
  • 区分常驻会话断线与会话结束:断线保留资源供重连,非驻留断线、显式 shutdown 与空闲到期则回收迟到发布的资源;结束标记先于资源表清理。
  • 将 watcher 停止放到工作线程,连接读取线程不承担可能阻塞的后端释放;资源表锁不覆盖磁盘、进程启动或进程树清理。
  • 新增 7 项确定性生命周期回归;watch fixture 使用自有临时空目录,不监听用户共享临时目录,并在清理后删除。
  • 新增 4 项使用真实插件声明和 Rust launch plan 的启动准备测试:目标架构、远端可写状态目录与当前配置、opaque 环境值保留、缺失资源、准备中重连/取消,以及原连接快照释放。
  • 修复远程终端 Swift fixture 的同名绑定问题;Core 空连接清理测试使用独立注册表,不再关闭并行集成测试的连接;PTY resize 用完整命令/提示符确认 shell 就绪,不靠 sleep 或放宽断言。
  • 同步远程协议、Core API、中文架构笔记与 partial/pending 功能矩阵;合入最新 preview cdeec1949 并保留原 PR 提交祖先,使用普通 fast-forward push,无 force push。两处合并冲突分别保留远程 RuntimeLocator 默认实现与上游平台搜索路径端口、远程启动准备测试与上游 hosted workspace-command 测试。

2026-10-27:插件完整快照与上传隔离(本批新增)

已实现

  • 增加可选 runDirectories 能力及 fs.createRunDirectory / fs.releaseRunDirectory。客户端在请求前生成身份,分配回复丢失或取消后仍能按原连接、原身份释放;不接受客户端传入任意删除路径。Core 有限方法白名单同步放行,并有测试保护。
  • 完整运行目录由远端会话拥有:在 ~/.lithe-server/plugin-runs/<id> 下新建 0700 目录,每会话最多 256 个;不接管已有目录。父目录必须是当前用户所有的真实私有目录,拒绝符号链接或宽松权限,不用 chmod 接管用户目录。
  • 显式释放、非驻留连接断开、会话 shutdown 与空闲到期均清理完整快照;常驻会话短暂断线保留资源供重连。先结束消费进程、排空工作线程,再清理目录;迟到分配继续由工作线程持有并释放。
  • 分配/释放复用读取线程预登记和创建者清理,身份支持不透明字符串;失败删除保留登记供重试。等待创建者清理的关闭请求也收到真实清理错误,不能把创建者的删除失败变成成功。
  • macOS 插件部署要求同时具备 upload + runDirectories;旧主机明确提示升级,不降级为不受会话管理的路径删除。校验返回路径,捕获原会话并使用未取消任务清理;已安装插件及 bundle 保持只读。
  • 上传表的全局锁不再覆盖打开、写入、fsync、发布或删除。每文件使用独立非阻塞锁,同一文件重叠请求返回 BUSY,其他文件可独立完成;取消、断线和到期先标记,慢 I/O 工作线程继续负责暂存文件清理。
  • 保留现有上传保证:256 KiB 分块、每文件最多 2 GiB、四个槽、五分钟期限、顺序 offset、SHA-256 和禁止覆盖的原子发布。本批未实现通用用户文件下载、超大文件或单文件并行分片。
  • 新增 11 项服务端回归(完整目录、会话隔离、私有父目录、失败重试、取消顺序、上传隔离),以及 2 项 Swift 回归(分配回复丢失、旧主机能力拒绝)。并发测试使用受控锁/事件,不靠 sleep 制造慢磁盘。
  • 同步远程协议、Core API、中文架构笔记、资源复用排除清单/校验路由/测试、独立工作树构建说明与功能矩阵;能力仍是 partial / pending。

仅记录、未实现的候选计划

按用户要求,将 27 项候选(T01–T14、E01–E07、X01–X06) 写入远程工作区 Host 提案的“待评估能力候选”章节。全部待评估、未排期,不代表已批准开发,也不自动成为本 PR 的合并条件:

  • 基础双向文件传输、文件夹/拖放/批量、进度与取消;先比较复用现有协议、SFTP/SCP 或可选 rsync,而非默认重写完整引擎。
  • 超过 2 GiB/4 GiB 的有界流式传输、断点恢复、源/目标身份保护与原子落盘、完整性核验;并发多文件和单文件并行分片分别取舍。
  • 分片乱序/重复/重叠、重试与结果对账,连接背压、配额、公平性和性能测量;独立数据通道、增量或双向同步单独评估。
  • 远端环境刷新和差异、终端启动模式、按名称显式选择传递变量、敏感值/本机路径保护、缓存失效与确认后重启工具。区分“新进程使用新环境”和“旧 shell 原地重载”,不向忙碌终端偷偷注入命令;代理和凭据转发另有授权边界。
  • 连接诊断、资源恢复选择、端口管理、插件部署提速、只读与危险操作保护,以及真实跨平台工作流验收。

Agent 的本地/远端执行抽象、钩子或桥接方式留到后续独立讨论;不从这份计划自动扩展。

TODO:通用能力剩余 5 类

这些是工作包,不是五个小修补;已实现代码、fixture 和真实主机验收分别记录。新增候选与以下已有缺口分开,不能用“候选未定”豁免安全和验证 gate。

  • 服务强制终止后的快照恢复:桌面客户端消失后的会话到期清理已实现;远端服务 SIGKILL 后可能仍有 macOS 子进程消费快照,尚未实现基于活跃消费者身份的安全回收,不按目录年龄或服务锁消失直接删除,也不扫描接管旧版未登记目录。
  • 通用插件 / LSP stdio 完整验收:真实声明、目标架构、取消和重连的 launch preparer fixture 已补齐;仍需真实 SSH/Linux 上的字节顺序、背压、断线、取消与重连覆盖,以及两个 SDK 示例后端兼容验收。
  • 完整构建工作流:真实 SSH/Linux 上验收保存 → 更新模型/导入 → 编译 → 读取报告 → 启动;验证通用插件资源部署、失败、超时和取消,不以本机 I/O fixture 替代。
  • 通用文件安全边界:带内容身份保护的 trashDocument(expectedIdentity:);Git 大文件临时内容/原子写入仍限 8 MiB,尚未接入分块上传。
  • 平台与发布 gate:真实 Linux SSH 的认证、原生 watcher、断线重连与清理,musl 两架构实际运行,远程 Mac/容器入口、Windows 对齐;当前修订的 CI Swift 6.3.3 与 Intel macOS Rust target 完整检查,以及推送前已有 Windows Rust CI 失败的处理或归因。

本轮明确排除

  • Agent:执行位置、本地运行但环境远程、钩子、ACP/代理/鉴权桥接、路径与历史语义等后续单独设计,当前仍本地执行。
  • Java/JDT:原生 host integration、Java 类型化命令、Linux Java/JDK 资源,以及完整语言专属链路,不在本轮续作范围,当前不宣称远程 Java LSP 可用。
  • SVN 专属包和流程:兼容目标包、SVN 工具与完整 VCS 验收另行处理;通用 VCS 传输接入不代表 SVN 产品可用。

当前代码的本地验证(2026-10-27)

检查 结果
Rust Core timing 1,310 项通过,含 framed-host 的 Git、搜索、构建、上传及 stdio fixture
Remote server timing 80 项通过,含本批新增 11 项目录/上传回归
Swift timing:RemotePluginDeploymentTests / RemotePluginLaunchPreparerTests / MacBuildProviderSessionsTests / MacVcsProviderSessionsTests 29 项通过;本机 Swift 6.4,不代替 CI 6.3.3
Remote protocol / client timing 8 + 21 项通过
资源复用测试 24 项通过
Linux musl release x86_64 1,444,272 bytes;aarch64 1,293,232 bytes,均低于 1,572,864 bytes / 1.5 MiB;未宣称 Linux 实际运行
受影响 crate 的 fmt / remote 三 crate clippy 通过;clippy 使用 --locked --tests -- -D warnings
server target check Linux 双架构与 Apple arm64(含 tests)通过;Intel Apple target 见限制
i18n / 共享契约 / bundle 只读 / 服务边界 / Rust 注释与布局 / 测试稳定性 / Agent Notes / Windows 静态边界 通过;提交前快速 gate 已复跑,Agent Notes 共 160 篇
功能矩阵与变更 gate 209 项能力;对实际 PR base/head 与 fetched preview 检查;远程行保持 partial/pending
测试进程清理 未发现本次 Lithe、远程服务或测试 helper 残留;本批未启动 GUI

当前五条计时 lane 合计 1,448 条,均通过,无超时或硬预算超限。新增 server 用例中取消/上传隔离约 9–32 ms,目录释放/权限/隔离/重试约 33–65 ms;持久会话销毁 1,367 ms、空闲到期清理 1,860 ms 为软性能预警,未超过硬预算。报告为 .artifacts/test-stability/remote-snapshot-{core,rust,swift,remote-protocol,remote-client}.json 及相邻 HTML/JUnit,聚合视图为 remote-snapshot-validation.html / index.html;生成报告不提交进源码。

上轮的 140 项 Swift、69 项 server 和 1,548 条旧聚合属于先前修订,不与当前五条 lane 累加。Core 全量复跑使用进程级 GIT_CONFIG_* 指定 fixture 默认分支 master,没有修改用户全局 Git 配置。之前的 PTY resize 回归使用命令边界握手,未降低断言。

已知检查限制与 CI 状态

  • 本机 Swift 6.4,与 CI 固定 6.3.3 不同;当前修订仍以新一轮 CI 为准,不能把旧修订 CI 或本地结果当成当前修订的全平台通过。
  • verify-remote-workspace.sh --static 在 x86_64-apple-darwin 因本机缺失可用的 core/std 目标库失败,未修改用户工具链;其他三种 target check 和 Linux 两种 release 已另行验证。
  • 全工作区 cargo fmt --all --check 仍在本批未修改的 lithe-agent-host 文件报格式差异;受影响 Core/remote 四 crate 的定向 fmt 通过,不借此改动用户明确跳过的 Agent 模块。
  • 推送前的上一轮 Windows Rust CI 失败:git_watch_context::watch_context_distinguishes_linked_worktree_git_and_common_directories 在 git init -q -b main 约 10 秒后得到 Some(Cancelled)。本批未修复或证明其根因,不能称 CI 全绿。
  • 尚未执行真实 SSH/Linux 全产品验收、Windows 运行验证、两个 SDK 示例后端兼容验收或完整发布包构建。
  • 原有 RunLaunchEnvironment.swift PATH 服务边界阻断已在前次合入的 preview 中修复,当前服务边界检查通过;没有放宽检查或扩展远程 Java/JDT。
  • 本次继续原 PR 的实际非 Draft 状态,不调用 gh pr ready 或切换 Draft;不关闭 [Bug] SSH 服务的缺陷与待完善的点 #1507。候选计划不是实现完成或合并承诺。

@ghfind-review ghfind-review Bot added the review: medium ghfind author score; see https://ghfind.com label Oct 26, 2026
@xiaoyumuxi
xiaoyumuxi marked this pull request as ready for review October 26, 2026 07:44
@lithe-code-review

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

Copy link
Copy Markdown

Lithe Review

结论: ⛔ 有阻塞
范围: preview ← codex/1507-remote-backend · head: 9867519

Findings

  1. [P1] 启动期间取消可能留下无人管理的远端进程
    rust/lithe-core/src/remote/workspace_host.rs:307

    • 实际影响:远端终端或语言服务启动被取消时,清理请求可能先于创建请求完成;清理收到 UNKNOWN_RESOURCE 后被忽略,而启动随后仍能注册进程。该进程会在远端会话仍存活时继续运行,且客户端已取消订阅,无法再管理或停止它。
    • 触发条件:主机启动较慢,用户在 process.spawn 或 terminal.open 返回前关闭会话、切换工作区或取消操作。
    • 复现步骤:让远端 spawn worker 在进程注册前暂停;取消客户端请求,使 Resource::drop 发送 kill;让 kill 先于 spawn 处理;随后恢复 spawn。服务端并行处理请求,kill 会因资源尚未注册而失败,spawn 则继续成功。
    • 来源:本次引入

Scope Check

  • 关联 Issue 或需求是否完成:[Bug] SSH 服务的缺陷与待完善的点 #1507 仍为 open。PR 明确是阶段性 Draft;已接入工作区文件、终端、环境、Git、搜索,以及部分构建和插件流程,Issue 中的远程 Java/JDT、SVN、Agent 执行位置选择和完整主机验收尚未完成。对 Draft 阶段的范围说明一致。
  • 已完成范围:远程工作区路由、主机文件与进程适配、远端终端/环境/Git/搜索,以及构建和通用插件执行基础适配。
  • 未完成范围:PR 正文列出的远程 Java/SVN、Agent 执行位置选择、真实 SSH 全链路及平台验收等。
  • 是否复用了已有上游能力,或对自研边界给出充分证据:变更保留 Core 的 Git、搜索和构建语义,并用远端 I/O 适配;插件 stdio 复用现有协议引擎。相关 Note 记录了当前边界与限制。
  • 每个 Finding 是否由本次变更引入或加剧:是;新增资源创建与取消清理路径触发并发竞态。
  • 是否属于本次变更职责范围:是;远程资源的启动、取消和清理由本次适配引入。

Suggestions

  1. 为服务端的资源 ID 增加创建中状态,并串行化同一 ID 的 spawn/kill;或让取消等待创建结果后再清理。增加可控的并发回归测试,覆盖取消发生在创建确认之前的顺序。
  2. PR 涉及终端菜单和远程交互状态,但上下文未提供截图。请补充受影响界面的截图;若为已有界面修改,请提供前后对比。当前视觉效果尚未验证。

Summary

远程工作区适配范围较大,契约、能力矩阵和架构 Note 均有相应更新;Draft 也清楚标出未完成部分。资源启动期间的取消竞态会留下远端进程,修复前不建议合并。

Verification

  • 实际检查:给定 base...head 中的远程工作区协议、Core host/workspace I/O、远程 stdio、服务端资源处理、macOS 终端接入、能力矩阵及相关架构 Note;仅进行静态只读检查。
  • 已提供的结果:PR 上下文报告本地 Swift timing 119 项、Rust Core timing 1,260 项及远程 workspace 检查通过;GitHub 的 Remote Workspace CI gate 与 Rust remote workspace tests 为 success。上下文同时显示 Swift tests 和 Rust Core tests 检查为 skipped。
  • 本次未运行测试或脚本,也未启动应用;未独立验证上述结果。
  • 非阻塞验证缺口:真实 SSH/Linux 全产品、Windows 运行验证和完整发布包构建尚未完成;界面截图未提供。

…ation

Integrate PR #1515 onto the preview baseline, preserving plugin live activation and shared i18n changes. Reserve pending process, terminal and watch starts before dispatch; retain cleanup ownership across cancellation, worker saturation, disconnect and session shutdown.

Add deterministic lifecycle and declarative remote launch regressions; isolate the empty connection registry test, fix Swift fixture shadowing and synchronize terminal resize with shell readiness. Update contracts, Agent Notes and partial/pending capability evidence. Java/JDT integration remains out of scope.
The original PR implementation is already incorporated in the preceding preview-based commit. Retain its ancestry without overwriting the integrated and locally verified tree, so the existing PR can be updated by a normal fast-forward push.
@xiaoyumuxi
xiaoyumuxi marked this pull request as draft October 27, 2026 11:47
…cycles

Resolve RuntimeLocator by retaining remote discovery defaults and the upstream platform search-path port. Preserve both remote asynchronous preparation regressions and the upstream hosted workspace-command tests. Import preview's PATH-boundary correction without expanding remote Java integration. Validate the merged tree with full Core timing and focused Swift timing.
@xiaoyumuxi
xiaoyumuxi marked this pull request as ready for review October 27, 2026 12:23
@lithe-code-review

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

Copy link
Copy Markdown

Lithe Review

结论: ❓ 审查未完成

任务: 374

审查失败:Review timed out

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

Add session-owned run directory allocation and cleanup with retryable errors, original-session macOS deployment cleanup, and per-upload I/O isolation.

Cover lifecycle and upload ordering regressions, update contracts/resource boundaries and capability evidence, and record optional transfer/environment candidates without expanding Agent or Java scope.
@xiaoyumuxi xiaoyumuxi changed the title fix(remote): #1507 远程工作区、构建与插件执行适配(阶段性) fix(remote): #1507 远程工作区、构建与插件执行适配 Oct 27, 2026
@xiaoyumuxi

Copy link
Copy Markdown
Collaborator Author

@lithe review

@lithe-code-review

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

Copy link
Copy Markdown

Lithe Review

结论: ⚠️ 有建议
范围: preview ← codex/1507-remote-backend · head: 7203ddd

未发现需要阻塞合并的问题。

Scope Check

  • 关联 Issue 或需求是否完成:[Bug] SSH 服务的缺陷与待完善的点 #1507 仍未完成。按提供的上下文,本 PR 覆盖远程工作区文件、终端、环境发现、Git、搜索及部分构建和通用插件流程;远程 Java/JDT、SVN 专属流程、Agent 执行位置选择及真实 SSH/Linux 验收仍未完成。
  • 已完成范围:PR 对阶段性范围及 partial / pending 状态有明确说明。
  • 未完成范围:PR 正文列出的剩余工作和平台验收。
  • 是否复用了已有上游能力,或对自研边界给出充分证据:静态检查显示 Git、构建和 stdio 仍使用现有语义引擎,新增代码负责远端 I/O、会话和资源适配;架构笔记记录了这些边界。
  • 每个 Finding 是否由本次变更引入或加剧:未发现可报告的 Finding。
  • 是否属于本次变更职责范围:已检查远端资源生命周期、文件传输、插件部署及构建和终端调用链。

Suggestions

  1. PR 涉及终端和远程工作区交互,但提供的上下文没有展示本次修改后的界面截图。请补充受影响界面的截图;已有界面的修改请附前后对比。当前视觉效果尚未验证。
  2. 当前 head 没有 Check Run 结果。PR 正文报告本地检查通过,但也记录了上一轮 Windows Rust CI 失败且尚未归因;请在合并前提供当前修订的 CI 结果,并说明该失败的处理结论。

Summary

本次静态检查未发现明确的代码缺陷。此前关于启动期间取消可能遗留远端进程的阻塞问题,在当前 head 中已通过服务端预登记关闭请求、创建者负责迟到资源清理及对应并发回归测试处理。整体实现仍处于 PR 明确标注的阶段性范围。

Verification

  • 实际检查:给定 base...head 中的远端服务资源登记与清理、运行目录和上传、Core 远端文件适配、插件部署与 LSP 启动准备、构建命令路由、终端会话、共享协议、架构笔记及相关 i18n 调整;按完整文件清单重点审查高语义路径。
  • 已提供的测试或 CI 结果:PR 正文报告五条本地计时 lane 共 1,448 项通过,并报告 i18n、共享契约及相关静态 gate 通过;这些结果未由本次独立验证。当前 head 暂无 Check Run。
  • 本次未运行测试、脚本或应用,也未访问网络。
  • 非阻塞验证缺口:缺少受影响界面的截图和当前 head 的 CI 结果;真实 SSH/Linux 全产品、Windows 运行、SDK 示例兼容及完整发布包验证尚未完成。

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.

1 participant