Skip to content

Release 2.5.5.1: Bugfixes

Choose a tag to compare

@krinkuto11 krinkuto11 released this 20 Apr 07:22
· 693 commits to main since this release
5c7cec8

This patch contains the following:

Bug Fixes

  • Dead stream removal scoping — streams were incorrectly culled during targeted automation runs. Dead-state transitions are now gated to streams actually analyzed in the current pass via checked_stream_id_set. Unchecked streams retain their tracker state until a future full-check evaluates them.
  • Automation cycle over-checking — all channels with checking enabled were full-checked every cycle regardless of activity. Channels now only enter the sync check queue when they received new stream assignments; channels with no assignments are skipped entirely.
  • int/str type mismatch in channel dispatch — assigned_stream_ids keys were integers but the dispatch loop looked them up as strings, causing all channels to fall through to full-check. All channel ID lookups are now normalized to int.
  • Profile save not persisting — SQLAlchemy's JSON column dirty-tracking silently skipped UPDATE statements when nested dict contents changed. Added flag_modified(p, "extra_settings") to update_profile to force the write.
  • Frontend state mutation on toggle — updateProfile used a shallow copy of React state, causing nested objects like stream_checking to share references with the previous render. Replaced with JSON.parse(JSON.stringify(prev)) deep clone, ensuring toggles correctly isolate state changes.

Observability

  • Added per-cycle dispatch summary log: N channels selected (X targeted, Y full-check, Z skipped) — visible at INFO level every automation run.