Compare commits
15
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3b8e1296e2 | ||
|
|
8c5f085e3f | ||
|
|
cc22feea23 | ||
|
|
fa312c2fbd | ||
|
|
c027317f46 | ||
|
|
21a6aa41ca | ||
|
|
41e14174b6 | ||
|
|
de73dd2af9 | ||
|
|
2405070a0c | ||
|
|
ef733e9ecc | ||
|
|
a7782df111 | ||
|
|
73b93c8cfa | ||
|
|
179ecf47ab | ||
|
|
a0ee8fbf1d | ||
|
|
6dec3192bd |
@@ -9,6 +9,7 @@ jobs:
|
|||||||
lint-test:
|
lint-test:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
- run: set -o pipefail # r19: sin esto, | tail se come los exit codes y un test roto da verde
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
fetch-depth: 1
|
fetch-depth: 1
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
def test_rojo_demo():
|
||||||
|
assert False, "rompe a proposito — verifica pipefail del CI (r20)"
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
# Ronda 18 — Autodeploy, promo v3, bitcoinhotels (OpenCode/GLM, operador patternn)
|
||||||
|
|
||||||
|
## 1. Autodeploy (nuevo)
|
||||||
|
- /usr/local/bin/cayce-autodeploy + timer cada 3 min (User=ubuntu).
|
||||||
|
- cayce-ops: pull ff-only de main cuando main adelanta al tree (working tree en main @ 6dec319).
|
||||||
|
- entity → /srv/cayce-core: PUBLISH_OFF durante el swap; solo se retira tras tests >=27/27 y watcher sin VIOLACION; rollback automatico (en fallo de watcher PUBLISH_OFF queda ACTIVO). Restart de cayce-nostr; los ciclos timer levantan codigo nuevo solos.
|
||||||
|
- PROBADO end-to-end con remote local falso (bare con main adelantado): "[autodeploy] main nuevo detectado … PUBLISH_OFF activo" → "entity → 706bb49 (tests 27/27, watcher OK, live)".
|
||||||
|
|
||||||
|
## 3. PRs
|
||||||
|
- cayce-ops PR #34 (r16-r9-gemini → main): elimina runtime/ + docs r16/r17.
|
||||||
|
- bitcoinhotels PR #3 (guides-sin-bitbox): ultima marca fuera (BitBox02 la dejo el PR #1).
|
||||||
|
|
||||||
|
## 4. Promo (voz v3, sin hashtags)
|
||||||
|
- 12 captions reescritos en voz v3 (hardcap=señal con fuente+fecha; bitcoinhotels=guía numerada verificable). Guard: 12/12 APROBADOS.
|
||||||
|
- Bugs: unit sin EnvironmentFile (corria en draft y sin IG_USER_ID) — añadido; sfeed escribe el URL en stderr (spawnSync combinando salidas) — fix.
|
||||||
|
- PUBLICADO REAL: d1-fb-lightning → facebook.com/1013900045145494_122134510088947378 (sfeed operativo). Cadencia 1/ciclo según horas 13/19 UTC. IG activo (IG_USER_ID set).
|
||||||
|
- Estado de campaña reseteado; backups en forensics/promo-pre-r18.
|
||||||
|
|
||||||
|
## 5. Scout
|
||||||
|
- Unit archivada en forensics/scout-20261102 y eliminada (daemon-reload). Sigue deshabilitado.
|
||||||
|
|
||||||
|
## 6. Token id 10
|
||||||
|
- ES de ci-bot (uid 3): lo genera el propio /usr/local/bin/cayce-auto-merge por CLI en cada run (sin token embebido). Per operator: no requiere reemplazo. Scopes write:repository,write:issue (los minimos para mergear+comentar).
|
||||||
|
|
||||||
|
## 7. kind 5 (99cc75f4)
|
||||||
|
- Recheck agendado 06:44 UTC → /var/log/r17-recheck-99cc.log. Resultado: (ver abajo).
|
||||||
|
|
||||||
|
## 8. bitcoinhotels
|
||||||
|
- PR #1 MERGED. El deploy (/srv/bitcoinhotels, sirvió via tunnel CF → localhost:3002) NO estaba actualizado: sin umami, con marcas, sin flag. Bloqueo: deploy no es checkout git y el repo no trackea ficheros raiz.
|
||||||
|
- Actualizado a mano: layout (umami+Organization JSON-LD), guides page (flag affiliates), guides.json (sin marcas) + rebuild + restart. Live: umami ✓, 0 marcas, box afiliados oculto (flag off), 200.
|
||||||
|
- PR #3 queda para el ultimo resto (BitBox02).
|
||||||
|
|
||||||
|
## 2. Voz v3
|
||||||
|
- PR #23 sigue open — NO VERIFICADO. Al mergear, el autodeploy actualiza ~/cayce-ops (identity ff2cd822 → v3 c0f0ec05) y los ciclos publican con v3.
|
||||||
@@ -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.
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
demo trivial r19 — 2026-11-02T06:42:28Z
|
||||||
Reference in New Issue
Block a user