feat(tui): resolve Discord channel IDs to human-readable names (#743)#762
Merged
Aaronontheweb merged 4 commits intodevfrom Apr 27, 2026
Merged
feat(tui): resolve Discord channel IDs to human-readable names (#743)#762Aaronontheweb merged 4 commits intodevfrom
Aaronontheweb merged 4 commits intodevfrom
Conversation
…t wizard (#743) The Channels step now displays "GuildName / #channelName" instead of raw snowflake IDs like "Discord:1497604523664085158". Add IDiscordProbe interface with DiscordProbe HTTP implementation that calls the Discord REST API (GET /channels/{id} and GET /guilds/{id}) to resolve channel IDs to display names. Resolution happens eagerly during the Discord step's OnLeave so names are available before the Channels step renders. Guild lookups are cached within a single resolution call. Make ChannelEntry.DisplayName settable so health checks can update names after resolution. Dynamically compute column width in ChannelsStepView to keep audience selectors aligned regardless of name length.
…king call Parallelize HTTP calls in DiscordProbe.ResolveChannelIdsAsync using Task.WhenAll for both channel and guild fetches. Fire off resolution as a background task when the user advances past the channel IDs sub-step, so it completes while they finish remaining sub-steps. OnLeave picks up the result non-blockingly if available. Eliminates the .GetAwaiter().GetResult() blocking call, removes redundant outer timeout constants, consolidates display name patching into a single ApplyResolvedDisplayNames method, and fixes bare catch blocks to use specific exception types.
This was referenced Apr 27, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
IDiscordProbe/DiscordProbe(mirroring theISlackProbepattern) with raw HTTP calls to the Discord REST API to validate bot tokens and resolve channel IDs to human-readable names"GuildName / #channelName"instead of raw snowflake IDs like"Discord:1497604523664085158"Task.WhenAllfor both channel and guild fetchesCloses #743
Test plan
DiscordStepViewModelTestspass (including 4 new health check tests)InitWizardPageTestsupdated withFakeDiscordProbedotnet slopwatch analyze— 0 issues