Commit Graph

  • 5e36806392 feat(mobile): replace 'This year' with dynamic per-year pills in filter tab Davide Scaini 2026-04-27 15:37:09 +02:00
  • 87baf33815 fix collapsing labels Davide Scaini 2026-04-27 15:28:39 +02:00
  • 946da685e5 feat(mobile): editable activity title for local activities Davide Scaini 2026-04-27 15:20:19 +02:00
  • 090d4bd8dc feat(mobile): search/filter tab — sport, date, sort; hidden on Karoo Davide Scaini 2026-04-27 15:10:35 +02:00
  • be772bd3df fix(upload): prevent false 422s and EMFILE crash during bulk uploads Davide Scaini 2026-04-27 14:33:05 +02:00
  • 7a65ed2078 fix(mobile): clear technical debt — real SHA-256, feed pagination, search Davide Scaini 2026-04-27 11:53:43 +02:00
  • 93247d510f feat(mobile/upload): upload_format setting + Option A local update from server response Davide Scaini 2026-04-27 11:44:32 +02:00
  • 0d2176aef0 feat(mobile/upload): send original FIT file via /api/upload/raw when available Davide Scaini 2026-04-27 11:18:29 +02:00
  • cfb3ba5871 fix(merge): serialize merge_all per user-dir to prevent concurrent rmtree race Davide Scaini 2026-04-27 11:11:05 +02:00
  • 220efb0d05 fix(mobile/upload): activities now appear in browser after upload; reconcile synced_at on fresh server Davide Scaini 2026-04-27 11:03:00 +02:00
  • b1cf18a2f0 fix(feed): update feed.json after every upload so browser sees new activities Davide Scaini 2026-04-26 21:37:19 +02:00
  • 1c9b89cd1c fix(dev): raise macOS open-file limit before astro dev to prevent EMFILE Davide Scaini 2026-04-26 21:16:33 +02:00
  • cbe3e0eeaf feat(mobile): Karoo GPU crash fix, server-side extraction, upload fix, feed redesign Davide Scaini 2026-04-26 21:00:12 +02:00
  • 4cabbea0d4 fix(mobile): three-patch compat shim for Chrome <80 (Karoo WebView 61) Davide Scaini 2026-04-26 15:19:39 +02:00
  • f6885fecfa fix(mobile): use split/join for import() patch, gate behind Chrome<63 check Davide Scaini 2026-04-26 15:05:33 +02:00
  • 1410be7427 fix(mobile): patch pyodide.js at runtime to bypass Chrome 61 import() syntax Davide Scaini 2026-04-26 14:59:28 +02:00
  • a5c2810568 fix(mobile): gate watch directory on instance URL; skip auto-scan if unconfigured Davide Scaini 2026-04-25 22:20:02 +02:00
  • 42d829737c fix(mobile): auto-save watch directory on blur, not via Save button Davide Scaini 2026-04-25 22:12:59 +02:00
  • e062ef5837 fix(mobile): watch-folder button visibility + Karoo file picker crash Davide Scaini 2026-04-25 22:08:32 +02:00
  • 44a70f4c18 feat(mobile): watch-folder scan button + Karoo file picker fix + docs Davide Scaini 2026-04-25 21:52:03 +02:00
  • 749d90c79d fix(android): bundle JS + add armeabi-v7a to ABI splits for Karoo support Davide Scaini 2026-04-25 21:44:44 +02:00
  • 2f53fbc359 feat(mobile): batch import + Karoo auto-import from watch folder Davide Scaini 2026-04-25 21:25:54 +02:00
  • a796bf8cae fix: write timeseries directly when wheel's write_activity silently skips it Davide Scaini 2026-04-25 20:39:55 +02:00
  • 2e520137ac fix: palette changes now propagate immediately via ThemeContext Davide Scaini 2026-04-25 15:45:27 +02:00
  • 91d747c54a feat: seasonal race palette auto-detection on web Davide Scaini 2026-04-25 15:41:45 +02:00
  • dfe5307ab4 feat: seasonal race palette (Giro/Tour/Vuelta) + mobile picker Davide Scaini 2026-04-25 15:41:20 +02:00
  • 5330b7b489 app icon Davide Scaini 2026-04-25 15:33:51 +02:00
  • 1ac35c84e0 feat: add delete button for local activities (single and bulk) Davide Scaini 2026-04-25 13:43:12 +02:00
  • c077fceba6 fix: validate activity file exists before treating cached hash as known Davide Scaini 2026-04-25 09:54:38 +02:00
  • e08b024d15 fix: add instanceUrl+token to useEffect deps; add MapLibre Expo plugin Davide Scaini 2026-04-25 09:42:25 +02:00
  • d8b3a69564 fix: allow HTTP to local instances in release build; fix activity 404 in dev Davide Scaini 2026-04-25 09:30:02 +02:00
  • 69571c1306 fix: pass wheel filename through extraction chain to fix micropip install Davide Scaini 2026-04-25 09:29:33 +02:00
  • ef45d4f4bb fix: move PyodideWebView into Import tab; fix micropip blob URL error Davide Scaini 2026-04-24 23:26:39 +02:00
  • fc814f5026 fix: replace Buffer.from().toString('base64') with btoa helper — Buffer not available in Expo RN Davide Scaini 2026-04-24 23:16:50 +02:00
  • 21b421fdc3 fix: wrap root layout in flex:1 View so Stack fills full screen alongside hidden WebView Davide Scaini 2026-04-24 23:15:52 +02:00
  • 84e5cead08 fix: pre-fetch bincio wheel via RN networking to avoid ATS blocking HTTP in WKWebView Davide Scaini 2026-04-24 23:13:24 +02:00
  • 966528a0bf feat: Phase 1 — FIT/GPX/TCX extraction via Pyodide in hidden WebView Davide Scaini 2026-04-24 22:54:59 +02:00
  • ed738ffc97 docs: document current mobile app state — gaps, stubs, and missing plan items Davide Scaini 2026-04-24 22:42:20 +02:00
  • c7c7fe9395 feat: bidirectional sync — upload local activities to remote instance Davide Scaini 2026-04-24 22:26:13 +02:00
  • a1e56e5308 feat: tabbed metric charts — elevation, speed, HR, cadence, power Davide Scaini 2026-04-24 22:03:51 +02:00
  • 3ce365e439 feat: tap map thumbnail to open full-screen interactive map Davide Scaini 2026-04-24 21:55:56 +02:00
  • a306682b52 feat: add sync mode setting — summaries only vs full data download Davide Scaini 2026-04-24 21:52:25 +02:00
  • bb44b80e97 fix: upgrade react-native-svg to 15.15.4 to fix Fabric crash on RN 0.81 Davide Scaini 2026-04-24 18:20:36 +02:00
  • c1e4ab5af7 feat: add reset synced data button to settings Davide Scaini 2026-04-24 15:45:51 +02:00
  • f054869b04 feat: add --api-host to bincio dev and --mobile to dev_test.py for local mobile testing Davide Scaini 2026-04-24 15:43:30 +02:00
  • 97c7fae9be feat: Phase 4 — MapLibre route map + SVG elevation chart on activity screen Davide Scaini 2026-04-24 15:40:10 +02:00
  • 02726034c7 fix: read activity shards in GET /api/feed; improve sync feedback Davide Scaini 2026-04-24 15:07:52 +02:00
  • 44b2878b14 feat: Phase 0.5 — remote feed sync via Bearer token auth Davide Scaini 2026-04-24 12:07:49 +02:00
  • 79c572bf8b fix: align expo packages to SDK 54 expected versions Davide Scaini 2026-04-24 11:45:23 +02:00
  • 10b515f3bf fix: pin react-dom to 19.1.0 to prevent npm resolving 19.2.5 Davide Scaini 2026-04-24 11:39:02 +02:00
  • 6f5abf634d fix: downgrade to Expo SDK 54 for Expo Go compatibility Davide Scaini 2026-04-24 11:32:56 +02:00
  • 6e0b619ad3 fix: pin react to 19.2.5 and @types/react to ~19.2.0 Davide Scaini 2026-04-24 11:24:16 +02:00
  • 18726699f1 fix: update react to 19.2.3 to satisfy react-native 0.85.2 peer dep Davide Scaini 2026-04-24 11:16:14 +02:00
  • 02bb8a3dd7 feat: serve bincio wheel locally for mobile dev testing Davide Scaini 2026-04-24 11:01:24 +02:00
  • b37df88fe1 feat: Phase 0 mobile app scaffold — Expo 55, SQLite, Feed/Import/Settings screens Davide Scaini 2026-04-24 10:39:06 +02:00
  • 565f5a3ff1 docs: complete mobile app plan — phased roadmap, Android/iOS divergences, data model Davide Scaini 2026-04-24 10:26:58 +02:00
  • 61479fe554 docs: mobile app — Pyodide/hidden-WebView extraction model, algorithm-travels-to-data pattern Davide Scaini 2026-04-24 10:18:49 +02:00
  • e952d9bdc1 docs: expand mobile app design — hybrid extraction, Karoo integration, platform independence vision Davide Scaini 2026-04-24 10:12:36 +02:00
  • 81ed5e1b0b docs: add mobile app design document (local-first, Expo/React Native) Davide Scaini 2026-04-24 10:04:13 +02:00
  • 7329c8f5e8 Merge branch 'main' into mobile_app Davide Scaini 2026-04-24 09:52:27 +02:00
  • 0f1876a33c chore: untrack CLAUDE.md, publish.sh, docs/squash-for-github.md; gitignore dns/nginx scratch files Davide Scaini 2026-04-22 17:22:31 +02:00
  • 7c171c9e9d docs: replace VPS IP with placeholder in elevation.md Davide Scaini 2026-04-22 17:14:10 +02:00
  • a69a2f240a docs: mark changelog 0.1.0 public release (2026-04-22) Davide Scaini 2026-04-22 17:09:44 +02:00
  • 6dc1fb6f20 fix: prune dist/data before rsync in _trigger_rebuild and manual rebuild endpoint Davide Scaini 2026-04-22 11:01:01 +02:00
  • df496a017f fix: refine hysteresis recalculation with MA pre-smoothing and lower thresholds Davide Scaini 2026-04-22 10:57:28 +02:00
  • 88b24a6274 docs: update elevation docs and changelog for two-button recalculation and DEM fix Davide Scaini 2026-04-20 21:43:28 +02:00
  • ebac3f50f4 fix: DEM elevation overcounting and add hysteresis-only recalculation button Davide Scaini 2026-04-20 21:41:23 +02:00
  • 2b7a37ed41 docs: update changelog, CLI reference, user guide, and elevation notes Davide Scaini 2026-04-20 21:18:50 +02:00
  • 0c659db6cb fix: default DEM URL to api.open-elevation.com Davide Scaini 2026-04-20 21:17:03 +02:00
  • 1940e2409b feat: DEM-based elevation recalculation via edit drawer button Davide Scaini 2026-04-20 20:45:06 +02:00
  • 872651f471 metrics: replace naive elevation accumulation with hysteresis dead-band Davide Scaini 2026-04-20 20:29:20 +02:00
  • 696f538f56 ci: add fastapi/bcrypt to dev dependency group so all tests pass Davide Scaini 2026-04-20 20:23:06 +02:00
  • 6491e4fd8c fix: show total activity count in global feed counter Davide Scaini 2026-04-20 17:12:50 +02:00
  • 104328bc50 fix: stable y-axis range and sane dist_km in activity charts Davide Scaini 2026-04-20 17:06:56 +02:00
  • 631e814d64 fix: load all year shards into combined feed, not just top 2 Davide Scaini 2026-04-20 16:14:40 +02:00
  • db7047f210 perf: combined feed index for multi-user global feed Davide Scaini 2026-04-20 15:31:35 +02:00
  • e8a5fbbaba docs: add nginx gzip configuration for JSON compression Davide Scaini 2026-04-20 15:24:16 +02:00
  • d069716068 fix: clamp stats tooltip within viewport on mobile Davide Scaini 2026-04-20 15:07:52 +02:00
  • cea1dbc2fb ops: fix data/ triple-duplication costing ~24 GB on VPS Davide Scaini 2026-04-19 23:34:55 +02:00
  • 5227b30456 fix: EditDrawer correctly reads and labels unlisted privacy Davide Scaini 2026-04-19 22:58:09 +02:00
  • 8a3e7831d3 fix: prevent double URL-rewrite in nested shard resolution Davide Scaini 2026-04-19 22:46:36 +02:00
  • 8575a7015b fix: delete activity removes it from index.json; detail page uses lazy load Davide Scaini 2026-04-19 22:31:20 +02:00
  • cada2bcb03 perf: year-shard index.json to cut initial load from MBs to ~1 year Davide Scaini 2026-04-19 22:21:10 +02:00
  • bb253cc2c1 site: accept gzip MIME types in upload file picker Davide Scaini 2026-04-16 18:54:18 +02:00
  • cd1cdca33b extract: auto-detect gzip by magic bytes, not just .gz extension Davide Scaini 2026-04-16 18:49:01 +02:00
  • b22b5deb9e fix tests: update merge tests for private→unlisted rename and client-side filtering Davide Scaini 2026-04-16 18:16:46 +02:00
  • 219308bdb5 ci: install serve/edit/strava extras so bcrypt and fastapi are available for tests Davide Scaini 2026-04-16 18:14:00 +02:00
  • c68dfa9057 chore: update changelog, remove stale files, scrub VPS IP Davide Scaini 2026-04-16 18:09:32 +02:00
  • a78f6ee3bd fix: strip local image refs with spaces/parens in filenames before markdown render Davide Scaini 2026-04-16 10:29:13 +02:00
  • cfdd8d2744 fix: image refs in description and broken gallery URLs Davide Scaini 2026-04-16 10:19:32 +02:00
  • 395182649b improve docs Davide Scaini 2026-04-15 23:07:52 +02:00
  • bfb6432666 fix: force black text in Plot tooltips (white bg, grey text was unreadable) Davide Scaini 2026-04-15 22:53:48 +02:00
  • 5205a41224 fix: theme-aware chart colors — readable axes and tooltips in light mode Davide Scaini 2026-04-15 22:18:06 +02:00
  • a95dd07e22 fix: remove TS type annotation from define:vars script (plain JS only) Davide Scaini 2026-04-15 20:48:11 +02:00
  • 7142ac8f2e settings: split danger zone into delete originals / delete all activities Davide Scaini 2026-04-15 20:42:31 +02:00
  • 87a69bcc8b settings: add nav visibility prefs and per-user Strava credentials Davide Scaini 2026-04-15 20:37:42 +02:00
  • 4fd5ba428e settings: add self-service user settings page Davide Scaini 2026-04-15 20:24:04 +02:00
  • 764da09130 upload: add overwrite option to replace existing activities Davide Scaini 2026-04-15 20:17:32 +02:00
  • a33fea91cf admin: mark ghost users (no DB account) and add Delete dir button Davide Scaini 2026-04-15 14:58:54 +02:00
  • dfd56e4448 fix: handle absolute track_url paths in ActivityDetail Davide Scaini 2026-04-15 14:50:10 +02:00