mirror of
https://github.com/open-jarvis/OpenJarvis.git
synced 2026-07-30 19:02:16 +00:00
Route desktop cloud-key saves/status through the OS credential store (keyring with per-platform native backends: apple-native / windows-native / sync-secret-service), migrate the legacy plaintext ~/.openjarvis/cloud-keys.env into it, remove browser localStorage persistence of provider keys, and push key updates to the running server via /v1/cloud/reload (legacy env-file fallback retained). Remove hardcoded Supabase anon JWTs from frontend/docs source and make VITE_SUPABASE_ANON_KEY a required build var. Adds libdbus-1-dev to the Linux desktop build and a CI build var. Closes #220. NOTE (post-merge follow-ups, not covered by CI): add the VITE_SUPABASE_ANON_KEY repo secret with the rotated key (release/docs builds otherwise use a placeholder), rotate the previously-committed Supabase anon key, and run a desktop save->restart->read smoke test to confirm keychain persistence. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
47 lines
1.7 KiB
TOML
47 lines
1.7 KiB
TOML
[package]
|
|
name = "openjarvis-desktop"
|
|
version = "1.0.1"
|
|
description = "OpenJarvis Desktop — Native AI assistant with energy monitoring, trace debugging, and learning visualization"
|
|
edition = "2021"
|
|
license = "MIT"
|
|
|
|
[build-dependencies]
|
|
tauri-build = { version = "2", features = [] }
|
|
|
|
[dependencies]
|
|
toml_edit = "0.22"
|
|
tauri = { version = "2", features = ["tray-icon"] }
|
|
tauri-plugin-notification = "2"
|
|
tauri-plugin-shell = "2"
|
|
tauri-plugin-global-shortcut = "2"
|
|
tauri-plugin-autostart = "2"
|
|
tauri-plugin-updater = "2"
|
|
tauri-plugin-single-instance = "2"
|
|
tauri-plugin-process = "2"
|
|
tauri-plugin-dialog = "2"
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
reqwest = { version = "0.12", features = ["json", "multipart"] }
|
|
tokio = { version = "1", features = ["full"] }
|
|
|
|
# Cloud API keys are stored in the OS credential store via `keyring`. keyring v3
|
|
# enables NO backend by default — without an explicit per-platform feature it
|
|
# silently falls back to a non-persistent in-memory mock, so keys would not
|
|
# survive an app restart. Each desktop target opts into its native store.
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
|
objc = "0.2"
|
|
dispatch = "0.2"
|
|
keyring = { version = "3", features = ["apple-native"] }
|
|
|
|
[target.'cfg(target_os = "windows")'.dependencies]
|
|
keyring = { version = "3", features = ["windows-native"] }
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
# Blocking Secret Service backend (no internal async runtime, so it is safe to
|
|
# call from the tokio-driven Tauri commands). Needs libdbus-1-dev at build time.
|
|
keyring = { version = "3", features = ["sync-secret-service", "crypto-rust"] }
|
|
|
|
[features]
|
|
default = ["custom-protocol"]
|
|
custom-protocol = ["tauri/custom-protocol"]
|