From 9029d63e548ba410c4ca59b09302aa4b878ed632 Mon Sep 17 00:00:00 2001 From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com> Date: Tue, 24 Feb 2026 22:42:07 +0100 Subject: [PATCH 1/7] fix: documentation URLs in echohub.nuspecch --- packaging/choco/echohub.nuspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging/choco/echohub.nuspec b/packaging/choco/echohub.nuspec index e908659..3f2d1b7 100644 --- a/packaging/choco/echohub.nuspec +++ b/packaging/choco/echohub.nuspec @@ -10,14 +10,14 @@ https://github.com/HueByteByte/EchoHub/blob/master/LICENSE https://github.com/HueByteByte/EchoHub https://github.com/HueByteByte/EchoHub - https://HueBytebyte.github.io/EchoHub + https://huebyte.github.io/EchoHub https://github.com/HueByteByte/EchoHub/issues https://github.com/HueByteByte/EchoHub/tree/master/packaging/choco https://raw.githubusercontent.com/HueByteByte/EchoHub/master/assets/HueByte_icon.png EchoHub is a decentralized IRC-style chat application with a terminal user interface (TUI). Connect to any EchoHub server, join channels, and chat — all from your terminal. Features include SignalR real-time messaging, file sharing, custom themes, and IRC gateway compatibility. Decentralized terminal chat client with IRC gateway support chat irc decentralized tui terminal signalr echohub - https://HueBytebyte.github.io/EchoHub/changelog/v__VERSION__.html + https://huebyte.github.io/EchoHub/changelog/v__VERSION__.html Copyright (c) 2026 HueByte From 92b89fa8a0f701fa6bc9ed84aecad377a819f29e Mon Sep 17 00:00:00 2001 From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com> Date: Tue, 24 Feb 2026 22:46:35 +0100 Subject: [PATCH 2/7] fix: github repo URLs in echohub.nuspecch --- packaging/choco/echohub.nuspec | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packaging/choco/echohub.nuspec b/packaging/choco/echohub.nuspec index 3f2d1b7..a3137e1 100644 --- a/packaging/choco/echohub.nuspec +++ b/packaging/choco/echohub.nuspec @@ -7,13 +7,13 @@ HueByte HueByte false - https://github.com/HueByteByte/EchoHub/blob/master/LICENSE - https://github.com/HueByteByte/EchoHub - https://github.com/HueByteByte/EchoHub + https://github.com/HueByte/EchoHub/blob/master/LICENSE + https://github.com/HueByte/EchoHub + https://github.com/HueByte/EchoHub https://huebyte.github.io/EchoHub - https://github.com/HueByteByte/EchoHub/issues - https://github.com/HueByteByte/EchoHub/tree/master/packaging/choco - https://raw.githubusercontent.com/HueByteByte/EchoHub/master/assets/HueByte_icon.png + https://github.com/HueByte/EchoHub/issues + https://github.com/HueByte/EchoHub/tree/master/packaging/choco + https://raw.githubusercontent.com/HueByte/EchoHub/refs/heads/master/assets/hue_icon.png EchoHub is a decentralized IRC-style chat application with a terminal user interface (TUI). Connect to any EchoHub server, join channels, and chat — all from your terminal. Features include SignalR real-time messaging, file sharing, custom themes, and IRC gateway compatibility. Decentralized terminal chat client with IRC gateway support chat irc decentralized tui terminal signalr echohub From 8689dc2a0168e5e0b014c7e5ed7a09c66942e67a Mon Sep 17 00:00:00 2001 From: HueByte Date: Tue, 24 Feb 2026 23:08:32 +0100 Subject: [PATCH 3/7] fix: add TODO for incorrect embed color display --- docs/todo.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/todo.md b/docs/todo.md index 07726db..ac32396 100644 --- a/docs/todo.md +++ b/docs/todo.md @@ -22,3 +22,4 @@ - [x] Another thing would be stateful userlist – basically fetch once and listen for userlist updates - [x] Send to EchohubSpace only state changes, currently we send user count periodically, instead of updating it on update - [x] space between mod|admin "icon" and username +- [ ] Embeds still incorrectly display colors From 0aaa371488d5229e5f575167f9c0c4bb9f5205f8 Mon Sep 17 00:00:00 2001 From: HueByte Date: Wed, 25 Feb 2026 10:08:50 +0100 Subject: [PATCH 4/7] chore: update release process for single-file publish and enhance installer script --- .github/workflows/release.yml | 10 +++++----- docs/changelog/v0.2.9.md | 5 +++++ scripts/install.sh | 13 ++++++++++--- src/Directory.Build.props | 2 +- 4 files changed, 21 insertions(+), 9 deletions(-) create mode 100644 docs/changelog/v0.2.9.md diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2ad99d8..dc9c7f9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -81,23 +81,23 @@ jobs: - name: Publish Client win-x64 if: steps.changes.outputs.src_changed == 'true' && steps.check_release.outputs.exists == 'false' - run: dotnet publish src/EchoHub.Client/EchoHub.Client.csproj -c Release -r win-x64 --self-contained true -o publish/client-win-x64 + run: dotnet publish src/EchoHub.Client/EchoHub.Client.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true -o publish/client-win-x64 - name: Publish Client linux-x64 if: steps.changes.outputs.src_changed == 'true' && steps.check_release.outputs.exists == 'false' - run: dotnet publish src/EchoHub.Client/EchoHub.Client.csproj -c Release -r linux-x64 --self-contained true -o publish/client-linux-x64 + run: dotnet publish src/EchoHub.Client/EchoHub.Client.csproj -c Release -r linux-x64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true -o publish/client-linux-x64 - name: Publish Client osx-x64 if: steps.changes.outputs.src_changed == 'true' && steps.check_release.outputs.exists == 'false' - run: dotnet publish src/EchoHub.Client/EchoHub.Client.csproj -c Release -r osx-x64 --self-contained true -o publish/client-osx-x64 + run: dotnet publish src/EchoHub.Client/EchoHub.Client.csproj -c Release -r osx-x64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true -o publish/client-osx-x64 - name: Publish Client osx-arm64 if: steps.changes.outputs.src_changed == 'true' && steps.check_release.outputs.exists == 'false' - run: dotnet publish src/EchoHub.Client/EchoHub.Client.csproj -c Release -r osx-arm64 --self-contained true -o publish/client-osx-arm64 + run: dotnet publish src/EchoHub.Client/EchoHub.Client.csproj -c Release -r osx-arm64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true -o publish/client-osx-arm64 - name: Publish Client linux-arm64 if: steps.changes.outputs.src_changed == 'true' && steps.check_release.outputs.exists == 'false' - run: dotnet publish src/EchoHub.Client/EchoHub.Client.csproj -c Release -r linux-arm64 --self-contained true -o publish/client-linux-arm64 + run: dotnet publish src/EchoHub.Client/EchoHub.Client.csproj -c Release -r linux-arm64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true -o publish/client-linux-arm64 - name: Zip artifacts if: steps.changes.outputs.src_changed == 'true' && steps.check_release.outputs.exists == 'false' diff --git a/docs/changelog/v0.2.9.md b/docs/changelog/v0.2.9.md new file mode 100644 index 0000000..3fc6db7 --- /dev/null +++ b/docs/changelog/v0.2.9.md @@ -0,0 +1,5 @@ +# v0.2.9 + +## Bug Fixes + +- Fix Linux/macOS client install — enable single-file publish so the install script copies one self-contained binary instead of just the native host (which failed with "does not exist: EchoHub.Client.dll") diff --git a/scripts/install.sh b/scripts/install.sh index 576c30e..238604d 100644 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -199,10 +199,17 @@ main() { fi fi - # Install the binary + # Install full directory to ~/.local/share/echohub and symlink the binary. + # Even single-file publishes may have content files (appsettings, assets) + # that the app expects next to the binary via AppContext.BaseDirectory. + app_dir="$HOME/.local/share/echohub" + rm -rf "$app_dir" + mkdir -p "$app_dir" + cp -r "$src_dir"/. "$app_dir/" + chmod +x "$app_dir/EchoHub.Client" + mkdir -p "$install_dir" - cp "$src_dir/EchoHub.Client" "$install_dir/$BINARY_NAME" - chmod +x "$install_dir/$BINARY_NAME" + ln -sf "$app_dir/EchoHub.Client" "$install_dir/$BINARY_NAME" echo "" diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 744d01d..24de7d9 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -1,6 +1,6 @@ - 0.2.8 + 0.2.9 true $(NoWarn);CS1591 From ee187437213ecaed7664806e21a3d5721349e29a Mon Sep 17 00:00:00 2001 From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com> Date: Wed, 25 Feb 2026 18:04:13 +0100 Subject: [PATCH 5/7] fix: choco install path by separating directory and file joins --- packaging/choco/tools/chocolateyInstall.ps1 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packaging/choco/tools/chocolateyInstall.ps1 b/packaging/choco/tools/chocolateyInstall.ps1 index a483c19..af14c59 100644 --- a/packaging/choco/tools/chocolateyInstall.ps1 +++ b/packaging/choco/tools/chocolateyInstall.ps1 @@ -14,5 +14,6 @@ $packageArgs = @{ Install-ChocolateyZipPackage @packageArgs # Create a shim so 'echohub' is available on PATH -$exePath = Join-Path $toolsDir 'client-win-x64' 'EchoHub.Client.exe' +$exeDir = Join-Path $toolsDir 'client-win-x64' +$exePath = Join-Path $exeDir 'EchoHub.Client.exe' Install-BinFile -Name 'echohub' -Path $exePath From 3f2211f42aa43939ff1b84f17eea53cb636b4ae6 Mon Sep 17 00:00:00 2001 From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com> Date: Wed, 25 Feb 2026 16:00:11 +0100 Subject: [PATCH 6/7] fix: double click on public checkbox creates channel by setting set CommandsToBubbleUp in dialog --- src/EchoHub.Client/EchoHub.Client.csproj | 2 +- src/EchoHub.Client/UI/Dialogs/CreateChannelDialog.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/EchoHub.Client/EchoHub.Client.csproj b/src/EchoHub.Client/EchoHub.Client.csproj index 70753d0..a4ab665 100644 --- a/src/EchoHub.Client/EchoHub.Client.csproj +++ b/src/EchoHub.Client/EchoHub.Client.csproj @@ -12,7 +12,7 @@ - + diff --git a/src/EchoHub.Client/UI/Dialogs/CreateChannelDialog.cs b/src/EchoHub.Client/UI/Dialogs/CreateChannelDialog.cs index a00dd5b..076b2ad 100644 --- a/src/EchoHub.Client/UI/Dialogs/CreateChannelDialog.cs +++ b/src/EchoHub.Client/UI/Dialogs/CreateChannelDialog.cs @@ -12,7 +12,7 @@ public sealed class CreateChannelDialog { CreateChannelResult? result = null; - var dialog = new Dialog { Title = "Create Channel", Width = 50, Height = 14 }; + var dialog = new Dialog { Title = "Create Channel", Width = 50, Height = 14, CommandsToBubbleUp = [] }; var nameLabel = new Label { Text = "Name:", X = 1, Y = 1 }; var nameField = new TextField { X = 10, Y = 1, Width = Dim.Fill(2) }; From 38d63d844d7894b0fb5520c17933157c4826c3bf Mon Sep 17 00:00:00 2001 From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com> Date: Wed, 25 Feb 2026 16:01:05 +0100 Subject: [PATCH 7/7] chore: mark checkbox issue in channel creation as completed in todo list --- docs/todo.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/todo.md b/docs/todo.md index ac32396..eb04e7d 100644 --- a/docs/todo.md +++ b/docs/todo.md @@ -15,7 +15,7 @@ - [x] unmute timer does not seem to work - [ ] add IRC network like support - that means basically multiple servers linked, so users can chat cross-server in this network -- [ ] when users clicks public -> private -> public checkbox in the channel creation, it ends up creating the channel on 3rd check switch +- [x] when users clicks public -> private -> public checkbox in the channel creation, it ends up creating the channel on 3rd check switch - [ ] add keyboard only controls | at least for most important parts and the rest might be accessible with: (down) - [ ] add search bar / search modal – that will allow users to instantly navigate to room / focus on app element & etc - [ ] Actually smart data management – cache messages, lazy load messages on scroll (currently hardcoded 100msgs fetched + new ones)