-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Overview
Create the Windows desktop app project scaffold at windows/ using C#, WPF, and .NET 8 LTS.
Project Structure
windows/
├── PPGDesktop.sln
├── PPGDesktop/
│ ├── PPGDesktop.csproj
│ ├── App.xaml / App.xaml.cs # Entry, DI container, global resources
│ ├── MainWindow.xaml / .cs # Shell: Grid with sidebar + content area
│ ├── Models/
│ │ ├── Manifest.cs # Manifest, WorktreeEntry, AgentEntry
│ │ ├── AgentVariant.cs # Variant definitions
│ │ ├── ServerConnection.cs # URL, token, name
│ │ ├── AppSettings.cs # Settings model
│ │ └── DashboardSession.cs # Session persistence model
│ ├── ViewModels/
│ │ ├── MainViewModel.cs # Root, navigation state
│ │ ├── SidebarViewModel.cs # Tree items, selection
│ │ ├── TerminalViewModel.cs # Terminal bridge state
│ │ ├── HomeDashboardViewModel.cs
│ │ ├── SpawnDialogViewModel.cs
│ │ ├── SettingsViewModel.cs
│ │ ├── PromptsViewModel.cs
│ │ ├── SwarmsViewModel.cs
│ │ └── SchedulesViewModel.cs
│ ├── Views/
│ │ ├── SidebarView.xaml
│ │ ├── TerminalView.xaml
│ │ ├── HomeDashboardView.xaml
│ │ ├── WorktreeDetailView.xaml
│ │ ├── SpawnDialog.xaml
│ │ ├── SettingsView.xaml
│ │ ├── PromptsView.xaml
│ │ ├── SwarmsView.xaml
│ │ ├── SchedulesView.xaml
│ │ └── AgentConfigView.xaml
│ ├── Services/
│ │ ├── PpgApiClient.cs # HttpClient REST wrapper
│ │ ├── WebSocketClient.cs # Reconnecting WS
│ │ ├── ManifestStore.cs # Observable manifest state
│ │ └── TokenStorage.cs # DPAPI credential storage
│ ├── Terminal/
│ │ ├── TerminalControl.cs # Native WPF terminal renderer
│ │ ├── VtParser.cs # VT100/xterm escape sequence parser
│ │ ├── TerminalBuffer.cs # Scrollback buffer + screen state
│ │ └── AnsiColorMap.cs # ANSI color palette
│ ├── Converters/
│ │ ├── StatusToColorConverter.cs
│ │ └── BoolToVisibilityConverter.cs
│ └── Theme/
│ └── Theme.cs # Adaptive light/dark colors
├── PPGDesktop.Tests/
│ └── PPGDesktop.Tests.csproj
.csproj Dependencies
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows</TargetFramework>
<UseWPF>true</UseWPF>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.*" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.*" />
</ItemGroup>
</Project>MVVM Architecture
CommunityToolkit.MvvmforObservableObject,RelayCommand, source generatorsMicrosoft.Extensions.DependencyInjectionfor service registrationManifestStoreas singleton observable service- ViewModels bind to ManifestStore properties
Acceptance Criteria
-
dotnet buildcompiles cleanly - App launches and shows empty MainWindow
- DI container registers all services and view models
- MainWindow has Grid layout with sidebar column + content column
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request