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.
Include Luna AI Assistant design docs covering channels, configuration,
core architecture, memory, scheduler, and skills. Add reference docs
from OpenClaw and ZeroClaw projects, plus Mistral and OpenAI API specs.
Implement web frontend using Vite + React + TypeScript with:
- Chakra UI component library for theming and styling
- SignalR bridge (lunaBridge) for real-time server communication
- Chat components (ChatPanel, ChatInput, ChatMessage)
- Layout components (AppLayout, Sidebar, StatusBar, SystemPanel)
- Custom useChat hook for conversation state management
- Dark/light theme support via ColorModeProvider
- Mock conversation data for development
Implement standalone CLI client that connects to Luna.Core via SignalR
for interactive chat sessions. Includes ChatClientService for managing
the hub connection and streaming responses, with a hosted service
architecture using Microsoft.Extensions.Hosting.
Comprehensive NUnit test suite covering ChannelManager, CliChannel,
TelegramChannel, DI registration, and integration scenarios. Uses
Moq for mocking with test stubs for isolated unit testing.
Define channel abstractions (IChannel, IChannelManager) with event-driven
message and connection handling. Implement ChannelManager for multi-channel
orchestration, CliChannel for terminal I/O, TelegramChannel with adapter
pattern for bot API integration, and WebChannel stub. Includes DI
registration and channel type enumeration.
Implement IMemoryStore interface and MemoryStore using EF Core with
SQLite for conversation and knowledge persistence. Includes DI
service registration extensions.
Implement the core application server as an ASP.NET web host with:
- SignalR ChatHub for real-time client communication
- Session management with token estimation for context windowing
- Extensible tool system with attribute-based tool discovery
- Chat stream update builder for streaming AI responses
- App configuration with appsettings for development and production
Define IAgent interface and implement CoreAgent (main conversational
agent) and LibrarianAgent (knowledge retrieval agent). Includes DI
service collection extensions for agent registration.
Define IProvider interface and implement concrete providers for Mistral
(with custom DTOs for chat completion API) and Ollama (via OllamaSharp).
Includes DI registration extensions using Microsoft.Extensions.AI.
Implement configuration system with embedded TOML resources for agent
and provider definitions, custom IConfigurationSource/Provider for
agent and provider options, and DI extension methods. Includes config
models for agents, providers, sessions, and Telegram integration.
Introduce ChannelMessage and ChatStreamUpdate types used across the
solution for inter-project communication between channels, core, and
the web interface.
Set up .NET solution structure with Luna.sln and Luna.slnx defining
all project references and build configurations for the multi-project
Luna AI assistant architecture.