mirror of
https://github.com/RedWizardsLab/EchoHub.git
synced 2026-09-04 08:36:11 +02:00
docs: update API documentation and changelog for v0.2.5 release
This commit is contained in:
@@ -5,7 +5,9 @@ Articles related to the EchoHub TUI client built with Terminal.Gui v2.
|
|||||||
## Topics
|
## Topics
|
||||||
|
|
||||||
- Terminal.Gui v2 patterns and conventions
|
- Terminal.Gui v2 patterns and conventions
|
||||||
- Theme system and customization
|
- Theme system and customization (including transparent theme)
|
||||||
- Command system reference
|
- Command system reference
|
||||||
- Configuration management
|
- Configuration and session persistence
|
||||||
|
- Audio playback and file downloads
|
||||||
|
- Automatic update checking
|
||||||
- [Notification sounds](../../articles/notification-sounds.md)
|
- [Notification sounds](../../articles/notification-sounds.md)
|
||||||
|
|||||||
@@ -5,5 +5,5 @@ Articles related to the EchoHub.Core shared library.
|
|||||||
## Topics
|
## Topics
|
||||||
|
|
||||||
- Data models and DTOs
|
- Data models and DTOs
|
||||||
- Contract interfaces (IChatService, IChatBroadcaster, IEchoHubClient)
|
- Contract interfaces (IChatService, IChannelService, IChatBroadcaster, IEchoHubClient)
|
||||||
- Validation constants and shared rules
|
- Validation constants and shared rules
|
||||||
|
|||||||
+2
-2
@@ -10,11 +10,11 @@ Terminal.Gui v2 TUI application -- UI components, services, themes, and configur
|
|||||||
|
|
||||||
### Core
|
### Core
|
||||||
|
|
||||||
Shared library -- DTOs, models, constants, and contracts (`IChatService`, `IChatBroadcaster`, `IEchoHubClient`).
|
Shared library -- DTOs, models, constants, and contracts (`IChatService`, `IChannelService`, `IChatBroadcaster`, `IEchoHubClient`).
|
||||||
|
|
||||||
### Server
|
### Server
|
||||||
|
|
||||||
ASP.NET Core server -- controllers, hubs, ChatService, SignalRBroadcaster, authentication, and data access.
|
ASP.NET Core server -- controllers, hubs, ChatService, ChannelService, SignalRBroadcaster, authentication, file cleanup, and data access.
|
||||||
|
|
||||||
### Server.Irc
|
### Server.Irc
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ Articles related to the EchoHub server built with ASP.NET Core.
|
|||||||
- SignalR hub and real-time messaging
|
- SignalR hub and real-time messaging
|
||||||
- IRC gateway and protocol bridging
|
- IRC gateway and protocol bridging
|
||||||
- ChatService and broadcaster pattern
|
- ChatService and broadcaster pattern
|
||||||
- File upload and validation
|
- ChannelService and channel CRUD
|
||||||
|
- File upload, validation, and cleanup
|
||||||
- Rate limiting configuration
|
- Rate limiting configuration
|
||||||
- Database schema and migrations
|
- Database schema, migrations, and DataMigrationService
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ Shared library containing:
|
|||||||
|
|
||||||
- **Models**: `User`, `Channel`, `Message`, `RefreshToken`
|
- **Models**: `User`, `Channel`, `Message`, `RefreshToken`
|
||||||
- **DTOs**: Record types for API requests/responses
|
- **DTOs**: Record types for API requests/responses
|
||||||
- **Contracts**: `IChatService` (protocol-agnostic chat operations), `IChatBroadcaster` (event fan-out interface), `IEchoHubClient` (SignalR client interface)
|
- **Contracts**: `IChatService` (protocol-agnostic chat operations), `IChannelService` (channel CRUD and membership), `IChatBroadcaster` (event fan-out interface), `IEchoHubClient` (SignalR client interface)
|
||||||
- **Constants**: `ValidationConstants` (shared regex patterns), `HubConstants`
|
- **Constants**: `ValidationConstants` (shared regex patterns), `HubConstants`
|
||||||
|
|
||||||
### EchoHub.Server
|
### EchoHub.Server
|
||||||
@@ -33,7 +33,7 @@ ASP.NET Core web application:
|
|||||||
- **Hubs**: SignalR `ChatHub` -- thin adapter delegating to `IChatService`
|
- **Hubs**: SignalR `ChatHub` -- thin adapter delegating to `IChatService`
|
||||||
- **Auth**: JWT token service (15-min access tokens, 30-day refresh tokens)
|
- **Auth**: JWT token service (15-min access tokens, 30-day refresh tokens)
|
||||||
- **Data**: EF Core with SQLite
|
- **Data**: EF Core with SQLite
|
||||||
- **Services**: `ChatService` (core business logic), `SignalRBroadcaster`, presence tracking, file storage, image-to-ASCII conversion
|
- **Services**: `ChatService` (core business logic), `ChannelService` (channel CRUD and membership), `SignalRBroadcaster`, presence tracking, file storage, image-to-ASCII conversion, `FileCleanupService` (periodic removal of expired uploads), `DataMigrationService` (startup schema/data evolution)
|
||||||
|
|
||||||
### EchoHub.Server.Irc
|
### EchoHub.Server.Irc
|
||||||
|
|
||||||
@@ -51,9 +51,9 @@ IRC users authenticate with existing EchoHub accounts via `PASS`/`NICK`/`USER` o
|
|||||||
Terminal.Gui v2 TUI application:
|
Terminal.Gui v2 TUI application:
|
||||||
|
|
||||||
- **UI**: Main window, dialogs, chat renderer with ANSI color support
|
- **UI**: Main window, dialogs, chat renderer with ANSI color support
|
||||||
- **Services**: API client with automatic token refresh, SignalR connection wrapper
|
- **Services**: API client with automatic token refresh, SignalR connection wrapper, audio playback (NetCoreAudio), automatic update checker (AlwaysUpToDate)
|
||||||
- **Themes**: 13 built-in color themes
|
- **Themes**: 13 built-in color themes (including transparent theme with true terminal transparency)
|
||||||
- **Config**: Client configuration management
|
- **Config**: Client configuration management with session persistence ("Remember Me" refresh tokens)
|
||||||
|
|
||||||
## Communication
|
## Communication
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ Release history for EchoHub.
|
|||||||
|
|
||||||
## Releases
|
## Releases
|
||||||
|
|
||||||
- [v0.2.5](v0.2.5.md) - Audio Playback, File Downloads & IRC Fixes
|
- [v0.2.5](v0.2.5.md) - Session Persistence, Auto-Updates, Audio & Transparent Theme
|
||||||
- [v0.2.4](v0.2.4.md) - E2E Message Encryption
|
- [v0.2.4](v0.2.4.md) - E2E Message Encryption
|
||||||
- [v0.2.3](v0.2.3.md) - Moderation, Embeds & UI Overhaul
|
- [v0.2.3](v0.2.3.md) - Moderation, Embeds & UI Overhaul
|
||||||
- [v0.2.2](v0.2.2.md) - Startup & Shutdown Fixes
|
- [v0.2.2](v0.2.2.md) - Startup & Shutdown Fixes
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# v0.2.5 - Audio Playback, File Downloads & IRC Fixes
|
# v0.2.5 - Session Persistence, Auto-Updates, Audio & Transparent Theme
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
### File Downloads
|
### File Downloads
|
||||||
|
|
||||||
- Press Enter on a file message in the TUI client to download it to the local machine
|
- Press Enter on a file message in the TUI client to download and open it with the system default application
|
||||||
- `ApiClient.DownloadFileAsync()` streams file downloads from the server
|
- `ApiClient.DownloadFileAsync()` streams file downloads from the server
|
||||||
- File and audio messages in the chat list now show colored indicators with interaction hints
|
- File and audio messages in the chat list now show colored indicators with interaction hints
|
||||||
|
|
||||||
@@ -53,6 +53,27 @@
|
|||||||
- New "Logout" menu item (Server menu): revokes the refresh token server-side and clears the saved session
|
- New "Logout" menu item (Server menu): revokes the refresh token server-side and clears the saved session
|
||||||
- Removed dead `SavedServer.Token` field (stored 15-min access token that was never read back)
|
- Removed dead `SavedServer.Token` field (stored 15-min access token that was never read back)
|
||||||
|
|
||||||
|
### Automatic Update Checking
|
||||||
|
|
||||||
|
- `UpdateChecker` rewritten to use the [AlwaysUpToDate](https://github.com/AuriRex/AlwaysUpToDate) library for self-updating
|
||||||
|
- Polls the EchoHub version manifest hourly (active only in `RELEASE` builds)
|
||||||
|
- `UpdateConfirmDialog` shows current vs. available version with Update/Cancel buttons
|
||||||
|
- `UpdateProgressDialog` displays real-time download progress bar
|
||||||
|
- Errors are logged via Serilog instead of being silently swallowed
|
||||||
|
|
||||||
|
### Windows Installer
|
||||||
|
|
||||||
|
- New Inno Setup script (`installer/Installer.iss`) to build a Windows installer
|
||||||
|
- Auto-reads product version from the built EXE
|
||||||
|
- User-level install by default (no admin required), with admin override option
|
||||||
|
- Creates desktop and quick-launch shortcuts (optional)
|
||||||
|
- Supports English and German languages
|
||||||
|
|
||||||
|
### Application Icons
|
||||||
|
|
||||||
|
- New `hue_icon` branding assets (ICO, PNG, SVG) in `assets/`
|
||||||
|
- Application icon set on both Client and Server projects
|
||||||
|
|
||||||
### #general Channel Protection
|
### #general Channel Protection
|
||||||
|
|
||||||
- `#general` channel is now auto-recreated if somehow missing (both in `GetChannels` endpoint and `JoinChannel` flow)
|
- `#general` channel is now auto-recreated if somehow missing (both in `GetChannels` endpoint and `JoinChannel` flow)
|
||||||
@@ -82,6 +103,12 @@
|
|||||||
## Infrastructure
|
## Infrastructure
|
||||||
|
|
||||||
- Audio MIME types in `FilesController` (mp3, wav, ogg, flac, aac, m4a, wma)
|
- Audio MIME types in `FilesController` (mp3, wav, ogg, flac, aac, m4a, wma)
|
||||||
|
- CI workflows updated to handle Terminal.Gui submodule `nuget.config` workaround (`rm -f` step)
|
||||||
|
- Root `nuget.config` added for package source management
|
||||||
|
- Terminal.Gui formatting excluded from CI format checks
|
||||||
|
- Recursive submodule fetching enabled in CI workflows
|
||||||
|
- `Server:Admins` config array in `appsettings.example.json` for designating admin usernames
|
||||||
|
- `Storage:CleanupIntervalHours` and `Storage:RetentionDays` added to `appsettings.example.json`
|
||||||
- `FakeChannelService` test helper added for IRC unit tests
|
- `FakeChannelService` test helper added for IRC unit tests
|
||||||
- Test suites: ChatLine, CommandHandler, DataMigrationService, FileValidationHelper, ImageToAsciiService, IrcMessageFormatter, JwtTokenService, LinkEmbedService
|
- Test suites: ChatLine, CommandHandler, DataMigrationService, FileValidationHelper, ImageToAsciiService, IrcMessageFormatter, JwtTokenService, LinkEmbedService
|
||||||
- IRC abstraction layer test suite: IrcMessage parsing, IrcMessageFormatter, IrcClientConnection, IrcCommandHandler, IrcBroadcaster
|
- IRC abstraction layer test suite: IrcMessage parsing, IrcMessageFormatter, IrcClientConnection, IrcCommandHandler, IrcBroadcaster
|
||||||
|
|||||||
Reference in New Issue
Block a user