You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Summary
Adds Vision Language Model (VLM) support to Private Mind, enabling users
to attach images to messages when using a vision-capable model.
### Model layer
- Added `vision` flag to `Model` type and DB schema
- Added `imagePath` to `Message` type and DB schema
- Added LFM 2.5 VL 1.6B Quantized (2.43 GB) to default models
### LLM store
- `loadModel` passes `capabilities: ['vision']` via `fromModelName`
- `sendChatMessage` converts messages with `mediaPath` to multimodal
content array `[{ type: 'image' }, { type: 'text', text }]`
### Chat bar UI
- `+` attach button in `ChatBarActions`, visible only for vision models
- Tapping opens a `BottomSheetModal` with Camera and Photo Library
options
- Image preview with loading placeholder while HEIC→JPEG conversion runs
in the background
- Themed dismiss button using `close.svg` with app color palette
### Message bubble
- Attached image renders above message text with correct `aspectRatio`
- Tapping opens a full-screen lightbox with a close button
### Model selection
- Vision chip always visible in `ModelCard` (both compact and full view)
- Featured chip hidden in compact view to prioritize Vision
### iOS permissions
- Added `NSCameraUsageDescription` and `NSPhotoLibraryUsageDescription`
to `Info.plist`
## Test plan
- [x] Download and load LFM 2.5 VL 1.6B model
- [x] Verify `+` button appears in chat bar only for vision models
- [ ] Attach image from photo library and from camera
- [ ] Verify loading placeholder appears immediately while picker
converts HEIC
- [ ] Send image-only and image+text messages
- [ ] Verify image renders in message bubble; tap opens lightbox; close
button works
- [ ] Switch to non-vision model — `+` button disappears and pending
image is cleared
- [ ] Verify Vision chip shows in both model selection sheet and model
hub
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
0 commit comments