mirror of
https://github.com/hoornet/vega.git
synced 2026-07-24 01:08:11 -07:00
957557708e
The app identifier changes from `com.hoornet.vega` to `com.veganostr.Vega`. A reverse-DNS app ID must sit on a domain the project controls; the old one did not, which blocks publishing on Flathub and leaves Vega's identity inconsistent across Flathub, winget and the native installers. The identifier keys every per-app directory, so this migrates existing installs on first launch: the SQLite cache (vega.db), the embedded relay's database (relay.db), and webview localStorage (themes, drafts, podcast subscriptions, article read-state). Migration runs at the top of run(), before tauri::Builder — not inside .setup(). Tauri builds the config-defined windows before invoking the setup hook, and building a webview create_dir_all's <LocalData>/<identifier>, which on Linux is the same directory that holds vega.db. Migrating from setup() would therefore always find a non-empty destination, skip, and silently strand every Linux user's data with no way for a later fix to recover it. Entries are moved individually rather than renaming the whole tree, so a destination the webview already created does not block the migration, and a failed attempt retries on the next launch. An entry that already exists at the destination is never overwritten — the live copy always wins. All three per-platform roots are covered: WebView2 keeps localStorage under %LOCALAPPDATA% on Windows (not %APPDATA%), and WKWebView keeps it under ~/Library/WebKit on macOS, neither of which is the app data dir. Keys are unaffected — the keychain service name is independent of the identifier, so users stay logged in. Windows installs v0.14.0 alongside v0.13.2 rather than replacing it, since the changed identifier reads as a new application. Documented in the README, CHANGELOG and release notes.
46 lines
1.5 KiB
TOML
46 lines
1.5 KiB
TOML
[package]
|
|
name = "vega"
|
|
version = "0.14.0"
|
|
description = "Cross-platform Nostr desktop client with Lightning integration"
|
|
authors = ["hoornet"]
|
|
edition = "2021"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[lib]
|
|
# The `_lib` suffix may seem redundant but it is necessary
|
|
# to make the lib name unique and wouldn't conflict with the bin name.
|
|
# This seems to be only an issue on Windows, see https://github.com/rust-lang/cargo/issues/8519
|
|
name = "vega_lib"
|
|
crate-type = ["staticlib", "cdylib", "rlib"]
|
|
|
|
[build-dependencies]
|
|
tauri-build = { version = "2", features = [] }
|
|
|
|
[dependencies]
|
|
tauri = { version = "2", features = ["devtools", "tray-icon"] }
|
|
# Resolves the per-platform data/config roots before Tauri exists — the identifier
|
|
# migration must run before tauri::Builder, so it cannot use app.path().
|
|
dirs = "6"
|
|
tauri-plugin-opener = "2"
|
|
tauri-plugin-updater = "2"
|
|
tauri-plugin-process = "2"
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
keyring = { version = "3", features = ["apple-native", "windows-native", "linux-native"] }
|
|
rusqlite = { version = "0.32", features = ["bundled"] }
|
|
tauri-plugin-http = "2.5.7"
|
|
tauri-plugin-dialog = "2.7.0"
|
|
tauri-plugin-fs = "2.5.0"
|
|
tauri-plugin-notification = "2.3.3"
|
|
tokio = { version = "1", features = ["rt-multi-thread", "net", "sync", "macros", "time"] }
|
|
tokio-tungstenite = "0.24"
|
|
secp256k1 = { version = "0.30", features = ["global-context"] }
|
|
sha2 = "0.10"
|
|
hex = "0.4"
|
|
futures-util = "0.3"
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
webkit2gtk = "2.0"
|
|
|