fix: injeta o Google client id nos builds de release do desktop - #464
Merged
Conversation
O frontend assa VITE_GOOGLE_CLIENT_ID e VITE_GOOGLE_DESKTOP_CLIENT_KEY em tempo de build (import.meta.env), mas o workflow de release não passava esses valores para o tauri-action — o binário publicado saía sem cliente OAuth configurado e não conseguia nem iniciar a conexão com o Google. O mesmo passo também compila o binário Rust (cargo build via tauri-action), que tem seu próprio fallback embutido em tempo de compilação (GOOGLE_CLIENT_SECRET, via option_env! em oauth/pkce.rs) usado pelo refresh de token em segundo plano. Sem ele a conexão cairia a cada ~1h no build de release mesmo com o client id correto, já que o frontend só repassa o secret no fluxo de conexão iniciado pelo usuário.
johnlaff
added a commit
that referenced
this pull request
Aug 15, 2026
O PR #464 fez os builds de release do desktop embutirem o Google client id, mas seu squash entrou no main sem o prefixo Conventional Commits — num PR de commit único, o GitHub usava a mensagem do commit (sem prefixo, pela convenção do repo) como assunto do squash, e o release-please descartou o conserto como "não user-facing": a 0.3.1 nunca nasceu. Este PR conserta a causa e o sintoma: a configuração do repositório passou a usar o título do PR como assunto do squash e o corpo do PR como mensagem (o que também torna o Closes #N deliberado, nunca herdado de commit antigo), o AGENTS.md documenta a regra, e o próprio squash deste PR — com prefixo fix: — devolve ao release-please o lançamento pendente que carrega o conserto do OAuth para os usuários da versão instalada. Como verificar: após o merge, o release-please deve abrir o PR da release 0.3.1 contendo este conserto no changelog.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
O quê / por quê
src/lib/env.tsesrc/lib/api.tsassamVITE_GOOGLE_CLIENT_IDeVITE_GOOGLE_DESKTOP_CLIENT_KEYem tempo de build viaimport.meta.env(string vazia/nullquando ausentes), mas.github/workflows/release.ymlnunca passava esses valores para otauri-action— o app publicado (confirmado nas builds v0.2.1 e v0.3.0) saía sem cliente OAuth configurado e não conseguia nem iniciar a conexão com o Google.Os secrets do repositório
VITE_GOOGLE_CLIENT_IDeVITE_GOOGLE_DESKTOP_CLIENT_KEYjá estão cadastrados; este PR só faz o workflow referenciá-los por nome.Mudança
Único passo de build do frontend/backend no workflow é o
Build Tauri bundle(tauri-apps/tauri-action): ele rodanpm run build(Vite, viabeforeBuildCommand) e em seguidacargo build --releasepara o mesmo processo — o.exeportável (passo seguinte, só para Windows) é uma cópia do binário que esse passo já produziu, então não há um segundo lugar para injetar env.Adicionadas ao
env:desse passo:VITE_GOOGLE_CLIENT_ID/VITE_GOOGLE_DESKTOP_CLIENT_KEY— consumidos pelo bundle Vite.GOOGLE_CLIENT_SECRET(mesmo valor deVITE_GOOGLE_DESKTOP_CLIENT_KEY) — o backend Rust tem um fallback próprio embutido em tempo de compilação (option_env!("GOOGLE_CLIENT_SECRET")emsrc-tauri/src/oauth/pkce.rs::resolve_client_secret), usado pelo refresh de token em segundo plano. O frontend só repassa o secret no fluxo de conexão iniciado pelo usuário; sem esse fallback embutido, a conexão cairia a cada ~1h mesmo com o client id correto.Como verificar
actionlintezizmor(mesmas versões doworkflows-lint.yml) rodados localmente contrarelease.yml: sem findings.npm run privacy:scan: limpo (comando separado, antes de qualquer push).