Skip to content

fix(jobs): integración de columna de modalidad remota, persistencia y corrección de regularización - #68

Merged
Ochoa-Stack merged 3 commits into
developfrom
fix/add-remote-column-to-jobs
Jul 31, 2026
Merged

fix(jobs): integración de columna de modalidad remota, persistencia y corrección de regularización#68
Ochoa-Stack merged 3 commits into
developfrom
fix/add-remote-column-to-jobs

Conversation

@Ochoa-Stack

Copy link
Copy Markdown
Owner

fix/add-remote-column-to-jobs

Descripción

En este ciclo, resolvemos de manera definitiva la deuda técnica registrada como DT-34, garantizando la persistencia física del atributo de modalidad remota para las vacantes, el cual era calculado correctamente en memoria por el motor de ingesta pero era descartado silenciamente al no existir en el esquema estructural.

Detalles técnicos que integramos:

  • Esquema de Datos (feat): Agregamos la columna remote (tipo booleano, valor por defecto falso) al modelo Job e incluimos su respectiva migración en Alembic, estableciendo el soporte estructural para el almacenamiento de esta métrica.
  • Cobertura de Persistencia (test): Desarrollamos pruebas de integración de caracterización específicas para el modelo Job. Las pruebas certifican la persistencia escribiendo y forzando una lectura real directa desde el motor de base de datos (mediante la purga de la sesión con expire_all()), evaluando tanto el valor por defecto como las asignaciones explícitas.
  • Corrección de Script de Regularización (fix): Reparamos el script de backfill (backfill_remote_flag.py). El script original apuntaba a un atributo inexistente (job.description) en lugar del mapeo correcto en el modelo (job.raw_description), lo cual ocasionaba una falla total (240/240 errores) durante las simulaciones iniciales enmascarando el diagnóstico de la deuda DT-34.

Notas Operativas (Intervención de Datos)

  • Patch de Producción: La ejecución real del backfill regularizó de forma exitosa los datos en el motor productivo (Neon), identificando y marcando adecuadamente 4 vacantes históricas con la bandera remota activa. Al tratarse de una mutación estricta de datos operacionales, no se incluye como artefacto de código dentro del versionado, pero el defecto queda oficialmente subsanado en el entorno real.

Tipo de cambio

  • feat
  • fix
  • refactor
  • chore
  • docs
  • test
  • ci

Cómo probar

  1. Tras el merge, sincronizamos la rama base en nuestro entorno local.
  2. En la raíz del backend (cd backend), activamos el entorno virtual.
  3. Aplicamos la migración del esquema para inyectar la nueva columna en nuestra base de datos local:
    flask db upgrade
  4. Ejecutamos la validación automatizada para confirmar la persistencia de la columna:
    pytest tests/integration/test_job_model_remote_column.py -v
  5. Opcionalmente, ejecutamos el script de regularización para alinear la base de datos de desarrollo:
    python scripts/backfill_remote_flag.py

Checklist

  • Sigue las convenciones de commits del proyecto (separación atómica)
  • El defecto arquitectónico DT-34 ha sido resuelto y cuenta con migración estructural segura
  • El script de regularización fue saneado de referencias huérfanas
  • La base de datos de producción (Neon) ya fue procesada e hidratada exitosamente

Ochoa-Stack and others added 3 commits July 31, 2026 14:59
Agrega la columna remote (boolean, default false) al modelo Job y su
migración correspondiente. Resuelve la causa raíz de DT-34: el campo
nunca existió como columna persistida, pese a que IngestionService
siempre lo calculó correctamente en memoria.
Verifica que remote persiste correctamente en ambos casos: valor por
defecto (false) y valor explícito (true), forzando lectura real desde
BD via expire_all().

Co-authored-by: Oscar Soriano <neko.dev@outlook.com>
Co-authored-by: Aylin Chavira <aylinchavirachv@gmail.com>
Co-authored-by: Alejandro Balderrama <alejandro64.bp@gmail.com>
…iption

El script leía job.description, columna inexistente en el modelo Job
(el campo real es raw_description). Este bug causaba fallo en 240/240
jobs durante el dry-run inicial, enmascarando el diagnóstico original
de DT-34.

Co-authored-by: Oscar Soriano <neko.dev@outlook.com>
Co-authored-by: Aylin Chavira <aylinchavirachv@gmail.com>
Co-authored-by: Alejandro Balderrama <alejandro64.bp@gmail.com>
@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@Ochoa-Stack
Ochoa-Stack merged commit 023a619 into develop Jul 31, 2026
1 check passed
@Ochoa-Stack
Ochoa-Stack deleted the fix/add-remote-column-to-jobs branch July 31, 2026 21:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants