All checks were successful
Release / release (push) Successful in 35s
Drop the removed tag system, fix the retired Manual status and the atomic queue-claim location, refresh the App DI registrations to the Islands VMs, update the Data table list, correct a stale test reference, and document the interface-folder and single-consumer-fold conventions plus the .NET 8 build path. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1.6 KiB
1.6 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 builderApp.axaml/App.axaml.cs— Avalonia application lifecycle, main window creation, staticServiceProvideraccessorViewLocator.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:
IDbContextFactory, all Repositories, GitService, WorkerClient,IReleaseClient,InstallerLocator/WorkerLocator, the island VMs (ListsIslandViewModel,TasksIslandViewModel,DetailsIslandViewModel) andIslandsShellViewModel(the window's DataContext) - Transients: modal VMs (
SettingsModalViewModel,MergeModalViewModel,ListSettingsModalViewModel,RepoImportModalViewModel,WorktreeModalViewModel,WorktreesOverviewModalViewModel,PrimeClaudeTabViewModel), several exposed asFunc<T>factories for on-demand dialog creation
Notes
- This project owns the composition root — all wiring happens here
- ViewLocator resolves
FooViewModel->FooViewby replacing "ViewModel" with "View" in the type name - AvaloniaUI diagnostics are conditionally included (DEBUG only)