Files
feadulta/docs/handoff-carta-46956-2026-06-17.md
T
rafa 5055e92143 Rescatar 10 docs/ del main local que nunca llegaron a Gitea (issue #194)
main local y origin/main son dos historias sin ancestro comun (ver #194).
Analisis del agente: de las 46 commits solo-en-local, el unico contenido que
no esta ya reflejado en origin/main via el snapshot de julio (PR #179) son
estos 10 ficheros de docs/ (guias, handoffs, planes, benchmark, revisiones de
issues). Copiados tal cual desde main con "git show main:docs/X > docs/X".

Redactada una password SSH y una password cPanel/FTP en texto plano que
tenia handoff-carta-46956-2026-06-17.md (servidor CDMON antiguo) antes de
subirlo -- ver .env, nunca en docs versionados.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-05 08:39:06 -04:00

7.4 KiB
Raw Blame History

Handoff — Carta 46956 «Entre todos» (sesión 2026-06-17)

Estado para que Codex continúe. Se hizo TODO en local (Docker wordpress-web/wordpress-mysql). Nada está en prod todavía. El despliegue a prod quedó pendiente y SIN hacer (Rafa quiere ir por partes).

Repo: /home/rafa/joomla-migration (= remoto Gitea rafa/feadulta). Ver también wiki «Ciclo carta nueva» y memoria del ciclo.


1. Qué se hizo en LOCAL (todo verificado)

Carta y artículos

  • Carta 46956 «Entre todos» (ES). Estaba en estado future por desfase de zona horaria (server US detrás de Madrid) → publicada (post_status=publish, fecha 2026-06-18). Issue #87 (cerrado).
  • 19 artículos con _carta_id=46956 (IDs 4693746955). De ellos 15 son ES (4693746951) y 4 ya venían en otros idiomas desde Joomla.
  • Cluster multiidioma 4695146955 = el MISMO artículo en 5 idiomas; enlazado en Polylang: {es:46951, fr:46952, en:46953, it:46954, pt:46955} (no se tradujo, ya estaba).

Traducciones (motor Haiku)

  • Carta + 14 artículos ES → EN/FR/IT/PT = 60 posts (IDs 4695947018), publish.
  • Motor: FEA_ENGINE=haiku (nuevo flag en scripts/translate_post.py) → usa Claude Haiku 4.5 vía translate_haiku.py. API key en /home/rafa/portfolio-tracker/.env. Coste ~0.60.8 €/carta.
    • Comando: FEA_ENGINE=haiku python3 scripts/translate_post.py --carta 46956 --langs en,fr,it,pt --status draft (luego publicado).

Evangelio / lecturas bíblicas (issue #88)

  • El pasaje ES MATEO 10, 26-33 (post 2682) solo existía en ES. Política: DESCARGAR la Biblia oficial, NO traducir con LLM.
  • Descargado de bolls.life y creados 4 posts (IDs 4707947082), enlazados Polylang a 2682, cat "Lecturas bíblicas" mapeada, publish:
    • EN=Douay-Rheims (católica), PT=CNBB (católica), IT=Nuova Riveduta 2006 (única moderna IT), FR=Bible du Semeur (no hay católica libre en bolls).
  • Scripts: scripts/fetch_lectura_bolls.py (descarga) + scripts/create_lecturas.php (crea posts).

Enlaces internos de las cartas

Las cartas traían enlaces Joomla legacy es/buscadoravanzado/item/<k2_id>-<slug>.html (rotos) y luego enlaces al pasaje ES. Arreglado en 2 pasos:

  1. scripts/fix_carta_joomla_links.php — mapea item/<id> por meta _fgj2wp_old_k2_id → permalink WP del artículo en el idioma de cada carta.
  2. scripts/repoint_carta_links.php — repunta enlaces ya-permalink que apuntaban al ES → a la traducción del idioma de la carta (p.ej. el evangelio).
    • APPLY=1 CARTA=46956 docker exec ... php /tmp/<script>.php. Sin mapear (se dejan): tablon-de-anuncios, noticias-de-alcance, ítem 18151 el-buen-humor (fuera del delta), multimedia 9155.

Categorías "carta de la semana"

  • scripts/demote_old_cartasemana.php — deja en cartasemana (term 6) solo la carta nueva en CADA idioma (count=1 → el menú redirige directo al single). Movía las cartas anteriores a "cartas de otras semanas". Aplicado: count=1 en es/en/fr/it/pt.

Verificación local (vía Caddy, NO localhost:8081)

  • Cartas: /fea/entre-todos/, /fea/en/among-all/, /fea/fr/entre-tous/, /fea/it/tra-tutti/, /fea/pt/entre-todos-2/ — todas publish.
  • Menú "carta de la semana" por idioma → 302 al single de cada idioma.
  • Evangelio enlaza al pasaje en su idioma (4707947082), todos HTTP 200.

2. Estado de PROD (verificado read-only 2026-06-17)

SSH correcto: sshpass -p "$FEA_PROD_SSH_PASS" ssh feadulta@134.0.10.170 (la pass de cPanel/FTP que dio Rafa NO sirve para SSH — son credenciales distintas; ambas en .env, no aquí). wp-cli en /web/wp-nuevo. NO scp (usar ssh 'cat > ruta').

  • MAX post ID en prod = 46809. Los IDs locales nuevos (4693747082) están LIBRES en prod.
  • La carta de esta semana NO está en prod. La "carta de la semana" actual en prod es la anterior: 45018 «La puerta pequeña» (2026-06-13).
  • El pasaje ES 2682 MATEO 10,26-33 SÍ está en prod (post viejo). Faltan sus 4 traducciones.

3. PENDIENTE: desplegar la carta 46956 a prod (lo que paró Rafa)

Objetivo: que la carta de esta semana se vea bien en prod en los 5 idiomas. Implica el delta ES + traducciones + evangelios + estructura. Rafa quiere ir por partes (NO hacer todo de golpe sin su OK).

⚠️ Problema de coincidencia de IDs (clave)

La regla "IDs ES coinciden local↔prod" se ha ROTO: prod va por detrás (max 46809) mientras local hizo el delta cuando su max era 46936. Una reimportación fresca desde Joomla en prod asignaría IDs ~46810, distintos de los locales, y rompería el casado de traducciones/enlaces.

  • Enfoque recomendado: replicar los posts locales a prod preservando los IDs (4693747082 + nada de 2682 que ya está), ya que están libres en prod. Es decir, NO reimportar desde Joomla: volcar el contenido local (ES + traducciones + evangelios) a prod con wp_insert_post/inserción con ID explícito, reconstruir Polylang + categorías + metas (_carta_id, _fgj2wp_old_k2_id), y aplicar los mismos arreglos de enlaces y degradado de categoría.
  • Revisar scripts/sync_translations_to_prod.py (opción A, ya validada para traducciones reusando texto local) y adaptarlo/extenderlo para incluir el delta ES y los pasajes del evangelio con ID preservado.

Checklist prod (por partes, con OK de Rafa en cada salto)

  1. Delta ES a prod: carta 46956 + artículos 4693746955 con IDs preservados, metas (_carta_id, _fgj2wp_old_k2_id), categorías, idioma ES. Revisar.
  2. Cluster multiidioma 4695146955: enlazar Polylang en prod (los 5 ya existirían tras paso 1).
  3. Traducciones EN/FR/IT/PT (carta + artículos): 4695947018 con IDs preservados, Polylang, categorías.
  4. Evangelio: crear en prod las 4 traducciones del 2682 (4707947082) enlazadas a 2682 (que ya está en prod). Reusar fetch_lectura_bolls.py + create_lecturas.php adaptado a FEA_WP_LOAD=/web/wp-nuevo/wp-load.php.
  5. Enlaces internos en prod: fix_carta_joomla_links.php + repoint_carta_links.php (con FEA_WP_LOAD de prod).
  6. Degradar carta anterior en prod: demote_old_cartasemana.php CARTA=46956 (mueve 45018 y traducciones a "otras semanas", deja count=1 por idioma).
  7. Verificar vía Cloudflare/web: cartas y evangelio en los 5 idiomas (NB: en prod Cloudflare bloquea curl; verificar con wp eval o navegador).
  8. (Después) TTS de la carta nueva — paso 5 del ciclo, prioritario sobre el gap.

4. Scripts nuevos de esta sesión (en scripts/)

  • fix_carta_joomla_links.php — enlaces Joomla .html → permalink WP por idioma.
  • repoint_carta_links.php — repunta enlaces ya-permalink al idioma de la carta.
  • publish_carta.php — draft→publish de carta+artículos+traducciones, corrige fechas futuras (timezone).
  • demote_old_cartasemana.php — deja count=1 en cartasemana por idioma.
  • fetch_lectura_bolls.py + create_lecturas.php — descarga e inserta pasajes bíblicos (issue #88).
  • translate_post.py — añadido flag FEA_ENGINE=haiku.

5. Issues Gitea relacionados

  • #84 — Migrar delta carta nueva (prerequisito scripts; ya corregidos).
  • #87 — Carta no aparecía (estado future por timezone). CERRADO.
  • #88 — Lecturas bíblicas solo en ES → descargar EN/FR/IT/PT. ABIERTO (esta semana hecha en local; backfill histórico pendiente).
  • Crear/usar el issue de despliegue a prod (este handoff) para el seguimiento.