# 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.*`
