09fb6c1ec0
Iteration 1 — Build caching: - Backend: cache ~/.nuget/packages keyed on .csproj hashes. Typical hit: restore drops from ~15s to ~2s (NuGet packages already cached locally). - Frontend: cache node_modules + ~/.pnpm-store keyed on pnpm-lock.yaml. Typical hit: install drops from ~30s to ~3s. - Concurrency: cancel in-progress CI runs when new push arrives to the same branch (avoids queue buildup). Why: On cache hits, CI time drops ~60-70%. Faster feedback for developers means shorter fix-deploy cycles.