Files
gkachele-saas/codex/VERSIONADO_IA.md

193 lines
9.3 KiB
Markdown

# Versionado IA - UB24 / Elementor
## 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`).
## 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-03-04`
- Rama activa: `ai/ub24-builder-v1`
- Upstream: `origin/ai/ub24-builder-v1`
- Divergencia local/remoto: `0 0`
- HEAD actual: `8f56e84`
- Ultimo commit: `8f56e84 feat(customizer): add pro visual presets, social styles, and responsive map controls`
- 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 <archivos>`
- `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/<site_id>/preview-final`
- `GET /ub24/<site_id>/preview-final`
- Customizer activo unificado:
- `GET /customizer/<site_id>`
- Rutas legacy retiradas:
- `GET /customizer2/<site_id>` -> `404`
- `GET /customizer3/<site_id>` -> `404`
- 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. Cerrar y validar flujo unico del customizer en docs cruzadas (sin rutas legacy).
3. Footer global obligatorio con autoria del proyecto.
4. Watermark de autoria en codigo bajo convencion unica.
5. Flujo dual estable de preview (editor/pagina real) + mejora touch/capacitiva.
## 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.
Memorizado.
En la próxima sesión haré esto como primer paso:
1. Revisar en internet referencias de diseño (layouts, bloques, redes, animaciones, efectos pro).
2. Extraer patrones aplicables al builder.
3. Convertirlos en mejoras concretas y ordenadas en tu proyecto.
Entendido.
Queda memorizado el foco: mejorar sin retrocesos, calidad profesional y avance real por lotes verificables.
Cuando vuelvas, arranco leyendo memoria y ejecutando directo.
## 13) Continuidad de sesion (agregado 2026-03-04)
- Se adopta esquema de memoria en 3 capas:
1. `AGENTS.md` (reglas estables)
2. `codex/SESSION_STATE.md` (estado vivo de trabajo)
3. `codex/VERSIONADO_IA.md` (historial de decisiones/versionado)
- Hook de arranque oficial:
- `powershell -ExecutionPolicy Bypass -File .\codex\start-session.ps1`
- Hook de cierre oficial:
- `powershell -ExecutionPolicy Bypass -File .\codex\end-session.ps1`
## 14) Ajuste de operacion (2026-03-04)
- A partir de esta fecha, la lectura de contexto de inicio es automatica por politica del asistente.
- No se requiere ejecutar scripts manuales para que el asistente cargue memoria.
- `start-session.ps1` y `end-session.ps1` quedan como herramientas opcionales de soporte.
## 15) Regla de sincronizacion estricta (2026-03-04)
1. Toda respuesta sobre "version actual" debe salir de git en tiempo real, no de memoria previa.
2. Al detectar desfase entre memoria y `HEAD`, actualizar `codex/VERSIONADO_IA.md` y `codex/MEMORIA_CODEX.md` en la misma sesion.
3. Toda afirmacion de push/sync debe incluir evidencia de `rev-list`:
- `0 0` = sincronizado
- distinto de `0 0` = no sincronizado
## 16) Lote aplicado (2026-03-05)
- Rama de trabajo confirmada: `ai/ub24-builder-v1`
- Base de partida: `8f56e84`
- Archivo principal intervenido:
- `elementor/templates/elementor_builder.html`
- Cambios del lote:
1. `Reset` restaura plantilla base por rubro (ya no borra todo).
2. Flujo restaurante en `free_drag` preserva posicion manual (sin auto-restack agresivo por render).
3. Botones subir/bajar aplican reordenamiento visible.
4. Mapeo de menu a bloques por semantica + tipo (`contact`, `map`, `social`, `review`, `cards/gallery/hero`).
5. Autosave borrador en cambios de inspector/settings.
6. Preview final recibe `device` (`desktop/tablet/phone`) desde el editor.
## 17) Lote aplicado (2026-03-10)
- Rama de trabajo: `ai/ub24-builder-v1`
- Commits:
- `442acb1 fix(menu): add glass preset and save logging`
- `9ff6d2e chore: ignore local artifacts`
- `32ea784 chore(session): log glass preset changes`
- Cambios:
1. Menú ahora soporta presets `default/glass/dark` con blur/sombra/hover; selector en inspector y aplicación en render (`elementor/templates/elementor_builder.html`).
2. Log de guardados de `/api/elementor/save` para capturar presets recibidos en `logs/elementor_save.log` (`elementor/routes.py`).
3. `.gitignore` ampliado para excluir artefactos locales (db, logs, snapshots, __pycache__, gitea_data, free-llm resources).
4. `codex/SESSION_STATE.md` actualizado con el estado de estos cambios y bloqueos vigentes.