Repository navigation
fix: seed de bot_version para evitar mostrar None en BD nueva - #37
ranto-dev05 wants to merge 1 commit into
Conversation
Axel-DaMage
left a comment
There was a problem hiding this comment.
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_versionse crea con un valor por defecto (noNone)": ya se cumple por elset_system_recordpreexistente enmain.py; este PR no cambia eso. - La propuesta del issue #6 apunta a sembrar el registro dentro de
init_database()(no enmain.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:
- Mover el seed de
bot_versionainit_database()(idempotente: solo crea si no existe). - Eliminar el
set_system_record(\"bot_version\", ...)redundante demain.py. - 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.
Este PR de iteración rápida asegura que ATLAS nunca muestre
Noneal arrancar: por un lado siembra el registrobot_versioncon el valor por defecto0.1.0ensystem_recordsjusto después deinit_database()y, por otro, añade el fallbackor "0.0.0"al leerlo enmain.py; el error ocurría porque en una base de datos recién inicializada la tabla arranca vacía yget_system_record("bot_version")devolvíaNone, dejando salidas comoVersión guardada en la base de datos: Noneen 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 archivoatlas.db, ejecutapython main.pycon tu.envconfigurado y confirma en la consola que apareceVersión guardada en la base de datos: 0.1.0en lugar deNone.