Files
feadulta/docs/handoff-carta-46956-2026-06-17.md

87 lines
7.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 'C6c2A!mAl3Wj.BQF' ssh feadulta@134.0.10.170`** (la pass que dio Rafa `6Rm2qOF@eundwpda` es de cPanel/FTP, NO sirve para SSH). 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.