Interactive training removal
Status
Public interactive training is completely removed, with no compatibility window. Client.training_service, temporary-scope training factories and the envloop.training module are removed. Pointing an upstream SDK or raw HTTP at the platform cannot restore them; old Keys/JWTs/sessions and administrators receive the same removal response.
Migrate
Use managed SFT through POST /v1/job with type=train, or client.training_jobs.submit. Discover configured recipes at GET /v1/job/training-models / client.training_jobs.models().
Workload boundaries
The built-in managed recipe supports SFT with text or bounded inline images. Custom loss, RL and optimizer-state resume have no public replacement in this change; do not translate them silently to SFT. Existing checkpoint/history resources and normal inference APIs retain their authorization contracts. Checkpoint registration does not prove resumability.
Removal response
Removed wire routes return 410 INTERACTIVE_TRAINING_REMOVED with managed migration guidance. Read history/checkpoints through Job/checkpoint resources. Future polling is removed because it can advance deferred training; no automatic replay, termination or data deletion occurs. Internal managed controllers retain backend protocol dependencies.
Verification
Offline boundary tests do not demonstrate a deployed service, available GPU, training quality or paid acceptance. Source changes require separately authorized deployment and package publication.
Sampling boundary
Normal inference APIs remain supported; interactive samplers are removed.
After a deployment switches this boundary, old interactive clients cannot heartbeat or advance work; existing abandonment policies may release their resources. Inspect existing Jobs and cleanup state through Job APIs. A source merge does not mean that deployment happened.