63 lines
2.0 KiB
Markdown
63 lines
2.0 KiB
Markdown
# Phase 5: Model Source Validation - Context
|
|
|
|
**Gathered:** 2026-04-02
|
|
**Status:** Ready for planning
|
|
**Mode:** Auto-generated (implementation already complete)
|
|
|
|
<domain>
|
|
## Phase Boundary
|
|
|
|
Users can choose valid runtime sources, models, and storage paths without destabilizing draft safety or applying invalid combinations.
|
|
|
|
</domain>
|
|
|
|
<decisions>
|
|
## 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.
|
|
|
|
</decisions>
|
|
|
|
<code_context>
|
|
## 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<string, FieldValidation>` 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
|
|
|
|
</code_context>
|
|
|
|
<specifics>
|
|
## Specific Ideas
|
|
|
|
Implementation already complete — no additional requirements.
|
|
|
|
</specifics>
|
|
|
|
<deferred>
|
|
## Deferred Ideas
|
|
|
|
None — phase complete.
|
|
|
|
</deferred>
|