298 Commits

Author SHA1 Message Date
92a468233e Merge pull request 'feature/gps-map-support' (#48) from feature/gps-map-support into master
Reviewed-on: #48
2026-01-28 15:54:18 +00:00
Cameron
1efdd02eda Add GPS summary sorting
Run cargo fmt/clippy
2026-01-28 10:52:17 -05:00
Cameron
7d2a3148bb Make Memories week span sorting chronological 2026-01-26 20:51:11 -05:00
Cameron
a6cc64ece0 Bump to version 0.5.2 2026-01-26 20:05:42 -05:00
Cameron
1d2f4e3441 Add circular thumbnail creation for Map view 2026-01-26 20:04:14 -05:00
Cameron
073b5ed418 Added gps-summary endpoint for Map integration 2026-01-26 11:58:24 -05:00
701a06871c Merge pull request 'feature/search-performance' (#47) from feature/search-performance into master
Reviewed-on: #47
2026-01-26 16:03:57 +00:00
Cameron
c9410c9c91 Add rotation check to video transcoding logic
Seems like vertical videos aren't preserving rotation logic on copy.
2026-01-26 10:55:15 -05:00
Cameron
08f402d4d1 Add h264 codec detection and orphaned playlist cleanup job
Implement `is_h264_encoded` to detect existing h264 videos and optimize processing by using stream copy when possible. Introduce a background job for cleaning up orphaned playlists and segments based on missing source videos. Improve checks for playlist generation necessity.
2026-01-19 22:37:50 -05:00
Cameron
9245778391 Generate video playlists on period directory scans 2026-01-19 22:32:00 -05:00
Cameron
ea53932b4b Update Cargo.lock for version bump 2026-01-18 19:26:23 -05:00
Cameron Cordes
85e6567674 Bump to 0.5.1 2026-01-18 19:17:53 -05:00
Cameron
be483c9c1a Add database optimizations for photo search and pagination
Implement database-level sorting with composite indexes for efficient date and tag queries. Add pagination metadata support and optimize tag count queries using batch processing.
2026-01-18 19:17:10 -05:00
5e646dfc19 Merge pull request 'feature/insights' (#46) from feature/insights into master
Reviewed-on: #46
2026-01-15 01:07:57 +00:00
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
878465fea9 Merge pull request 'Implement critical security improvements for authentication' (#45) from feature/security-improvements into master
Reviewed-on: #45
2026-01-02 22:01:39 +00:00
Cameron
4d9addaf22 Add filename date to metadata if available 2025-12-29 21:54:25 -05:00
Cameron
2d915518e2 Bump to 0.4.1 2025-12-29 19:51:21 -05:00
Cameron
2d02f00e7d Fix Memories Week span sorting 2025-12-29 18:49:52 -05:00
Cameron
54e23a29b3 Fix warnings 2025-12-29 14:29:29 -05:00
Cameron
9cb923df9e Fix memory date priority 2025-12-29 12:28:17 -05:00
Cameron
2c52cffd65 Implement critical security improvements for authentication
This commit addresses several security vulnerabilities in the authentication
and authorization system:

1. JWT Encoding Panic Fix (Critical)
   - Replace .unwrap() with proper error handling in JWT token generation
   - Prevents server crashes from encoding failures
   - Returns HTTP 500 with error logging instead of panicking

2. Rate Limiting for Login Endpoint (Critical)
   - Add actix-governor dependency (v0.5)
   - Configure rate limiter: 2 requests/sec with burst of 5
   - Protects against brute-force authentication attacks

3. Strengthen Password Requirements
   - Minimum length increased from 6 to 12 characters
   - Require uppercase, lowercase, numeric, and special characters
   - Add comprehensive validation with clear error messages

4. Fix Token Parsing Vulnerability
   - Replace unsafe split().last().unwrap_or() pattern
   - Use strip_prefix() for proper Bearer token validation
   - Return InvalidToken error for malformed Authorization headers

5. Improve Authentication Logging
   - Sanitize error messages to avoid leaking user existence
   - Change from "User not found or incorrect password" to "Failed login attempt"

All changes tested and verified with existing test suite (65/65 tests passing).

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-26 23:53:54 -05:00
a2f2d4de5c Merge pull request 'feature/exif-endpoint' (#44) from feature/exif-endpoint into master
Reviewed-on: #44
2025-12-27 03:25:17 +00:00
Cameron
ccd16ba987 Files endpoint refactoring 2025-12-26 22:20:01 -05:00
Cameron
be281130d5 Send timestamp from filename for Memories endpoint 2025-12-25 23:32:00 -05:00
Cameron
ae0886cd2e Fix tag count sorting, hopefully 2025-12-25 15:17:50 -05:00