Compare commits

..

12 Commits

10 changed files with 40 additions and 14 deletions

View File

@@ -0,0 +1 @@
bash -c 'pkill -9 -x node 2>/dev/null; pkill -9 -x "Vyla Home" 2>/dev/null; pkill -9 -x "vyla-home" 2>/dev/null; rm -rf "$HOME/Library/Application Support/com.vyla.home" "$HOME/Library/Application Support/vyla-home" "$HOME/Library/Application Support/Vyla Home" "$HOME/Library/Caches/com.vyla.home" "$HOME/Library/Caches/vyla-home" "$HOME/Library/Caches/Vyla Home" "$HOME/Library/WebKit/com.vyla.home" "$HOME/Library/WebKit/vyla-home" "$HOME/Library/WebKit/Vyla Home" "$HOME/Library/Logs/Vyla Home" "$HOME/Library/Preferences/com.vyla.home.plist" "$HOME/.vyla-home" "/Applications/Vyla Home.app" "/Applications/vyla-home.app" "$HOME/Applications/Vyla Home.app" "$HOME/Applications/vyla-home.app" "src-tauri/target" "dist-build" "temp-validation-extract" "dist" "frontend" "player" "auth-proxy" "stream-api" "logs" "*.log" "download-temp.zip" "update-payload.zip" "manifest.json" "validation-report.json" "config/encrypted-credentials.json" "config/credentials.json"; echo "Vyla Home cleanup complete."'

View File

@@ -22,8 +22,8 @@ const clonedRepos = new Set();
function clonePrivateRepo(repoConfig, targetDir) {
if (fs.existsSync(targetDir)) {
console.log(`[DEV] ${repoConfig.name} already exists locally. Skipping clone to use local changes.`);
return;
console.log(`Removing stale ${repoConfig.name} before fresh clone...`);
fs.rmSync(targetDir, { recursive: true, force: true });
}
const token = process.env.GITLAB_TOKEN || process.env.VYLA_GITLAB_TOKEN;

View File

@@ -410,7 +410,7 @@ async function start() {
expressServer = expressApp.listen(FRONTEND_PORT, '127.0.0.1', () => {
sendToTauri('status', { message: 'All backend services running and healthy.' });
debugLog("Frontend Express running on 4890. Sending READY to Tauri.");
sendToTauri('ready', { url: `http://localhost:${FRONTEND_PORT}` });
sendToTauri('ready', { url: `http://127.0.0.1:${FRONTEND_PORT}` });
});
} catch (error) {

View File

@@ -1,6 +1,6 @@
{
"name": "vyla-home",
"version": "1.1.21",
"version": "1.1.27",
"description": "Vyla Home Desktop App Launcher",
"main": "main.js",
"scripts": {
@@ -54,4 +54,4 @@
"installerHeaderIcon": "build/icon.ico"
}
}
}
}

2
src-tauri/Cargo.lock generated
View File

@@ -4222,7 +4222,7 @@ dependencies = [
[[package]]
name = "vyla-home"
version = "1.1.21"
version = "1.1.27"
dependencies = [
"base64 0.22.1",
"serde",

View File

@@ -1,6 +1,6 @@
[package]
name = "vyla-home"
version = "1.1.21"
version = "1.1.27"
description = "Vyla Home Desktop App Launcher"
edition = "2021"

21
src-tauri/Info.plist Normal file
View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsLocalNetworking</key>
<true/>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSIncludesSubdomains</key>
<false/>
</dict>
</dict>
</dict>
</dict>
</plist>

View File

@@ -503,9 +503,9 @@ fn open_new_window(app: tauri::AppHandle, url: String) -> Result<(), String> {
let final_url = if url.starts_with("http") || url.starts_with("tauri://") {
url.clone()
} else if url.starts_with('/') {
format!("http://localhost:4890{}", url)
format!("http://127.0.0.1:4890{}", url)
} else {
format!("http://localhost:4890/{}", url)
format!("http://127.0.0.1:4890/{}", url)
};
if let Some(window) = app.get_webview_window("main") {
@@ -653,7 +653,7 @@ fn main() {
.inner_size(1280.0, 800.0)
.decorations(false)
.resizable(true)
.devtools(cfg!(debug_assertions))
.devtools(true)
.initialization_script("window.__VYLA_WINDOW_LABEL = 'main';")
.initialization_script(LINK_HANDLER_SCRIPT)
.build()?;

View File

@@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "Vyla Home",
"version": "1.1.21",
"version": "1.1.27",
"identifier": "com.vyla.home",
"build": {
"frontendDist": "../ui"
@@ -9,7 +9,7 @@
"app": {
"withGlobalTauri": true,
"security": {
"csp": null
"csp": "default-src 'self' http://localhost:4890 http://127.0.0.1:4890; script-src 'self' 'unsafe-inline' 'unsafe-eval' http://localhost:4890 http://127.0.0.1:4890 https://esm.sh; style-src 'self' 'unsafe-inline' http://localhost:4890 http://127.0.0.1:4890; img-src 'self' data: https: http://localhost:4890 http://127.0.0.1:4890; font-src 'self' data: http://localhost:4890 http://127.0.0.1:4890; connect-src 'self' http://localhost: http://127.0.0.1:"
}
},
"bundle": {
@@ -22,6 +22,10 @@
"icons/icon.icns",
"icons/icon.ico"
],
"macOS": {
"exceptionDomain": "localhost",
"infoPlist": "Info.plist"
},
"windows": {
"webviewInstallMode": {
"type": "downloadBootstrapper"
@@ -41,4 +45,4 @@
"../node_modules/**/*"
]
}
}
}

View File

@@ -587,7 +587,7 @@ void main() {
const data = e.payload || e;
if (data && data.url) {
setStatus("Launching...");
window.location.href = data.url;
window.location.replace(data.url);
}
});