Initial ForgeLM import

This commit is contained in:
Evandro Fonseca Junior committed 2026-03-29 19:10:57 -03:00
commit a392b9dc60
4296 files changed
+1212675

No files matched your search

@@ -0,0 +1,104 @@
# Plan 04-03: Validation UI and Recovery Experience
**Wave:** 2
**Phase:** 4
**Requirements addressed:** MODL-01, MODL-02
---
## Objective
Implement inline validation UI and recovery guidance so users can understand and fix invalid model-source combinations before applying changes.
---
## Read First
- `tauri-app/src/features/runtime/components/RuntimeSettingsDrawer.tsx` — settings form UI
- `tauri-app/src/features/runtime/runtime-settings-form.ts` — form state and validation
- `tauri-app/src/features/runtime/types.ts` — RuntimeDraftFieldMeta, RuntimeWorkspaceHealth
- `.planning/phases/04-model-source-validation/04-RESEARCH.md` — recovery guidance patterns
---
## Action
1. **Add validation message component** in the settings drawer:
Create or extend a validation message display:
```typescript
interface ValidationMessageProps {
field: RuntimeDraftFieldKey;
fieldState: RuntimeDraftFieldMeta;
tone?: "warning" | "danger";
}
// Render below the relevant form field when fieldState.invalid is true
// Show icon + message text
// Use danger tone for errors, warning for recoverable issues
```
2. **Show validation state in form fields**:
- Add visual indicator (red border) to invalid fields
- Add validation message below each invalid field
- Disable or warn when saving with invalid fields
3. **Add recovery guidance for common issues**:
a) **Model not in directory**:
```
"model_path" is not in the current models folder.
Options:
- Select a model from the list below
- Browse to select a different model file
- Change the models folder
```
b) **Models folder empty**:
```
No models found in this folder.
Options:
- Select a different folder
- Add .gguf files to this folder
- Import models from HuggingFace
```
c) **Invalid URL format**:
```
"server_url" must be a valid URL (https://...)
```
4. **Integrate with lifecycle apply flow** (from Phase 2):
- Check field validation before allowing save/apply
- Show "Cannot apply: fix validation errors first" if fields are invalid
- Use applyImpact to determine if restart is needed after validation passes
5. **Add model count badge** in models dir field:
- Show "📁 {dirName} ({count} models)" when scanned
- Show "📁 {dirName} (scanning...)" during scan
- Show "📁 {dirName} (no models)" when empty
---
## Acceptance Criteria
- [ ] Invalid fields show red border and error message
- [ ] Validation messages appear below the relevant form field
- [ ] Recovery guidance provides clear next steps
- [ ] User cannot apply/save when critical fields are invalid
- [ ] Model count is displayed after successful scan
- [ ] Scanning shows loading state
---
## Notes
- Reuse existing form field styling patterns
- Keep validation messages concise but actionable
- Consider accessibility (color-blind users should understand errors)
- Link to relevant documentation or help if needed
- Test with various invalid states: missing dir, invalid path, wrong mode