# Runtime split – Patch A This patch introduces the runtime split scaffolding without performing the full behavioral cutover. ## Added - `dip.runtime.mode` with values `LEGACY` / `NEW` - `@ConditionalOnRuntimeMode` - `DipSearchProperties` (`dip.search.*`) - `LegacyTedProperties` (`legacy.ted.*`) as migration scaffold - example `application-legacy.yml` and `application-new.yml` ## First gated beans ### LEGACY - `GenericVectorizationRoute` - `DocumentEmbeddingProcessingService` - `ConfiguredEmbeddingModelStartupRunner` - `GenericVectorizationStartupRunner` ### NEW - `EmbeddingSubsystemStartupValidator` - `PgVectorSemanticSearchEngine` - `GenericSearchController` ## Intentional limitation of Patch A This patch does **not** yet switch import/runtime orchestration to the new embedding job flow. It only establishes the explicit runtime mode infrastructure and starts separating bean graphs. ## Follow-up patch (Patch B) - add a NEW-mode embedding job scheduler - make generic import enqueue new embedding jobs - disable legacy vector route in NEW mode operationally - move active search tuning from `ted.search.*` to `dip.search.*`