# Versionado IA - UB24 / Elementor ## 1) Objetivo Definir un proceso de versionado auditable, reproducible y estable para el desarrollo del builder UB24. ## 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` ## 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): ...` ## 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 ` - `git commit -m "tipo(scope): mensaje"` - `git push origin ai/ub24-builder-v1` ## 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. ## 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` ## 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. ## 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` | ## 9) Decisiones funcionales vigentes - Rubros oficiales permitidos: - `restaurante` - `danza` - `cosmeticos` - `despachos` - `gimnasios` - `educacion` - `base_otro` - Preview final separada habilitada: - `GET /elementor//preview-final` - `GET /ub24//preview-final` - Motor de reordenamiento seleccionado para DnD: - `SortableJS` (estrategia unica) ## 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. ## 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` ## 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.