Skip to content

chore(deps): bump rustls from 0.23.45 to 0.23.46 in /apps/desktop/loopx-control-plane/src-tauri - #7565

Merged
huangruiteng merged 1 commit into
mainfrom
dependabot/cargo/apps/desktop/loopx-control-plane/src-tauri/rustls-0.23.46
Oct 28, 2026
Merged

huangruiteng merged 1 commit into
mainfrom
dependabot/cargo/apps/desktop/loopx-control-plane/src-tauri/rustls-0.23.46

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 28, 2026

Copy link
Copy Markdown
Contributor

Bumps rustls from 0.23.45 to 0.23.46.

Commits
  • f04804f Delay saving KX hint until handshake confirmation
  • 049d39b Bump version to 0.23.46
  • 6d0ba08 Eliminate secret from impl Debug for ServerSessionValue
  • 2b82b81 unbuffered: update TLS 1.3 traffic keys before exhausting them
  • 74343e7 conn: update TLS 1.3 traffic keys within fragmented writes
  • 795eea7 Advance the HPKE sequence only after seal succeeds
  • d67cb71 stream: provide backpressure while buffering received plaintext
  • 7a69ade util: fuse flushes from connections with errors
  • 493d089 conn: fuse writes for connections with errors
  • db00e01 util: keep flushing after short writes
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

Bumps [rustls](https://github.com/rustls/rustls) from 0.23.45 to 0.23.46.
- [Release notes](https://github.com/rustls/rustls/releases)
- [Changelog](https://github.com/rustls/rustls/blob/main/CHANGELOG.md)
- [Commits](rustls/rustls@v/0.23.45...v/0.23.46)

---
updated-dependencies:
- dependency-name: rustls
  dependency-version: 0.23.46
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added the dependencies Pull requests that update a dependency file label Oct 28, 2026
@dependabot
dependabot Bot requested a review from huangruiteng as a code owner October 28, 2026 10:38
@dependabot dependabot Bot added the rust Pull requests that update rust code label Oct 28, 2026

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer: model_agent; OpenAI gpt-6.1-sol; runtime_reported; reasoning_effort=max

本次精确 head 未发现阻塞性问题,建议 APPROVE。批准范围为原生依赖更新及本地兼容性验证。

动机 / Motivation

通过 LoopX 桌面 App 检查和下载更新的用户,以及维护原生依赖的贡献者。

原生更新器持续使用锁定的 rustls 0.23.45;上游 0.23.46 修正 TLS 边界与容量为一的 session cache。当前提案只更新该锁定包和校验和,现有 HTTPS 检查、验签、错误恢复与安装选择继续由原 updater 负责。

新包能够编译并经原生 updater 完成 TLS 1.2/1.3 检查;不可信 CA 和错误主机名仍拒绝,容量一缓存保留刚写入的唯一条目。

不改变更新频道、公钥、代理、超时、安装权限或产品 UI;不在正式 App 安装更新,不声称跨平台全部兼容或上游密码学完整正确性。

改动思路 / Approach

沿原 updater 的单一 TLS provider 更新精确依赖,根信任、验签和安装继续归现有原生 owner;无需新增客户端或配置。

本 PR 仅交付锁定依赖及本地原生兼容资格,正式安装和其他平台采用仍需各自验证。

cargo tree -i rustls -e features 核实实际链为 tauri-plugin-updater 2.11.0 → reqwest 0.13.4 → hyper-rustls → rustls,由原 updater 选择 ring/std/tls12。没有出现并行 TLS stack 或新增 App 直接配置。仅凭 patch 版本号不能认证安全性;我对照上游两个 tag 的完整 commit/file inventory,并阅读 cache、stream 和 TLS13 关键改动,再运行真实消费边界。

不改现有 Cargo.toml、不另造下载器是最小维护边界;继续旧版本会保留已知上游缺陷,直接给 App 新增 Rustls 策略则会把原 updater 责任分散到第二处。当前选择不增加用户准备、选项或确认轮次。

具体改动 / Changes

规格依据为改动前 apps/desktop/loopx-control-plane/README.md#validation,完整 revision 55f74c1af2aa6a726fc2f4e76c1ebd7a1654be39,另核其原生更新所有权说明。按未编号原合同映射:native-updater-transport 保留官方 HTTPS、证书/hostname 与签名 owner;failure-and-recovery 保留可见失败、重试及服务启动;native-validation 运行实际 native tests,区分明确 opt-in 的安装/长时演练。三项在本次维护切片内核验,不把产品路线图的全部正式安装当依赖更新前置。

关键代码讲解

  1. Cargo.lock rustls entry:唯一 diff 为 0.23.45 → 0.23.46 与 checksum,+2/-2。crate source、依赖列表及其余 lock package 完整保持;实际下载 archive 的 SHA256 与新 checksum 相同,.cargo_vcs_info.json 指向上游 f04804fa13341a9b1dc02b5d1dd8a746f2c4b7fb;MSRV 仍为 1.71。
  2. find_update:原生检查继续使用现有 updater builder、既定 feed timeout、archive-only client 配置与原 check_error。Rustls provider 由该插件初始化,不绕过证书或主机名验证,也不由新依赖触发安装。
  3. download_update:既有下载总期限、连接/读停滞策略和 native signature verification 未改。原 signed cache 后续验证与恢复继续复用相同 owner;TLS 成功不代替验签或安装授权。

一手依据是 Rustls 两个 tag 的比较,上游包含缓存容量、TLS13 key update、受保护 CCS、ECH 与短写/flush 等修正。这里确认的是已读源码和适用本地消费行为,不宣称完整安全审计或可量化性能收益。

对主干的风险 / Risks

最强反例是已有 HTTP 验签测试全部通过,TLS 层却接受坏证书或拒绝正常服务。因此独立 probe 使用同一真实 tauri-plugin-updater builder/check、同版本 reqwest 和锁定依赖;Tauri 仅以 MockRuntime 提供无窗口 App 容器,服务端为隔离本地 TLS,没有模拟 HTTP/TLS client。

TLS1.2、TLS1.3 各测试可信 CA 成功、默认信任拒绝自建 CA、可信 CA 但 hostname 不匹配拒绝,共六例。旧0.23.45与新0.23.46均 6/6 PASS;两份 probe lock 除本地 probe package 和目标 Rustls 版本外,所有选中包版本均与原 native lock 相同。自建根仅加到该 probe client,没有修改系统信任、生产配置或安装 App。

另以公开 ClientSessionStore API 构造容量一缓存、写入一个 X25519 hint 并立即读取:旧版 assertion 失败(None),新版 PASS(Some)。这是直接验证有意义的边界修复,不是仅比较版本文本或让两套新实现互相证明。

真实 native library 185 PASS / 12 IGNORED;12项为明确 opt-in 的慢请求、正式包/安装及平台演练,本次未启用。默认 suite 包含实际本地 HTTP、签名、篡改、截断、404、prepared-cache、检查超时与服务恢复。cargo fmt --all -- --check、cargo clippy --locked --all-targets -- -D warnings PASS;standard premerge 4 direct +4 selected PASS,无 manual hold。原生测试和 TLS probe 互补,HTTP 成功没有被当作 TLS 资格。

首次 native build 缺少文档要求的本地 runtime resource;通过原 desktop_runtime_bundle.py 准备准确 source 资源后,同一 library 命令通过,未改生产代码或降低检查。首次私有 TLS probe 因对不实现 Debug 的 Update 使用调试格式而未编译,两版都在同处失败;仅纠正错误输出后重跑,原失败保留。没有查询、轮询或等待远端 CI。

语义与 CI 对齐

没有新的领域状态、prose 分类、调度或工作义务。原 updater 的 TLS trust、hostname、signature 和 deadline 是机器校验;依赖可用不授予安装权限。无新 default-off 声称:这是原 native build 的 provider 更新,普通 Goal、模型输入与配置模式均不改变。上游协议拒绝边界有意修正,不能将“同 major/minor”写成全部语义恒等;本地验证范围之外继续保留未知。

我的整体评价 / Verdict

problem_context=goal_achieved,仅指依赖维护切片。long_horizon/user_experience=preserved:原生检查、失败恢复、签名缓存和安装选择仍沿既有路径,零新增用户准备或确认轮次。repository_reuse=reused、code_volume=necessary、change_proportionality=proportionate、default_off_isolation=not_applicable、authority_semantics/semantic_alignment=aligned。无需为一个已存在的 transitive provider 新建控制面、配置或 UI。

检查唯一 Cargo.lock diff 及原 maintenance 调用方,没有页面、布局或交互控件变化。

未验证正式 App 安装、Windows/Linux 执行、真实企业代理或长时故障组合。

本结论仅绑定 a7d805df0fa49125eac4d58c387a00ebb8c89d9e,不认证上游所有 TLS 分支、正式发布采用或独立性能收益。批准后仍须分别核对旧 review/thread、native readiness 与维护者合并权限。

English verdict: APPROVE a7d805d; native checks and matched real-updater TLS cases pass, and the public cache boundary reproduces the old defect and passes on 0.23.46.

@huangruiteng
huangruiteng merged commit 5a7cc81 into main Oct 28, 2026
30 of 60 checks passed
@huangruiteng
huangruiteng deleted the dependabot/cargo/apps/desktop/loopx-control-plane/src-tauri/rustls-0.23.46 branch October 28, 2026 11:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants