github Thinline-Dynamic-Solutions/ThinLineRadio v26.04.018

6 hours ago

What's Fixed

Admin — API key / downstream "Choose Systems" shows 0 talkgroups

Systems in the root config form have talkgroups lazy-loaded for performance (only populated when you open a system). The systems-selection dialog now receives the full raw systems data so all talkgroup counts and checkboxes display correctly without any change to page-load performance. The downstreams component receives the same fix.

Server — Auto-populate race condition (SQLSTATE 23503 FK violations)

When two calls arrived simultaneously for the same new talkgroup, a second goroutine could read a group or tag from the in-memory list before its DB-assigned ID had been written back, resulting in groupId = 0 being written into talkgroupGroups and causing foreign-key violations.

  • talkgroup.WriteTx now skips any groupId == 0 entry, eliminating the FK errors immediately
  • group.Write captures the DB-assigned ID via RETURNING "groupId" (PostgreSQL) or LastInsertId (SQLite) right after INSERT — the in-memory object carries its real ID before the write lock is released
  • tag.Write receives the same fix (RETURNING "tagId" / LastInsertId)

Don't miss a new ThinLineRadio release

NewReleases is sending notifications on new releases.