Add user identity system with channel pairing and web /link command

Introduce Luna.Identity project with user identity service, pairing code
generation, and channel linking. Channels (Telegram, CLI) now verify link
status before routing messages and prompt users to pair via the web
interface. WebChannel handles /link <channel-type> <code> commands to
complete the pairing flow.

Fix inverted expiration check in IsPairingCodeExpired that caused codes
to be treated as expired immediately after creation.
This commit is contained in:
2026-04-04 16:09:10 +02:00
parent c197f94631
commit ec78c0cdf5
26 changed files with 779 additions and 465 deletions
+2
View File
@@ -42,6 +42,8 @@ public interface IChannel : IDisposable
/// </summary>
event ChannelConnectionChangedEventHandler? ConnectionStateChanged;
Task<bool> VerifyChannelLinkAsync();
/// <summary>
/// Send a message to the channel
/// </summary>