mirror of
https://github.com/RedWizardsLab/EchoHub.git
synced 2026-09-04 08:36:11 +02:00
2.1 KiB
2.1 KiB
v0.2.7
Refactoring
- Extracted
ChatMessageManagerfromMainWindow— message storage, formatting, and mutation logic now in a dedicated class, reducing MainWindow complexity - Split
ChatRenderer.cs(8 classes, 548 lines) into 7 individual files:ChatSegment,ChatLine,ChatListSource,ChannelListSource,UserListSource,ChatColors,ColorHelper,RenderHelpers - Extracted
ConnectionManagerfromAppOrchestrator— connection lifecycle, authentication, SignalR event wiring, and channel tracking now in a dedicated service - Extracted
AvatarHelper— deduplicated avatar upload logic previously duplicated in/avatarcommand and profile edit dialog - Consolidated
ProfileEditDialog.ParseHexToTrueColorinto sharedColorHelper.ParseHexToColor - Extracted
UserSession— session state (Username,Status,StatusMessage) now in a dedicated class instead of scattered fields - Replaced 21 inline command handler lambdas with named
HandleCmd*methods for improved readability - Extracted shared
CleanupConnectionAsyncto deduplicate disconnect/logout cleanup logic - Reorganized flat
UI/folder (19 files) into subfolders:Chat/,Dialogs/,ListSources/,Helpers/with matching namespaces - Moved
AsyncRunnerfrom project root toServices/with updated namespace - Renamed
ColorHelper→HexColorHelperto avoid namespace collision with Terminal.Gui'sColorHelperNuGet dependency - Moved
hue_icon.icotoClient/Assets/, removed duplicate from Server (Server now references shared icon via relative path)
Bug Fixes
- Fix user list empty on initial connect —
FetchAndUpdateOnlineUserswas called beforeInvokeUIset the current channel, causing an early return
Infrastructure
- Switch Terminal.Gui from local fork submodule back to NuGet package (
2.0.0-develop.5039) — transparent color PR merged upstream - Remove Terminal.Gui submodule,
.gitmodules, and rootnuget.configworkaround - Remove
rm -fsubmodule nuget.config steps andsubmodules: recursivefrom all 3 CI workflows (ci, docs, release) - Remove
--exclude src/Terminal.Gui/from format check