# Phase 5: Model Source Validation - Context
**Gathered:** 2026-04-02
**Status:** Ready for planning
**Mode:** Auto-generated (implementation already complete)
## Phase Boundary
Users can choose valid runtime sources, models, and storage paths without destabilizing draft safety or applying invalid combinations.
## Implementation Decisions
### Validation Strategy
- Source-mode validation runs on every draft reconciliation and draft open
- Field-level validation errors are tracked per field in draft state
- Invalid combinations are blocked before apply (not after)
- Recovery guidance shown inline via field validation messages
### the agent's Discretion
Implementation was completed as part of Phase 4 work — validation contracts, path validation, model file validation, and UI recovery experience are all implemented in runtime-utils.ts, useRuntimeManager.ts, and RuntimeSettingsDrawer.tsx.
## Existing Code Insights
### Reusable Assets
- `validateSourceMode()` in runtime-utils.ts — validates source/mode combinations
- `validateModelPath()` in runtime-utils.ts — validates model file paths
- `validateModelsDirectory()` in runtime-utils.ts — async directory validation
- `validateModelFile()` in runtime-utils.ts — validates individual model files
- Field validation state in useRuntimeManager draft state
### Established Patterns
- Validation runs on draft open, reset, and reconcile-to-baseline
- Field validations stored as `Record` in draft state
- UI shows inline validation errors per field in RuntimeSettingsDrawer
### Integration Points
- useRuntimeManager.ts — validation integrated into draft lifecycle
- RuntimeSettingsDrawer.tsx — displays validation errors inline
- runtime-utils.ts — all validation logic centralized
## Specific Ideas
Implementation already complete — no additional requirements.
## Deferred Ideas
None — phase complete.