Release v1.27: Аудит надёжности и исправления стабильности

Версия v1.27 (23.03.25)

Критические исправления

  • Flash write из ISR - отложенная запись в main loop
  • sensor_type - восстанавливается из Flash после чтения

Высокая важность

  • volatile для shared переменных (display_state, sensor_type и др.)
  • I2C - таймаут 100 ms вместо бесконечного
  • Flash - CRC+magic, валидация при чтении
  • cleanup() - идемпотентность
  • sprintf - snprintf
  • GUI - перенос screen_update из TIM6 ISR в main loop

Средняя важность

  • default в switch(display_state), handle_input_buttons NULL check
  • SPI abort при таймауте, HAL_UART_Transmit проверка

Низкая важность

  • max_digits ≤ 4, menu_enter NULL check, strncat fix, WFI timeout

Версионирование

  • FW_VERSION_NUM - единый источник в gui_dynamic_vars.h
  • .cursor/rules/firmware-version.mdc

Подробнее: CHANGELOG_v1.27.md