df7bf98ef1
- sync_translations_to_prod.py / sync_audio_to_prod.py / sync_carta_from_prod.py: migran de FEA_PROD_HOST/PASS (CDMON, password) a FEA_PROD_SSH_HOST/PASS + FEA_PROD_DOCKER_CONTAINER (Hetzner/Coolify, auth por clave), con wrapping docker exec y el fix del bug de redirecciones (wc -c/cat) resuelto en el host en vez de dentro del contenedor. - fea_translate_helper.php: subcomando clone_new para clonar en ID local nuevo cuando el ID de prod ya está ocupado localmente. - translate_post.py: --dry-run. - tts_produce.py: --allow-default-voice (voz Nico solo si se permite explícitamente para autores sin voz clonada) + fix voice_for_author. - minimax_tts.py: parámetro speed en t2a/_synth_chunk. - mirror-antiguo/deploy/nginx-mirror.conf: redirects de URLs históricas de catálogo y vista imprimible EFFA. - Importaciones humanas de Pagola (carta 738) + scripts/manifest de la fase A Enrique, y release_issue181_prod.sh / cdmon-retire-fewp1.sh. - .gitignore: excluye docs/backups/ (dumps SQL, mismo motivo que backups/*). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
72 lines
3.5 KiB
Markdown
72 lines
3.5 KiB
Markdown
# Release dry-run — Enrique Martínez Lozano / carta «Hacia el corazón»
|
|
|
|
**Estado:** preparado localmente; **no ejecutado en producción**.
|
|
|
|
## Validación local completada
|
|
|
|
- Comentario ES: `#55041` — `El tesoro está ya en nosotros`
|
|
- Categorías: `Comentarios al evangelio` + `Feadulta`.
|
|
- Audio: `tts/55041.mp3`, 2,221,101 bytes, voz `NicoFeadulta2026`.
|
|
- QA Haiku: aprobado tras correcciones objetivas EN/FR/IT.
|
|
- Traducciones del comentario: EN `#55047`, FR `#55048`, IT `#55049`, PT `#55050`.
|
|
- Carta local ES: `#55042` — `Hacia el corazón` (slug técnico de preview conservado).
|
|
- Traducciones: EN `#55051`, FR `#55052`, IT `#55053`, PT `#55054`.
|
|
- QA Haiku: contenido aprobado tras correcciones; 24 enlaces con destino traducido se repuntaron. Los 12 enlaces externos que quedan son fallback ES: no existe post destino traducido en local (verificado por `post_title` exacto y Polylang).
|
|
- Render comprobado en Tailscale:
|
|
- Comentario ES: título correcto, categorías correctas y reproductor HTML5 visible.
|
|
- Carta FR: título correcto; Enrique aparece tras Fray Marcos y antes de Pagola.
|
|
|
|
## Evidencia de producción (sólo lectura server-side)
|
|
|
|
- Carta real: `#54914`, título `Hacia el corazón`, estado `publish`.
|
|
- Hash actual de contenido prod: `5e7eb1b880bfc6311edb78ac8b6e81639f5b4502282a1b182c610b1d01308b69`.
|
|
- Hash candidato local: `6fdb4929fcb5b49b7f2dc1deb7c6f5be70983af866d44c5d5c27d2866c09418c`.
|
|
- La carta candidata lleva `fea_phase_a_source_prod_id=54914`; por tanto debe **actualizar #54914**, no crearse una carta nueva.
|
|
|
|
## Dry-runs que pasaron
|
|
|
|
```bash
|
|
# Crea solamente el grupo nuevo del comentario (ES + EN/FR/IT/PT): 5 posts draft
|
|
python3 scripts/sync_translations_to_prod.py --ids 55041 --dry-run
|
|
|
|
# Sube y asocia solamente el MP3 de Enrique
|
|
python3 scripts/sync_audio_to_prod.py --ids 55041 --dry-run
|
|
```
|
|
|
|
Ambos devolvieron `ok/error=1/0` (audio) y un grupo Polylang de cinco posts (comentario).
|
|
|
|
## Guardarraíl crítico
|
|
|
|
**NO ejecutar:**
|
|
|
|
```bash
|
|
python3 scripts/sync_translations_to_prod.py --ids 55041,55042
|
|
```
|
|
|
|
El dry-run demostró que clonaría `#55042` como una segunda carta ES. No actualiza la carta real `#54914`.
|
|
|
|
## Release que debe ejecutar Rafa (producción)
|
|
|
|
1. Backup de producción y snapshot server-side de `#54914`.
|
|
2. Crear el grupo nuevo del comentario desde `#55041` (ES + EN/FR/IT/PT), inicialmente en `draft`; anotar los IDs reales de producción.
|
|
3. Subir `tts/55041.mp3` y asociarlo al ID ES real creado en producción.
|
|
4. Actualizar **solamente** título/contenido de la carta real `#54914` con el candidato local `#55042`; mantener título `Hacia el corazón`, autor, fecha y estado existentes.
|
|
5. Crear EN/FR/IT/PT de la carta contra el origen real `#54914` y enlazarlas en Polylang. No clonar otra ES.
|
|
6. Releer por servidor los IDs creados y `#54914`; comprobar:
|
|
- Enrique sólo está en `Evangelio y comentarios al Evangelio`, tras Fray Marcos y antes de Pagola.
|
|
- No aparece en `Artículos seleccionados`.
|
|
- Cada carta enlaza a Enrique en su mismo idioma.
|
|
- El reproductor del ES carga `tts/55041.mp3`.
|
|
7. Sólo tras esas lecturas, promover los drafts de producción a `publish`.
|
|
|
|
## Rollback
|
|
|
|
- Restaurar el backup de producción previo.
|
|
- Alternativamente, restaurar el contenido/hash previo de `#54914` y despublicar el nuevo grupo + audio de Enrique.
|
|
|
|
## Backups locales relacionados
|
|
|
|
- `docs/backups/enrique-translations-20260725T004921Z/`
|
|
- `docs/backups/enrique-carta-fr-final-20260725T012649Z/`
|
|
- `docs/backups/enrique-pre-tts-20260725T013021Z/`
|