Canonical layout of the repository and where each piece lives.
├── .github/
│ ├── workflows/
│ │ └── ci.yml # CI: build WPF app, generate extension rules
│ └── ISSUE_TEMPLATE/ # Bug report, feature request, config
│
├── wpf-browser/ # Privacy Monitor desktop app (WPF + WebView2)
│ ├── PrivacyMonitor.csproj
│ ├── App.xaml(.cs), MainWindow.xaml(.cs)
│ ├── BrowserTab.cs, PrivacyEngine.cs, ProtectionEngine.cs, ForensicEngine.cs
│ ├── UpdateService.cs, DesktopShortcut.cs, SystemThemeDetector.cs
│ ├── ChromeExtensionExport.cs, ReportGenerator.cs, ScriptCatalog.cs
│ ├── SecurityHeuristics.cs, ThreatSimulation.cs, TrackerIntelligence.cs
│ ├── LessonEngine.cs, Models.cs, AssemblyInfo.cs
│ ├── NetworkInterceptor/ # Live interceptor, replay, risk scoring, export
│ │ ├── ARCHITECTURE.md
│ │ ├── NetworkInterceptorService.cs, NetworkInterceptorViewModel.cs
│ │ ├── NetworkInterceptorWindow.xaml(.cs), ReplayModifyWindow.xaml(.cs)
│ │ ├── RiskScoring.cs, TrafficMetrics.cs, AlertManager.cs
│ │ └── ...
│ ├── Themes/ # WPF theme dictionaries (Light, Dark, Large variants)
│ ├── ExportBlocklist/ # CLI to export blocklist for chrome-extension
│ ├── docs/ # Technical documentation
│ ├── scripts/ # Helper scripts (firewall, uninstall)
│ ├── website/ # Canonical website (deploy source for update-vps.ps1)
│ │ ├── index.html, download.html, features.html, security.html
│ │ ├── admin.html, logs.html, setup-2fa.html
│ │ └── assets/ # styles.css, app.js, logo, screens, build-info.json
│ ├── publish.ps1 # Build single-file EXE, copy to website/
│ └── (bin/, obj/, publish/) # Build outputs — gitignored
│
├── chrome-extension/ # Chrome/Edge extension (same engine; export writes here)
│ ├── manifest.json, background.js, popup.html/.css/.js, options.html/.js
│ ├── cosmetic.css/.js # Cosmetic ad hiding filters
│ ├── ad-defuser.js/.page.js # Tracking API neutralization
│ ├── ad-shield.js/.page.js # Synthetic click / overlay protection
│ ├── click-guard.js/.page.js # Click hijacking protection
│ ├── navigation-guard.js # Script-driven redirect blocking
│ ├── redirect-blocker.js # Gateway redirect unwrapping
│ ├── preroll-skip.js # Video ad skip
│ ├── preroll-detector.js # Video ad detection
│ ├── tracker-domains.js # Generated by app: --export-blocklist
│ ├── rules.json, rules-stealth.json, rules-video-ads.json
│ └── generate-rules.js # Optional Node; C# export replaces need
│
├── browser-update-server/ # Node update server (deploy to VPS)
│ ├── server/
│ │ ├── server.js # Express: /api/latest, /api/download, /admin
│ │ ├── package.json
│ │ └── .env.example # ADMIN_PASSWORD, SESSION_SECRET (copy to .env on VPS)
│ ├── builds/
│ │ └── version.json # Version manifest for /api/latest
│ ├── nginx/ # Reverse proxy config
│ └── guacamole/ # Optional RDP-in-browser (Docker)
│
├── wpf-browser.sln # Solution file
├── update-vps.ps1 # Deploy website, server, builds → VPS
├── update-all.ps1 # Restore packages and build everything
├── README.md # Project overview
├── PROJECT_STRUCTURE.md # This file
├── CHANGELOG.md # Change log
├── DEPLOYMENT.md # GitHub push and VPS deploy steps
├── SECURITY-AUDIT-REPORT.md # Security audit findings
└── LICENSE