From 923c04736b79a3f348154e5c12baac564a85ebc1 Mon Sep 17 00:00:00 2001 From: legop3 Date: Mon, 28 Sep 2026 12:52:20 -0400 Subject: [PATCH] slop --- plans/rover learning service.md | 14 ++++++++++++-- server/src/configuration/migrations.js | 12 ++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/plans/rover learning service.md b/plans/rover learning service.md index 730f193c..bfd97dde 100644 --- a/plans/rover learning service.md +++ b/plans/rover learning service.md @@ -663,8 +663,8 @@ models, silent controllers, and training stopping after a few jobs. - Fresh `training/resume-v2.pt` prevents old training exposure contaminating the new validation split. Existing published models and old resume.pt are preserved. New checkpoints retain optimizer progress even when publication is blocked. -- Deployment config: remove the old `training.roundsPerSession` key because the - schema is strict. Set `checkpointEverySteps: 1000`, `minimumDrivingMinutes: 30`, +- Deployment config: migration 3 automatically removes the obsolete + `training.roundsPerSession` key from saved revisions before startup validation. Set `checkpointEverySteps: 1000`, `minimumDrivingMinutes: 30`, and `newDrivingMinutesPerModel: 10`; saved values override changed defaults. - Verification: four focused configuration tests passed, modified Node entry points passed syntax checks, targeted VIP ESLint passed, and the production @@ -674,3 +674,13 @@ models, silent controllers, and training stopping after a few jobs. dock transitions, actual optimizer/evaluation/publication runs on recordings, browser appearance/live updates, and real autonomous behavior. Do not claim these checks passed or that the existing event-based policy now drives well. + + +### Startup regression repair + +The actual server crash reported CONFIG_VALIDATION_FAILED for the removed +roverLearning.training.roundsPerSession field. Added configuration database +migration 3 to remove only that obsolete key from all saved revisions before +startup validation. Other settings remain intact; normal default filling adds +new fields. No manual database/config edits are required. Existing focused +migration and normalization tests passed (2/2); production restart is unverified. diff --git a/server/src/configuration/migrations.js b/server/src/configuration/migrations.js index c1c33bec..f2802417 100644 --- a/server/src/configuration/migrations.js +++ b/server/src/configuration/migrations.js @@ -72,6 +72,18 @@ const migrations = [ }); }, }, + { + version: 3, + run(db) { + // Migrate historical revisions too, so rolling back settings cannot + // restore the removed training-visit limit and break startup again. + db.prepare(` + UPDATE configuration_revisions + SET config_json = json_remove(config_json, '$.roverLearning.training.roundsPerSession') + WHERE json_type(config_json, '$.roverLearning.training.roundsPerSession') IS NOT NULL + `).run(); + }, + }, ]; function applySchemaMigrations(db) {