Bug fixes
- Backup performance on iCloud-heavy macOS trees: skip
getxattron dataless inodes. The walker was round-tripping tofileproviderdfor every cloud-managed file, serializing the pipeline; dataless xattrs are already supplied by the parent snapshot or skipped entirely. (#133) - GUI: surface previously-swallowed config-read and tmp-cleanup errors via the in-app log channel instead of
let _ =dropping them silently. - Linux quota syscalls: switch FFI pointer casts to
ptr::from_mutto satisfy Rust 1.95 clippy::pedantic on Linux-only code paths.
Reliability & code quality
- Crypto:
MasterKey::generatenow propagatesOsRngfailures instead of panicking — relevant for sandboxed/container environments where kernel entropy may be temporarily unavailable. - Storage: document that synchronous
StorageBackendmethods (notably SFTP) may block on a Tokio runtime internally and must not be invoked from inside an async context. - Workspace lints: tighten clippy policy across all crates — deny
unwrap_used,panic,panic_in_result_fn,cast_precision_loss,unsafe_code(per-module opt-in with SAFETY comments), enable pedantic with a focused allowlist. ~94 files adapted; lossyas-casts replaced with checked integer math. - Types: encapsulate
ChunkId/PackId/SnapshotIdnewtypes behindfrom_bytes()/as_bytes(); drop the unusedVykarError::Storagevariant. - CLI: split
main.rsintolib.rs+ helpers, introduce athiserror-basedCliError, grouprun_backuparguments intoBackupRunOpts. - Core: gate
BudgetGuardand dead helpers oncfg(test), drop avoidable clones in pending-index recovery, document blocking sleeps in session/lock helpers. - GUI: refactor UI state models; split megamodules into focused submodules.
Infrastructure
- CI now runs lint, test, and docs on pull requests, not just post-merge.
Downloads
| Platform | Asset |
|---|---|
| Linux x86_64 (glibc) | vykar-v0.16.0-x86_64-unknown-linux-gnu.tar.gz
|
| Linux x86_64 (musl, static) | vykar-v0.16.0-x86_64-unknown-linux-musl.tar.gz
|
| Linux aarch64 (glibc) | vykar-v0.16.0-aarch64-unknown-linux-gnu.tar.gz
|
| Linux aarch64 (musl, static) | vykar-v0.16.0-aarch64-unknown-linux-musl.tar.gz
|
| macOS Apple Silicon | vykar-v0.16.0-aarch64-apple-darwin.tar.gz
|
| Windows x86_64 | vykar-v0.16.0-x86_64-pc-windows-msvc.zip
|
| GUI (Linux AppImage) | vykar-gui-v0.16.0-x86_64.AppImage
|
SHA256 checksums are attached as SHA256SUMS.
Full changelog: v0.15.0...v0.16.0