Files
vega/package.json
T
Jure 957557708e Bump to v0.14.0 — app identifier moves to com.veganostr.Vega
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.
2026-07-14 12:20:32 +02:00

53 lines
1.4 KiB
JSON

{
"name": "vega",
"private": true,
"version": "0.14.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"preview": "vite preview",
"tauri": "tauri",
"test": "vitest",
"test:run": "vitest run"
},
"dependencies": {
"@fontsource/atkinson-hyperlegible": "5.2.8",
"@nostr-dev-kit/ndk": "^3.0.3",
"@tailwindcss/vite": "^4.3.1",
"@tanstack/react-virtual": "3.13.24",
"@tauri-apps/api": "^2.11.0",
"@tauri-apps/plugin-dialog": "^2.7.0",
"@tauri-apps/plugin-fs": "^2.5.0",
"@tauri-apps/plugin-http": "^2.5.7",
"@tauri-apps/plugin-notification": "^2.3.3",
"@tauri-apps/plugin-opener": "^2",
"@tauri-apps/plugin-process": "^2.3.1",
"@tauri-apps/plugin-updater": "^2.10.0",
"@types/dompurify": "^3.0.5",
"dompurify": "^3.4.11",
"highlight.js": "^11.11.1",
"lucide-react": "1.16.0",
"marked": "^17.0.4",
"marked-highlight": "^2.2.3",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"react-qr-code": "^2.0.18",
"tailwindcss": "^4.2.1",
"zustand": "^5.0.11"
},
"devDependencies": {
"@tauri-apps/cli": "^2",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@types/marked": "^5.0.2",
"@types/react": "^19.1.8",
"@types/react-dom": "^19.1.6",
"@vitejs/plugin-react": "^6.0.2",
"jsdom": "^29.0.0",
"typescript": "~5.8.3",
"vite": "^8.0.16",
"vitest": "^4.1.0"
}
}