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