Nauffar / docs /ENTREGABLE_FINAL.md
eduardo4547's picture
Hola
45a0f7b verified

Cierre de Entregable - Hyper Ferreteria

1) Resumen de commits y avances

Ramas principales

  • main (base estable): commit e48ad8b
  • fast-api (rama de trabajo actual): commit e33f12e

Divergencia:

  • fast-api tiene 1 commit por delante de main.
  • main no tiene commits por delante de fast-api.

Commit más relevante reciente (e33f12e)

Descripción funcional:

  • Limpieza de máscara seleccionada al reaplicar textura.
  • Reemplazo por máscara más preciso (evita arrastre de textura previa).
  • Mejora de encadenado de ediciones conservando estado de máscaras.
  • Historial de texturas aplicado en la UI con sincronización undo/reset.
  • Refuerzo de carga de SAM2 para reducir fallas intermitentes.

Impacto en archivos:

  • .gitignore
  • README.md
  • docs/SETUP_AND_RUN.md
  • main.py
  • run.bat
  • run.ps1
  • scripts/download_sam2_checkpoint.py

2) Estado actual del working tree (pendiente de cierre)

Cambios no confirmados detectados:

  • Modificados: README.md, main.py
  • No rastreados: carpeta templates/ y texturas/Texture_ACM/

Antes de entregar, validar y decidir si estos cambios sí forman parte del entregable final.

3) Checklist final de entregable

A. Cerrar código y documentación

  1. Confirmar que la rama objetivo de entrega será fast-api.
  2. Revisar cambios locales pendientes (README.md, main.py, templates/, texturas/Texture_ACM/).
  3. Ajustar README para que el comando de arranque final sea consistente (uvicorn main:app).
  4. Verificar que docs/SETUP_AND_RUN.md esté alineado con el flujo real.

B. Validación técnica mínima (smoke test)

  1. Ejecutar script de verificación:
    • PowerShell: powershell -NoProfile -ExecutionPolicy Bypass -File .\run.ps1 -CheckOnly
  2. Si faltan dependencias/modelo, ejecutar:
    • powershell -NoProfile -ExecutionPolicy Bypass -File .\run.ps1 -Yes -InstallDeps
  3. Arrancar servidor:
    • python -m uvicorn main:app --host 127.0.0.1 --port 8000 --reload
  4. Probar endpoints clave:
    • GET /
    • GET /availability
    • GET /textures
    • GET /health/models
    • POST /apply_texture

C. Evidencia para entrega

  1. Capturas de pantalla:
    • Subida de imagen.
    • Segmentación/máscaras visibles.
    • Aplicación de textura antes/después.
    • Historial de texturas en UI.
  2. Registrar una corrida breve en logs/app.log.
  3. Dejar un ejemplo reproducible en uploads/ y/o outputs/ (si la política de entrega lo permite).

D. Higiene de repositorio

  1. Verificar archivos que NO deben versionarse (modelo, outputs grandes, venv).
  2. Revisar .gitignore.
  3. Hacer commit final de cierre con mensaje claro.
  4. Push de rama y, si aplica, Pull Request a main.

E. Entrega formal

  1. Incluir enlace al repo/branch exacto.
  2. Incluir versión de Python usada (ideal 3.12.x).
  3. Incluir instrucciones de ejecución en 5 pasos (resumen).
  4. Incluir limitaciones conocidas (CPU vs GPU, tiempos de segmentación).

4) Sugerencia de mensaje de commit final

chore: cierre de entregable con ajustes finales de docs y flujo de ejecución

5) Criterio de “Listo para entregar”

Se considera listo cuando:

  • El proyecto levanta localmente con comandos documentados.
  • Los endpoints críticos responden sin error.
  • El flujo principal (upload -> segmentación -> aplicar textura) funciona de punta a punta.
  • La documentación coincide con el estado real del código.
  • El repositorio queda limpio o con cambios explícitamente justificados para la entrega.