From 7e734625a156445e038b2dd2f6a632b5accb188f Mon Sep 17 00:00:00 2001 From: hreyes Date: Fri, 31 Jul 2026 15:11:49 -0600 Subject: [PATCH] fix(cras-install): dar ~5 minutos al sello de version al actualizar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Los 88s de antes (45 x 2s) se quedaban cortos con un caso real: en los agentes hasta 1.1.4 el sello se escribia DETRAS del re-despliegue de las deps embebidas, que al cambiar de version se re-copian enteras, y eso va despues de desempacar un onefile de ~254 MB con el antivirus escaneando. Se reportaba como fallida una actualizacion que iba bien. Desde 1.1.5 el agente escribe el sello lo primero y este margen sobra, pero tiene que cubrir los artefactos YA publicados, que no se pueden arreglar hacia atras. Agotar el margen es un FALLO en una actualizacion, asi que quedarse corto convierte un despliegue bueno en un error — el mas caro de los dos. Co-Authored-By: Claude Opus 5 (1M context) --- src/lib/server/cras-install.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/lib/server/cras-install.ts b/src/lib/server/cras-install.ts index acf79d1..04a8b99 100644 --- a/src/lib/server/cras-install.ts +++ b/src/lib/server/cras-install.ts @@ -1871,10 +1871,16 @@ export async function verifyWindowsDeployment( // desempacar un onefile de ~270 MB con Defender escaneando cada archivo se pasa de largo del // margen. Se sondea hasta que coincida, o hasta agotar los intentos. let deployed = ''; - // Margen generoso: desempacar un onefile de ~270 MB con Defender escaneando cada archivo se - // pasa de largo de los 30s que había antes, y agotar el margen ahora es un FALLO en una - // actualización, así que quedarse corto convertiría un despliegue bueno en un error. - const stampAttempts = isUpdate || inPlaceUpdate ? 45 : 3; + // ~5 minutos al actualizar. Los 88s de antes (45 × 2s) se quedaban cortos con un caso real: en + // los agentes hasta 1.1.4 el sello se escribía DETRÁS del re-despliegue de las deps embebidas, + // que al cambiar de versión se re-copian enteras, y eso va después de desempacar un onefile de + // ~254 MB con el antivirus escaneando. Se reportaba como fallida una actualización que iba + // bien. Desde 1.1.5 el agente escribe el sello lo primero y esto sobra, pero el margen tiene + // que cubrir los artefactos YA publicados, que no se pueden arreglar hacia atrás. + // + // Agotarlo es un FALLO en una actualización, así que quedarse corto convierte un despliegue + // bueno en un error — el error más caro de los dos. + const stampAttempts = isUpdate || inPlaceUpdate ? 150 : 3; for (let attempt = 0; attempt < stampAttempts; attempt += 1) { if (attempt > 0) await new Promise((resolve) => setTimeout(resolve, 2000)); const stamp = await execRemote(