app
Fusion - the Fusion 360 Bridge
Public Made by Adomby adom
Drive Autodesk Fusion 360 from the cloud via Adom Bridge: component libraries, IPC package generation, board layout, exports (STEP/Gerbers/BOM/CPL), fast APS cloud search, and parametric modeling.
← Commit history
dashboard 1.9.158: dock webview ownership
4 files changed
+25−3
dashboard/Cargo.lock+1−1@@ -4,7 +4,7 @@ version = 4 [[package]] name = "fusion-dashboard"-version = "1.9.157"+version = "1.9.158" dependencies = [ "serde_json", ]
dashboard/Cargo.toml+1−1@@ -1,6 +1,6 @@ [package] name = "fusion-dashboard"-version = "1.9.157"+version = "1.9.158" edition = "2021" [dependencies]
dashboard/src/main.rs+22@@ -1360,6 +1360,28 @@ fn serve(port: u16, target: String, ai_thread: String, print_url: bool) { ok(&format!("fusion-dashboard v{} serving on port {} (target {})", VERSION, port, if app.target.is_empty() { "auto" } else { &app.target })); + // DOCK WEBVIEW OWNERSHIP (project-1d dock-bar contract, John-blessed model, 2026-08-23):+ // the dock pre-opens a named tab and hands us its name in ADOM_DOCK_WEBVIEW. Once WE are+ // serving, the tab is OURS: take it over and re-navigate it to our URL on EVERY (re)start,+ // so the dashboard follows our server with no dock involvement (restart the server, the+ // same tab renavigates). Env-gated (skip on a hand-run serve with the var unset), uses the+ // same env-aware URL we print (direct 127.0.0.1 on WSL, VS Code proxy in a cloud container),+ // and best-effort: a missing adom-cli or a closed tab never blocks or crashes serving.+ if let Ok(tab) = std::env::var("ADOM_DOCK_WEBVIEW") {+ if !tab.trim().is_empty() {+ let url = url_for(port);+ std::thread::spawn(move || {+ std::thread::sleep(Duration::from_millis(800)); // let accept() come up first+ let _ = Command::new("adom-cli")+ .args(["hydrogen", "webview", "open-or-refresh",+ "--name", &tab, "--url", &url])+ .stdout(std::process::Stdio::null())+ .stderr(std::process::Stdio::null())+ .status();+ });+ }+ }+ // 24h idle reaper (app-creator lifecycle): a dock click respawns us, so exiting when // nobody has used the app for a day keeps containers free of zombie servers. {
install.sh+1−1@@ -21,7 +21,7 @@ echo "Installed fusion-bridge skills: $(ls "$PKG_DIR/skills" 2>/dev/null | tr '\ # binary (the three-artifact pattern: bridge zip -> ab, THIS pkg -> container skills + # this download, page media -> wiki). Per the wiki's PKG_VS_RELEASE policy, binaries are # platform-tagged RELEASE assets, never tarball content - the installer fetches them.-DASH_VERSION="1.9.157"+DASH_VERSION="1.9.158" DASH_URL="https://wiki.adom.inc/download/adom/fusion-bridge/${DASH_VERSION}/fusion-dashboard" DEST="" if [ -w /usr/local/bin ]; then DEST=/usr/local/bin