Compare commits

..
Author SHA1 Message Date
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
ci-bot cc22feea23 Merge pull request 'demo r20: test roto — el CI debe dar ROJO' (#43) from demo-rojo-r20 into main
ci / lint-test (push) Successful in 8s
2026-11-02 12:55:04 +00:00
patternn fa312c2fbd demo r20: test roto — el CI debe dar ROJO (prueba del pipefail #41)
ci / lint-test (pull_request) Successful in 6s
isolation-test / probe (pull_request) Successful in 1s
2026-11-02 12:51:32 +00:00
pattern c027317f46 Merge pull request 'ci: set -o pipefail — los tests rotos ya no dan verde' (#41) from ci-pipefail into main
ci / lint-test (push) Successful in 1s
Reviewed-on: #41
2026-11-02 12:29:42 +00:00
ci-bot 21a6aa41ca Merge pull request 'r19 doc: auto-merge demo completo, bitcoinhotels en el sistema, sfeed' (#42) from r19-doc into main
ci / lint-test (push) Successful in 5s
2026-11-02 07:50:06 +00:00
patternn 41e14174b6 r19 doc: auto-merge demo completo, bitcoinhotels en el sistema, sfeed
ci / lint-test (pull_request) Successful in 3s
isolation-test / probe (pull_request) Successful in 1s
2026-11-02 07:47:26 +00:00
ci-bot de73dd2af9 Merge pull request 'ci demo: trivial verde (debe auto-mergear)' (#35) from ci-demo-trivial into main
ci / lint-test (push) Successful in 1s
2026-11-02 07:34:56 +00:00
ci-bot 2405070a0c Merge pull request 'recupera doc r18 (commit perdido en main local)' (#38) from r19-recover-r18doc into main
ci / lint-test (push) Successful in 4s
2026-11-02 07:34:41 +00:00
patternn ef733e9ecc ci: set -o pipefail — los tests rotos ya no dan verde
ci / lint-test (pull_request) Successful in 1s
isolation-test / probe (pull_request) Successful in 0s
2026-11-02 06:47:14 +00:00
patternn 73b93c8cfa ci demo: trivial verde
ci / lint-test (pull_request) Successful in 2s
isolation-test / probe (pull_request) Successful in 0s
2026-11-02 06:42:28 +00:00
patternn a0ee8fbf1d r18 doc: autodeploy probado, promo v3 publicada en FB, bitcoinhotels actualizado 2026-11-02 06:20:33 +00:00
5 changed files with 62 additions and 0 deletions
+1
View File
@@ -9,6 +9,7 @@ jobs:
lint-test:
runs-on: ubuntu-latest
steps:
- run: set -o pipefail # r19: sin esto, | tail se come los exit codes y un test roto da verde
- uses: actions/checkout@v4
with:
fetch-depth: 1
+2
View File
@@ -0,0 +1,2 @@
def test_rojo_demo():
assert False, "rompe a proposito — verifica pipefail del CI (r20)"
@@ -0,0 +1,36 @@
# Ronda 19 — Auto-merge, bitcoinhotels en el sistema, sfeed (OpenCode/GLM, operador patternn)
## 1. Auto-merge
- required_status_checks ACTIVO en cayce-ops main (contexto "ci / lint-test (pull_request)"). entity y bitcoinhotels: pendiente de que sus workflows lleguen a main (PRs #2 y #4) — activar checks antes dejaría los PRs bloqueados sin CI que correr.
- Bug del CI hallado por la demo: | tail sin pipefail hacia que un test roto diera VERDE (PR #41 lo corrige — toca workflows, merge del operador).
- Bug historico del auto-merge hallado y corregido: regenerar token "auto-merge" con nombre usado da ERROR → BOT vacio → el script llevaba rondas sin hacer nada. Ahora el token persiste en /etc/cayce/ci-bot.token (600). INCIDENTE: un token de ci-bot se imprimio en mi salida por un heredoc sin citar → fue revocado al instante y reemplazado.
- Otro fix: usar /status (combinado) en vez de /statuses (los pending historicos bloqueaban PRs verdes).
- ci-bot tenia MustChangePassword → su API daba 403: unset.
- DEMA COMPLETA: #35 trivial verde → AUTO-MERGEADO (merge: 200); #40 rojo → merge rechazado "405 Not all required status checks successful"; #39 verde+SPEC.md → "TOCA PATH PROTEGIDO — no se auto-mergea". #38 (doc r18 recuperada) tambien auto-mergeado.
- Timer cayce-auto-merge (cada 5 min) ACTIVO. Ciclo completo verificado: merge → autodeploy tiro "[autodeploy] cayce-ops → de73dd2" solo.
## 2. bitcoinhotels en el sistema
- PR #4 (bh-repo-completo): TODO para construir (package+lock sincronizado, configs, public/) + CI: npm ci + build + Playwright (375/768/1280, smoke home+guia sin marcas) + Lighthouse movil >=0.90.
- Infra del runner arreglada: playwright install --with-deps necesita sudo → deps de sistema instaladas como root (persistentes), browser en cache del runner; dos versiones de @playwright/test → binarios locales del repo; lighthouse requiere CHROME_PATH + --no-sandbox; firewall del runner (uid 1002) bloqueaba loopback → regla OUTPUT -o lo ACCEPT (persistida en /etc/cayce/iptables.v4, antes inexistente pese a la unit enabled).
- RESULTADO REAL: Playwright VERDE; Lighthouse performance(movil) = 0.85 → el umbral >=0.90 fallara hasta optimizar el sitio (detalles en /tmp/lh.json del runner). El workflow ya mide bien.
- /srv/bitcoinhotels = checkout de bh-repo-completo (unit cayce-bitcoinhotels.service, PORT=3002); rollback pre-r19 en forensics (r19-bitcoinhotels-pre-*.tar.gz). Autodeploy extendido: pull main → build → restart → verifica 200+umami+0 marcas → rollback si falla. check-clean-trees lo cubre.
- BitBox02 (PR #3) incluido en la rama; nada en caliente a partir de ahora.
## 3. sfeed (solo lectura)
- billing status: "○ No subscription" (el scheduling hospedado la requiere; el posting directo NO). Sin cobro.
- Destinos activos: facebook "Bitcoin Travelers" (1013900045145494) e instagram @nodalntt (17841476274179708), con credencial activa.
- Actividad desde 2026-10-19 04:50 (owner 8396006670…); config.json (telemetry/anonymousId) modificado 2026-10-31 18:50; tokens.json se refresca solo al postear.
- Al rotar el api_token en el panel: actualizar /home/ubuntu/.sfeed/tokens.json (clave .api_token) — fichero 600.
## 4. Voz v3
- PR #23 sigue open → NO VERIFICADO. Despliegue sigue en ff2cd822 (v2). Al mergear, el autodeploy actualiza ~/cayce-ops y los ciclos publican con v3.
## 5. posts_log
- Completado a mano el post_url del FB (id 20). Los siguientes ya lo guardan solos: instagram|seed-strategy|ok|https://www.instagram.com/p/DfOtHrGER3P/ (spawnSync stderr fix verificado en produccion).
## 6. Primer post IG
- PUBLICADO: d1-ig-seed → https://www.instagram.com/p/DfOtHrGER3P/ (voz v3, sin hashtags).
## Extras
- Merge del operador (#34) detectado; mi doc r18 estaba perdido en el main local (push no-op de r18) → recuperado como PR #38 y auto-mergeado. Regen: nunca commitear en el main local de cayce-ops (es checkout de deploy).
- Recheck kind5 06:44→07:13 ejecutado: target 99cc75f4 visible en 0/5 relays (borrado consolidado), kind5 1/5.
@@ -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.
+1
View File
@@ -0,0 +1 @@
demo trivial r19 — 2026-11-02T06:42:28Z