Commit Graph

168 Commits

Author SHA1 Message Date
Davide Scaini 36a91362d9 Strava sync improvements
- Fix first sync finding 0 activities: remove last_sync_at stamp at
    connect time so the first sync checks all Strava history (existence
    check skips already-extracted files without fetching streams)
  - Add POST /api/strava/reset with soft/hard modes: soft sets last_sync_at
    to the most recent activity already on disk; hard clears it entirely
  - Surface error_count in sync response and status message
  - Add Reset / Hard reset buttons below Sync now in the upload modal
  - Reload on bfcache restore so client:only components re-mount after
    back navigation
2026-04-08 14:23:52 +02:00
Davide Scaini 083c67d018 local activity storage and convert page fixes
- Replace rdp dependency with inline pure-Python RDP implementation
    so the bincio wheel runs in Pyodide (no pure-Python wheel existed for rdp)
  - Fix convert page script: remove define:vars so Vite bundles it and
    TypeScript imports (localstore, format) work correctly
  - Rename wheel to proper PEP 427 filename (bincio-0.1.0-py3-none-any.whl)
  - Use en-GB date format on convert result, consistent with the feed
  - Add /activity/local/ page + LocalActivityDetail for IDB-only activities;
    feed links local activities there instead of the SSG route
  - Fix getStaticPaths: try public/data symlink as fallback, never crash on
    missing index.json
  - Fix ActivityDetail.onMount: load detail even when detail_url is absent
    so locally converted activities show map and charts
  - Derive track_url and detail_url from id in toSummary() since they are
    not present in the detail JSON
  - Reload on bfcache restore (pageshow) so client:only components re-mount
    after back navigation
2026-04-08 14:14:42 +02:00
Davide Scaini 5bf0f3636c local conversion 2026-04-06 22:25:57 +02:00
Davide Scaini b633d72258 iterating on the plan 2026-04-06 20:52:31 +02:00
Davide Scaini e940338816 planning 2026-04-06 19:31:52 +02:00
Davide Scaini 17f36889f3 sync strava data from web ui 2026-04-06 12:38:41 +02:00
Davide Scaini ad2710e759 fix ci 2026-04-06 12:14:39 +02:00
Davide Scaini b18024f7d3 adding ci 2026-04-01 22:51:46 +02:00
Davide Scaini ef3bf12eb8 update changelog 2026-04-01 21:55:42 +02:00
Davide Scaini bd5831c2fd second pass. low 2026-04-01 19:00:28 +02:00
Davide Scaini 3d364c3992 second pass. medium 2026-04-01 11:05:00 +02:00
Davide Scaini 94369606a4 second pass at issues. critical ones. 2026-04-01 10:58:45 +02:00
Davide Scaini 81438231b4 fix low level issues 2026-03-31 23:22:12 +02:00
Davide Scaini 8f91503cf7 fix mid level issues. updated changelog 2026-03-31 23:00:39 +02:00
Davide Scaini f8abab2c23 fix high priority issues 2026-03-31 22:53:50 +02:00
Davide Scaini e2870c3344 fixing issues 2026-03-31 22:40:35 +02:00
Davide Scaini 77c30150b0 fix ride types subclasses (?) to be tested 2026-03-30 22:55:53 +02:00
Davide Scaini 47568e9dda fix back button behaviour 2026-03-30 22:45:13 +02:00
Davide Scaini 9bc9a1d10f paginate stats page 2026-03-30 21:51:01 +02:00
Davide Scaini 5bbc3d07d2 fix: remove sensitive files, sync manifest 2026-03-30 20:38:00 +02:00
Davide Scaini 2ad18883f8 fix: update manifest with new files, remove sensitive files from remote 2026-03-30 20:37:47 +02:00
Davide Scaini 5b07c7670c feat: URL state persistence for all filters and tabs 2026-03-30 20:28:54 +02:00
Davide Scaini cb345c02a1 preserving navigation 2026-03-30 20:27:34 +02:00
Davide Scaini 0b9027b4a0 update changelog and cheatsheet for sub-sport and dev mode 2026-03-30 20:12:17 +02:00
Davide Scaini 877472e620 trying to get sub label showed properly 2026-03-30 20:09:01 +02:00
Davide Scaini c58bc8f7d5 fix default config loading 2026-03-30 15:39:58 +02:00
Davide Scaini 8fcd9f642b now strava sync works 2026-03-30 14:39:56 +02:00
Davide Scaini d806072546 improve configs, update docs 2026-03-30 13:30:43 +02:00
Davide Scaini a65923c3e0 fix unclosed tags 2026-03-30 13:06:31 +02:00
Davide Scaini 0865159cca upload external files 2026-03-30 13:06:20 +02:00
Davide Scaini fa08988471 updated changelog 2026-03-30 11:43:13 +02:00
Davide Scaini 77e7b1dbec data ingestion plan 2026-03-30 11:43:01 +02:00
Davide Scaini a6a81f9421 personal records tab into athlete page 2026-03-30 10:53:51 +02:00
Davide Scaini 2cc53dece4 edit athlete data 2026-03-30 10:39:40 +02:00
Davide Scaini 52e4ca8f3a fix athlete page (power curve calculation) 2026-03-30 10:18:07 +02:00
Davide Scaini b78f921a3d fix heatmap in stats for bright theme 2026-03-30 09:22:23 +02:00
Davide Scaini ec6175b143 athlete page first draft 2026-03-30 09:05:18 +02:00
Davide Scaini 2a1493a3e5 bright/dark themes 2026-03-30 09:04:57 +02:00
Davide Scaini 1c49d3a769 zone alignment 2026-03-29 22:31:03 +02:00
Davide Scaini 9bd065f354 fixed some warnings 2026-03-29 22:17:01 +02:00
Davide Scaini 4537273de9 get default hr and power zones from config file 2026-03-29 22:06:22 +02:00
Davide Scaini 3fcc8bc089 added power 2026-03-29 21:55:35 +02:00
Davide Scaini 018958f0e9 histograms with ranges 2026-03-29 21:53:00 +02:00
Davide Scaini 631eaf2db0 improve example config 2026-03-29 21:32:21 +02:00
Davide Scaini b76791e197 improving stats page tooltips (click day keeps tooltip open) 2026-03-29 21:23:06 +02:00
Davide Scaini 7c281a48d7 fix: edit extras install command and render symlink parent dir 2026-03-29 16:52:58 +02:00
Davide Scaini d2149bf77a docs: fix install instructions to use git clone + uv sync
bincio is not published to PyPI. All CLI invocations use `uv run bincio`.
2026-03-29 16:26:13 +02:00
Davide Scaini f73b4c84e5 fix publish.sh: collect file list before orphan branch switch 2026-03-29 16:12:09 +02:00
Davide Scaini dfaa8fdf6e fix publish.sh: add only manifest files, not all untracked 2026-03-29 16:09:43 +02:00
Davide Scaini 89d44beb92 fix publish.sh: ignore untracked files in dirty-check 2026-03-29 16:08:20 +02:00