Files
胡飞 23cb37bc6f chore(deps): 升级 gpui-fast v0.1.12、gpui-kit v0.8.1、russh 0.65.0 并适配 API 变更
gpui-fast(fork 分支 release/v0.1.12,快照 5e8e231f)
- 快照自含 24 个 crate + 全套 gpui-pre-* shim(0.3.126),并剥离 iOS:
  gpui_platform 不再引用 gpui_ios/gpui-pre-ios,navop 依赖解析不再需要该包
- 随上游同步:objc2 迁移、字体缓存、Taffy 0.15、wgpu 30.0.1、
  Windows 按需帧调度、未测量文本的测量修复

gpui-kit(fork 分支 port-ce-generic-to-main,rev 62035f8d,v0.8.1)
- gpui-component-shell 并入 gpui-shell,navop 改用 gpui_shell::components
  (components.rs 的 components()/init、渲染测试的 init/new_isolated_runtime)
- quickjs 系全部改 crates.io quickjs-jit 0.14.1(stdlib 已 vendor llrt 模块),
  删除 rquickjs 的 [patch.crates-io] 与 rquickjs-compat 依赖
- 保留 fork 的 gpui-base 状态桥:组件元素接受 gpui-base 铸造的 state 句柄。
  上游 #3505 会以 "expects the InputState from gpui-component" 拒绝,而扩展页
  的状态一律来自 gpui-base,故 fork 侧维持先认 base 句柄、诊断只拦真正异类句柄
- 新增 gpui_component::active_dialog_count(window, cx):对话框层改为 Presence
  动画后只能在渲染期采样,测试改为查询活动对话框数

API 适配
- ScrollWheelEvent → ScrollEvent,on_scroll_wheel → on_scroll(含 vendor/ferrum-flow)
- Modifiers::secondary() → secondary(cx):secondary 在 macOS 是 platform 键,
  需要 App 才能判定
- 动态字符串的 KeyBinding 统一走 one_core::keybindings::load_dynamic_keybinding
  (KeyBinding::load + context predicate),Keystroke::parse → parse_with_os(...,
  current_os());KeybindingKeystroke 不再实现 Display,改用 display(os)
- 测试侧:ScrollEvent 补 source 字段、用 VisualTestContext::read 取 &App 调
  secondary_key、Keystroke 断言改成 parse_with_os(..., Mac)

russh / russh-sftp
- russh 0.63.3 → 0.65.0,russh-sftp 3.0.0 → 3.0.1
- 0.65.0 仍钉 rsa 0.10.0-rc.18,与 quickjs-jit-stdlib 的 rsa 0.10.0-rc.19 冲突,
  继续用 fork feigeCode/russh 的 tag v0.65.0-navop.1(只改 rsa/pkcs1 版本,
  pkcs8 处改取 RsaPrivateKeyRef 以适配 pkcs1 rc.5 的泛型化)
- server::Handler::auth_publickey 改用 VerifiedPublicKey<'_>

验证
- RUSTFLAGS="-D warnings" cargo check --workspace 通过
- cargo test 覆盖 core、one_ui、markdown-editor、db_view、redis_view、
  terminal_view、ai_chat_view、notes、ssh、sftp、universal-plugins 全绿
2026-10-27 18:53:54 +08:00
..
2026-09-30 11:52:00 +03:00