Compare commits

...
4 Commits
Author SHA1 Message Date
patternn 42c62491fb r21 doc: politica de DMs, gtag/AdSense fuera, fixes encadenados
ci / lint-test (pull_request) Successful in 4s
isolation-test / probe (pull_request) Successful in 8s
2026-11-02 17:50:32 +00:00
pattern 30d76fa565 Merge pull request 'ci: pipefail real (defaults.run.shell) + revert del test roto fusionado por falso verde' (#44) from ci-pipefail-real into main
ci / lint-test (push) Successful in 1s
Reviewed-on: #44
2026-11-02 17:13:03 +00:00
ci-bot 3b8e1296e2 Merge pull request 'r20 doc: perf, pipefail real, reporte diario, seo' (#46) from r20-doc into main
ci / lint-test (push) Successful in 2s
2026-11-02 13:15:11 +00:00
patternn 8c5f085e3f r20 doc: perf gate mediana, pipefail real + incidente #43, reporte diario, seo
ci / lint-test (pull_request) Successful in 7s
isolation-test / probe (pull_request) Successful in 2s
2026-11-02 13:09:15 +00:00
2 changed files with 49 additions and 0 deletions
@@ -0,0 +1,22 @@
# Ronda 20 — Perf bitcoinhotels, reporte diario, SEO (OpenCode/GLM, operador patternn)
## 1. Rendimiento (PR #5 bitcoinhotels, gate como prueba)
- Diagnostico: 1.35 MB de terceros en la ventana de carga (gtag 530K + AdSense 666K + Blink 159K) → TBT 1128 ms, score 0.74-0.85.
- Cambios: gtag+AdSense diferidos al primer gesto o 15 s (DeferredThirdParty); Blink por IntersectionObserver de su sección; SatlantisEvents/SupportSection en chunks aparte (next/dynamic).
- Local: 0.98 / 0.92 / 0.97. CI varianza (0.79 en una pasada) → gate con MEDIANA de 3 pasadas ≥0.90.
- Fonts ya iban bien (next/font + swap). Fuentes de verdad: auditoría completa en el reporte.
## 2. Post-merges
- #41 (pipefail) → demo #43... INCIDENTE: el set -o pipefail estaba en un PASO aparte (cada run: es un shell nuevo, no persiste) → el test roto siguio VERDE y el auto-merge lo fusiono a main. Fix real: defaults.run.shell bash -eo pipefail a nivel job (PR #44) + retiro del test de main; demo v2 (#45): CI ROJO ✓ bloqueado por checks.
- bitcoinhotels #3+#4 mergeados → checks ACTIVADOS (ci / build-e2e-lighthouse) y #3 ya cerrado por tu merge; autodeploy desplego main solo (48aa40d). Bug propio corregido: el exit 0 del no-op de entity mataba el script antes de la sección bitcoinhotels.
- entity #2 y #23 SIGUEN open → checks de entity y voz v3 pendientes de tu merge.
## 3. Reporte diario por DM (nuevo, activo)
- /usr/local/bin/cayce-daily-report + timer 23:50 UTC: publicado por canal con enlaces, rechazos del guard agrupados, PRs mergeados 24h + deploys del autodeploy, Umami (SQL directo a la DB local de /opt/umami — ambos sitios) y Gemini del dia.
- llm.mjs registra uso por llamada (.llm-usage.jsonl; entity PR #3 + aplicado). Costo estimado con rates configurables (GEMINI_USD_PER_MTOK_IN/OUT).
- 2 DMs de prueba enviados al supervisor durante la validacion (12:57 y 12:58 UTC).
## 4. SEO
- robots.txt + sitemap.xml ya 200 en ambos sitios.
- Verificacion GSC/Bing por ARCHIVO en public/ (servido en runtime, sin rebuild, .gitignore para no ensuciar el checkout): bitcoinhotels PR #6 (Gitea), hardcap PR #5 (GitHub, via gh).
- Pasos operator: GSC → descargar googleXXX.html → scp a /srv/bitcoinhotels/public/ (y /srv/hardcap-news/frontend/public/); Bing → BingSiteAuth.xml igual.
@@ -0,0 +1,27 @@
# Ronda 21 — Política de DMs, gtag/AdSense fuera, fixes (OpenCode/GLM, operador patternn)
## 0. DMs: solo urgencia
- Emisores ANTES: cycle-monitor (ciclos), autodeploy (exito+rollback), daily-report, relay-watcher (fuga+monitor), gemini-spend (estimador sin timer).
- AHORA: cycle-monitor SIN DM (logger, lo toma el reporte diario); autodeploy DM SOLO en 3 ROLLBACKs; relay-watcher con dedup 6h (fuga, monitor-stalled); NUEVO cayce-urgent-watch (5 min): kill switch MANUAL (respeta la ventana firmada del autodeploy <10 min), criticos caidos >15 min (nostr, hardcap back/front, bitcoinhotels, postgres, caddy; estado persistente .critical-down.json), backup fallido, gasto Gemini REAL >1 USD/dia (tokens de .llm-usage.jsonl). Dedup compartido 6h (.dm-dedup.json). gemini-spend eliminado.
- daemon /dm auditado (log [dm]) — verificacion real de envios.
- PRUEBA NEGATIVA: deploy exitoso (remote falso, PUBLISH_OFF firmado): 0 DMs. Falso positivo inicial (17:30, carrera con la ventana del deploy) corregido con la firma. El ROLLBACK legitimo (tests 22/5 por caps reales) SI DM.
- Reporte diario: nueva seccion "Persistencias" (caidos al momento del reporte).
## Fixes encadenados
- editorials CAIDAS desde r17 (exigian ZAI_API_KEY): chequeo fuera + rama. Arreglado y corriendo.
- guard tests contaminados por el tope REAL (dia 3/3 rompia 5 tests): aislamiento con GUARD_CAPS_JSON + restauracion en R5. 27/27.
- autodeploy: systemctl restart como ubuntu fallaba EN SILENCIO (sitio sin reiniciar desde 07:39): 4 llamadas ahora con sudo -n; build nuevo ya sirve.
- un reset --hard accidental barrio parches calientes: recuperados via rama r20-llm-usage (checkout sobre esa rama).
## 1. bitcoinhotels sin gtag/AdSense
- PR #7: gtag FUERA (Umami reemplaza), script AdSense FUERA; quedan ads.txt + meta google-adsense-account. CI VERDE (gate mediana) → auto-mergeado → desplegado → produccion con 0 referencias gtag/adsbygoogle, umami 1, meta 1, ads.txt OK, live 200.
## 2. Post-merges
- #44: demo #47 (test roto) → CI ROJO, bloqueado por checks, cerrada. El pipefail real funciona.
- #23 y entity #2 siguen OPEN (voz v3 y checks de entity pendientes de tu merge).
## 3. SEO
- Verificacion por DNS elegida: bh#6 cerrado (con comentario); hardcap GH#5 ya estaba MERGEADO por el operador (gitignore+doc inofensivos quedan).
## Extra
- Token cayce ampliado a write:issue (r21-full); viejo r17 revocado.