1
0
Fork 0
Commit graph

65 commits

Author SHA1 Message Date
Matthew Holt
01063cf709
python: Update dependencies
Some checks are pending
lint / lint (push) Waiting to run
Latest builds / publish (macos-15-intel) (push) Waiting to run
Latest builds / publish (macos-latest) (push) Waiting to run
Latest builds / publish (ubuntu-24.04-arm) (push) Waiting to run
Latest builds / publish (ubuntu-latest) (push) Waiting to run
Latest builds / publish (windows-latest) (push) Waiting to run
Tests / test (push) Waiting to run
2026-01-29 09:55:40 -07:00
Matthew Holt
3459478438
Let TLZ_ORIGIN override allowed_origins config
Also print allowed origins on server start for debugging.

See #171
2025-11-14 09:33:43 -07:00
Dulanic
cb14cffe25
Support comma-separated values in TLZ_ORIGIN environment variable (#168)
Allow TLZ_ORIGIN to accept multiple origins separated by commas for more
flexible CORS configuration. Whitespace around each origin is trimmed and
empty values are filtered out.

Example: TLZ_ORIGIN="http://localhost:3000,http://example.com:8080"

Co-authored-by: Dulanic <Dulanic@users.noreply.github.com>
Co-authored-by: Matt Holt <mholt@users.noreply.github.com>
2025-11-06 13:23:02 -07:00
Matthew Holt
f072765866
Import sidecar profile pictures from contact list, vcard data sources
Also fix a bug related to import planning which would divide by zero.
2025-11-04 16:20:31 -07:00
Matthew Holt
e7650c784a
Some minor changes
- New config parameter "resume_jobs" which can disable auto-resuming jobs at timeline open. (closes #159)

- Renamed "a" to "app" in one method using "Rename symbol" (not "Change all occurrences"), which surprisingly updated the identifier in ALL methods. That must be new. Anyway, that's the huge diff.

- Minor fix to metadata merge that does a more proper nil check to avoid a panic.

- Changed some omitempty to omitzero
2025-10-22 15:13:32 -06:00
Sergio Rubio
e30a5cd46d
Dockerfile fixes (#151)
* Dockerfile fixes

Significantly improves running Timelinize in Docker.

* Modernize Debian (Trixie upgrade)
* Fix Python version to avoid pytorch compat issues
* Install uv required for semantic features
* Exposes cache volumes to avoid repeated large artifacts downloads

Recommended running as:

docker run -v timelinize-cache:/app/.cache \
           -v timelinize-local:/app/.local \
           -v timelinize-repo:/repo \
           -v timelinize-config:/app/.config/timelinize \
           -p 12001:12002 timelinize

* Add missing libheif plugins

Fixes thumbnail generation.

* Fix DNG thumbnail generation

* Replace / in ref names

Fixes release builds

* Fix also macos builds
2025-10-15 13:51:56 -06:00
Matthew Holt
765a7f0780 Improve hidden file management (close #134)
And minor fix to regression in KML recognition
2025-10-11 16:33:49 -06:00
Matthew Holt
576d2c8b2a
Replace govips with vipsgen
See https://github.com/davidbyttow/govips?tab=readme-ov-file#the-recommended-path-forward-vipsgen
2025-10-08 10:36:55 -06:00
Matthew Holt
9fc0c3e5c1
Work around Google Photos bug with missing ext on sidecar video files
Also fix motion picture transcoding for data files that don't have an extension, by looking up the media type of the image
2025-10-02 18:16:24 -06:00
Matthew Holt
1938dc2f1b
Replace frozen syscall package with x/sys 2025-10-01 12:29:43 -06:00
Matthew Holt
3659325959
Obfuscate gifs, albeit as still images
This is not ideal... should probably be a blurry video instead, (or animated webp!?) but ain't nobody got time for that right now when there's DB corruption happening
2025-09-27 20:49:26 -06:00
Matthew Holt
92f83cc90b
Sort google_voice in import plan
It's actually pretty slow when in an archive file, since every conversation is a separate file.
2025-09-22 14:56:24 -06:00
Matthew Holt
3d64fbcfce
Fix iCloud image; reorder data sources in import plan
- iCloud logo was just a rasterized SVG, derp. Now it's a true SVG. Much smaller.
- Contact lists and vcards are pretty slow to import due to downloading profile pictures, so move those last
2025-09-22 14:37:35 -06:00
Matthew Holt
26f8b7da6f
Minor fixes; improve thumbnail job DB query speed
Also increase quality of transcoded videos on mac. 256k was horrendous. 512k is better but we might need 1024k.
2025-09-19 22:48:35 -06:00
Matthew Holt
aba9f3a500
Fix obfuscated videos on Mac 2025-09-19 07:51:32 -06:00
Matthew Holt
6fef8ae50f
Fixes for obfuscated images and videos incl. thumbnails 2025-09-18 23:24:33 -06:00
Matthew Holt
b5ec76b9a7
Super duper minor fixes 2025-09-18 18:18:35 -06:00
Matthew Holt
87fa5e0d61
Tweak data source sort for import jobs 2025-09-18 18:09:06 -06:00
Matthew Holt
8ca837ebb8
Fix tests 2025-09-05 21:13:09 -06:00
Matthew Holt
c9db392d20
Implement timeline settings stored in DB; toggle semantic features
I don't love that the type has to be stored in the table... it would be great if we could infer it, but I don't know how that would work for strings that look like another type.
2025-09-05 16:27:17 -06:00
Matthew Holt
b10585ed3f
Try supporting MPS (Apple Metal) for GPU 2025-09-04 23:37:38 -06:00
Matthew Holt
b3376b5298
Fix pipeline bugs; rethink embeddings
Fixed several bugs introduced by the pipeline refactoring.

Updated goexif2 fork to use my latest commit which fixes not being able to find EXIF data on some JPEG images.

Embeddings now refer to the item they are for, rather than an item referring to a single embedding. This allows items to have multiple embeddings if necessary, which gives us some flexibility when models change/improve, etc.

Also reworked the Python server to use a smaller model (base siglip2 instead of so400m) so that it will fit on more GPUs, including my 4070; as well as a new "DeviceManager" that ChatGPT helped me figure out, to choose GPU when it has enough memory for it, as conditions change.
2025-09-04 21:40:50 -06:00
Matthew Holt
1f73da0527
Fix lint errors 2025-08-21 15:39:36 -06:00
Matthew Holt
3b670ff3f7
Allow opening timeline from parent folder
This is useful if a My Timeline subfolder is (sort-of) implicitly created for the user, and the user doesn't realize that is where their timeline is. They should be able to select the same folder to open the timeline as they did to create it.
2025-07-16 22:11:47 -06:00
Matthew Holt
b365dbbafc
Fix panics with obfuscation 2025-07-09 13:30:50 -06:00
Matthew Holt
bf7f0cdf3c
Upgrade python deps; get locale on Windows 2025-06-18 10:33:30 -06:00
Matthew Holt
fa9ad482b3
Place entities from GPX sources; several other improvements/fixes
Location processing is still being revised (WIP).
2025-06-09 17:18:44 -06:00
Matthew Holt
457e3f48cc
Support env var for origin configuration 2025-06-02 16:58:44 -06:00
Matthew Holt
46f1c8f382 Navigate file picker when typing/pasting into path input 2025-06-02 16:52:00 -06:00
Matthew Holt
e6ac91870b Custom trusted origins (close #52) 2025-06-02 10:14:26 -06:00
Matthew Holt
3e311d99c3
Sort data sources in import planner; rename some DS
The sorting can help imports go faster if we put DB-heavy sources first, when the database is still small.

The data source names were also standardized to use snake_case like most other word-IDs in the app.
2025-05-16 11:10:23 -06:00
Matthew Holt
98069ee66b
Health check for python server
This ensures that searches and embedding jobs don't run before it has fully loaded, since loading models can take a while
2025-04-28 17:33:40 -06:00
Matthew Holt
f0697d2d6b
Refactor embedding jobs; enhance tooltips; upgrade gofakeit to v7
The gofakeit upgrade uses the new math/rand/v2 package, which uses uint64 more than int64, so we had to change a bunch of row IDs from int64 to uint64.
2025-04-24 16:33:41 -06:00
Matthew Holt
167585bae0
Improved demo mode / obfuscation support 2025-04-21 21:49:41 -06:00
Matthew Holt
6d231fd0c2
Improved embeddings with SigLIP2; fix semantic search bug
Still lots of room for improvement here, but I see way better results already.
2025-04-13 15:38:14 -06:00
Matthew Holt
73196f51ae
Refactor DirEntry, fix some bugs
Remove TopDir* functions, they aren't really relevant with our new import planner.
2025-04-02 21:52:49 -06:00
Matthew Holt
932831db47
Refactor data sources to make them dynamic
Also change the checkbox dropdown to a more interactive tomselect (type-to-search dropdown with chips) with pictures.

This makes it so data sources can be added to a timeline dynamically.

In the future, data sources can be implemented externally and push data to the timeline, so these need to not be rigidly hard-coded into the app and assumed to never change.

This essentially adds all their info (name, title, description, image, etc) into each timeline DB.
2025-02-11 16:49:20 -07:00
Matthew Holt
eb7717c843
Fix lint error; remove old build script
(Cross-compilation is now documented in our project wiki)
2025-02-07 12:02:47 -07:00
Matt Holt
35c5a63be4
Refactor python server code, update schema, rename config dir (#68)
* WIP

* Finish updating changes
2025-02-07 11:34:42 -07:00
Matt Holt
628ecc1cb3
ci: Update workflows; restore functioning CI jobs (#64)
* ci: Attempt to fix broken CI

It broke out of the blue several months ago. I think ubuntu-latest
updated, but there's no PPA for libheif in that distro I guess

* Try tests next

* More fixing

* Try again

* Yada yada

* Woops

* I don't really know what I'm doing
2025-01-27 22:30:54 -07:00
Matthew Holt
7c34746b31
Minor fixes and enhancements; particularly to import planner 2025-01-27 06:54:44 -07:00
Matthew Holt
d76a211218
Refactor chart functions into one 2025-01-15 14:55:49 -07:00
Matthew Holt
7123e0d409
Replace ApexCharts with ECharts; UI fixes and improvements 2025-01-15 14:21:55 -07:00
Matthew Holt
29e2bc8fef
Fix iphone/imessage: Update attribute_id in DB if inserting item piecewise
iMessage db may send a reaction graph for a message before sending the message itself to the pipeline, thus an empty item with only an original ID gets inserted, and later the full message item comes in, but I had neglected to add attribute_id to updateOverrides.
2025-01-09 18:09:58 -07:00
Matthew Holt
bb9151628f
WIP: new entity page; delete almost all DB indexes
Imports are now 4-5x faster and queries are still just about as fast. New indexes should only be created after proving their usefulness.
2025-01-07 13:42:05 -07:00
Matthew Holt
35979b4081
WIP: Config change that restarts app; refactor, bug fix map draw 2025-01-01 16:31:09 -07:00
Matthew Holt
5816c571c6
WIP settings: save is starting to function 2024-12-31 20:58:07 -07:00
Matthew Holt
4bd08bd91c
WIP settings endpoints; use attr as alternate display name in messages 2024-12-31 10:09:20 -07:00
Matthew Holt
3d11d65b8d
WIP settings page; #map mobility; WIP interactive imports
Settings page is started; non-functional, but location picker works.

Moving maps between container elements is improved by moving to nearest to mouse pointer, rather than just most center to the viewport. It also emits an event when the map is moved, allowing us to change/reset map configurations for certain displays.

More progress on interactive imports. More thought is needed before continuing.

Upgraded Mapbox libraries.
2024-12-26 11:51:47 -07:00
Matthew Holt
ce297389b0
Thumbnail job streaming; WIP: interactive imports 2024-12-19 06:51:06 -07:00