Skip to content

fix: seed de bot_version para evitar mostrar None en BD nueva - #37

Draft
ranto-dev05 wants to merge 1 commit into
mainfrom
fix/bot_version-seed
Draft

ranto-dev05 wants to merge 1 commit into
mainfrom
fix/bot_version-seed

Conversation

@ranto-dev05

Copy link
Copy Markdown
Collaborator

Este PR de iteración rápida asegura que ATLAS nunca muestre None al arrancar: por un lado siembra el registro bot_version con el valor por defecto 0.1.0 en system_records justo después de init_database() y, por otro, añade el fallback or "0.0.0" al leerlo en main.py; el error ocurría porque en una base de datos recién inicializada la tabla arranca vacía y get_system_record("bot_version") devolvía None, dejando salidas como Versión guardada en la base de datos: None en consola y en el log, y el beneficio inmediato es que cualquier despliegue limpio queda operativo al primer arranque con la versión persistida y un log válido en formato semver. Closes #6. Para verificarlo en menos de un minuto: borra el archivo atlas.db, ejecuta python main.py con tu .env configurado y confirma en la consola que aparece Versión guardada en la base de datos: 0.1.0 en lugar de None.

@ranto-dev05
ranto-dev05 marked this pull request as draft August 15, 2026 21:35
@ranto-dev05 ranto-dev05 added bug Something isn't working Priority: Low Baja prioridad - consideracion futura labels Aug 15, 2026

@Axel-DaMage Axel-DaMage left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Solicito cambios. El fix es efectivamente dead code sobre el main actual.

Por qué el fallback nunca se ejecuta

En main.py (main) el flujo es:

set_system_record("bot_version", "0.1.0")   # upsert: siempre escribe "0.1.0"
bot_version = get_system_record("bot_version")  # siempre devuelve "0.1.0"

set_system_record es un upsert (lo confirmé en bot/database/database.py: si el registro no existe lo crea, si existe lo actualiza). Como se llama inmediatamente antes del get, get_system_record(\"bot_version\") siempre devuelve \"0.1.0\", nunca None. Por tanto el or \"0.0.0\" es código muerto y el escenario descrito en #6 no se reproduce en main actual.

Inconsistencia

El fallback usa \"0.0.0\" mientras el seed existente usa \"0.1.0\". Si el fallback llegara a dispararse, mostraría una versión distinta a la sembrada.

Acceptance criteria de #6

  • "En una BD nueva, bot_version se crea con un valor por defecto (no None)": ya se cumple por el set_system_record preexistente en main.py; este PR no cambia eso.
  • La propuesta del issue #6 apunta a sembrar el registro dentro de init_database() (no en main.py). Este PR no lo hace.

Conflicto con PR #52

PR #52 reescribe esta misma línea (elimina el print y pasa a logger.info con %s). Mergeando ambos se generan conflictos triviales pero evitables si se coordinan.

Recomendación

Cerrar este PR como obsoleto (el bug ya no se reproduce en main), o reworked para:

  1. Mover el seed de bot_version a init_database() (idempotente: solo crea si no existe).
  2. Eliminar el set_system_record(\"bot_version\", ...) redundante de main.py.
  3. Usar el mismo valor de versión en seed y fallback.

Si se cierra, dejar constancia en #6 de que el caso None ya no se reproduce por el upsert existente.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working Priority: Low Baja prioridad - consideracion futura

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix: seed de bot_version para evitar mostrar None en BD nueva

2 participants