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
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 and Claude Sonnet 4.5
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
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
Cameron and Claude Sonnet 4.5
6c543ffa68
Add CLAUDE.md documentation for Claude Code
...
Comprehensive guide covering build commands, architecture overview, database patterns, file processing pipeline, API structure, and development workflows.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2025-12-24 16:07:03 -05:00
Cameron and Claude Sonnet 4.5
f0d482af12
Optimize release build times with thin LTO
...
Switch from fat LTO to thin LTO for faster release builds while maintaining similar performance characteristics.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2025-12-24 10:21:47 -05:00
Cameron
c0021734b6
Try fixing Otel span propogation
2025-12-24 10:17:14 -05:00
Cameron
c1cfda9df9
Fix memories week span sorting
2025-12-24 00:27:44 -05:00
Cameron
c035678162
Add tracing to EXIF DAO methods
2025-12-23 22:57:24 -05:00
Cameron
636701a69e
Refactor file type checking for better consistency
...
Fix tests
2025-12-23 22:30:53 -05:00
Cameron
6dbac6f22f
Run cargo fmt/fix
2025-12-23 22:07:50 -05:00
Cameron
3a64b30621
Fix Date sorting in tagged/recursive search
2025-12-23 22:07:40 -05:00
Cameron
47d3ad7222
Add polling-based file watching
...
Remove notify and update otel creates
2025-12-22 22:54:19 -05:00
Cameron
df94010d21
Fix tests and improve memories date error log
2025-12-19 14:20:51 -05:00
Cameron
e3ccc123d0
Add EXIF update support
2025-12-18 21:20:45 -05:00
Cameron
b4c5a38c9d
Cargo fmt
2025-12-18 21:20:31 -05:00
Cameron
aaf9cc64be
Add Cleanup binary for fixing broken DB/file relations
2025-12-18 16:02:15 -05:00
Cameron
28d85dc4a5
Fix recursive search and media filtering
2025-12-18 11:25:50 -05:00
Cameron
721b66481e
Add EXIF search implementation to list photos endpoint
2025-12-18 10:06:13 -05:00
Cameron
eb8e08b9ff
Add EXIF search infrastructure (Phase 1 & 2)
...
Implements foundation for EXIF-based photo search capabilities:
- Add geo.rs module with GPS distance calculations (Haversine + bounding box)
- Extend FilesRequest with EXIF search parameters (camera, GPS, date, media type)
- Add MediaType enum and DateTakenAsc/DateTakenDesc sort options
- Create date_taken index migration for efficient date queries
- Implement ExifDao methods: get_exif_batch, query_by_exif, get_camera_makes
- Add FileWithMetadata struct for date-aware sorting
- Implement date sorting with filename extraction fallback
- Make extract_date_from_filename public for reuse
Next: Integrate EXIF filtering into list_photos() and enhance get_all_tags()
2025-12-18 09:34:07 -05:00
Cameron
52e1ced2a2
Improved image caching and CORS handling
2025-12-17 22:36:03 -05:00
Cameron
c6b1b46629
Fix video part directory traversal
2025-12-17 22:32:46 -05:00
Cameron
7ddc2dec64
Add indexes for favorite de-duplication
2025-12-17 22:31:16 -05:00
Cameron
1294a86a41
Add indexes for improved query performance
2025-12-17 22:31:04 -05:00
Cameron
445b82b21a
Bump to 0.4.0
2025-12-17 22:17:54 -05:00
Cameron
c7fd328925
Check Exif DB for memory collection
2025-12-17 22:10:23 -05:00
Cameron
e4d988a9fd
Cargo formatting
2025-12-17 22:10:03 -05:00
Cameron
d61fcb942a
Exif comment on TZ handling
2025-12-17 22:09:03 -05:00
Cameron
07c27bf1bb
Add HEIC and TIF image extensions to files endpoint
2025-12-17 16:57:27 -05:00
Cameron
4082f1fdb8
Add Exif storing and update to Metadata endpoint
2025-12-17 16:55:48 -05:00
Cameron
3c894335ce
Added file date format for memories
2025-12-01 13:51:17 -05:00
Cameron
f02a858368
Bump to 0.3.1 and format/clippy
2025-12-01 13:04:55 -05:00
Cameron
a7d065aadc
Tests and improved pattern-excluding behavior
2025-12-01 12:54:40 -05:00
Cameron
f5c53d1e0e
Allow for pattern-based memories folder exclusion
2025-12-01 12:29:32 -05:00
Cameron
273b877e16
Update to Rust 2024 edition
...
Formatted code.
2025-09-01 13:36:27 -04:00
Cameron
0d05b283ce
Cargo update
2025-09-01 13:28:37 -04:00
Cameron
2cc4124544
Just look for date format instead of screenshot text
2025-09-01 11:15:27 -04:00
Cameron
6f76a74b2e
Add additional memories filename regex
2025-09-01 11:09:09 -04:00
Cameron
9c04fcb1d1
Add additional memories filename regex
2025-09-01 11:01:01 -04:00
Cameron
2f91dbdc2e
Update README
2025-08-28 11:36:16 -04:00
Cameron
f27b22ead4
Update README
2025-08-28 11:35:41 -04:00
Cameron
e46953194e
Allow for excluding directories from Memories endpoint
2025-08-27 16:02:32 -04:00
Cameron
34784a39f6
Use rayon for memories endpoint
2025-08-21 16:39:33 -04:00
Cameron
544256f658
Bump to 0.3.0
2025-08-15 23:22:05 -04:00
Cameron
93957bf389
Refactor date parsing from filename by introducing reusable closure, remove redundant logging level, and simplify regex logic.
2025-08-15 23:20:07 -04:00
Cameron
8114204485
Update Otel
2025-08-15 23:18:53 -04:00
Cameron
7dcf89c47e
Add conditional sorting logic for Month span in memories sorting
2025-08-15 17:22:01 -04:00
Cameron
4315744abb
Improve Memory sorting
2025-08-13 13:23:32 -04:00
Cameron
85093ff0c7
Add parsing date from filename for memories
2025-08-12 20:55:22 -04:00
Cameron
8d9a5fd79f
Try adding timezone awareness
2025-08-11 17:11:02 -04:00
Cameron
6aa3c932fb
Run cargo fmt
2025-08-11 17:08:24 -04:00
Cameron
88114ef4d4
Add Month memory filter span
2025-08-09 22:46:25 -04:00
Cameron
caed787c04
Add /memories endpoint
2025-08-09 22:24:48 -04:00
Cameron
b3a885de28
Run cargo fmt
2025-08-08 15:06:43 -04:00
Cameron
2ea36a4c9b
Get tests building and sort of passing
2025-07-17 20:32:23 -04:00
Cameron
264195d3a2
Cleanup warnings
2025-07-17 20:08:12 -04:00
Cameron
e5afdd909b
Serve video gifs when requested
2025-07-02 15:48:49 -04:00
Cameron
3fbdba2b9c
Merge branch 'master' into feature/video-gifs
2025-06-16 21:06:38 -04:00
Cameron
97a07e11ca
Fix SQL injection vulnerability in a tag query
2025-06-12 15:01:07 -04:00
Cameron
a25ffcc351
Add enhanced logging and tracing for playlist generation
2025-06-12 13:12:01 -04:00
Cameron
2c553a8016
Additional logging and tracing enhancements
2025-06-04 15:05:23 -04:00
Cameron
7c882fd31c
Add webp files and improve logging
2025-06-03 15:23:39 -04:00
Cameron
6aff7f456a
Manually pass the current context around
2025-06-03 14:06:19 -04:00
Cameron
c4153b404c
Try using current context
2025-06-03 13:02:25 -04:00
Cameron
b11d647ffa
Try fixing span context for db call tracing
2025-06-03 12:51:37 -04:00
Cameron
1e63e0c08c
Add DB spans to the various queries
2025-06-03 12:07:26 -04:00
Cameron
785ce157e6
Get Otel span from the request
2025-05-23 18:24:54 -04:00
Cameron
d37deb36fe
Additional Otel logging and spans
2025-05-23 14:51:54 -04:00
Cameron
24d2123fc2
Fix recursive-any tag counting
...
This is bad security wise so it'll need another pass.
2025-05-18 19:57:16 -04:00
Cameron
fe0446a43f
Merge branch 'master' into feature/video-gifs
...
# Conflicts:
# Cargo.toml
# src/files.rs
# src/main.rs
2025-05-17 15:57:01 -04:00
Cameron
484eec8b39
Only use Otel on release builds
2025-05-17 13:41:30 -04:00
Cameron
5b17fba51f
Add sorting by a File's Tag Count
2025-05-17 13:41:14 -04:00
Cameron
518fba0ef5
Add missing otel.rs
2025-05-06 20:26:02 -04:00
Cameron
d6451ee782
Add Simple OpenTelemetry setup
2025-05-06 20:15:03 -04:00
Cameron
399f5f2336
Add ability to create summary clips of existing videos
2024-12-14 20:55:10 -05:00
Cameron
0edb0dbdd1
Cleanup
2024-12-07 21:53:39 -05:00
Cameron
b2a361faba
First pass on creating gifs from a video
2024-12-07 21:49:33 -05:00
Cameron
4e4a2240cf
Move video.rs into its own module
2024-12-07 21:46:37 -05:00
Cameron
3ce1b84604
Sort on recursive search
...
Run clippy
2024-12-06 11:21:42 -05:00
Cameron
4a91c6344a
Use exclude subquery for recursive all tag search
2024-12-06 11:04:08 -05:00
Cameron
ff13a57d0e
Try subquery for excluding tags
2024-12-06 10:58:40 -05:00
Cameron
03f3756ffd
Remove tag count from any tag query
2024-12-06 09:54:53 -05:00
Cameron
787d1fd5d0
Fix recursive search at the root, cleanup video generation return
2024-12-06 09:47:21 -05:00
Cameron
8bc9c5585e
log ffmpeg output and cleanup video creation
2024-12-05 20:47:51 -05:00
Cameron
04a7cb417f
Bump app version to 0.2.0
2024-12-05 20:30:45 -05:00
Cameron
18ba5796b0
Update to rust 2021
...
Fix tests
2024-12-05 20:27:01 -05:00
Cameron
9c2cd2566f
Prepare for rust edition 2021
2024-12-05 20:25:00 -05:00