first run, updates, installer: a setup tour stands in front of a fresh install, releases arrive through an in-app updater with stable and nightly channels behind a read-only token, and the branded installer builds again
This commit is contained in:
1 parent
07810f7543
commit
cd2391198e
19 files changed
+2010
-15
No files matched your search
+20
-4
@@ -34,6 +34,7 @@ mod overlap;
|
||||
mod holdings;
|
||||
mod state;
|
||||
mod thumbbar;
|
||||
mod updater;
|
||||
mod vocal_sep;
|
||||
mod youtube_playlist;
|
||||
mod youtube_setlist;
|
||||
@@ -43,6 +44,7 @@ mod ytdlp;
|
||||
pub fn run() {
|
||||
tauri::Builder::default()
|
||||
.manage(state::AppState::default())
|
||||
.manage(updater::UpdaterState::default())
|
||||
.setup(|app| {
|
||||
app.handle().plugin(
|
||||
tauri_plugin_log::Builder::default()
|
||||
@@ -54,6 +56,7 @@ pub fn run() {
|
||||
.build(),
|
||||
)?;
|
||||
app.handle().plugin(tauri_plugin_dialog::init())?;
|
||||
app.handle().plugin(tauri_plugin_updater::Builder::new().build())?;
|
||||
// Must run before anything touches the app-data dir.
|
||||
config::migrate_app_data(app.handle());
|
||||
// Prepare the small local vision model while the user is still on
|
||||
@@ -75,6 +78,9 @@ pub fn run() {
|
||||
// by default) and forwards adapter status to the webview. Fully
|
||||
// isolated — its absence or failure touches nothing else.
|
||||
freenet::init(app.handle());
|
||||
// Release checks: one shortly after launch, then every six hours,
|
||||
// never installing on their own (updater.rs).
|
||||
updater::init(app.handle());
|
||||
if let Err(e) = pipeline::init(app.handle()) {
|
||||
log::error!("library init failed: {e}");
|
||||
} else {
|
||||
@@ -90,6 +96,10 @@ pub fn run() {
|
||||
})
|
||||
.invoke_handler(tauri::generate_handler![
|
||||
commands::app_status,
|
||||
updater::updater_status,
|
||||
updater::updater_check,
|
||||
updater::updater_set,
|
||||
updater::updater_install,
|
||||
commands::excluded_search_phrases,
|
||||
commands::get_credentials,
|
||||
commands::connect_and_login,
|
||||
@@ -370,11 +380,17 @@ pub fn run() {
|
||||
--autoplay-policy=no-user-gesture-required \
|
||||
--enable-smooth-scrolling \
|
||||
--force-color-profile=srgb";
|
||||
// One cfg over BOTH statements: the attribute on the `let cdp`
|
||||
// alone left the `format!` below reading a name that release
|
||||
// builds never define — every `tauri build` since 0.1.0-alpha.3
|
||||
// failed on it (found 2026-09-09 making the first installer).
|
||||
#[cfg(debug_assertions)]
|
||||
// A second instance needs its own CDP port, or it silently fails
|
||||
// to bind and cannot be driven at all.
|
||||
let cdp = std::env::var("SOULSTREAM_CDP_PORT").unwrap_or_else(|_| "9222".into());
|
||||
let args = format!("{base} --remote-debugging-port={cdp}");
|
||||
let args = {
|
||||
// A second instance needs its own CDP port, or it silently
|
||||
// fails to bind and cannot be driven at all.
|
||||
let cdp = std::env::var("SOULSTREAM_CDP_PORT").unwrap_or_else(|_| "9222".into());
|
||||
format!("{base} --remote-debugging-port={cdp}")
|
||||
};
|
||||
#[cfg(not(debug_assertions))]
|
||||
let args = base.to_string();
|
||||
for window in &mut context.config_mut().app.windows {
|
||||
|
||||
Reference in new issue
Block a user