Wire JobSpawner into the gRPC service struct so that training jobs can be persisted to PostgreSQL before being dispatched to K8s. This is the first step toward a durable job queue that survives pod restarts. - Add `job_spawner: Option<Arc<JobSpawner>>` to MLTrainingServiceImpl - Extend `new()` constructor to accept the spawner parameter - Add `DatabaseManager::pg_pool()` accessor for cheap PgPool cloning - Construct JobSpawner in main.rs and pass `Some(job_spawner)` to service - Add compile-time test verifying the field exists Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
22 KiB
22 KiB