|
|
|
|
@ -11,33 +11,29 @@
|
|
|
|
|
|
|
|
|
|
## ▶️ CONTINUAR MAÑANA (2026-07-22) — arranque rápido
|
|
|
|
|
|
|
|
|
|
**Dónde estamos.** Rama `alpha-0.1-sec-dom` → `gita`.
|
|
|
|
|
- **F-A multilenguaje — SHIPEADA como modelo-MAPA** (chunks 1-3: `value:
|
|
|
|
|
Record<lang,doc>`, switcher menubar/migas, historia por idioma; funciona, verificado
|
|
|
|
|
Playwright, 58/58 provider). ⚠️ **PERO ese modelo permite estructuras DIVERGENTES entre
|
|
|
|
|
idiomas** (borrar en `es` no borra en `en`) — el usuario lo RECHAZÓ.
|
|
|
|
|
- **REWORK a Camino A FIRMADO y EN CURSO** (⬅️ TAREA PRINCIPAL DE MAÑANA): **UN solo
|
|
|
|
|
documento, estructura COMPARTIDA por construcción, texto por idioma en `block.i18n`**.
|
|
|
|
|
HECHO hasta ahora = **esquema del motor** (commiteado): `block.i18n` (contenido de
|
|
|
|
|
idiomas inactivos por bloque) + **`doc.languages`** (LISTA de idiomas = FUENTE DE VERDAD
|
|
|
|
|
de si es multilenguaje; la prop `languages` pasa a override opcional) + `doc.activeLang`
|
|
|
|
|
(idioma en `children`); `normalize` los preserva junto a `scheme`; `validate` no rechaza
|
|
|
|
|
props extra; `block.i18n` sobrevive las ops vía spread. **PENDIENTE (el grueso)**: rehacer
|
|
|
|
|
el PROVIDER — quitar map/langHistories; al cambiar idioma **swap `children↔i18n`** en cada
|
|
|
|
|
hoja de texto; helpers `foldPalabrasLanguages(values, primary)` (construir el doc único
|
|
|
|
|
desde docs por idioma) y `projectPalabrasLanguage(doc, lang)` (extraer un idioma para
|
|
|
|
|
render/export); `langFilled` por proyección; `multilingual`/`resolvedLanguages` desde
|
|
|
|
|
`doc.languages` (prop = override); **revertir `value` a `PalabrasDocument`**; reescribir
|
|
|
|
|
los 5 tests multilenguaje + el demo (`foldPalabrasLanguages({es,en},'es')`). Árbol: hojas
|
|
|
|
|
de texto = párrafo/encabezado/cita/código/list-item (llevan `i18n`); contenedores =
|
|
|
|
|
list/table/columns/callout (recursan). Partir=bloque nuevo sin i18n=vacío-a-traducir;
|
|
|
|
|
fusionar=concatenar (o limitación declarada). Diseño completo en «ESTADO 2026-07-21».
|
|
|
|
|
**Dónde estamos.** Rama `alpha-0.1-sec-dom` → `gita`. HEAD `7760a9ce8`.
|
|
|
|
|
- **F-A multilenguaje ✅ COMPLETA al modelo Camino A** (estructura COMPARTIDA). ⚠️ OJO
|
|
|
|
|
DE COORDINACIÓN: hubo DOS sesiones de palabras en paralelo. El modelo-mapa inicial
|
|
|
|
|
(`value: Record<lang,doc>`, permitía estructuras divergentes → rechazado por el usuario)
|
|
|
|
|
fue **REHECHO por la OTRA sesión** (`461be12d9`) a **UN solo documento**: `block.i18n`
|
|
|
|
|
guarda el texto de los idiomas inactivos por bloque, `block.children` el activo; hay UN
|
|
|
|
|
árbol → borrar/insertar/mover aplica a TODOS los idiomas por construcción; undo automático
|
|
|
|
|
(el i18n vive en el doc); `switchDocumentLanguage` intercambia `children↔i18n`; helpers
|
|
|
|
|
`foldPalabrasLanguages`/`projectPalabrasLanguage`; **la historia se RESETEA al cambiar de
|
|
|
|
|
idioma** (no cruza pilas). Switcher menubar/migas conservado.
|
|
|
|
|
- **`doc.languages` = FUENTE DE VERDAD, cableado** (`7760a9ce8`, esta sesión): el DOCUMENTO
|
|
|
|
|
se auto-describe (presente → multilenguaje); la prop `languages` = seed/override. El
|
|
|
|
|
constructor SELLA `doc.languages` al sembrar desde la prop; `foldPalabrasLanguages` lo
|
|
|
|
|
sella; `doc.activeLang` registra el idioma en `children`; `normalize` preserva
|
|
|
|
|
`languages`+`activeLang` como `scheme`. **62/62 provider · 502/502 motor · 0 errores.
|
|
|
|
|
Verificado Playwright**: misma estructura `[h1,p,h2,p]` en es/en (compartida), contenido
|
|
|
|
|
por idioma cambia y se preserva.
|
|
|
|
|
- Warnings `state_proxy_equality_mismatch` (`81dca0f14`) y ruido de langs (`45543ab95`)
|
|
|
|
|
resueltos. FD.1 (`DESIGN.md`) + FD.3 (mood **sobrio-documental**) firmados. **FD.4**
|
|
|
|
|
(firma perceptual sema+motion) POSPUESTA por el usuario («complicado para un editor»).
|
|
|
|
|
|
|
|
|
|
**LO SIGUIENTE**: (1) **terminar el rework de F-A** (el provider Camino A, arriba); (2)
|
|
|
|
|
**F-B · soporte agentivo** («que un agente pueda rellenar el contenido»). La FORMA de F-B
|
|
|
|
|
**LO SIGUIENTE = F-B · soporte agentivo** («que un agente pueda rellenar el contenido»).
|
|
|
|
|
La FORMA de F-B
|
|
|
|
|
está SIN firmar — decidir con el usuario ANTES de construir (4 ejes):
|
|
|
|
|
1. **¿Qué emite el agente?** JSON `PalabrasDocument` nativo · Markdown · un schema
|
|
|
|
|
intermedio agent-friendly.
|
|
|
|
|
|