feat: release v0.2.3 with moderation system, private channels, and UI enhancements

This commit is contained in:
HueByte
2026-02-19 19:37:45 +01:00
parent 38b60e5626
commit 0dbb02d12a
6 changed files with 64 additions and 6 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
<Project>
<PropertyGroup>
<Version>0.2.2</Version>
<Version>0.2.3</Version>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<NoWarn>$(NoWarn);CS1591</NoWarn>
</PropertyGroup>
+4 -4
View File
@@ -40,7 +40,7 @@ public sealed class MainWindow : Runnable
// Cached Key constants — compare via .KeyCode to avoid Key.Equals (which also checks Handled)
private static readonly Key EnterKey = Key.Enter;
private static readonly Key NewlineKey = Key.N.WithCtrl;
private static readonly Key CtrlCKey = Key.C.WithCtrl;
private static readonly Key AltQKey = Key.Q.WithAlt;
private static readonly Key TabKey = Key.Tab;
// Available slash commands for Tab autocomplete
@@ -240,7 +240,7 @@ public sealed class MainWindow : Runnable
_messageList.ViewportChanged += (_, _) => OnChatViewportChanged();
_chatFrame.ViewportChanged += (_, _) => OnChatViewportChanged();
// Window-level key handling for Ctrl+C (quit), F2 (toggle users panel)
// Window-level key handling for Alt+Q (quit), F2 (toggle users panel)
KeyDown += OnWindowKeyDown;
}
@@ -379,7 +379,7 @@ public sealed class MainWindow : Runnable
}
e.Handled = true;
}
else if (e.KeyCode == CtrlCKey.KeyCode)
else if (e.KeyCode == AltQKey.KeyCode)
{
_app.RequestStop();
e.Handled = true;
@@ -432,7 +432,7 @@ public sealed class MainWindow : Runnable
private void OnWindowKeyDown(object? sender, Key e)
{
if (e.KeyCode == CtrlCKey.KeyCode)
if (e.KeyCode == AltQKey.KeyCode)
{
_app.RequestStop();
e.Handled = true;
+1 -1
View File
@@ -4,7 +4,7 @@ public static class HubConstants
{
public const string ChatHubPath = "/hubs/chat";
public const string DefaultChannel = "general";
public const int DefaultHistoryCount = 50;
public const int DefaultHistoryCount = 100;
public const int MaxMessageLength = 2000;
public const int MaxFileSizeBytes = 10 * 1024 * 1024; // 10 MB
public const int MaxAvatarSizeBytes = 2 * 1024 * 1024; // 2 MB