|
|
|
|
@@ -1,159 +1,127 @@
|
|
|
|
|
# Versionado IA - UB24/Elementor
|
|
|
|
|
# Versionado IA - UB24 / Elementor
|
|
|
|
|
|
|
|
|
|
## Rama de trabajo
|
|
|
|
|
- `ai/ub24-builder-v1`
|
|
|
|
|
## 0) Protocolo Bloqueante (siempre)
|
|
|
|
|
1. Definir objetivo del lote en 1 linea.
|
|
|
|
|
2. Tocar un solo archivo por fix (salvo excepcion aprobada).
|
|
|
|
|
3. Hacer un solo cambio por intento.
|
|
|
|
|
4. Probar inmediatamente con flujo fijo acordado.
|
|
|
|
|
5. Si falla, revert inmediato por hash/commit (sin encadenar parches).
|
|
|
|
|
6. Si pasa, commit atomico con mensaje semantico.
|
|
|
|
|
7. Push solo con orden explicita del usuario.
|
|
|
|
|
8. Antes de declarar estado, verificar sync real (`fetch` + `rev-list`).
|
|
|
|
|
|
|
|
|
|
## Estado de sincronizacion (14 Febrero 2026)
|
|
|
|
|
- Local: `ai/ub24-builder-v1`
|
|
|
|
|
- Remoto: `origin/ai/ub24-builder-v1`
|
|
|
|
|
- Divergencia verificada: `0/0` (sin commits pendientes entre local y remoto)
|
|
|
|
|
## 1) Objetivo
|
|
|
|
|
Definir un proceso de versionado auditable, reproducible y estable para el desarrollo del builder UB24.
|
|
|
|
|
|
|
|
|
|
## Regla de trabajo
|
|
|
|
|
1. Cada cambio funcional se guarda en un commit separado.
|
|
|
|
|
2. Cada commit se registra con su hash.
|
|
|
|
|
3. Cada commit debe incluir comando de reversion rapida.
|
|
|
|
|
4. La rama debe quedar sincronizada con remoto al cerrar bloque de trabajo.
|
|
|
|
|
## 2) Estado actual verificado
|
|
|
|
|
- Fecha de verificacion: `2026-02-22`
|
|
|
|
|
- Rama activa: `ai/ub24-builder-v1`
|
|
|
|
|
- Upstream: `origin/ai/ub24-builder-v1`
|
|
|
|
|
- Divergencia local/remoto: `3 0`
|
|
|
|
|
- Comando usado:
|
|
|
|
|
- `git rev-list --left-right --count ai/ub24-builder-v1...origin/ai/ub24-builder-v1`
|
|
|
|
|
|
|
|
|
|
## Convencion de mensaje
|
|
|
|
|
## 3) Politica de versionado
|
|
|
|
|
1. Commits atomicos por cambio funcional.
|
|
|
|
|
2. Mensajes bajo convencion semantica.
|
|
|
|
|
3. Reversion siempre definida por commit.
|
|
|
|
|
4. Cada bloque validado se empuja a remoto.
|
|
|
|
|
5. No mezclar cambios de infraestructura con cambios de UX en el mismo commit.
|
|
|
|
|
|
|
|
|
|
## 4) Convencion de commits
|
|
|
|
|
- `feat(builder): ...`
|
|
|
|
|
- `fix(builder): ...`
|
|
|
|
|
- `refactor(builder): ...`
|
|
|
|
|
- `chore(versioning): ...`
|
|
|
|
|
- `docs(builder): ...`
|
|
|
|
|
|
|
|
|
|
## Flujo con Gitea
|
|
|
|
|
1. Trabajo local en `ai/ub24-builder-v1`.
|
|
|
|
|
2. Push continuo a `origin/ai/ub24-builder-v1`.
|
|
|
|
|
3. Merge cuando validemos en local y Raspberry.
|
|
|
|
|
|
|
|
|
|
## Protocolo fijo de sincronizacion (siempre)
|
|
|
|
|
1. Verificar rama activa: `git branch --show-current`
|
|
|
|
|
2. Actualizar referencias remotas: `git fetch origin --prune`
|
|
|
|
|
3. Medir divergencia: `git rev-list --left-right --count ai/ub24-builder-v1...origin/ai/ub24-builder-v1`
|
|
|
|
|
4. Si el resultado no es `0 0`, sincronizar antes de continuar.
|
|
|
|
|
5. Despues de cada lote validado:
|
|
|
|
|
## 5) Flujo obligatorio por sesion
|
|
|
|
|
1. Verificar rama activa:
|
|
|
|
|
- `git branch --show-current`
|
|
|
|
|
2. Actualizar referencias remotas:
|
|
|
|
|
- `git fetch origin --prune`
|
|
|
|
|
3. Verificar divergencia:
|
|
|
|
|
- `git rev-list --left-right --count ai/ub24-builder-v1...origin/ai/ub24-builder-v1`
|
|
|
|
|
4. Si no es `0 0`, sincronizar antes de editar.
|
|
|
|
|
5. Al cerrar lote validado:
|
|
|
|
|
- `git add <archivos>`
|
|
|
|
|
- `git commit -m "tipo(scope): mensaje"`
|
|
|
|
|
- `git push origin ai/ub24-builder-v1`
|
|
|
|
|
6. Registrar hash y objetivo en este archivo y en `codex/HISTORIAL_CAMBIOS.md`.
|
|
|
|
|
|
|
|
|
|
## Registro de hashes
|
|
|
|
|
### Baseline
|
|
|
|
|
- Commit: `cb99f26`
|
|
|
|
|
- Objetivo: crear rama y politica de versionado para trabajo IA.
|
|
|
|
|
- Revert:
|
|
|
|
|
- `git revert <hash>`
|
|
|
|
|
- `git reset --hard <hash_anterior>` (solo con aprobacion explicita)
|
|
|
|
|
## 5.1) Metodo de ejecucion memorizado (obligatorio)
|
|
|
|
|
1. Misma rama activa (`ai/ub24-builder-v1`), sin ramas paralelas para fixes rapidos.
|
|
|
|
|
2. Control por hash/revert: si un intento falla, revert inmediato por commit.
|
|
|
|
|
3. Un archivo por fix cuando sea posible (evitar mezclar cambios laterales).
|
|
|
|
|
4. Validacion funcional inmediata despues de cada microcambio.
|
|
|
|
|
5. No commit/push sin orden explicita del usuario.
|
|
|
|
|
|
|
|
|
|
### Correccion historial
|
|
|
|
|
- Commit: `fe8657e`
|
|
|
|
|
- Objetivo: revertir commit no deseado y mantener separacion de cambios.
|
|
|
|
|
- Revert:
|
|
|
|
|
- `git revert fe8657e`
|
|
|
|
|
## 6) Protocolo de arranque local
|
|
|
|
|
- Comando canonico:
|
|
|
|
|
- `python -m demo.app`
|
|
|
|
|
- URL canonica:
|
|
|
|
|
- `http://127.0.0.1:5001`
|
|
|
|
|
- Builder:
|
|
|
|
|
- `http://127.0.0.1:5001/elementor/1`
|
|
|
|
|
- Verificacion rapida:
|
|
|
|
|
- `Invoke-WebRequest http://127.0.0.1:5001/elementor/1 -UseBasicParsing`
|
|
|
|
|
|
|
|
|
|
### Fix local Elementor
|
|
|
|
|
- Commit: `22e564e`
|
|
|
|
|
- Objetivo: robustecer arranque local y carga de themes en Windows (BOM + logs seguros).
|
|
|
|
|
- Revert:
|
|
|
|
|
- `git revert 22e564e`
|
|
|
|
|
## 7) Criterios de estabilidad (no negociables)
|
|
|
|
|
1. No tocar funcionalidades estables sin requerimiento explicito.
|
|
|
|
|
2. Mantener una sola estrategia de layout y DnD por flujo.
|
|
|
|
|
3. Mantener una sola ruta de guardado activa:
|
|
|
|
|
- `/api/elementor/save`
|
|
|
|
|
4. Validar guardado/publicacion antes de cerrar lote.
|
|
|
|
|
5. Evitar cambios amplios si un fix local resuelve el problema.
|
|
|
|
|
|
|
|
|
|
### Fase 1 Builder (visual pro)
|
|
|
|
|
- Commit: `1c04f04`
|
|
|
|
|
- Objetivo: consolidar estilos reutilizables y subir calidad visual en hero, features, cards y contact del preview.
|
|
|
|
|
- Revert:
|
|
|
|
|
- `git revert 1c04f04`
|
|
|
|
|
## 8) Registro de commits relevantes
|
|
|
|
|
| Fecha | Commit | Tipo | Objetivo | Revert recomendado |
|
|
|
|
|
|---|---|---|---|---|
|
|
|
|
|
| 2026-02-21 | `e83e915` | fix | Estabilizar Drawer Pro, reset real de builder y restaurar tema restaurante editable + ancho | `git revert e83e915` |
|
|
|
|
|
| 2026-02-14 | `cb99f26` | chore | Crear rama y politica inicial de versionado IA | `git revert cb99f26` |
|
|
|
|
|
| 2026-02-14 | `fe8657e` | fix | Revertir commit no deseado y limpiar historial | `git revert fe8657e` |
|
|
|
|
|
| 2026-02-14 | `22e564e` | fix | Robustecer arranque local/theme load en Windows | `git revert 22e564e` |
|
|
|
|
|
| 2026-02-14 | `1c04f04` | feat | Mejora visual base (hero/features/cards/contact) | `git revert 1c04f04` |
|
|
|
|
|
| 2026-02-14 | `7c5f671` | fix | Limpieza preview/menu y ajustes de ancho | `git revert 7c5f671` |
|
|
|
|
|
| 2026-02-14 | `dd98e9d` | fix | Preview limpio y menu por modos | `git revert dd98e9d` |
|
|
|
|
|
| 2026-02-15 | `1a5778b` | refactor | Runtime unificado `python -m demo.app` + blueprint Elementor | `git revert 1a5778b` |
|
|
|
|
|
| 2026-02-15 | `8ac360b` | feat | Educacion V2 + correccion de anclas | `git revert 8ac360b` |
|
|
|
|
|
| 2026-02-15 | `f6d8ab1` | fix | Corregir wrapper SQLite para evitar fallo de arranque | `git revert f6d8ab1` |
|
|
|
|
|
| 2026-02-15 | `b6fb4da` | feat | API dedicada `/api/elementor/save` con opcion publicar | `git revert b6fb4da` |
|
|
|
|
|
| 2026-02-15 | `c2ee81d` | fix | Persistencia de bloques + feedback de publish | `git revert c2ee81d` |
|
|
|
|
|
| 2026-02-15 | `e20f086` | fix | Preview full-page y layout estable por secciones | `git revert e20f086` |
|
|
|
|
|
| 2026-02-15 | `e5df6de` | feat | Full width + soporte real de 2 columnas | `git revert e5df6de` |
|
|
|
|
|
| 2026-02-15 | `a6089ee` | feat | Drag inteligente por drop + preview en nueva pestana | `git revert a6089ee` |
|
|
|
|
|
| 2026-02-15 | `f9f7d23` | fix | Quitar layout global y forzar preview completo | `git revert f9f7d23` |
|
|
|
|
|
| 2026-02-15 | `f363eef` | fix | Correccion de texto/UI + modo libre + `?full=1` | `git revert f363eef` |
|
|
|
|
|
| 2026-02-16 | `6f14308` | fix | Unificar layout y estabilizar redimension en canvas | `git revert 6f14308` |
|
|
|
|
|
|
|
|
|
|
### Ajustes Builder (limpieza + preview + ancho)
|
|
|
|
|
- Commit: `7c5f671`
|
|
|
|
|
- Objetivo: quitar texto en barra Apple, limpiar menu vacio, preview local funcional sin salir de builder, ancho desktop al 100%, control de ancho por bloque y descripcion en bloque video.
|
|
|
|
|
- Revert:
|
|
|
|
|
- `git revert 7c5f671`
|
|
|
|
|
## 9) Decisiones funcionales vigentes
|
|
|
|
|
- Rubros oficiales permitidos:
|
|
|
|
|
- `restaurante`
|
|
|
|
|
- `danza`
|
|
|
|
|
- `cosmeticos`
|
|
|
|
|
- `despachos`
|
|
|
|
|
- `gimnasios`
|
|
|
|
|
- `educacion`
|
|
|
|
|
- `base_otro`
|
|
|
|
|
- Preview final separada habilitada:
|
|
|
|
|
- `GET /elementor/<site_id>/preview-final`
|
|
|
|
|
- `GET /ub24/<site_id>/preview-final`
|
|
|
|
|
- Motor de reordenamiento seleccionado para DnD:
|
|
|
|
|
- `SortableJS` (estrategia unica)
|
|
|
|
|
|
|
|
|
|
### Ajustes Builder (preview limpio + menu modos)
|
|
|
|
|
- Commit: `dd98e9d`
|
|
|
|
|
- Objetivo: mejorar vista previa (forzar modo limpio y restaurar estado), eliminar precarga automatica de bloques, y agregar modo de menu (horizontal/acordeon/ambos).
|
|
|
|
|
- Revert:
|
|
|
|
|
- `git revert dd98e9d`
|
|
|
|
|
## 10) Pendientes priorizados
|
|
|
|
|
1. QA manual de cada icono/accion del menu superior en preview final (siguiente lote).
|
|
|
|
|
2. Footer global obligatorio con autoria del proyecto.
|
|
|
|
|
3. Watermark de autoria en codigo bajo convencion unica.
|
|
|
|
|
4. Flujo dual estable de preview (editor/pagina real).
|
|
|
|
|
5. Mejora de interaccion touch/capacitiva del builder.
|
|
|
|
|
|
|
|
|
|
### Runtime unificado (app + elementor)
|
|
|
|
|
- Commit: `1a5778b`
|
|
|
|
|
- Objetivo: unificar arranque con `python -m demo.app` y registrar blueprint de Elementor en runtime principal.
|
|
|
|
|
- Revert:
|
|
|
|
|
- `git revert 1a5778b`
|
|
|
|
|
## 11) Referencias cruzadas
|
|
|
|
|
- Historial funcional detallado: `codex/HISTORIAL_CAMBIOS.md`
|
|
|
|
|
- Arranque rapido local: `codex/ARRANQUE_RAPIDO_UB24.md`
|
|
|
|
|
- Flujo general del proyecto: `codex/FLUJO_PROYECTO.md`
|
|
|
|
|
|
|
|
|
|
### Fix SQLite wrapper (arranque sin error SQL)
|
|
|
|
|
- Commit: `f6d8ab1`
|
|
|
|
|
- Objetivo: evitar conversiones SQL invalidas en SQLite que rompian inicializacion y generaban reintentos.
|
|
|
|
|
- Revert:
|
|
|
|
|
- `git revert f6d8ab1`
|
|
|
|
|
## 12) Nota operativa
|
|
|
|
|
Este archivo define el estandar de trabajo. Cualquier cambio de proceso debe registrarse en un commit `chore(versioning)` y quedar reflejado aqui.
|
|
|
|
|
|
|
|
|
|
### API Elementor save/publish
|
|
|
|
|
- Commit: `b6fb4da`
|
|
|
|
|
- Objetivo: agregar endpoint dedicado `/api/elementor/save` para guardar builder con opcion de publicar.
|
|
|
|
|
- Revert:
|
|
|
|
|
- `git revert b6fb4da`
|
|
|
|
|
|
|
|
|
|
### Builder persistencia y feedback de publicacion
|
|
|
|
|
- Commit: `c2ee81d`
|
|
|
|
|
- Objetivo: mantener bloques cargados al entrar, normalizar bloques sin id y mostrar estado de guardado/publicacion en topbar.
|
|
|
|
|
- Revert:
|
|
|
|
|
- `git revert c2ee81d`
|
|
|
|
|
|
|
|
|
|
### Preview full-page + layout estable
|
|
|
|
|
- Commit: `e20f086`
|
|
|
|
|
- Objetivo: hacer que vista previa ocupe pagina completa y forzar layout por secciones (sin modo libre por defecto) para alinear bloques.
|
|
|
|
|
- Revert:
|
|
|
|
|
- `git revert e20f086`
|
|
|
|
|
|
|
|
|
|
### Full width + dos columnas por bloque
|
|
|
|
|
- Commit: `e5df6de`
|
|
|
|
|
- Objetivo: expandir ancho util del canvas y habilitar 2 columnas reales con toggle "Ancho completo" por bloque.
|
|
|
|
|
- Revert:
|
|
|
|
|
- `git revert e5df6de`
|
|
|
|
|
|
|
|
|
|
### Drag inteligente columnas + preview completo
|
|
|
|
|
- Commit: `a6089ee`
|
|
|
|
|
- Objetivo: permitir decidir 1 o 2 columnas moviendo bloques al soltar (centro=ancho completo, lados=media columna) y agregar opcion de preview completo en nueva pestana.
|
|
|
|
|
- Revert:
|
|
|
|
|
- `git revert a6089ee`
|
|
|
|
|
|
|
|
|
|
### Quitar layout global + preview completo real
|
|
|
|
|
- Commit: `f9f7d23`
|
|
|
|
|
- Objetivo: eliminar toggle global de 2 columnas; mantener decision 1/2 columnas solo por movimiento de bloques; y forzar preview completo sin margenes.
|
|
|
|
|
- Revert:
|
|
|
|
|
- `git revert f9f7d23`
|
|
|
|
|
|
|
|
|
|
### Fix final dia: texto, modo libre y full preview
|
|
|
|
|
- Commit: `f363eef`
|
|
|
|
|
- Objetivo: reparar caracteres mojibake en UI, habilitar modo libre real para mover bloques completos y forzar modo completo con `?full=1`.
|
|
|
|
|
- Revert:
|
|
|
|
|
- `git revert f363eef`
|
|
|
|
|
|
|
|
|
|
## URL local canonica (unificada)
|
|
|
|
|
- Base local: `http://127.0.0.1:5001`
|
|
|
|
|
- Builder local: `http://127.0.0.1:5001/elementor/1`
|
|
|
|
|
- Regla: usar siempre `127.0.0.1` (no `localhost`) en scripts, pruebas y documentacion local.
|
|
|
|
|
|
|
|
|
|
## Arranque rapido local (Windows)
|
|
|
|
|
1. Desde `c:\word`, ejecutar:
|
|
|
|
|
- `python -m demo.app`
|
|
|
|
|
2. Abrir:
|
|
|
|
|
- `http://127.0.0.1:5001/elementor/1`
|
|
|
|
|
3. Verificacion rapida:
|
|
|
|
|
- `Invoke-WebRequest http://127.0.0.1:5001/elementor/1 -UseBasicParsing`
|
|
|
|
|
|
|
|
|
|
Notas:
|
|
|
|
|
- En el primer arranque puede tardar unos segundos adicionales por inicializacion de DB.
|
|
|
|
|
- Logs:
|
|
|
|
|
- `c:\word\logs_demo_app.txt`
|
|
|
|
|
- `c:\word\logs_demo_app.err`
|
|
|
|
|
|
|
|
|
|
## Control de rama (local/remoto)
|
|
|
|
|
- Rama local activa: `ai/ub24-builder-v1`
|
|
|
|
|
- Upstream remoto: `origin/ai/ub24-builder-v1`
|
|
|
|
|
- Estado al registrar: `en sync (0/0)` al 14 Febrero 2026
|
|
|
|
|
- Politica: commits atomicos + push por lote validado + verificacion de divergencia al inicio y al cierre.
|
|
|
|
|
|
|
|
|
|
## Fases memorizadas (builder)
|
|
|
|
|
1. Fase 1 (UI Pro base): navbar premium, hero premium, sistema de espaciado/grid, pulido visual consistente.
|
|
|
|
|
2. Fase 2 (estructura): separar renderers por bloque y reducir inline styles para automatizacion.
|
|
|
|
|
3. Fase 3 (presets): presets por rubro + reglas responsive + variantes exportables.
|
|
|
|
|
|