diff --git a/Overlord-Server/public/assets/build.js b/Overlord-Server/public/assets/build.js index e94200d..24a7e47 100644 --- a/Overlord-Server/public/assets/build.js +++ b/Overlord-Server/public/assets/build.js @@ -52,6 +52,8 @@ const macosSdkRightsInput = document.getElementById("macos-sdk-rights"); const macosSdkFileStatus = document.getElementById("macos-sdk-file-status"); const macosSdkHostWarning = document.getElementById("macos-sdk-host-warning"); const macosSdkHostPlatform = document.getElementById("macos-sdk-host-platform"); +const disableCgoInput = document.querySelector('input[name="disable-cgo"]'); +const disableCgoWarning = document.getElementById("disable-cgo-warning"); let currentServerVersion = null; let currentUserRole = null; @@ -88,6 +90,10 @@ function updateMacosSdkVisibility() { if (macosSdkHostPlatform && unsupportedHost) macosSdkHostPlatform.textContent = macosSdkServerHost; } +function updateDisableCgoWarning() { + disableCgoWarning?.classList.toggle("hidden", !disableCgoInput?.checked); +} + async function uploadMacosSdk() { const file = macosSdkFileInput?.files?.[0]; if (!file) throw new Error("Select a macOS SDK archive for this Darwin CGO build"); @@ -705,6 +711,8 @@ function applyFormSettings(settings) { updateIosSectionVisibility(); updatePersistenceSettingsVisibility(); updateShellcodeCheckboxVisibility(); + updateDisableCgoWarning(); + updateMacosSdkVisibility(); if (solMemoCheckbox && solSettings) { solSettings.classList.toggle("hidden", !solMemoCheckbox.checked); } @@ -955,6 +963,7 @@ loadBuildPlugins(); loadMacosSdkStatus(); updateWindowsSectionVisibility(); updateShellcodeCheckboxVisibility(); +updateDisableCgoWarning(); init(); if (solMemoCheckbox && solSettings) { @@ -1134,7 +1143,8 @@ platformInputs.forEach((input) => { input.addEventListener("change", updateMacosSdkVisibility); }); -document.querySelector('input[name="disable-cgo"]')?.addEventListener("change", updateMacosSdkVisibility); +disableCgoInput?.addEventListener("change", updateMacosSdkVisibility); +disableCgoInput?.addEventListener("change", updateDisableCgoWarning); macosSdkFileInput?.addEventListener("change", () => { const file = macosSdkFileInput.files?.[0]; if (macosSdkFileStatus && file) macosSdkFileStatus.textContent = `${file.name} selected (${formatFileSize(file.size)}).`; @@ -1803,6 +1813,13 @@ form?.addEventListener("submit", async (e) => { return; } + if (disableCgoInput?.checked && !confirm( + "CGO is disabled. Native features such as voice/audio, macOS keystroke capture and permission checks, native Linux/macOS plugins, and Windows GPU encoder integrations may not work.\n\nContinue with a limited CGO-disabled build?" + )) { + disableCgoInput.focus(); + return; + } + if (needsMacosSdkUpload() && (!macosSdkFileInput?.files?.[0] || !macosSdkRightsInput?.checked)) { alert(!macosSdkFileInput?.files?.[0] ? "Select a macOS SDK archive for this Darwin CGO build." diff --git a/Overlord-Server/public/build.html b/Overlord-Server/public/build.html index 37d399f..647c890 100644 --- a/Overlord-Server/public/build.html +++ b/Overlord-Server/public/build.html @@ -593,6 +593,23 @@ + +