Commit graph

243 commits

Author SHA1 Message Date
65f3ee9917
Merge branch 'refs/heads/fix/inbox-timestamp-exception' into sattelgeschichten 2026-05-03 12:54:05 +02:00
8d1c27d0be
test: add federation roundtrip coverage for exported activities
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-05-03 12:50:47 +02:00
29538575b2
Merge branch 'refs/heads/fix/inbox-timestamp-exception' into sattelgeschichten 2026-05-02 20:30:53 +02:00
2b97adcfc3
Merge branch 'refs/heads/docs/add-project-documentation' into sattelgeschichten 2026-05-02 20:30:42 +02:00
d623e6370b
fix: serialize outgoing published timestamps with timezone
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-05-02 20:26:38 +02:00
2229ba98ff
test: add regression coverage for outgoing published timestamps
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-05-02 20:19:32 +02:00
f5dd624016
fix: accept inbox published timestamps without timezone
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-05-02 20:13:49 +02:00
55265c991c
test: add regression coverage for inbox timestamps without timezone
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-05-02 20:11:53 +02:00
ef148ae20e
docs: add and refine project documentation
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-05-02 17:37:27 +02:00
4acfea2fd2
Merge branch 'ignore-coding-assistant-artifacts' into sattelgeschichten 2026-05-02 11:10:03 +02:00
0958fbcc98
chore(gitignore): ignore coding assistant artifacts
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-05-02 11:04:58 +02:00
680f4494bd
Merge branch 'feat/public-profiles' into sattelgeschichten
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-05-02 00:07:37 +02:00
102d04290b
feat(profile): add configurable profile visibility with access control
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-05-01 23:40:14 +02:00
1ecd6c8765
Merge branch 'feat/configure-input-length' into sattelgeschichten
# Conflicts:
#	src/main/java/net/javahippie/fitpub/controller/ActivitiesViewController.java
#	src/main/java/net/javahippie/fitpub/controller/ActivityController.java
#	src/main/java/net/javahippie/fitpub/controller/ProfileViewController.java
#	src/main/java/net/javahippie/fitpub/controller/UserController.java
2026-05-01 15:24:45 +02:00
c05ac79d75
feat(config): make profile and activity text length limits configurable
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-05-01 15:12:45 +02:00
1f02049985
Merge branch 'fix/line-breaks-in-bio' into sattelgeschichten 2026-05-01 12:12:21 +02:00
59cb2632c4
fix(profile): preserve bio line breaks in profile views
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-05-01 12:12:04 +02:00
aa4078bb82
Merge branch 'feat/configure-input-length' into sattelgeschichten 2026-05-01 11:53:50 +02:00
a7d38f7f8a
feat(config): make profile and activity text length limits configurable
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-05-01 11:53:21 +02:00
d3c2542f52
Merge branch 'refs/heads/fix/elevation-gain-in-meters' into sattelgeschichten 2026-04-30 13:01:39 +02:00
4df5af63e0
fix(analytics): show highest elevation gain in meters
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-30 12:59:26 +02:00
45517ae1e6
Merge branch 'refs/heads/komoot-import' into sattelgeschichten 2026-04-30 12:26:29 +02:00
98be2cfada
refactor(komoot): gate Komoot integration behind feature flag
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-30 12:25:51 +02:00
edf71fd359
Merge branch 'fix/test-errors' into sattelgeschichten 2026-04-30 11:59:18 +02:00
649d1e8c5f
fix(testcontainers): align versions and stabilize PostGIS setup
Unify Testcontainers dependencies to a consistent version and remove
custom container tweaks that caused instability with Podman.

- align all Testcontainers dependencies to 2.0.5
- remove `HostPortWaitStrategy` (PostgreSQLContainer already defines an appropriate wait strategy)
- remove `withReuse(true)` (may retain state across runs and break reproducibility)

Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-30 11:37:38 +02:00
37aa63ff28
fix: handle missing timezone in activity title generation
Default title generation could fail when parsed activity data had no timezone set. This change adds a null/blank fallback in `ActivityFormatter` so titles can still be generated without throwing a `NullPointerException`.

Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-30 10:14:18 +02:00
cd3687683c
test: disable ActivityImageService manual test class in default build
The test method was already disabled, but the Spring test context for the class was still being created during the regular test run. Moving `@Disabled` to the class prevents the Testcontainers-based application context from loading for this manual-only test and stops `verify` from failing.

Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-30 09:59:54 +02:00
6110deba21
fix(analytics): rebuild stale current period summaries on read
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 17:20:41 +02:00
88ac213214
Merge branch 'refs/heads/24-fix-achievement-date' into sattelgeschichten
# Conflicts:
#	src/test/java/net/javahippie/fitpub/service/ActivitySummaryServiceTest.java
2026-04-29 17:08:56 +02:00
f97d82fa5e
fix(analytics): rebuild missing current period summaries on demand
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 17:05:31 +02:00
950e313145
Merge branch 'refs/heads/komoot-import' into sattelgeschichten 2026-04-29 15:31:25 +02:00
0663ca407f
fix(komoot): remove ellipsis from numbered import progress label
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 15:31:08 +02:00
6677b44bda
Merge branch 'refs/heads/komoot-import' into sattelgeschichten 2026-04-29 15:27:20 +02:00
33c32c5311
fix(komoot): map racebike activities to ride
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 15:26:54 +02:00
c10a3429c4
Merge branch 'refs/heads/komoot-import' into sattelgeschichten 2026-04-29 15:15:23 +02:00
0a98aa523d
feat(komoot): stop import on rate limit and reset pending activities
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 15:15:04 +02:00
9a9785973d
feat(komoot): show import progress count in button label
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 15:10:24 +02:00
67391038d6
Merge branch 'refs/heads/komoot-import' into sattelgeschichten 2026-04-29 14:15:33 +02:00
8a900ccd30
feat(komoot): prefill import date range with current year
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 14:14:58 +02:00
bda2ab13cf
Merge branch 'refs/heads/24-fix-achievement-date' into sattelgeschichten 2026-04-29 13:02:34 +02:00
86e276e735
fix(analytics): rebuild personal records after activity deletion
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 13:02:11 +02:00
d98b9be58b
Merge branch 'refs/heads/komoot-import' into sattelgeschichten 2026-04-29 12:36:07 +02:00
70e7632699
feat(komoot): show visibility icons in activity list
Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 12:35:20 +02:00
e019935c68
Merge branch 'refs/heads/24-fix-achievement-date' into sattelgeschichten 2026-04-29 12:24:33 +02:00
f0e065600e
fix(analytics): flush achievement deletes before rebuild inserts
Avoid unique-constraint violations during achievement rebuilds by forcing the old rows to be deleted in the database before inserting rebuilt achievements.

Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 12:24:19 +02:00
816803f3f0
Merge branch 'refs/heads/24-fix-achievement-date' into sattelgeschichten 2026-04-29 12:19:12 +02:00
251beaae0f
fix(analytics): rebuild achievements from stable history snapshot
Prevent delete-triggered achievement rebuilds from failing when activity history changes again while an async recalculation is already running.

Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 12:18:55 +02:00
f37b20de62
Merge branch 'refs/heads/24-fix-achievement-date' into sattelgeschichten 2026-04-29 12:12:11 +02:00
714007aabe
fix(analytics): serialize delete recalculations per user
Prevent concurrent achievement and summary rebuilds for the same user when multiple activities are deleted in quick succession.

Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 12:11:54 +02:00
2ae0eeb06b
fix(analytics): recalculate delete side effects asynchronously
Move achievement and summary rebuilds out of the activity delete request path so the UI is not blocked by long-running recalculations.

Signed-off-by: Marcus Fihlon <marcus@fihlon.swiss>
2026-04-29 12:08:13 +02:00