Progress log
What we've been building
Every version of Moveee and what changed in it — updates, fixes and improvements as they ship. Currently on v1.21.85.
v1.8.21
Route builder editing is faster · Ride TSS now stays in sync when your FTP changes
2026-07-08- Improved The route builder now cancels stale route requests, debounces reroutes after point drags, reuses recent route responses, draws lighter geometry for very long routes, and stages secondary overlays so the main route stays responsive.
- Fixed Moveee no longer leaves older ride TSS frozen to whatever FTP happened to be set on import day. When you change your FTP, stored ride load and intensity factor now recalculate to the same FTP basis instead of quietly mixing old and new numbers on activity pages and in training load.
v1.8.20
Fitness trend date range now stays tucked away until you need it
2026-07-08- Changed On Fitness & Form, the Fitness trend date-range chooser is now collapsed by default. It shows the current range in one compact line, and opens on tap when you want the full preset list or custom dates.
v1.8.19
Ride load now agrees everywhere, ride zones are visible, and two performance pages got cleaner
2026-07-08- Fixed On ride activities, the TSS in the power-graph header now uses the ride's stored load instead of a separate client-side estimate, so it matches the planned-session card and your imported ride data.
- New Ride activities now show a Time in zones chart, so you can see at a glance how much moving time you actually spent in each power zone.
- Changed The 'Manage rides in this power profile' tools now live in a collapsed section at the bottom of the power-profile page, keeping the curve and rider analysis cleaner while still letting you search, exclude and restore rides when needed.
- Improved The Fitness & Form page is now more compact up top: your headline fitness numbers and current form zones share one section, the date presets and custom dates live together in one date-range control, and the lower fresh/productive/overreached band is taller so your state is easier to read.
v1.8.18
Routes draw before wind data loads
2026-07-08- Improved The route builder now paints the route, stats and elevation profile first, then starts the wind overlay as a follow-up request. Slow wind data no longer delays seeing the route itself.
v1.8.17
Wind arrows now cover the whole long route
2026-07-08- Fixed The route builder's wind overlay no longer stops partway through very long routes. Moveee still keeps the weather request compact, but it now spreads wind sample points across the entire route instead of only using the first chunk.
v1.8.16
Power-profile headline strip now fits eight efforts in one desktop row
2026-07-08- Improved The top power strip on the power-profile page now includes 3-minute power and is packed into eight equal desktop columns, so all headline efforts sit in one row across the page instead of breaking into multiple rows.
v1.8.15
Power-profile headline boxes now form one full-width desktop strip
2026-07-08- Improved The seven power boxes at the top of the power-profile page now switch to a true seven-column layout already at desktop width, so together they fill the full row of the page container as one compact strip.
v1.8.14
Power profile now shows two rank estimates
2026-07-08- New The 'Where you rank' panel on the power-profile page now shows both a weight-aware estimate from FTP W/kg and a pure absolute-power estimate from FTP watts, so you can see both your climbing-style ranking and your raw-engine ranking side by side.
v1.8.13
Power-profile headline boxes are tighter on desktop
2026-07-08- Improved The top power boxes on the power-profile page have been compacted further, with tighter spacing and smaller internals, so the whole strip reads cleanly as one desktop row.
v1.8.12
Critical Power fit notes now stay out of the way
2026-07-08- Changed The long fit-quality note under Critical Power & estimated FTP has been moved into the info tooltip, so the card stays cleaner while still keeping the explanation one hover away.
v1.8.11
The power-profile header is cleaner
2026-07-08- Changed The manual Rebuild button is gone from the power-curve header. The page now stays focused on the curve itself and your ride-management tools instead of showing an extra control there.
v1.8.10
Power-profile headline boxes now stay in one compact row on desktop
2026-07-08- Improved The top power boxes on the power-profile page are now tighter and laid out in a single desktop row, so all seven durations stay visible together instead of wrapping into a second line.
v1.8.9
Power-curve points open rides, the headline powers are fuller, and TSS now agrees
2026-07-08- New On the power-curve hover, the ride name behind each best effort is now a direct link, so you can jump straight into that activity from the graph.
- Improved The power-profile headline boxes now show the durations riders actually use most for reading a curve: 15 seconds, 1 minute, 5 minutes, 8 minutes, 12 minutes, 20 minutes and 30 minutes.
- Fixed Completed-session TSS now follows the same load math everywhere instead of mixing a synthetic estimate in one place and the real ride's load in another. When a real activity exists, Moveee uses its imported TSS; otherwise it falls back to the standard NP/FTP-duration formula.
v1.8.8
Power profile management is now easier to scan — and you can search all rides
2026-07-08- Improved The best-efforts grid now sits directly under the power curve, so the chart and the rides behind each duration stay together instead of being broken up by management panels.
- New The ride-management area at the bottom of the power-profile page now includes search across all your power rides by name, so you can quickly find a specific file and exclude or re-include it without hunting through whatever the page happened to show.
v1.8.7
Power profile now catches stacked glitches better — and you can exclude bad rides yourself
2026-07-08- Fixed The power-profile cleaner now peels suspicious efforts in passes instead of stopping after the first bad ride. That means stacked glitch files are far less likely to leave a second fake peak behind in your curve, FTP estimate or power-duration bests.
- New The power-profile page now shows which rides are shaping your current curve and lets you exclude any suspicious one with a tap. Excluded rides are ignored in the curve, FTP estimate and related metrics until you include them again.
v1.8.6
Interval preferences now match everywhere — and fitness trend has proper date presets
2026-07-08- Changed Your interval preferences on onboarding and on your profile now match exactly — same effort options, same labels, same meaning. They're now clearly treated as soft preferences: Moveee leans toward the efforts you enjoy, but it doesn't ban other work just because you left a chip unticked.
- Improved The plan engine now actually reads those interval preferences as one more input when it picks sessions, instead of ignoring them entirely. That means your preferred efforts can show up more often when they still fit the goal, phase and route demand — without overriding the training logic.
- New The Fitness & Form chart now has proper range presets: Last 30, 90 and 180 days, This year, Last year, Last 3 years, All time, plus custom dates.
v1.8.5
Strava imports and your first power curve now run automatically in local dev
2026-07-08- Fixed Connecting Strava on local development could leave your ride import stuck waiting for a Sidekiq worker that wasn't running. Moveee now runs those background jobs in-process by default in development, so your first import, auto-sync and power-profile build actually start as soon as you connect.
- Changed The empty power-profile screen no longer asks you to tap 'Build from my rides'. Your first power curve now builds automatically from your imported Strava rides, so the page simply waits for the data to arrive.
v1.8.4
Your owner Gmail is always treated as admin
2026-07-08- Fixed The owner account blaz.perus@gmail.com is now always recognised as an admin, even on a fresh sign-in that hasn't had a manual database flag set yet. That means admin-only areas, unlimited plan-generation quotas and other owner-level tools stay available immediately.
v1.8.3
A blocked day's training load moves to the rest of your week
2026-07-07- Improved Blocking a day used to just drop that day's training load — the week quietly got lighter. Now the plan redistributes it across your other training days, in the same proportion it already uses (your long ride still carries more than a recovery spin), so a day off doesn't shrink the week's real training stimulus.
v1.8.2
Never a hard day right after a hard day
2026-07-07- Fixed Generating or regenerating a plan could still hand you a hard session today even if you'd genuinely gone hard the day before — the weekly template only knew what IT had planned, not what you actually rode. Now the plan checks your real rides from the last two days, and if one was truly hard, today's session eases to endurance instead of stacking on top. This applies to every plan, not just adaptive ones — it's a baseline safety check, not a preference.
- Fixed The AI coach's automatic easing (for adaptive plans) used to only catch overreached VO₂ and threshold days — a hard tempo day slipped through untouched. It now eases any hard day (VO₂, threshold, or tempo).
v1.8.1
Workouts finally look like their name — and Tuesdays actually vary
2026-07-07- Fixed The graph now matches the workout's name. Sessions like Criss-cross, over-unders, floats, pyramids and 30/15 micro-intervals were being drawn as flat blocks because the library only stored “N reps at one power” — so a criss-cross looked identical to a steady effort. Every shaped session now draws its real structure (a criss-cross actually waves between 105% and 120%, a float surges then settles), so what you see is what you'll ride.
- Improved Your hard days now genuinely vary. Because the sessions were stored flat, different names collapsed to near-identical workouts — so week after week of Tuesdays felt the same. Now the rotation moves through genuinely different sessions within the right effort band for your event (sustained threshold reps for a long climb, not 30-second micros), and each one is its own workout.
- New When the AI coach designs or adjusts a session, the blocks and timings are now correct by construction — it describes the work and a single deterministic compiler builds a valid, safe session (warm-up, the real shape, cool-down, intensity capped). It can't produce a broken or unsafe workout.
v1.8.0
Smarter engine: built around your Critical Power and your event
2026-07-07- Improved Your plan now anchors to your Critical Power from the last 90 days rather than a single FTP number — and it reads that curve conservatively, stripping out freak power spikes, so a fluke file never inflates your targets. It looks at both your long-term potential and where you are right now.
- Improved On a race plan the engine now trains the event's actual demand. If your goal is a 2×15-minute climb, it picks the ~15-minute reps that make you best at exactly that, instead of generic hard days.
- New When you build a plan you're now asked whether you ride once or twice a day. Pick twice and a long enough endurance day splits into an AM and PM ride — but a session that would only become two token 30-minute rides stays a single hour, as it should.
- Improved The AI coach review can now push you harder, not just back you off. When you're fresh and absorbing the work, it can raise a day's intensity or add volume — still guard-railed: one level at a time, capped per session, and never next to a hard day or on a recovery week.
v1.7.09
Block days you can't train
2026-07-07- New You can now block a day on the performance calendar when you know you won't be able to train — hover a future day and hit the ⊘ button. The day is marked Unavailable, any session planned there is cleared, and it's greyed out so nothing lands on it. When you generate or regenerate a plan, the engine skips your blocked days entirely. Changed your mind? Tap the day's undo button to open it back up.
v1.7.08
Expand any week on the plan page to see its sessions
2026-07-07- New On the plan page, each week now expands to show the sessions inside it — tap a week to reveal its day-by-day workouts (name, duration, TSS, and a tick on the ones you've completed), and tap again to collapse it. Weeks start collapsed for a clean overview, and each session links straight to its workout page.
v1.7.07
Set a cadence when you build an interval
2026-07-07- New The interval builder now has a Cadence field in the block editor — set a target rpm on any block (say 55 rpm for a big-gear strength rep, or a fast spin-up) and it's saved with the workout and shown on the graph. Leave it blank and the block just uses the zone default (~90 rpm).
v1.7.06
Target cadence on the workout graph
2026-07-07- New Every workout graph now shows the target cadence next to the watts — so on an endurance-plus-cadence ride you can see you should be spinning ~90 rpm, and on a strength drill like SFR you see the 50 rpm it's actually asking for. The rpm reads off each block (a low-cadence or big-gear session picks up its real cadence from the workout; other efforts use a sensible self-selected target — ~90 rpm through the aerobic zones, a faster spin for VO₂). It appears on the bars themselves — including recovery spins and warm-ups — and in the hover readout everywhere alongside time, watts, %FTP and W/kg.
v1.7.05
Short intervals show their number and timing on the graph
2026-07-07- Fixed Very short efforts — a 30-second sprint or a 1-minute VO₂ rep — were too narrow to fit a label, so the graph showed the bar but no numbers. Now those slivers carry their target watts and duration in a smaller horizontal label (e.g. "40s" over "300 W"), so every hard rep is labelled. Wider blocks keep the full-size caption; the only bars left blank are the tiniest recovery blips, whose numbers are still in the hover readout.
v1.7.04
Fresh sessions, and swap any workout for a similar one
2026-07-07- Fixed Generating a plan no longer gives you almost the same sessions every time. The engine was fully deterministic — same settings, same plan — so it always led with the same handful of workouts. New plans now start from a random point in the library, so two plans built from the same goal and availability pull genuinely different sessions from the 30-odd threshold and VO₂ options.
- New Every planned interval session now has a "Change for similar" button (in the day popup and on the workout page). One tap swaps it for a different library session of the same type and comparable load — so it still fits your week (same slot, similar TSS, same effect on the days around it) but gives you a fresh structure. Tap again for another.
v1.7.03
A tidier workout popup
2026-07-07- Changed The quick workout popup now just shows the session graph — the block-by-block %FTP → watts targets table has moved to the full workout page ("Open full page"), where it sits in a collapsible "Targets" panel you can open when you want the numbers.
v1.7.02
Calendar plan header points to the plan page
2026-07-07- Changed The "Regenerate" button on the Perform calendar's plan header is now a "See more" link that opens the plan's own page. Regenerating a plan in place has been removed.