Lots of small changes and some big things:
- Added track cycling activity type
- Many of the activity type selects in the app are now searchable to better handle lots of types
- Added cadence secondary targets to generated workout fit files
- The IntervalsT elements in Zwift files can now have OnPower less than OffPower
- Compare different streams on the activity power curve chart (e.g. your PM power vs the trainer or normal power vs altitude adjusted power)
- Fixed bug with average temp for intervals not being calculated for activities without weather
- Added API endpoint to compute activity power curves from any streams
- Saved activity filters now appear in many more places
- Power, pace and HR curve charts now compare selected options (e.g. indoor vs outdoor) and you can compare any sets of activities using filters
- Added option to adjust Y-axis scale to match zoomed data on activity timeline chart
- Added Slovak to i18n (tx Tomáš Vančo)
- Add support for total elevation loss in activity data
- The event, workout and add calendar event dialogs are now draggable
- Added copy and paste for calendar events
- Deleted routes now last when sorted by desc most recent
- Added “for the week” option to display notes in their own column on the calendar for people with large screens. These are also included in the “plan for the week” email
- RPE now stacks on fitness plots
- Added Suunto wellness support
- Added horizontal marker to activity timeline chart
- Added sub type to workout and event to identify warmup, cooldown, commute and races. Added options to shrink warmup/cooldown/commute on the calendar to reduce clutter
- Added a profile to the activity map with colours indicating the gradient. Mouse over the profile to move the marker on the map
- Added text align and wrap to custom activity fields
- Fixed bug with OAuth decline not handling query params properly and not including state
- Improved location lookup for shared races
- Added CHO/h (carbs per hour) to edit workout dialog
- Swapped pace range display for pace workout expand percentages and chart marker
- Added activity route matching with option to rename activities and flag commutes. Route page on an activity has configurable progress plot
- Added Power2 (secondary power) stream and Power vs Power2 trace chart. If your activity file has more than one power stream, the extra one becomes Power2
- Custom activity streams can now be re-ordered to resolve dependency problems
- Added floating toolbar for activity chat to list and calendar so you do not need to open the activity to use the chat
- Added eFTP and eFTP/kg to athlete summary CSV download
- Fixed processing of tcx files with no distances on GPS points
- Rides/runs without GPS but with altitude no longer virtual
- Activity calories now filled in from work if not set for cycling
- Fixed Peloton tcx not importing HR data
- Splits now used instead of laps for snowboarding and others with SKI_LIFT_RUN split type
- The FIT file importer will use the wkt_step_name field for lap name if present, has priority over notes if both present
- Workouts with % of ftp targets now passed through as is in ZWO files (no more rounding issues)
- Added default workout start time to sports settings
- Backcountry Ski now gets correct sport in generated fit files
- Fit file lap intensity now stored on activity laps and rest and recovery laps not used for intervals
- Added piecewise linear regression method for Javascript
- Fixed bug with heart rate interval use laps not respecting keep all laps option
There have also been many back-end performance and scalability enhancements and server upgrades to handle more users.