Build Lotus Chat Desktop / prepare (push) Successful in 5s
Build Lotus Chat Desktop / build-windows (push) Canceled after 4m13s
Build Lotus Chat Desktop / build-linux (push) Canceled after 0s
Build Lotus Chat Desktop / build-arch (push) Canceled after 0s
Build Lotus Chat Desktop / update-manifest (push) Canceled after 0s
A friend's in-app update failed ten times ("error sending request for
url (…nsis.zip)") against a busy Gitea before the 11th worked.
- check_for_update / install_update retry transport errors (Reqwest,
Network, ReleaseNotFound) with 3 s / 8 s / 15 s backoff — four tries
per click. Signature or install errors fail at once, never masked.
- Every request gets a 600 s timeout; reqwest has none by default, so a
stalled connection could leave the UI on "installing" forever.
- Download and install are separate steps so a retry never re-installs.
- `lotus-update-progress` events (downloading %, retrying + wait,
installing) drive the new progress text in Settings.
- Errors are prefixed `check:` / `download:` / `install:` so the UI says
which step failed (it used to call a failed download "Update check
failed").
- Adds tokio (time feature only; already in the tree via tauri).
- Bump cinny to 568f218f (the matching UI).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA
81 lines
3.2 KiB
TOML
81 lines
3.2 KiB
TOML
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[package]
|
|
name = "cinny"
|
|
version = "4.12.2" # CI patches src-tauri/tauri.conf.json at build time; that file is the source of truth for the shipped version.
|
|
description = "Yet another matrix client"
|
|
authors = ["Ajay Bura"]
|
|
license = "AGPL-3.0-only"
|
|
repository = "https://github.com/cinnyapp/cinny-desktop"
|
|
default-run = "cinny"
|
|
edition = "2021"
|
|
rust-version = "1.77.2"
|
|
|
|
[build-dependencies]
|
|
tauri-build = { version = "2", features = [] }
|
|
|
|
[dependencies]
|
|
serde_json = "1.0.109"
|
|
serde = { version = "1.0.193", features = ["derive"] }
|
|
tauri = { version = "2", features = ["devtools", "wry", "tray-icon", "image-png"] }
|
|
tauri-plugin-localhost = "2"
|
|
tauri-plugin-window-state = "2"
|
|
tauri-plugin-notification = "2"
|
|
tauri-plugin-opener = "2"
|
|
tauri-plugin-deep-link = "2"
|
|
|
|
[features]
|
|
# by default Tauri runs in production mode
|
|
# when `tauri dev` runs it is executed with `cargo run --no-default-features` if `devPath` is an URL
|
|
default = [ "custom-protocol" ]
|
|
# this feature is used used for production builds where `devPath` points to the filesystem
|
|
# DO NOT remove this
|
|
custom-protocol = [ "tauri/custom-protocol" ]
|
|
|
|
[target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies]
|
|
tauri-plugin-updater = "2"
|
|
tauri-plugin-single-instance = "2"
|
|
tauri-plugin-autostart = "2" # P6-1 launch-on-login
|
|
# Update retry backoff (already in the tree via tauri; adds only the timer).
|
|
tokio = { version = "1", features = ["time"] }
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
# P6-1 desktop parity: screensaver inhibit (no-sleep in calls) + Unity launcher
|
|
# badge, both via the session D-Bus. zbus 5.x ships the blocking API under the
|
|
# default `blocking-api` feature and the default `async-io` runtime, so plain
|
|
# default features suffice (no tokio integration needed here).
|
|
zbus = "5"
|
|
# Same version wry/tauri already pull in transitively (see Cargo.lock) — pinning
|
|
# it directly lets us reach WebKitSettings/permission APIs wry doesn't expose.
|
|
webkit2gtk = "2.0"
|
|
|
|
[target.'cfg(target_os = "windows")'.dependencies]
|
|
webview2-com = "0.38"
|
|
window-vibrancy = "0.6"
|
|
windows = { version = "0.61", features = [
|
|
# WinRT namespaces
|
|
"Data_Xml_Dom", # P5-41 toast XML
|
|
"Foundation",
|
|
"Foundation_Collections", # P5-41 toast UserInput IMap
|
|
"Media",
|
|
"UI_Notifications", # P5-41 WinRT toast notifications
|
|
# Win32 namespaces
|
|
"Win32_Foundation",
|
|
"Win32_Storage_EnhancedStorage", # P5-36 jump list (PKEY_Title)
|
|
"Win32_Graphics_Gdi",
|
|
"Win32_Networking_NetworkListManager", # P5-49 network awareness
|
|
"Win32_System_Com",
|
|
"Win32_System_Com_StructuredStorage", # P5-36 jump list (PROPVARIANT)
|
|
"Win32_System_Power", # P5-46 no-sleep
|
|
"Win32_System_WinRT", # P5-43 SMTC interop
|
|
"Win32_UI_Input_KeyboardAndMouse", # cinny-desktop #2 global PTT/deafen poll
|
|
"Win32_UI_Shell",
|
|
"Win32_UI_Shell_Common", # P5-36 jump list (IObjectArray/IObjectCollection)
|
|
"Win32_UI_Shell_PropertiesSystem", # P5-36 jump list (IPropertyStore/PKEY_Title)
|
|
"Win32_UI_WindowsAndMessaging",
|
|
] }
|
|
|
|
[lib]
|
|
name = "app_lib"
|
|
crate-type = ["staticlib", "cdylib", "rlib"]
|