feature/insights #46

Merged
cameron merged 25 commits from feature/insights into master 2026-01-15 01:07:59 +00:00

25 Commits

Author SHA1 Message Date
Cameron
e31d5716b6 Additional cleanup and warning fixing 2026-01-14 15:21:44 -05:00
Cameron
02ca60a5d0 Remove individual messages embedding SQL 2026-01-14 14:23:50 -05:00
Cameron
af35a996a3 Cleanup unused message embedding code
Fixup some warnings
2026-01-14 13:33:36 -05:00
Cameron
e2d6cd7258 Run clippy fix 2026-01-14 13:17:58 -05:00
Cameron
e9729e9956 Fix unused import from binary from getting removed with cargo fix 2026-01-14 13:13:06 -05:00
Cameron
b7582e69a0 Add model capability caching and clear functions 2026-01-14 13:12:09 -05:00
Cameron
f65f4efde8 Make date parse from metadata a little more consistent 2026-01-14 12:54:36 -05:00
Cameron
a37a211282 Fix upload with missing file name or space in filename 2026-01-11 21:15:41 -05:00
Cameron
ad0bba63b4 Add check for vision capabilities 2026-01-11 15:22:24 -05:00
Cameron
5b35df4007 Remove unused function 2026-01-11 14:42:25 -05:00
Cameron
fa600f1c2c Fallback to sorting by Metadata date 2026-01-11 14:39:50 -05:00
Cameron
0efa8269a1 Fix test 2026-01-10 11:34:16 -05:00
Cameron
b2cc617bc2 Pass image as additional Insight context 2026-01-10 11:30:01 -05:00
Cameron
084994e0b5 Daily Summary Embedding Testing 2026-01-08 13:41:32 -05:00
Cameron
61e10f7678 Improve Exif Query path handling 2026-01-08 13:41:08 -05:00
Cameron
cd66521c17 Phase 3: Integrate Google Takeout context into InsightGenerator
- Updated InsightGenerator struct with calendar, location, and search DAOs
- Implemented hybrid context gathering methods:
  * gather_calendar_context(): ±7 days with semantic ranking
  * gather_location_context(): ±30 min with GPS proximity check
  * gather_search_context(): ±30 days semantic search
- Added haversine_distance() utility for GPS calculations
- Updated generate_insight_for_photo_with_model() to use multi-source context
- Combined all context sources (SMS + Calendar + Location + Search) with equal weight
- Initialized new DAOs in AppState (both default and test implementations)
- All contexts are optional (graceful degradation if data missing)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-05 14:57:31 -05:00
Cameron
d86b2c3746 Add Google Takeout data import infrastructure
Implements Phase 1 & 2 of Google Takeout RAG integration:
- Database migrations for calendar_events, location_history, search_history
- DAO implementations with hybrid time + semantic search
- Parsers for .ics, JSON, and HTML Google Takeout formats
- Import utilities with batch insert optimization

Features:
- CalendarEventDao: Hybrid time-range + semantic search for events
- LocationHistoryDao: GPS proximity with Haversine distance calculation
- SearchHistoryDao: Semantic-first search (queries are embedding-rich)
- Batch inserts for performance (1M+ records in minutes vs hours)
- OpenTelemetry tracing for all database operations

Import utilities:
- import_calendar: Parse .ics with optional embedding generation
- import_location_history: High-volume GPS data with batch inserts
- import_search_history: Always generates embeddings for semantic search

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-05 14:50:49 -05:00
Cameron
bb23e6bb25 Cargo fix 2026-01-05 10:31:34 -05:00
Cameron
ad07f5a1fa Update README 2026-01-05 10:09:18 -05:00
Cameron
11e725c443 Enhanced Insights with daily summary embeddings
Bump to 0.5.0. Added daily summary generation job
2026-01-05 09:13:16 -05:00
Cameron
43b7c2b8ec Remove dialoguer dependency 2026-01-03 20:32:00 -05:00
Cameron
cbbfb7144b Re-enable video GIF generation 2026-01-03 20:31:18 -05:00
Cameron
cf52d4ab76 Add Insights Model Discovery and Fallback Handling 2026-01-03 20:27:34 -05:00
Cameron
1171f19845 Create Insight Generation Feature
Added integration with Messages API and Ollama
2026-01-03 10:30:37 -05:00
Cameron
0dfec4c8c5 Fix memory filename date extraction 2026-01-02 19:29:42 -05:00