Files
ClaudeDo/src/ClaudeDo.App/CLAUDE.md

1.3 KiB

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)