Commit Graph
317 Commits
Author SHA1 Message Date
胡飞 15b1e2505f chore(deps): 合入 gpui-kit 上游改动,gpui-shell 跟进到 0.6.4
- gpui-kit(feigeCode/gpui-kit port-ce-generic-to-main)升到 23c8e5b78:合入上游
  45 个提交(0.6.1 → 0.6.4)。其中 QuickJS JIT 升到 0.12.9,与本分支的 32 位改动
  重叠,冲突已在 gpui-kit 侧解决(保留按位宽拆分 + i686 补丁;上游把软换行的行换成
  `InputLine`、对话框 button props 改为合并语义,内联 widget 布局与 alert/confirm
  已相应适配)。Cargo.toml 的 8 处 pin 一起回填到新 rev,Cargo.lock 重新解析
  (gpui-wry 0.6.4、rquickjs 0.12.9,旧 rev 无残留)。
- 宿主 gpui-shell 版本 0.6.1 → 0.6.4:extension-runtime 的 GPUI_SHELL_VERSION 与
  各处测试清单、文档示例同步提升。该校验对 0.x 按 minor 精确匹配,旧值会被直接拒绝。

验证:cargo check -p remote_desktop_view(新 gpui-kit + quickjs-jit i686 分支)
→ Finished dev profile,0 error。
2026-09-20 19:20:21 +08:00
胡飞 bd7548e53b fix(extension-runtime): 补齐 gpui_shell 版本 fixture 到 0.6.1
abb055843 把宿主 `GPUI_SHELL_VERSION` 从 0.2.0 升到 0.6.1(跟随 gpui-shell
crate 版本),但漏了三处声明,CI 因此在 macOS / Linux / Windows 三个平台上各挂
同样的 3 条测试:

  extension::manifest::parser_tests::reference_resource_plugin_manifests_are_parser_valid
  global::tests::development_views_are_rebuilt_with_installed_views
  global::tests::invalid_development_manifest_does_not_remove_valid_views

    manifest 字段 /engines/gpui_shell 非法: requires gpui-shell 0.2.0, host provides 0.6.1

原因是 `0.x` 的兼容判定要求 minor 精确匹配
(crates/extension-runtime/src/extension/manifest/shell_validation.rs):

    if required.major == 0 { current.major == 0 && current.minor == required.minor }

补齐的三处:

- crates/extension-runtime/src/global.rs 测试内联 manifest
- docs/extension-resource-plugins/examples/elasticsearch/extension.json
- docs/extension-resource-plugins/development-guide.zh-CN.md 的示例清单

验证:cargo test -p extension-runtime --lib → 214 passed,原先挂的 3 条全绿。
唯一未过的是 db_tree_action_runs_registered_wasm_component,与本次改动无关:它
读 `fixtures/coverage-plugin/wasm/coverage_component.wat`,而 wasmtime 的 `wat`
解析器只在 crates/extension-wasm 的 `[dev-dependencies]` 里打开,CI 跑的是
`cargo test --all`(feature 统一启用)因此通过,本地收窄成 `-p extension-runtime`
就不带该 feature。该测试在本次 CI 运行的上一条日志里是通过的。
2026-09-20 17:05:05 +08:00
胡飞 07dba58f0d chore(deps): gpui-kit 升到 8caa3aee,适配 gpui-pre 的工厂式 inspector 注册
gpui-pre 快照 fork-0.3.110 把 `App::register_inspector_element` 从单层闭包改成了
工厂闭包 `Fn(&mut Window, &mut App) -> F`(registry 按 (inspector, state 类型)
缓存渲染器,首次渲染时才建)。gpui-component 的 inspector 注册随之改成在工厂里
创建 `DivInspector` entity,去掉原来的进程级 `OnceCell`,写法对齐上游
`crates/inspector_ui/src/inspector.rs`。

不跟着改的话,`cargo check -p remote_desktop_view` 会在 gpui-component 上直接挂:

    error[E0593]: closure is expected to take 2 arguments, but it takes 4 arguments
      --> crates/component/src/inspector.rs:52:8

变更:
- gpui-kit 8 处 pin(`gpui-component` 等 7 个依赖 + `rquickjs` patch)→ 8caa3aee
- 文档里的 revision 同步
- Cargo.lock 重新解析

验证:cargo check -p remote_desktop_view → Finished,0 error。
2026-09-20 15:41:26 +08:00
胡飞 abb0558434 chore(deps): gpui-kit / quickjs-jit 升到支持 32 位 Windows 的版本
gpui-shell 的 QuickJS 运行时依赖改为按目标位宽拆分:64 位
macOS/Windows/Linux 保留 `compiler`,其余目标只跑解释器,于是
i686-pc-windows-msvc 上 shell 依赖链可以编译(此前会直接报缺少
i686-pc-windows-msvc 绑定)。

- gpui-kit: 6df86ef8 → 329a064a
- quickjs-jit: 51c57e3c → 1a5b7fa

gpui-wry / gpui-kit / rquickjs patch 三行一并同步到同一 rev,避免两份
gpui-kit 与两份 quickjs-jit 并存导致 ModuleDef / Ctx / Error 类型不统一。
2026-09-20 14:54:02 +08:00
胡飞 1142f2f843 chore(deps): 依赖地址改为 gpui-kit 仓库
上游 longbridge/gpui-component 已改名为 longbridge/gpui-kit,fork 同步改名,
所有 gpui-* 依赖、patch、文档与同步脚本里的仓库地址一并更新。

同步脚本同时修掉了三处与旧仓库名绑定的匹配逻辑:守卫条件改为按 gpui-kit
仓库名匹配、Cargo.lock 校验的 rev 正则允许缺少 ".git"、依赖行允许只锁定
rev 而没有 version 字段。
2026-09-20 10:24:22 +08:00
胡飞 5236415412 fix(terminal): 修复 PROMPT_COMMAND 钩子在子 shell 报「未找到命令」(#217)
bash 分支把 PROMPT_COMMAND 注册成裸函数名。PROMPT_COMMAND 是 shell 局部机制,
但它的值可能被环境导出并被后续 shell(su、tmux、exec bash、嵌套 ssh)继承,
而那些 shell 里没有本文件定义的函数,于是每个提示符都多输出一行
「bash: __onetcli_precmd_bash:未找到命令」,即 issue #217 的现象。

- 钩子改为自带存在性判断的命令串:`command -v` 是内建命令,函数缺失时静默跳过、
  不产生 fork,也不受继承链路影响;
- 退出码必须在钩子里先取好再显式传给函数:钩子里的 `command -v` 会覆盖 `$?`,
  若仍让函数自己去读 `$?`,上报的 exit code 会恒为 0、`133;D` 失效;
- 补两个回归测试:继承钩子但没有函数的 shell 必须静默、主 shell 退出码必须仍上报;
- 设计文档记录该约束,避免以后被简化回裸函数名。

验证:`cargo test -p terminal`(503 lib 测试通过)、
`cargo clippy -p terminal --all-targets`(改动文件零告警);另在真实交互式 bash 中
对比复现:修复前子 shell 输出 2 行 command not found,修复后 0 行,
主 shell 的 `133;D` 退出码上报仍为 `false`→1、`true`→0。
2026-09-18 17:57:46 +08:00
胡飞 bd34cc4643 feat(tray): 关闭按钮询问「最小化到托盘 / 退出应用」,并修复 Windows 重复启动
关闭行为从「托盘可用就隐藏」改成先看用户偏好:

1. 新增 `AppSettings.close_button_behavior`(`ask` / `minimize_to_tray` / `quit`,
   默认 `ask`,未知值回退 `ask`),`main_window_close_action(tray_ready, behavior)`
   纯策略三态:托盘不可用一律 `RequestQuit`,不与偏好互动 —— 宁可退出也不能
   制造用户找不到、也没法恢复的隐藏窗口。
2. `AskUser` 弹窗的两条出路各自渲染按钮(`tray-close-minimize` / `tray-close-quit`),
   带「记住我的选择」,勾选后落盘。刻意不用默认 ok/cancel footer:默认 footer
   只有两个固定按钮,「取消」兼职退出会让 Esc 和点遮罩也走成退出应用;而
   `button_props` 跟在 `confirm` 之后设置还会把 `show_cancel` 重置、吞掉第二个
   按钮(前一版就是这么丢的)。
3. 「记住」勾选框放在独立 entity:弹窗 body 由 `Root` 渲染,`NavopApp::notify`
   重绘不到它。`close_choice_prompt_open` 防连点叠窗,关窗复位。
4. 设置页通用页新增「关闭窗口行为」下拉,与弹窗写同一份偏好;托盘不可用时
   该设置不生效。

Windows 单实例:interprocess 的命名管道带 `FILE_FLAG_FIRST_PIPE_INSTANCE`,名字
已存在时返回 `ERROR_ACCESS_DENIED(5)` 而非 `AddrInUse`,且错误原样透传、无 error
kind 归一化,旧判定永不命中 ⇒ 第二个实例把自己当主实例、起出完整进程。改为
`instance_name_taken()` 认 `AddrInUse` 或 `raw_os_error` ∈ {5, 231},其余错误不
误判为「已占用」。

运行:`cargo test -p one-core --lib settings`(112 passed)、`cargo test -p main`
(634 passed);`cargo check -p main --all-targets`、`cargo clippy -p main
--all-targets`(改动文件零告警)通过。Windows 重复启动与弹窗交互仍需真机冒烟。
2026-09-18 16:30:52 +08:00
胡飞 7815ce5a28 perf(deps): gpui-component 升级到 resvg 0.46,去掉重复的 usvg/tiny-skia
component fork 的 Windows 原生菜单固定 resvg 0.45.1,gpui-pre 用 0.46.0,
每个下游二进制都链两份 usvg/tiny-skia。fork 侧 6df86ef8 把 resvg 提到 0.46.0,
navop 侧 rev 跟到 6df86ef8(含 rquickjs)。

同时清掉脚本/文档里改名前的 gpui-ce 标识:
- sync-gpui-component.sh 的 -p 包名(原值实跑报 did not match any packages)
- update_gpui_component_revision.py 的包名映射
- gpui-component-external.md 的旧仓库地址与 rev
- gpui-shell-extension-design.md / home-theme-sidebar-refinement.md 的旧包名与 rev

验证:Cargo.lock 里 resvg/usvg/tiny-skia/tiny-skia-path 各只剩 1 个版本;
cargo check -p main 通过;resvg 调用序列探针对 0.46.0 编译通过。
未跑 Windows 构建:唯一调用点是 native_menu/windows.rs(Windows 专用)。
已知遗留:update_gpui_component_revision.py 仍不能跑(依赖行需含
gpui-component.git + version =,SHELL_VERSION_FILES 锚点已不存在)。
2026-09-17 15:51:15 +08:00
胡飞 eff17b78aa docs(tray): 同步托盘设计稿与实际实现
设计稿与落地代码在四处已不一致,按实现真相修正:

- 后端选择:macOS/Windows/Linux 统一用 tray-icon(Linux 走其 ksni feature),
  不再是「Linux 用独立 ksni crate」两套后端。
- window_visibility 签名去掉 cx: &mut App;恢复路径改为两段式
  (main_window_target 借用内 + show_main_window 借用外),并说明原因:
  在 GPUI 借用内同步调用 makeKeyAndOrderFront/NSApplication::activate 会让
  AppKit 同步回调 on_active_status_change 重入 App 借用。
- 图标处理:改为解码 PNG 并缩放到 32px RGBA,不再手写 ARGB32 变换。
- 测试策略:补充源码守卫清单(关闭策略、菜单/点击映射、图标解码、
  thread_local 保活、命令通道分离、原生恢复在借用之外)。
2026-09-17 15:36:25 +08:00
胡飞 45a75c5be4 fix(terminal): 修复 Shell Integration 握手无兜底导致 SSH 键盘输入被永久暂存 (#206)
运行时 Shell Integration 的就绪握手期间,actor 会把用户键盘输入压入
deferred_actor_inputs 暂存。四个暂存态(WaitingForFirstOutput / Injecting /
AwaitingPrompt / PlainAwaitingOutput)都只能靠远端输出推进,其中三个没有任何
超时兜底:远端一旦不再产出可解除握手的输出(登录 expect 永不匹配导致
should_inject 不触发、prompt 结束标记缺失等),会话就永久停在暂存态——远端
输出照常刷新、提示符与光标都正常,但按键(含 Enter / Ctrl+C)被静默吞掉,
界面没有任何提示。本地终端走 pty_backend、没有这道门禁,因此表现为
「同窗口本地终端正常、SSH 标签输入全死」。

- RuntimeShellIntegration 新增 phase_name() 与 force_release_input():把上述四个
  暂存态强制推进到 Plain(丢弃注入回显缓冲,此后不再抑制输出、不再注入),
  已可输入的阶段返回 false,不干扰正常会话
- actor 新增 30s 看门狗 SHELL_INTEGRATION_HANDSHAKE_TIMEOUT,到期调用
  force_release_input() 并置 shell_ready = true,下一轮循环按序重放 deferred
  队列;输入被暂存时打 terminal.ssh.runtime 的 debug 日志(含 phase 与队列长度),
  看门狗触发时打 terminal.ssh.setup 的 warn 日志
- 抽出 arm_shell_integration_handshake_watchdog() 供测试直接断言武装条件:
  不能写成 accepts_terminal_input().then(..)——bool::then 是「为真才取」,那样只在
  已可输入的会话里武装,握手态反而是 None,看门狗永不触发(等于没接上),且到期
  那侧 force_release_input() 返回 false 属无害空转,既不报错也不失败。状态机推进
  单向,启动时判定一次即可
- 设计与状态表同步更新到 docs/design/ssh-runtime-shell-integration.md

验证(在本提交所覆盖的工作区执行):

- cargo test -p terminal --lib => 491 passed / 0 failed
- 新增 handshake_watchdog_arms_exactly_when_input_is_deferred:把武装条件改回反向
  写法实测 FAILED,修正后 Green
- cargo clippy -p terminal --all-targets -- -D warnings:terminal 自身干净,剩余报错在
  agent_runtime、crates/ssh/src/host_key.rs 等未触碰文件,属既存 lint

已知限制:兜底只放行输入,不补发 init_commands——其发送判定在输出处理分支内,
远端彻底沉默时仍需再来一段输出才会发出。
2026-09-16 16:16:59 +08:00
user.email 5728b011f9 feat(resource-view): 资源工作台 v2 区域化布局与 Shell 覆盖
- manifest/resource_view 引入 left/center/right/bottom 四区域布局,取代 navigation/tree/statusBar 与 per-page tabs
- extension-runtime / universal-plugins / resource_view 适配 v2 manifest 与布局绑定
- 全局导航布局与工作区资源树(workspace_explorer)适配
- terminal / terminal_view 相关调整
- 补充 Resource Workbench v2 设计文档
2026-09-15 10:01:57 +08:00
user.email 78dba5c313 Merge branch 'feat/db-value-model-refactor' into dev
引入唯一 typed 值模型并贯通各驱动与消费端;修复 MySQL 元数据在 collation 63 / character_set_results=binary 下显示为 hex 的问题。db/db_view/extension-runtime 全量测试通过,本机 MySQL/PostgreSQL 真库验收通过。
2026-09-12 00:11:26 +08:00
user.email 9b4758ebb0 docs(plans): 记录独立审查修复与保留决策 2026-09-11 20:13:55 +08:00
user.email 0be37a2770 docs(plans): 记录数据库值模型改造的实施状态
同步 T01-T09 完成项、验证证据与 T10-T12 阻塞项,明确 typed_batch 为权威值、rows/binary_cells 为兼容投影的决策。
2026-09-11 18:28:06 +08:00
user.email e92900b425 fix(terminal): SSH 探测致传输层断连后自动降级单通道重连,修复受限设备无法登录 (#183)
华为 USG 等仅允许单个 SSH 会话的嵌入式设备会在 shell integration 探测的
CHANNEL_OPEN 阶段直接回 SSH_MSG_DISCONNECT 掐断整个传输层(日志表现为
Disconnected),随后在死 transport 上开交互通道报 Channel send error,
且不匹配既有的 channel open 降级重连条件,导致整条连接失败。

- establish_channel 探测后检查传输层存活:被掐断时失效该 transport
  generation,重建连接并以单裸交互通道模式重试(跳过探测);
  探测失败仍只降级不注入,零远端写入的行为不变
- 连接表单高级设置新增「禁用 Shell 集成」开关,针对网络设备/工控主机
  从源头跳过探测(复用既有 disable_shell_integration 字段)
- 降级重试后仍被设备断连时,为 russh Disconnect/SendError 补充
  设备 SSH/VTY 会话限制排查提示
- 更新设计文档补充受限设备探测断连降级章节
2026-09-11 17:03:44 +08:00
user.email fb62a53723 docs(superpowers): 提交数据库值模型重构计划与原生资源工作台 specs 2026-09-10 12:19:28 +08:00
user.email ee1f052cbc merge: 解决 PR #175 与 feigeCode/dev 的冲突并移除 .agent-teams
- 将 feigeCode/navop:dev(b8d90a629)合并入 PR 头,逐文件解决 21 处冲突
- 按 PR 意图移除内置中间件/TDengine 实现:删除 mqtt_view、middleware_form、
  navigation_quick_open、main 内 extension_connection_form(迁至 crates/universal-plugins)
- 保留 base 侧结构(universal-plugins crate、home 重构),融合 PR 的 SSH 隧道/
  统一凭据解析增强;crates/universal-plugins 与 main 全量 cargo check 通过
- 移除误提交的 .agent-teams 目录(共 8 个 JSONL/JSON 文件)
2026-09-09 23:24:51 +08:00
hiJu 751ff1d4cf feat(rocketmq): 自研 Remoting 协议运行时 crate rocketmq-runtime
- 帧编解码:4B 总长 + 4B(serializeType<<24|headerLen) + JSON header
  {code,language,version,opaque,flag,remark,extFields} + body,与
  apache/rocketmq 官方 remoting 实现逐项对照
- 连接管理:opaque 配对长连接、oneshot 响应分发、请求超时、
  NameServer 多地址轮询故障切换、SSH 引用式隧道前置
- ACL:4.x HMAC-SHA1 签名(accessKey/secretKey),未配置自动跳过
- 请求码:GET_ROUTEINFO_BY_TOPIC/GET_BROKER_CLUSTER_INFO/
  GET_ALL_TOPIC_LIST_FROM_NAMESERVER(206,按源码修正)/topic
  CRUD/GET_ALL_SUBSCRIPTIONGROUP_CONFIG/GET_CONSUMER_CONNECTION_LIST/
  QUERY_MESSAGE/VIEW_MESSAGE_BY_ID(commitlog 二进制 body 解码器)/
  SEND_MESSAGE_V2
- fastjson 兼容建模:MessageQueue 序列化为 JSON 字符串键的
  TopicStatsTable/ConsumeStats DTO
- MiddlewareAdmin 13 方法全实现(集群概览/Topic 增删改查/发送/
  订阅组/客户端/三变体消息查询)
- 43 个单测(帧往返/DTO 样本/mock TCP 假服务端集成测试)+
  docs/rocketmq-runtime/TESTING.md 联调手册
2026-09-08 19:56:38 +08:00
胡飞 94ddc99af1 feat(extensions): extension.json 协议补 FilePath/rows,Auth 回填与文档同步
- ResourceConnectionFieldType 加 FilePath;ResourceConnectionFormField 加可选
  rows(TextArea,缺省 5);schema bridge 映射到统一引擎
- 协议规则/文档补充 Auth 与 FilePath 语义及运行期引用解析说明
- 补 Auth 编辑回填(钥匙串引用还原/手动用户名还原)回归测试
- 验证:extension-runtime 21 / universal-plugins 3 / connection-form 3 测试过
2026-09-07 11:10:29 +08:00
胡飞 fd43db5c94 feat(home): 统一首页网格布局、树形视图与克制视觉层次
- 统一网格:card_grid_metrics 由内容区宽度计算列数/列宽,单项组与
  末行不拉宽;最近区容量跟随网格列数
- 主页卡片/列表/树形三视图,视图切换改为带勾选态的下拉菜单
- 树形视图嵌入主页:侧栏实现 Render 并按 home_embedded 输出,修复
  HomePage render 租约内 read(HomePage) 重入 panic;嵌入时隐藏树头部
- 团队标签中性化(muted 底),移入名称行与名称对齐;卡片/列表选中态
  统一为 list_active 语义色,去掉常驻阴影与逐项「最近」角标
- 最近区改用历史语义图标;提示仅在分组筛选生效时显示;计数精简为数字
- 展开/折叠全部归入「分组」菜单;新建连接降为 outline
- 侧栏收窄至 184px,折叠控制移入底部与设置同行;账户行去常驻邮箱
- 常驻连接侧栏仅非主页显示;合并 dev 并完成 universal-plugins 迁移
- 清理死代码:user_avatar 模块、Inline 变体、旧同步按钮状态机、
  冲突对话框等;full test 539 通过、clippy 无告警
2026-09-06 18:19:35 +08:00
胡飞 a5f7884991 chore: v0.16.0 发布前整理与测试补充
- refactor(notes): 移除 Markdown Split 分栏模式,旧配置自动迁移到 Source
- test(credential_vault): 补充列表渲染边界测试并添加 debug selector
- docs(extension-resource-plugins): 新增开发指南与 README 关联
- style: 统一 rustfmt 格式(notes/db/sftp/one_ui 等)
- chore: 同步 Cargo.lock 与脚本
2026-09-03 22:34:31 +08:00
胡飞 25fe18fb0c fix(extensions): harden connection lifecycle 2026-09-03 17:11:08 +08:00
胡飞 99ecf57473 feat(extensions): unify resource plugin connections 2026-09-03 14:02:29 +08:00
胡飞 5f56d14442 docs: add macOS memory investigation notes 2026-09-02 15:41:44 +08:00
胡飞 3d18ae010e feat(plugins): add universal resource shell views 2026-09-02 12:21:55 +08:00
胡飞 0423df0bad feat(plugins): adapt one_ui icon glyph sizing and add gpui-shell design doc
- one_ui IconButton: delegate glyph sizing to Button::glyph_size
- one_ui IconSize: map into gpui_component::IconSize
- terminal render_surface: drive scrollbar viewport from layout
- extension-resource-plugins: document gpui-shell extension design
2026-08-31 18:53:19 +08:00
胡飞 b680b504e5 refactor(plugins): retire third-party plugin UI, keep headless IPC runtime layer
- Remove declarative panel chain: declarative_ui_demo crate, universal_plugin_panel,
  home_tab hooks, extension_widget/extension_selector, manifest declarativePanels
- Remove WASM ViewSpec/UiNode UI: WIT open-view/handle-view-action/open-result-view,
  popup rendering in extension_action_handler
- Remove provider reverse UI RPC: ui/action, ui/dialog, ui/window, host
  quick_pick/confirm/open_view, dialog/window activation managers
- Keep headless provider layer: resource/job/event/blob, secrets/storage/log,
  host blob upload, runtime monitor, extension_view manager
- Rework ActivationManager::activate_runtime as independent lease refcount;
  fix concurrent-start wait, cancellation cleanup, job registry release,
  catalog hot-replace; add regression tests
- Add ShellPluginHost global stub as gpui-shell integration point
- Sync docs/examples to headless protocol; drop ui:* permissions from fixtures
2026-08-31 09:37:29 +08:00
胡飞 2f723298a1 Externalize gpui component integration 2026-08-30 09:56:37 +08:00
胡飞 7ea01db6cf Merge branch 'dev' into feat/universal-resource-plugins
# Conflicts:
#	Cargo.toml
#	main/locales/main.yml
#	main/src/home_tab/modern_home.rs
#	main/src/onetcli_app.rs
2026-08-28 21:25:07 +08:00
胡飞 297c6ebca5 docs(terminal): runtime SSH shell integration design notes
Document the no-remote-write injection design: probe, single-line
ANSI-C eval injection, echo suppression state machine, readiness
handshake, timeout fallback, legacy rc detection/cleanup, and the
verification matrix including the live 181-server test.
2026-08-28 14:23:41 +08:00
胡飞 7a5f16b55b feat(db): SQL editor baseline — viewport scan, execution request, source identity, completion, hover, diagnostics 2026-08-28 10:12:54 +08:00
胡飞 ca20c801c8 feat(file-manager): migrate remote delete to global SFTP executor 2026-08-27 08:57:13 +08:00
胡飞 3877891692 feat: harden background transfers and zmodem uploads 2026-08-26 22:45:57 +08:00
胡飞 cc6e1519fc docs(terminal): update optimization review notes 2026-08-26 16:41:44 +08:00
胡飞 2720d6b20d Merge branch 'dev' into feat/universal-resource-plugins
# Conflicts:
#	main/src/home_tab/modern_home.rs
2026-08-25 11:23:02 +08:00
胡飞 a31f20fde7 feat(extensions): add universal resource plugin lifecycles 2026-08-25 11:09:06 +08:00
胡飞 7689e9f386 fix(rdp): Windows 独立窗口改用系统 mstsc 2026-08-24 10:16:01 +08:00
胡飞 e785ca52f2 feat: add Elasticsearch resource provider trial 2026-08-20 12:42:45 +08:00
胡飞 63622d7f31 feat: add universal resource plugin foundation 2026-08-20 12:30:26 +08:00
胡飞 66fabf6b30 docs(remote-desktop): record GPUI quit observer Windows verification 2026-08-18 23:43:21 +08:00
胡飞 282b3049e2 test(remote-desktop): cover GPUI quit observer shutdown 2026-08-18 23:43:21 +08:00
胡飞 1b812a77cd docs(remote-desktop): record polled shutdown Windows verification 2026-08-18 23:43:21 +08:00
胡飞 e9205382b9 fix(remote-desktop): await RDP drain with supported executor APIs 2026-08-18 23:43:21 +08:00
胡飞 90b0c9ad05 test(remote-desktop): cover polled RDP shutdown interruption 2026-08-18 23:43:21 +08:00
胡飞 1eaa9b583a fix(remote-desktop): keep cancellation test on public report API 2026-08-18 23:43:21 +08:00
胡飞 9fadd85cfb test(remote-desktop): preserve RDP drain state on cancellation 2026-08-18 23:43:21 +08:00
胡飞 9e298cf1d6 fix(remote-desktop): import GPUI global context trait 2026-08-18 23:43:21 +08:00
胡飞 3a78b796bb fix(remote-desktop): serialize RDP typelib generation 2026-08-18 23:43:21 +08:00
胡飞 002a2edab4 test(remote-desktop): enable GPUI Windows test support 2026-08-18 23:43:21 +08:00
胡飞 a5d0311e82 fix(remote-desktop): fail closed on platform RDP quit 2026-08-18 23:43:21 +08:00