# ClaudeDo.App Desktop entry point for the ClaudeDo application. Configures DI, initializes the database, and launches the Avalonia window. ## Responsibility - `Program.cs` — STA thread, DI container registration (repositories, services, viewmodels), schema init, Avalonia builder - `App.axaml` / `App.axaml.cs` — Avalonia application lifecycle, main window creation, static `ServiceProvider` accessor - `ViewLocator.cs` — reflection-based IDataTemplate that maps ViewModels to Views by naming convention ## Dependencies - Avalonia 12.0.0 (Desktop, Fluent theme, Inter fonts) - CommunityToolkit.Mvvm 8.4.1 - Microsoft.Extensions.DependencyInjection 8.0.1 - Microsoft.AspNetCore.SignalR.Client 8.0.11 - Microsoft.Data.Sqlite 8.0.11 - Project references: ClaudeDo.Data, ClaudeDo.Ui ## DI Registration Pattern - **Singletons**: SqliteConnectionFactory, all Repositories, WorkerClient, MainWindowViewModel, TaskListViewModel, TaskDetailViewModel, StatusBarViewModel - **Transients**: TaskEditorViewModel, ListEditorViewModel (created per dialog) ## Notes - This project owns the composition root — all wiring happens here - ViewLocator resolves `FooViewModel` -> `FooView` by replacing "ViewModel" with "View" in the type name - AvaloniaUI diagnostics are conditionally included (DEBUG only)