Skip to content

chore(deps): 合并 dependabot 的五组依赖升级并适配新版本 - #224

Merged
sunerpy merged 24 commits into
mainfrom
chore/deps-0.3.0
Nov 7, 2026
Merged

sunerpy merged 24 commits into
mainfrom
chore/deps-0.3.0

Conversation

@sunerpy

@sunerpy sunerpy commented Nov 7, 2026

Copy link
Copy Markdown
Owner

把 dependabot 开着的五个依赖升级 PR 合进一个分支,并修好它们引起的构建、测试和打包问题,随 0.3.0 一起发布。

这个 PR 取代 #175(npm 小版本与补丁,28 项)、#189(GitHub Actions,5 项)、#211(npm 大版本,16 项)、#212(Cargo 大版本,4 项)和 #213(Cargo 小版本与补丁,25 项)。那五个 PR 基于 11-01 的 main,锁文件互相冲突,也没有包含适配代码,所以这里重新生成了 Cargo.lock 和 pnpm-lock.yaml。这个 PR 合并后,再由维护者关闭那五个 PR。

主要版本

  • Tauri:Rust 侧 tauri 2.12.5、tauri-build 2.7.4、tauri-utils 2.10.2(chore(deps): bump the cargo-minor-patch group across 1 directory with 25 updates #213 只升了后两个,这里把 tauri 一起升上去,两边才匹配);npm 侧 @tauri-apps/api、@tauri-apps/cli 2.12.4,CI 与发布用的 cargo-tauri 2.12.4;扫码插件的 Rust 包与 npm 包都是 2.5.3。
  • 手机 RN 版:Expo SDK 58.0.21、React Native 0.88.1、Jest 30.5.2。各包按 Expo SDK 58 的官方版本表,expo install --check 没有报告不匹配。
  • Cargo:rusqlite 0.41.1、symphonia 0.6.1、windows 0.62.2、windows-registry 0.100.0、opus-rs 0.1.40、tokio 1.54.1、rmcp 3.8.0、arboard 3.7.0 等。
  • npm:React 19.3.1(桌面、Tauri 手机版、@voltip/ui)、Vite 8.3.5、Vitest 5.0.5、oxlint 1.90.0、oxfmt 0.75.0 等。
  • GitHub Actions:upload-artifact 7.0.2、download-artifact 8.0.2、setup-node 7.1.0、rust-cache 2.9.3、install-action 2.88.0。

五个 PR 共 78 项:72 项是 PR 里的版本,2 项是同一大版本里更新的版本(jest-expo 58.0.14、tauri-plugin-barcode-scanner 2.5.3)。下面 4 项低于 PR 的版本,都只在 apps/mobile-rn:

  • react、react-dom 19.3.0(其余工作区是 19.3.1):Expo SDK 58 固定 19.3.0,React Native 0.88.1 内置的渲染器也是 19.3.0。
  • react-native-safe-area-context 5.10.1(PR 为 5.11.0):Expo SDK 58 要求 ~5.10.1;5.11.0 还改了 Android 上的边距计算,会改变页面留白。
  • @babel/core 7.29.13(PR 为 8.0.9):babel-preset-expo 58 的插件要求 @babel/core ^7,换成 8.0.9 后测试和 Metro 打包都加载不了这个预设。等 Expo 发布支持 Babel 8 的预设后再升。

为适配新版本做的改动

  • Symphonia 0.6、opus-rs 0.1.40:文件导入改用新接口。截断的文件仍提示「文件已损坏或不完整:end of stream」;ID3v2 标签超过 1 MB 的 MP3 照常解码;空的 Opus 包不增加时长。
  • 手机录音的码率:opus-rs 0.1.40 开始按设置分配码率,手机经中继发给电脑的录音会从约 78 kbit/s 降到约 22 kbit/s。TAKE_OPUS_BITRATE_BPS 改为 96 kbit/s 后,编出的包与升级前逐字节相同。上传给内置服务的长录音和录音缓存升级前后都是约 20 kbit/s,没有改。
  • tauri-build 2.7:Windows 构建关掉它默认加上的运行库链接,仍静态链接 C 运行库(staticVCRuntime 移到 tauri.conf.json 的 build 块)。
  • Tauri CLI 2.12:各 tauri 依赖表写上 CLI 管理的特性,构建时不再改动 Cargo.toml。CLI 会不分目标平台合并各表的特性(tauri-apps/tauri#16250,上游还没修),让 Linux 的 deb、rpm 多出 appindicator 依赖、Windows 交叉构建失败,所以 macOS 与 Windows 的表改为继承工作区的 tauri。以后升级 tauri 要同时改根 Cargo.toml 和 apps/desktop/src-tauri/Cargo.toml,bundle.rs 的测试会检查两处版本一致。
  • tray-icon 0.25.1:它只在菜单弹出的那段时间把菜单挂到状态栏项上,经 VoiceOver 或键盘按下菜单栏图标打不开菜单;现在由状态栏按钮的 action 打开菜单,行为与 0.2.1 相同。
  • React Native 0.88 的类型:三处类型写法和测试里的类型断言。
  • Expo SDK 58 与 Android Gradle Plugin 9:release 插件接受已启用 R8 优化的模板;原生模块的 release 单元测试照旧运行;保留堆栈行号的 R8 选项移到应用的规则;用 compileSdk 37 编译(targetSdk 仍为 36);打包前的密钥扫描读取 Metro 新的分段 source map;expo-camera 58 自带的 ML Kit 文档扫描不进包。
  • cargo-tauri 2.12.4 打包 AppImage:tauri-bundler 2.10.4 仍以 0770 写入下载的 AppRun,固定 AppRun 的做法照旧有效,更新了注释和测试说明。

这些改动都有回归测试(crates/voltip-media/tests/decode.rs、crates/voltip-media/src/opus.rs、crates/voltip-core/src/runtime/take_codec.rs、apps/desktop/src-tauri/tests/bundle.rs、apps/mobile-rn/plugins/*.test.js、scripts/release/test_*.py);macOS 状态栏按钮的 action 由 scripts/smoke-tray-macos.sh 的托盘冒烟覆盖。没有删除、跳过或放宽测试。文档同步更新了 docs/dictation.md、docs/acceptance.md、docs/mobile-rn.md、docs/architecture.md 和 docs/runbook.md;docs/site 里没有受影响的内容。

用户能看到的行为

会变的(都已确认接受):

  • 导入文件:截断的 MKV、WebM 与其他截断文件一样提示「文件已损坏或不完整」(以前显示「无法保存:the decoding task failed」);.aac 文件的读取进度能到 100%;导入的 Opus、WebM(Opus)解码更接近原文件。
  • macOS 27:按上游的说明(tauri-apps/tray-icon#365),tray-icon 0.25.1 修了 macOS 27 吞掉菜单栏图标左键单击的问题,升级后单击、双击应按设计工作。没有实测,见下面的清单。macOS 15 上不变。

保持不变的:

  • 手机录音经中继发到电脑的数据量与升级前相同,约每分钟 570 KB(见上面的码率改动)。
  • Linux 包的依赖与升级前相同;macOS 经辅助功能按下菜单栏图标照旧弹出菜单。

验证

  • make verify 在干净的 HEAD 上通过(22 个 gate 都是 exit 0)。
  • Windows 构建机:cargo clippy --workspace --all-targets -- -D warnings 通过;cargo test --workspace --all-targets 只有 main 上本来就有的两处失败(voltip-relay --test socket、voltip-transport --test link,0.3.0 之后另行修复)。
  • 本机 make linux-x64:AppRun 仍是固定版本,AppImage 的 575 项都通过权限检查,deb、rpm 都不依赖 appindicator。
  • 托管 CI(workflow_dispatch,含两台 Mac 和 Android):运行 42290479842 的 attempt 2 全部通过。attempt 1 里托管 Windows 桌面上的两个 job 失败(记事本粘贴确认超时;悬浮窗测试时运行机自己的终端窗口占着前台),只重跑失败的 job 一次后通过。之前几次运行的失败(Windows 交叉构建的 appindicator、macOS 托盘冒烟、macOS 编译)都已在这个分支修好。
  • 两台 Mac 的托盘冒烟:经辅助功能打开菜单并选择各项;鼠标单击后菜单在双击间隔之后打开,双击显示主窗口、不弹菜单。

需要在真机上验证

托管 CI 只有 macOS 15、Windows Server 2025 和 Android 模拟器,下面这些需要在真机上看:

  • macOS 27:单击菜单栏图标,约过双击间隔后弹出菜单;双击打开主窗口、不弹菜单;右键立即弹出菜单。
  • macOS(任一版本):用 VoiceOver,或按 Control+F8 用键盘进入菜单栏,按下 Voltip 的图标,菜单立即弹出。
  • Windows:托盘图标的单击、双击和右键菜单;听写结果粘贴进常用应用;代理设为「系统代理」时联网正常。
  • 从 0.2.1 升级到 0.3.0:历史记录、设置照常显示。
  • Android 手机(RN 版):扫码配对、从相册选图、各页顶部和底部的留白、手机录音经中继发到电脑并转写、震动反馈、启动画面。
  • 导入真实音频文件:MP3、M4A、AAC、Opus、WebM、MKV 各导入一个,转写正常;截断的文件提示「文件已损坏或不完整」。

…t 8.0.2、setup-node 7.1.0、rust-cache 2.9.3、install-action 2.88.0

取代 dependabot #189。按标签核对过新的提交 SHA;工作流里 11 月 1 日之后新增的引用也一并改了。
合入 dependabot 的 cargo-minor-patch 分组(#213)。tauri 跟着 tauri-build
2.7.4 与 tauri-utils 2.10.2 升到 2.12.5,插件随之升级:opener 2.5.5、
single-instance 2.4.5、barcode-scanner 2.5.3。其余:arboard 3.7.0、
hyper-util 0.1.21、rmcp 3.8.0、tokio 1.54.1、rustls 0.23.46、uuid 1.29.0、
serde_json 1.0.154 等。

tauri-plugin-dialog 保持 2.7.3:它支持 tauri 2.10 及以后的版本,2.8.4
换用 rfd 0.17,需要在各平台另行检查保存对话框。opus-rs 0.1.40 与 Symphonia
0.6 一起在适配 voltip-media 的提交里升级。
…ry 0.100

合入 dependabot 的 cargo-major 分组(#212)中不需要改代码的三项:
- rusqlite 0.41.1(内置 SQLite 3.54.0):历史库、同步镜像与备份的测试照常通过。
- voltip-focus 的 windows 0.62.2:tauri 2.12 的 tao 也用这个版本,四个功能它都已开启。
- voltip-net 的 windows-registry 0.100.0:hyper-util 0.1.21 要求 0.7 以下,Windows 构建会
  同时编译 0.6 给它用。

Symphonia 0.6 需要改 voltip-media,在下一个提交里升级。
合入 #212 的 symphonia 0.5.5 → 0.6.1 与 #213 的 opus-rs 0.1.34 → 0.1.40,
按新接口改写 voltip-media,导入的结果与升级前相同:
- 探测、取包、建解码器换成 0.6 的接口;音轨长度先看音轨自己的时长,再看帧数,
  最后看整个文件的时长。
- 打开 `id3v2` 特性:0.6 只在开头 1 MB 内找 MP3 的第一帧,带封面的大标签
  会让文件被当成「不是媒体文件」。
- 空的 Opus 包不交给 opus-rs:0.1.40 把它当作丢包,补出 120 ms 的声音。
- MP4 与 Matroska 的最后一个盒子或元素超出文件末尾时报「文件已损坏」
  (mp4.rs、mkv.rs):0.6 把截断的文件报成格式不支持;截断的 MKV 在 0.5
  会让读取器 panic。
- 编码名覆盖 0.6 新增的编码 ID(AC-3、TrueHD、RealAudio、aptX 等),
  不再把认不出的编码报成 pcm。
- MP4 的编辑列表按音轨在文件里的顺序找:0.6 的音轨 ID 是 tkhd 的编号。

与升级前逐个比较了 tests/fixtures 的全部文件和截断、拼接、损坏的变体:
样本数都相同;AAC 的差值不超过 148(16 位整数);Opus 的输出更接近原始
正弦波(opus-rs 的修正)。
oxlint 1.90 的 no-unnecessary-type-assertion 报出这一处:toContainElement
直接接受 querySelector 的返回类型,断言什么也没改变。
合入 dependabot 的 npm-minor-patch 分组(#175)中除 React Native 应用以外的部分:
@tauri-apps/api、@tauri-apps/cli 2.12.4,@tauri-apps/plugin-barcode-scanner 2.5.3,
电脑端、手机端与 UI 包的 react / react-dom 19.3.1,vite 8.3.5、vitest 5.0.5、
jsdom 30.1.3,oxfmt 0.75.0、oxlint 1.90.0,zod 4.6.7 等。React Native 应用的
部分要和 Expo 58 一起升级,见下一个提交。

CI 与发布用的 cargo-tauri 同步到 2.12.4(.github/scripts/install-cargo-tauri.sh,
三个平台的 SHA-256 已核对)。它带的 tauri-bundler 2.10.4 仍然在工具目录缺少
AppRun-x86_64 时从 apprun-old 下载、以 0770 写入并原样复制进 AppDir,
scripts/lib/appimage.sh 预先放好固定 AppRun 的做法照旧有效。
React Native 0.88 默认导出按源码生成的类型(types_generated):

- Easing.cubic 声明成方法,直接当缓动函数传入会被 oxlint 的 unbound-method
  报出;Sheet 改为传一个调用它的普通函数。
- TextInput 的 ref 类型变成 TextInputInstance;CodeInput 的 ref 用
  ComponentRef<typeof TextInput>。
- StyleSheet.flatten 可能返回 null 或 undefined;两处测试读样式前补上 `?? {}`。

行为不变。
Expo SDK 58 的 app/build.gradle 模板在 release 构建类型里直接写了
proguard-android-optimize.txt。withOptimizedRelease 找不到 proguard-android.txt
就报「the template changed」,prebuild 因此失败。

插件现在遇到优化版原样保留;SDK 57 的写法照旧换成优化版;两者都没有仍然报错,
不会悄悄出一个只缩减、不优化的包。回归测试用 SDK 58 模板的 release 段落。
合入 #211 与 #175 里 apps/mobile-rn 的版本:expo 58.0.21 及 expo-* 58、
react-native 0.88.1、react-native-screens 4.30.1、react-native-svg 15.16.0、
React Navigation 7.21 / 7.5.1、jest 30.5.2、@react-native/jest-preset 0.88.1、
@testing-library/react-native 14.1.0、@types/jest 30.0.0、@types/react 19.3.0、
babel-preset-expo 58.0.22、test-renderer 1.3.1。

与两份 PR 不同的四处,前三处按 Expo SDK 58 的官方对应表
(expo/bundledNativeModules.json),待协调会话确认:

- react、react-dom 19.3.0(#175 为 19.3.1):RN 0.88.1 内置的渲染器是 19.3.0,
  SDK 58 固定这个版本。
- react-native-safe-area-context 5.10.1(#175 为 5.11.0):SDK 58 要求 ~5.10.1;
  5.11 改了 Android 上父视图已经处理过的窗口边距的计算方式。
- @babel/core 7.29.13(#211 为 8.0.9):babel-preset-expo 58 带的 Babel 7 插件要求
  ^7,换成 8 后每个测试套件加载时都报 Requires Babel "^7.0.0-0"。
- jest-expo 58.0.14(#211 为 58.0.13):RN 0.88 从 react-native 导出 AssetRegistry,
  58.0.13 只模拟 react-native/asset-registry,198 个测试报 Module "1" is missing
  from the asset registry;58.0.14 修正了这个模拟。

expo install --check 没有报告;prebuild 通过。
tauri-build 2.7 起,build.windows.staticVCRuntime 默认开启,普通 cargo 构建也会加上 Tauri
自己的运行库链接参数:VC 运行库静态链接,UCRT 改用系统 DLL(/NODEFAULTLIB:libucrt.lib、
/DEFAULTLIB:ucrt.lib)。桌面版本来就用 .cargo/config.toml 的 +crt-static 和 build.rs 的
libucrt.lib 静态链接整个 C 运行库,两者叠加后,Windows 原生 cargo test 链接 voltip-desktop
的库测试时报 __p___argc 重复定义(LNK2005、LNK1169)。tauri-build 2.6 只在 STATIC_VCRUNTIME
为 true 时加这组参数,那是 Tauri CLI 2.11 构建安装包时设置的;CLI 2.12 不再设置这个变量。

tauri.conf.json 的 build.windows 把 staticVCRuntime 关掉(build 设置只写在 tauri.conf.json,
平台覆盖文件只改自己的 bundle 段,window-config.test.ts 检查;这一项只对 MSVC 目标生效),
测试构建和安装包的 C 运行库都只由 .cargo/config.toml 和 build.rs 决定。bundle.rs 加了回归
测试,检查 Windows 配置和安装包覆盖配置合并后这一项都是 false,并且静态链接的两处设置还在。
Expo SDK 58 / React Native 0.88 带的 Android Gradle Plugin 是 9.2.1。从 9.0 起
android.onlyEnableUnitTestForTheTestedBuildType 默认为 true,只给模块测试的构建类型(默认
debug)创建单元测试任务,scripts/build-android-rn.sh 调用的
:voltip-native:testReleaseUnitTest 因此不存在,Gradle 在开始构建前就停下了。

voltip-native 的 build.gradle 写明 testBuildType 'release':单元测试继续针对
assembleRelease 本来就要编译的 release 构建,不用另外编译一遍 debug。
test_release_workflows.py 加了回归测试。
Symphonia 0.6 的 ADTS 读取器给这段测试音频估计 2.09 s,与解码出的长度一致;0.5 估计的是 2.6 s。注释里只写了旧值。
导入失败时,界面在「文件已损坏或不完整:」后面显示读取器给的原因。Symphonia 0.5 对末尾
缺失的文件说 end of stream;换到 0.6 后,Ogg 的读取器改说 unexpected end of file,MP4 与
Matroska 由 mp4.rs、mkv.rs 认出截断后写的是 the file is cut off,用户看到的文字因此变了。

三处都改回 end of stream(END_OF_STREAM)。截断的 MKV、WebM 在 0.5 会让读取器 panic,
现在也显示这个原因。decode.rs 加了回归测试,逐个检查截断的 M4A、MP4、MOV、Ogg、MKV、
WebM 的探测与解码结果。
opus-rs 0.1.40 与 libopus 一样,单声道解码器会把声道数为 2 的包混成单声道解出来;0.1.34
直接报错。take_codec 的测试原来拿这样的包当「解不出的包」,升级后断言失败(Windows 与
Linux 都一样)。

「坏包被跳过、录音继续」改用 RFC 6716 §3.4 R5 定义的畸形包(不含任何帧的 code 3 包),
并检查它后面的包照常解码;双声道包那一行保留,改为检查它按 libopus 的做法解出 10 ms。
dictation.md §3.9 与 acceptance.md 写的是 0.1.34 按输出缓冲区大小给 SILK 分配码率。0.1.40 改按 bitrate_bps:上传与长录音副本的 61 字节缓冲区仍是每包上限,码率不变(20.2 → 20.1 kbit/s);手机录音用整个缓冲区,从 78.2 降到 22.5 kbit/s,本机 SenseVoice 的识别结果与原音频的差别不变。
Expo SDK 58 带的 AGP 9.2 不允许库的 consumer 规则里有全局选项:本地模块的构建在
exportReleaseConsumerProguardFiles 失败(-renamesourcefileattribute),预编译 AAR 里的则被
应用的 R8 忽略。-keepattributes SourceFile,LineNumberTable 和 -renamesourcefileattribute
SourceFile 改由 app.json 的 expo-build-properties android.extraProguardRules 写进应用的
proguard-rules.pro;模块的 consumer-rules.pro 只留针对类的规则。
Tauri CLI 2.12 把配置要求的特性(macos-private-api)写进 [dependencies] 和每个
[target.*.dependencies] 里的 tauri 表,2.11 只写 [dependencies]。macOS 和 Windows 的表
缺这一项,每次 cargo tauri build / dev 都会改写 Cargo.toml,构建后的工作树与提交不一致。
两张表补上后 CLI 没有可写的内容;解析出的特性集合不变(基础表本来就开着这一项)。
Expo SDK 58 预编译的模块在 AAR 元数据里要求 minCompileSdk=37,compileSdk 36 时
Gradle 的 checkReleaseAarMetadata 拒绝构建。compileSdk 只决定代码能调用哪些接口,应用的
行为跟随 targetSdk,仍是 36(check-android-package.sh 照旧检查)。CI 的工具链改装
platforms;android-37.0。
React Native 0.88 的 Metro 把 packager source map 写成按模块分段的 index map,顶层没有
sourcesContent,build-android-rn.sh 因此报 no sourcesContent 并停止。取源码的代码移到
scripts/release/bundled-sources.py,逐段(可嵌套)读取 sourcesContent;整份没有源码,或某段
不内嵌 map 时仍然拒绝,扫描不会漏过没读到的源码。
opus-rs 0.1.34 不看 bitrate_bps,手机录音按整个包缓冲区分配码率,语音约 78 kbit/s;
0.1.40 按设置分配,24 kbit/s 时只剩 22.5 kbit/s。按用户的决定(协调会话答复 Q4,
2026-11-07)把手机录音的设置改为 96 kbit/s:58 s 中文语音、单音、噪声和合成浊音编出的包
都与 0.1.34 逐字节相同,语音实际 78.2 kbit/s,本机 SenseVoice 的结果与原音频相差 7 字,
与升级前一样。上传给内置服务的长录音和录音缓存的长录音副本升级前后都约 20 kbit/s,不改。
expo-camera 58 默认带上 ML Kit 文档扫描(play-services-mlkit-document-scanner),它的
GmsDocumentScanningDelegateActivity 锁竖屏,check-android-package.sh 因此拒绝发布包。应用
不扫描文档(扫码用自己的相机预览),plugins/display.js 在根工程的 build.gradle 里把这个库
从 :app 的依赖中排除,库和它的页面都不进包,与升级前(expo-camera 57)一样。

expo-camera 自己的开关 expo.camera.document-scanner-enabled 只在从源码构建它时生效:Expo
SDK 58 用预编译模块,模块的 Gradle 元数据总是带上这个库。测试读取这份元数据,确认排除的
正是它带来的库。
Tauri CLI 2.12 会合并它读到的所有 tauri 依赖表的 feature,不看目标平台
(tauri-apps/tauri#16250)。macOS 与 Windows 表里的 tray-icon 因此在 Linux 主机上
也算数:CI 用 cargo-xwin 交叉构建 Windows 安装包时报 "Can't detect any appindicator
library" 退出,本机打出的 deb 和 rpm 多了 libayatana-appindicator3 依赖。

CLI 不读也不改继承工作区的表,所以 macOS 与 Windows 表改为
tauri = { workspace = true, features = ["tray-icon"] },版本和默认 feature 来自根
Cargo.toml。两个平台的构建仍然带托盘(cargo tree 核对过),Linux 不带;Cargo.lock
不变。tests/bundle.rs 新增回归测试,检查 CLI 读到的表都不含 tray-icon。
tray-icon 0.25.1(随 Tauri 2.12)只在菜单弹出的那段时间把它挂到状态栏项上
(tauri-apps/tray-icon#365,修 macOS 27 吞掉左键单击)。VoiceOver 和键盘进入
菜单栏时的按下由 AppKit 转成状态栏按钮的 action,按钮既没有 action 也没有菜单,
于是什么都不打开;CI 两台 Mac 的托盘冒烟在第 3 步等不到菜单。

现在给状态栏按钮设 target/action,按下时调 tray-icon 的 show_menu(),菜单正在
显示时不再打开,并取消等待中的单击。鼠标单击照旧走 tray-icon 盖在按钮上的视图,
到不了这个 action。冒烟脚本第 3–4d 步(经辅助功能按下打开菜单并选择各项)就是
它的回归检查。docs/dictation.md §15.4 与 docs/acceptance.md 同步。
@codecov

codecov Bot commented Nov 7, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 92.80303% with 19 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
crates/voltip-media/src/lib.rs 89.74% 12 Missing ⚠️
crates/voltip-media/src/mp4.rs 89.13% 5 Missing ⚠️
crates/voltip-media/src/mkv.rs 96.36% 2 Missing ⚠️

Impacted file tree graph

@@           Coverage Diff            @@
##             main     #224    +/-   ##
========================================
  Coverage   93.53%   93.53%            
========================================
  Files         481      482     +1     
  Lines       83800    83966   +166     
  Branches     4902     4902            
========================================
+ Hits        78384    78540   +156     
- Misses       4744     4754    +10     
  Partials      672      672            
Flag Coverage Δ
rust 93.77% <92.80%> (+<0.01%) ⬆️
web 92.36% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
apps/desktop/src-tauri/src/lib.rs 71.49% <ø> (ø)
crates/voltip-core/src/runtime/take_codec.rs 100.00% <100.00%> (ø)
crates/voltip-media/src/opus.rs 100.00% <100.00%> (ø)
crates/voltip-media/src/mkv.rs 96.36% <96.36%> (ø)
crates/voltip-media/src/mp4.rs 95.20% <89.13%> (+1.82%) ⬆️
crates/voltip-media/src/lib.rs 88.75% <89.74%> (-6.06%) ⬇️

... and 9 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@sunerpy
sunerpy merged commit f909b33 into main Nov 7, 2026
42 of 45 checks passed
@sunerpy
sunerpy deleted the chore/deps-0.3.0 branch November 7, 2026 05:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant