diff --git a/docs/implplan/SPRINT_20260417_002_JobEngine_scheduler_storage_compose_compatibility.md b/docs-archived/implplan/SPRINT_20260417_002_JobEngine_scheduler_storage_compose_compatibility.md similarity index 79% rename from docs/implplan/SPRINT_20260417_002_JobEngine_scheduler_storage_compose_compatibility.md rename to docs-archived/implplan/SPRINT_20260417_002_JobEngine_scheduler_storage_compose_compatibility.md index 970a8ae34..cac12d47d 100644 --- a/docs/implplan/SPRINT_20260417_002_JobEngine_scheduler_storage_compose_compatibility.md +++ b/docs-archived/implplan/SPRINT_20260417_002_JobEngine_scheduler_storage_compose_compatibility.md @@ -17,21 +17,22 @@ ## Delivery Tracker ### SCHEDULER-COMPAT-001 - Accept compose scheduler storage configuration in web host -Status: DOING +Status: DONE Dependency: none Owners: Developer / Implementer, Test Automation Task description: - The local compose stack configures Scheduler persistence through the nested path `Scheduler:Storage:Postgres:Scheduler:ConnectionString`, but `StellaOps.Scheduler.WebService` fails fast unless the flat key `Scheduler:Storage:ConnectionString` exists. Align the web host with the compose/runtime contract already used by the embedded worker path and keep plugin consumers of the scheduler storage connection string compatible with the same resolution logic. Completion criteria: -- [ ] Scheduler web host starts in local compose with the existing nested storage configuration. -- [ ] Focused Scheduler tests cover flat and nested storage configuration resolution. -- [ ] Live first-run setup can enable the default advisory mirror with scheduler alive for downstream sync execution. +- [x] Scheduler web host starts in local compose with the existing nested storage configuration. +- [x] Focused Scheduler tests cover flat and nested storage configuration resolution. +- [x] Live first-run setup can enable the default advisory mirror with scheduler alive for downstream sync execution. ## Execution Log | Date (UTC) | Update | Owner | | --- | --- | --- | | 2026-04-17 | Sprint created after live replay showed scheduler-web crash-looping on missing storage connection string while the compose stack supplied the nested scheduler storage key. | Developer | +| 2026-04-19 | Implemented `SchedulerStorageConfiguration` with flat/nested/legacy fallback; web host resolves via `ResolveConnectionString` and fails with a clear message listing all three keys. Targeted xUnit run `StellaOps.Scheduler.WebService.Tests.SchedulerStorageConfigurationTests` passes 3/3 against built DLL via direct `dotnet exec`. Live first-run scheduler boot now succeeds with compose nested storage. | Codex | ## Decisions & Risks - The fix should prefer backward compatibility: accept flat `Scheduler:Storage`, compose nested `Scheduler:Storage:Postgres:Scheduler`, and legacy `Postgres:Scheduler` rather than forcing a single config shape immediately.