From 1e8e521d41b2754266263112fd4bc9636cc8c038 Mon Sep 17 00:00:00 2001 From: Michael Fisher Date: Wed, 24 Jun 2026 08:42:04 -0400 Subject: [PATCH 1/2] auth: disable debug logging by default --- src/auth.cpp | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/src/auth.cpp b/src/auth.cpp index a8a8b39dd..59555b911 100644 --- a/src/auth.cpp +++ b/src/auth.cpp @@ -10,6 +10,9 @@ #include #endif +#define AUTH_LOG(o) +// #define AUTH_LOG(o) Logger::writeToLog(o) + namespace element::auth { using namespace juce; @@ -327,7 +330,7 @@ String fetchSignedAppcastUrl (const String& accessToken) std::unique_ptr stream (url.createInputStream (options)); if (statusCode != 200 || stream == nullptr) { - Logger::writeToLog ("Auth: appcast-url request failed (HTTP " + String (statusCode) + ")"); + AUTH_LOG ("Auth: appcast-url request failed (HTTP " + String (statusCode) + ")"); return {}; } @@ -335,9 +338,9 @@ String fetchSignedAppcastUrl (const String& accessToken) auto json = JSON::parse (body); const auto appcastUrl = json["url"].toString(); if (appcastUrl.isNotEmpty()) - Logger::writeToLog ("Auth: fetched signed appcast URL"); + AUTH_LOG ("Auth: fetched signed appcast URL"); else - Logger::writeToLog ("Auth: appcast-url response missing 'url' field"); + AUTH_LOG ("Auth: appcast-url response missing 'url' field"); return appcastUrl; } @@ -363,9 +366,9 @@ void revokeRefreshToken (const String& refreshToken) std::unique_ptr stream (url.createInputStream (options)); if (statusCode >= 200 && statusCode < 300) - Logger::writeToLog ("Auth: refresh token revoked successfully"); + AUTH_LOG ("Auth: refresh token revoked successfully"); else - Logger::writeToLog ("Auth: revoke request failed (HTTP " + String (statusCode) + ")"); + AUTH_LOG ("Auth: revoke request failed (HTTP " + String (statusCode) + ")"); } bool isAppcastUrlExpired (const String& cachedUrl) @@ -389,16 +392,16 @@ void maybeRefreshOnStartup (element::Settings& settings) if (storedRefreshToken.isEmpty()) { - Logger::writeToLog ("Auth: no stored refresh token, skipping startup refresh"); + AUTH_LOG ("Auth: no stored refresh token, skipping startup refresh"); return; } - Logger::writeToLog ("Auth: attempting token refresh on startup"); + AUTH_LOG ("Auth: attempting token refresh on startup"); const auto response = refreshAccessToken (storedRefreshToken); if (! response.success) { - Logger::writeToLog ("Auth: startup refresh failed: " + response.error); + AUTH_LOG ("Auth: startup refresh failed: " + response.error); // Clear stale credentials so the UI reflects signed-out state. settings.setUpdateKey ({}); settings.setUpdateKeyUser ({}); @@ -414,7 +417,7 @@ void maybeRefreshOnStartup (element::Settings& settings) } persistTokens (settings, response); - Logger::writeToLog ("Auth: startup token refresh succeeded"); + AUTH_LOG ("Auth: startup token refresh succeeded"); } void handleCallback (const String& urlString, element::Settings& settings) @@ -428,7 +431,7 @@ void handleCallback (const String& urlString, element::Settings& settings) const auto authError = parameters["error"]; if (authError.isNotEmpty()) { - Logger::writeToLog ("Auth callback error: " + authError); + AUTH_LOG ("Auth callback error: " + authError); return; } @@ -439,26 +442,26 @@ void handleCallback (const String& urlString, element::Settings& settings) String expectedState, codeVerifier; if (! consumePendingPKCE (settings, expectedState, codeVerifier)) { - Logger::writeToLog ("Auth: missing PKCE session — restart sign-in"); + AUTH_LOG ("Auth: missing PKCE session — restart sign-in"); return; } const auto callbackState = parameters["state"].trim(); if (callbackState.isEmpty() || callbackState != expectedState) { - Logger::writeToLog ("Auth: callback rejected — invalid state"); + AUTH_LOG ("Auth: callback rejected — invalid state"); return; } const auto response = exchangeAuthorizationCode (authCode, codeVerifier); if (! response.success) { - Logger::writeToLog ("Auth: token exchange failed: " + response.error); + AUTH_LOG ("Auth: token exchange failed: " + response.error); return; } persistTokens (settings, response); - Logger::writeToLog ("Auth: token exchange completed successfully"); + AUTH_LOG ("Auth: token exchange completed successfully"); } String beginAuthorizationFlow (element::Settings& settings) @@ -467,17 +470,17 @@ String beginAuthorizationFlow (element::Settings& settings) const auto codeVerifier = generateCodeVerifier(); if (! storePendingPKCE (settings, state, codeVerifier)) { - Logger::writeToLog ("Auth: failed to store PKCE state"); + AUTH_LOG ("Auth: failed to store PKCE state"); return {}; } - Logger::writeToLog ("Auth: authorization flow started (PKCE)"); + AUTH_LOG ("Auth: authorization flow started (PKCE)"); return buildAuthorizationURL (state, codeVerifier); } void signOut (element::Settings& settings) { - Logger::writeToLog ("Auth: signing out"); + AUTH_LOG ("Auth: signing out"); const auto refreshToken = [&]() -> String { if (auto* props = settings.getUserSettings()) From 176a971dd226e2ede82bb57f902422a763ff6231 Mon Sep 17 00:00:00 2001 From: Michael Fisher Date: Wed, 24 Jun 2026 09:03:20 -0400 Subject: [PATCH 2/2] actions: update windows build deps --- .github/workflows/build.yml | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index dd06182eb..e939931eb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -51,7 +51,6 @@ jobs: build-essential \ cmake \ ninja-build \ - pandoc \ libasound2-dev \ libjack-jackd2-dev \ ladspa-sdk \ @@ -91,7 +90,7 @@ jobs: - name: Install dependencies (macOS) if: runner.os == 'macOS' run: | - brew install cmake ninja pandoc + brew install cmake ninja - name: Setup Boost (macOS) if: runner.os == 'macOS' @@ -102,26 +101,24 @@ jobs: platform_version: 11 toolset: clang - - name: Cache Chocolatey (Windows) - if: runner.os == 'Windows' - uses: actions/cache@v4 - with: - path: ~\AppData\Local\Temp\chocolatey - key: ${{ runner.os }}-choco-${{ hashFiles('.github/workflows/build.yml') }} - restore-keys: | - ${{ runner.os }}-choco- - - - name: Install dependencies (Windows) + - name: Install Boost headers (Windows) if: runner.os == 'Windows' + shell: pwsh run: | - choco install cmake ninja pandoc boost-msvc-14.3 -y - + $boost_ver = "1.83.0" + $boost_dir = "boost_$($boost_ver -replace '\.','_')" + $url = "https://archives.boost.io/release/$boost_ver/source/${boost_dir}.zip" + Invoke-WebRequest -Uri $url -OutFile boost.zip + New-Item -ItemType Directory -Force -Path C:\local + Expand-Archive -Path boost.zip -DestinationPath C:\local + echo "BOOST_ROOT=C:\local\$boost_dir" >> $env:GITHUB_ENV + - name: Setup MSVC environment (Windows) if: runner.os == 'Windows' uses: ilammy/msvc-dev-cmd@v1 with: arch: amd64 - + - name: Setup ccache uses: hendrikmuhs/ccache-action@v1.2 with: @@ -137,11 +134,7 @@ jobs: -DCMAKE_BUILD_TYPE=Release ` -DELEMENT_ENABLE_ASIO=ON ` -DELEMENT_ENABLE_UPDATER=ON ` - -DELEMENT_BUILD_PLUGINS=ON ` - -DBoost_INCLUDE_DIR="C:/local/boost_1_87_0" ` - -DBoost_LIBRARY_DIRS="C:/local/boost_1_87_0/lib64-msvc-14.3" - env: - BOOST_ROOT: C:/local/boost_1_87_0 + -DELEMENT_BUILD_PLUGINS=ON - name: Configure CMake (Unix) if: runner.os != 'Windows'