Merge remote-tracking branch 'origin/codex/mika-integrations-hardening' into codex/mika-skills-hardening

This commit is contained in:
Felipe Domingues 2026-05-28 18:45:09 -03:00
commit 3937b306f9
4 changed files with 8 additions and 0 deletions

View file

@ -71,6 +71,7 @@ export function DisconnectMCPDialog({
onDisconnected?.();
}
return (
<AlertDialog open={open} onOpenChange={onOpenChange}>
<AlertDialogContent>
@ -109,6 +110,7 @@ export function DisconnectMCPDialog({
</ul>
<p className="mt-2 text-xs">
Elas serão pausadas automaticamente ao desconectar.
</p>
</div>
</div>
@ -125,6 +127,7 @@ export function DisconnectMCPDialog({
handleDisconnect();
}}
disabled={submitting || isLoading}
className="bg-destructive text-destructive-foreground hover:bg-destructive/90"
>
{submitting ? "Desconectando..." : "Desconectar"}

View file

@ -122,6 +122,7 @@ function IntegrationDetailPage() {
queryClient.invalidateQueries({ queryKey: ["user-integrations"] });
}
async function handleRefresh() {
setRefreshing(true);
const { data, error } = await invokeFunction<{
@ -300,6 +301,7 @@ function IntegrationDetailPage() {
mcpSlug={mcp.slug}
mcpName={mcp.name}
/>
</div>
);
}

View file

@ -65,6 +65,7 @@ export function getProviderEnv(slug: ProviderSlug, redirectUri: string): Provide
return { clientId, clientSecret, redirectUri };
}
/**
* Monta a URL de autorização para iniciar o fluxo OAuth.
*/
@ -442,6 +443,7 @@ export async function revokeToken(
// Todoist precisa client_id/secret + access_token no body
const clientId = readFirstEnv(["TODOIST_CLIENT_ID", "TODOIST_OAUTH_CLIENT_ID"]);
const clientSecret = readFirstEnv(["TODOIST_CLIENT_SECRET", "TODOIST_OAUTH_CLIENT_SECRET"]);
const body = new URLSearchParams({
client_id: clientId,
client_secret: clientSecret,

View file

@ -119,6 +119,7 @@ Deno.serve(async (req) => {
if (!pErr) pausedCount = jobsToPause.length;
}
// 2. Busca tokens ANTES de qualquer delete
const accessToken = integ.access_token_vault_id
? await getDecryptedSecret(admin, integ.access_token_vault_id)