Section 19: Repository Structure
Monorepo Overview
Single repository containing all services, agents, frontends, and shared libraries. ~46 projects in the Dhadgar.sln solution.
Directory Structure
MeridianConsole/
├── Dhadgar.sln # Main solution
├── global.json # .NET SDK version
├── Directory.Build.props # Shared build config
├── Directory.Packages.props # Central package versions
├── azure-pipelines.yml # CI/CD
├── src/
│ ├── Agents/ # Customer-side agents
│ │ ├── Dhadgar.Agent.Core/
│ │ ├── Dhadgar.Agent.Linux/
│ │ └── Dhadgar.Agent.Windows/
│ ├── Shared/ # Cross-cutting libraries
│ │ ├── Dhadgar.Contracts/
│ │ ├── Dhadgar.Messaging/
│ │ ├── Dhadgar.ServiceDefaults/
│ │ └── Dhadgar.Shared/
│ ├── Dhadgar.Gateway/ # YARP API Gateway
│ ├── Dhadgar.Identity/ # Auth service
│ ├── Dhadgar.Servers/ # Game server management
│ ├── Dhadgar.Nodes/ # Agent management
│ ├── Dhadgar.Tasks/ # Background jobs
│ ├── Dhadgar.Files/ # File management
│ ├── Dhadgar.Mods/ # Mod registry
│ ├── Dhadgar.Console/ # Real-time console
│ ├── Dhadgar.Billing/ # Subscriptions
│ ├── Dhadgar.Notifications/
│ ├── Dhadgar.Firewall/
│ ├── Dhadgar.Secrets/
│ ├── Dhadgar.Discord/
│ ├── Dhadgar.Panel/ # Main web UI
│ ├── Dhadgar.ShoppingCart/# Marketing site
│ └── Dhadgar.Scope/ # This documentation site
├── tests/ # 1:1 test projects
├── deploy/
│ ├── compose/ # Docker Compose (local dev)
│ ├── kubernetes/ # K8s manifests
│ └── terraform/ # IaC
└── docs/ # Architecture docs Key Files
| File | Purpose |
|---|---|
| global.json | Pins .NET SDK to 10.0.100 |
| Directory.Packages.props | Central package version management |
| CLAUDE.md | Instructions for Claude Code AI assistant |
| azure-pipelines.yml | CI/CD pipeline definition |
Branching Strategy
Trunk-based: Short-lived feature branches merged to main. PRs require review and
passing CI. No long-lived release branches (yet).