1419cfacff
[templates] Standardize toolbar across list and detail pages
2026-08-24 14:30:57 -04:00
c491ebcce7
[bug] Fix bug in agent session templates
2026-08-24 10:24:09 -04:00
529e6fdfaf
[release] Bump to version 66.0
...
ci / test (push) Failing after 1m53s
ci / build-and-deploy (push) Has been skipped
- Do a deep dive on making homepage clearer and more efficient
2026-08-24 10:16:15 -04:00
2d80c26e6c
[books] Add goodreads exports
2026-08-23 19:05:52 -04:00
1206dee290
[tasks] Clean up fields and simplify form
2026-08-23 17:28:46 -04:00
74d0c67f02
[backups] Fix pg_dump not found in celery backup task
2026-08-13 18:56:11 -04:00
8a392f4fa2
[trails] Add geo-derived names, terminus and route tags to trail imports
2026-08-13 15:06:58 -04:00
bef416b7a1
Add WebDAV backup push to backup_database
2026-08-10 12:14:57 -04:00
bce6639b04
[scrobbles] Add dedup_scrobbles command to remove duplicate scrobbles (69f22940)
ci / test (push) Successful in 2m6s
ci / build-and-deploy (push) Has been skipped
2026-08-10 00:31:54 -04:00
cbf027203c
[music] Report and fix mismatched track metadata (0b98a1b9)
2026-08-09 10:23:09 -04:00
5e3b0055dc
[music] Resolve artist identity before splitting (fd86a11a)
2026-08-08 20:35:45 -04:00
5f88d97c69
[scrobbles] Trust webhook POST data and enrich tracks async (db6b05f8)
2026-08-08 20:16:29 -04:00
d5a753146f
Fix LastFM rate limiting dropping scrobbles (f91fdd53 follow-up)
2026-08-08 00:40:29 -04:00
4e46bcd5c1
Fix historical LastFM import resume and dedup (f91fdd53)
2026-08-07 23:56:37 -04:00
dc17a285c1
[scrobbles] Share log data on shared scrobble links (46de9f0e)
2026-08-07 20:19:32 -04:00
c61823f881
[workouts] Mark imported workout scrobbles as complete (not in progress)
2026-08-07 14:36:51 -04:00
fbb1725d10
[scrobbles] Fix LookupError in scrobble start and long-plays media lookups (868e2a91)
2026-08-07 13:02:43 -04:00
b815ca4e80
[workouts] Add Flexify workout importer (96c9fbf5)
ci / test (push) Successful in 2m26s
ci / build-and-deploy (push) Has been skipped
2026-08-07 12:46:32 -04:00
5def87e7f1
[workouts] Add workouts app with exercise catalog and workout routines (ca613753)
2026-08-06 20:36:24 -04:00
6cd05ff6c8
[tasks] Clean up org-mode note syncing for emacs webhooks (aa3dae85)
ci / test (push) Successful in 2m10s
ci / build-and-deploy (push) Has been skipped
2026-08-03 12:02:08 -04:00
b8eb13083f
[agents] Notify on agent responses and retry failed prompts
2026-08-03 10:25:39 -04:00
42ccdf5507
[agents] Offer Gemini as a model option alongside OpenRouter
ci / test (push) Has been cancelled
ci / build-and-deploy (push) Has been cancelled
2026-07-31 23:52:54 -04:00
1e338dec2d
[agents] Swap agent flow to OpenRouter with model selection
ci / test (push) Successful in 2m35s
ci / build-and-deploy (push) Has been skipped
2026-07-31 23:06:09 -04:00
de84e191df
[geoloc] Handle Nominatim 429 rate limits with throttle and retry
ci / test (push) Successful in 2m45s
ci / build-and-deploy (push) Has been skipped
2026-07-31 22:31:13 -04:00
668570188a
[agents] Use dedicated GOOGLE_AI_API_KEY for Gemini agent provider
ci / test (push) Has been cancelled
ci / build-and-deploy (push) Has been cancelled
2026-07-31 09:50:02 -04:00
af84e1419b
[agents] Auto-complete agent session scrobbles after 10 minutes
ci / test (push) Successful in 2m51s
ci / build-and-deploy (push) Has been skipped
2026-07-31 08:19:23 -04:00
eb991dbf0e
[agents] Show agent sessions on homepage with first-prompt title
ci / build-and-deploy (push) Has been cancelled
ci / test (push) Has been cancelled
2026-07-31 00:26:58 -04:00
0c92174440
[agents] Add agent-session scrobbling for Gemini and opencode providers
ci / test (push) Successful in 3m2s
ci / build-and-deploy (push) Has been skipped
2026-07-31 00:21:24 -04:00
124eb86b74
Remove concurrent-reading trend, replace with concurrent-media-listening
2026-07-30 12:07:55 -04:00
c21d6f5668
fix(tests): fix fasting custom threshold tests using Django ORM cache
...
The user_with_custom_thresholds fixture used UserProfile.objects.get_or_create()
which returns a separate Python instance from the one cached in
user._state.fields_cache['profile']. When the fixture modified and saved
the get_or_create instance, the cached instance on the user object still
held default values (periodic=16, full=24). compute_fasting() accessed
u.profile which returned the stale cached object.
Fixed by modifying through u.profile directly, which operates on the
same cached instance. Also applied black formatting to fasting.py.
2026-07-19 13:50:54 -04:00
29fc493cc2
Rewrite fasting trend algorithm and add comprehensive tests
...
- Replace day-iteration algorithm with pair-based approach for fasting
detection. Iterate consecutive food scrobble pairs and mark foodless
days between them as fasting days.
- Handle consecutive-day periodic fasting: when two food scrobbles are on
consecutive days with a gap >= periodic_threshold but < full_threshold,
mark the later day as a periodic fast (user's original bug fix).
- Fix _dt test helper to use replace() instead of subtracting hours,
producing correct timestamps (e.g., '3 days ago at 18:46' instead of
'3 days + 18h46m ago').
- Fix total_days off-by-one: removed +1 from inclusive day count so a
'last_30' period correctly reports 30 days.
- Add _drinks_on_day() for per-day drink detection (replaces whole-
window _drinks_in_window for more accurate liquid fasting detection).
- Fix Beer test fixture to use styles M2M field instead of non-existent
beer_style attribute.
- Add 26 test cases covering: classification, short gaps, periodic/
full/liquid fasting, multi-day gaps, vacation exemptions, custom
thresholds, streaks, mixed types, edge cases.
Reasoning:
The original day-iteration algorithm had fundamental issues: it marked
days with food as fasting (since it only checked prev/next food times),
it didn't filter out normal (< periodic) gaps, and the _dt helper was
misinterpreting hour parameters. The new pair-based approach is cleaner:
for each consecutive food scrobble pair, we mark the foodless days
between them. This naturally handles multi-day fasts and correctly
avoids marking food-eating days as fasting. The consecutive-day periodic
rule preserves the user's original intent of detecting overnight fasts
between meals.
2026-07-19 13:11:29 -04:00
dccc80c615
[discgolf] Fix tests and naming scheme
build / test (push) Has been cancelled
2026-06-20 00:55:16 -04:00
033239260f
[perf] Add caching and lock protections
build / test (push) Successful in 1m57s
2026-06-19 13:37:30 -04:00
c6b1e42d7a
[scrobbles] Use IDs not UUIDs in URLs
build / test (push) Successful in 1m59s
2026-06-18 11:25:57 -04:00
ed2ed59f65
[scrobbles] Fix tests around visbility
2026-06-09 12:48:01 -04:00
58639c6fc1
[importers] Add error_log to surface import errors
build / test (push) Successful in 2m2s
2026-06-08 10:58:02 -04:00
8d069df9d1
[scrobbles] Fix log saving tests
2026-05-31 23:24:22 -04:00
22956c7c7f
[music] Tracks can have multiple artists
build & deploy / test (push) Successful in 1m54s
build & deploy / build-and-deploy (push) Successful in 33s
2026-05-28 23:37:46 -04:00
83e7061b92
[birds] Fix tests
build & deploy / test (push) Successful in 1m54s
build & deploy / build-and-deploy (push) Successful in 27s
2026-05-23 18:29:16 -04:00
9bafe45951
[trails] Use half way waypoints
build & deploy / test (push) Successful in 1m51s
build & deploy / build-and-deploy (push) Successful in 29s
2026-05-21 17:13:04 -04:00
62c200ab05
[trails] Fix webdav importer
build & deploy / test (push) Successful in 1m54s
build & deploy / build-and-deploy (push) Successful in 26s
2026-05-21 13:54:28 -04:00
7c33095d87
[trails] Pull data out of FIT/GPX files
build & deploy / test (push) Successful in 1m50s
build & deploy / build-and-deploy (push) Successful in 27s
2026-05-21 11:17:13 -04:00
cb50de13c0
[trails] Add auto GPX and FIT file importing
build & deploy / test (push) Successful in 1m51s
build & deploy / build-and-deploy (push) Successful in 32s
2026-05-21 10:52:23 -04:00
e85d6ec779
[birds] Fix importer not finishing, and add formjs
2026-05-15 12:20:27 -04:00
f160f5a7b8
[birds] Add much better bird importing
build & deploy / test (push) Failing after 1m19s
build & deploy / build-and-deploy (push) Has been skipped
2026-05-15 12:10:20 -04:00
b1d6f4726b
[deploy] Fix deploy failing
build & deploy / test (push) Successful in 1m57s
build & deploy / build-and-deploy (push) Failing after 16s
2026-05-01 16:57:51 -04:00
cbdb5c49d0
[deploy] Add commit catpure to deploy step
build & deploy / test (push) Failing after 1m31s
build & deploy / build-and-deploy (push) Has been skipped
2026-05-01 16:48:58 -04:00
f486b1614b
[videos] Blow out imdb tests
build & deploy / test (push) Successful in 1m54s
build & deploy / deploy (push) Successful in 19s
2026-04-28 17:29:25 -04:00
78651af802
[tasks] Fix Todoist callback to lookup by user
2026-04-01 11:53:04 -04:00
59998ac849
[scrobbles] Allow Bearer or Token
build & deploy / test (push) Successful in 1m40s
build & deploy / deploy (push) Successful in 23s
2026-03-31 14:43:40 -04:00