Discord: no edit path for a running radio stream (label/bot/mode); re-add and node-page move keep the old mode #228

Open
opened 2026-10-05 00:40:05 -04:00 by logan · 0 comments
Owner

Found reviewing PR #227 (multi-stream per voice channel, #213 follow-up).

Since #227, re-adding the same system to a voice channel that already plays it returns the running stream unchanged (already_on). That is intended: adding must never overwrite. But it leaves no edit path for a running stream:

  • Admin /settings/discord: you can't change a stream's label, bot or mode. The only way is Remove, then Add. Since 5c53850 the Add form at least says "nothing was added or changed" instead of closing silently. Choosing a different bot for the same system gets a 409 duplicate.
  • Node page picker: picking a channel where this system plays on another node moves the stream here, but _start_locked keeps the old mode and ignores the ad-hoc/persistent choice made in the picker.
  • Bot /join persistent:True: if that system is already on in the channel as ad-hoc, it stays ad-hoc. The reply says "already playing, nothing was replaced" and doesn't mention that the persistent flag was ignored.

Fix shape: an explicit edit, e.g. POST /discord/streams with stream_id plus label/mode/preferred_token_id. Admin rows get an Edit control. The node-page move and /join either apply the requested mode or say they didn't.

Where: drb-c2-core/app/internal/discord_streams.py _start_locked (the already_on branch), drb-frontend/components/discord/StreamsPanel.tsx, drb-server-discord-bot/app/commands/radio.py /join.

Found reviewing PR #227 (multi-stream per voice channel, #213 follow-up). Since #227, re-adding the **same system** to a voice channel that already plays it returns the running stream unchanged (`already_on`). That is intended: adding must never overwrite. But it leaves no edit path for a running stream: - **Admin /settings/discord:** you can't change a stream's label, bot or mode. The only way is Remove, then Add. Since 5c53850 the Add form at least says "nothing was added or changed" instead of closing silently. Choosing a different bot for the same system gets a 409 `duplicate`. - **Node page picker:** picking a channel where this system plays on another node moves the stream here, but `_start_locked` keeps the old `mode` and ignores the ad-hoc/persistent choice made in the picker. - **Bot `/join persistent:True`:** if that system is already on in the channel as ad-hoc, it stays ad-hoc. The reply says "already playing, nothing was replaced" and doesn't mention that the persistent flag was ignored. Fix shape: an explicit edit, e.g. POST /discord/streams with `stream_id` plus label/mode/preferred_token_id. Admin rows get an Edit control. The node-page move and `/join` either apply the requested mode or say they didn't. Where: `drb-c2-core/app/internal/discord_streams.py` `_start_locked` (the `already_on` branch), `drb-frontend/components/discord/StreamsPanel.tsx`, `drb-server-discord-bot/app/commands/radio.py` `/join`.
logan added the area/discordarea/frontend
priority
p3
type
feature
labels 2026-10-05 02:05:05 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: logan/server-26#228