Skip to content

Releases

Lactic Preview 0.2.0-preview.495 (testing build)

Choose a tag to compare

@github-actions github-actions released this 14 Nov 22:37
32859e9

Built from 32859e9 (iPhone: ask for Health again when iOS hasn't asked about every type (#203)).

Coming in the next release

  • iPhone: when Apple Health hasn't been asked about something Lactic reads ("Authorization not determined"), Lactic shows Apple's permission sheet again, and Settings shows Connect Apple Health instead of the error.
  • iPhone: Apple Health no longer gets stuck and stops bringing in new nights until you quit the app. "Read Health now" in Settings says what went wrong if a read fails.
  • Weigh-ins from other scales in Apple Health now come into Lactic on iPhone and keep your profile weight current, and weigh-ins from your Body Pod or typed into Lactic are saved to Apple Health when "Save rides and weigh-ins to Health" is on.
  • Pairing an iPhone you've been using on its own with a computer that already has a plan now also brings across the events, breaks, race reports and check-ins you added on the phone. The computer's plan for the days ahead stays as it is.
  • With the AI app coach turned off, Claude and other AI apps that still list Lactic no longer show a "Couldn't start" error; they see one tool that says how to turn the coach on.
  • On iPhone, your ride shows on the lock screen and in the Dynamic Island: the interval under way with its countdown, power against target, heart rate, cadence, what's next and time left. It shows for rides on the iPhone and, while Lactic is open on it, for a ride on your computer too.
  • If the connection drops while the coach writes today's brief, Lactic tries again on its own, and shows Try again instead of "error decoding response body".
  • iPhone: the coach chat stays fitted to the screen after you type, with its title clear of the clock, no gap under the message box, and the keyboard steps aside when you send.
  • Rest days on Today have a new illustration: your bike parked for the night under the moon and stars.
  • Before your first ride, Today shows one line about where your fitness numbers come from instead of form, fitness and fatigue at zero. The Plan page's warning about your hours limiting the build now only shows if you picked a faster pace than the default, and says it in plain words.
  • Today: This week's day tiles are shorter, and a ride that made up a session moved from another day now shows its ride shape instead of just its TSS.
  • Your plan starts the day you set Lactic up: the first week's rides fit into the days left in it. If there's nothing planned that day, Today offers an easy 30-minute first ride to try your trainer.
  • iPhone: during a ride, pause, skip, intensity and End ride stay docked above the tabs, so you never scroll to reach them.
  • Today puts the key things first. Recovery is four quick tiles (HRV, resting HR, breathing, sleep), each with a bar showing your usual range and a dot for last night. Then "Ready to train?" and Indoors or Outside, then today's plan next to the suggested ride, each with its own Start ride. "Something else…" offers today's other options, the library, your own workouts or a free ride. The coach's brief comes after, and it's rewritten if your recovery score changes a lot after it was written.
  • A new plan no longer starts with a recovery week when you set it up partway through a week, so your first week has real riding in it. Riders without a coach or sleep tracking no longer see lines about them after a ride or on Progress.
  • The coach's message box no longer shrinks to a sliver after you delete old conversations and start a new one.
  • Warm-ups now open the legs: before tempo, sweet spot and harder workouts, the 10-minute warm-up is a 6-minute build and three short efforts, each a little harder than the last (20 s at 110, 120 and 130% before hard days; 30 s at 90, 100 and 110% before tempo and sweet spot). Workouts stay the same length; endurance and recovery rides keep the plain build. This week's plan picks them up too.
  • A coach brief written before the brief-and-suggestion fix is written once more, so today's brief and the option marked under it agree. With Adaptive workouts on, the brief may mention that Lactic eases later reps for you during the ride.
  • New experiment, adaptive workouts (turn it on in Settings → Experimental features): if a workout is clearly too hard, say your cadence fades at the end of a rep or your heart rate won't come down between reps, Lactic eases the reps still to come by a few percent and offers Undo. If it looks too easy, it asks before making them harder, and no answer keeps the plan. It never changes the rep you're in, tests or race openers. The ride's page shows what changed and why.
  • Today's coach brief and the suggested option under it now always agree: if the coach says ride it as planned, that's what's marked, and when a later recovery score changes the advice, the brief is rewritten. The coach also no longer offers to change a workout mid-ride; it points you to an easier option before you start, or the intensity and skip buttons while you ride.
  • Warm-ups now finish at the power of your first interval and cool-downs start at the power of your last, so there's no jump or drop where they meet. Hard first efforts still start with a step up. Edit the first interval and the warm-up follows it.
  • Sleep: the coach no longer quotes a weekly sleep debt total. Like Today, it tells you how much to aim for tonight. iPhone: Health reads no longer start partway through a night, so a night can't be cut down to its last few minutes, and older nights are read again once to fix any that were.
  • Today is about today: your workout first, then how this week and your plan are tracking, your form and your recovery. Rest days get a proper rest-day card. Last week's review moved to the top of Progress.
  • Weighing in is now weekly: Today only asks before your first ride of the week, and only when there's no weigh-in from the last 7 days (scale, typed in, or Apple Health). You can type your weight in right there, or put it off until next week.
  • The Last night card on Today and Health is now called Recovery.
  • Race courses: set a target finish time and Lactic works out the FTP it takes, whether that's realistic by race day, and the power to hold on each climb to make it. If you need more FTP, the plan builds toward it. Pick how you'll ride the event (solo, a small group or a bunch) and times allow for the draft, with what getting dropped on the main climb would cost you.
  • Race courses: times now show a likely range, and allow for racing at altitude (Lactic asks where you live) and in the heat. Fueling follows the current sports-nutrition guidelines. Curious how it's all worked out? Settings → About links to the science behind it.
  • Race courses: road riders can measure their own drag from recent outdoor rides with power (via intervals.icu). Lactic then checks itself by timing each of those rides from its own power, and tells you how close it came.
  • On a computer, Ride is now a tab in the top bar between Plan and Progress, and it stays highlighted while you're on it, so you can always tell where you are.
  • The iPhone screen stays on while it's showing a ride, whether the iPhone is running the trainer or showing the ride on your computer.
  • iPhone: rides no longer show up twice in Apple Health and Fitness, and rides that were saved twice before are cleaned up (Lactic keeps one copy).
  • Favorites now count everywhere: workouts you've saved yourself can go into your plan too, the AI coach can suggest and pick workouts from the library and your own (favorites first), and the coach's weekly picks no longer replace a favorite the plan already chose.
  • Plan: the day popup's "Use a workout…" menu now lists your favorites and your own workouts above the library. Your plan also mixes in workouts from the library that fit, alongside its own, with your favorites first.

This is Lactic Preview, a testing build, not a release. It's the latest main, rebuilt on every merge. Riders should use the latest release.

Lactic Preview installs beside Lactic as its own app (orange icon) with its own data, saved keys and Claude Desktop entry, so trying it never touches your real rides or plan. It checks this page for updates, so once it's installed every merge shows up as an update.

Mac: open the .dmg, drag Lactic Preview to Applications and open it (it's signed and notarized). Or in Terminal, in one go:

curl -fsSL https://raw.githubusercontent.com/blairj09/lactic/main/app/scripts/try-preview.sh | bash

Add a pull request number at the end (| bash -s -- 72) to try that pull request's build before it's merged (needs the GitHub CLI: brew install gh && gh auth login).

Lactic Modular 0.2.0-modular.496 (testing build)

Choose a tag to compare

@github-actions github-actions released this 14 Nov 22:39
5bf2bd7

Built from 5bf2bd7 (iPhone: ask for Health again when iOS hasn't asked about every type (#205)).

This is Lactic Modular, a testing build, not a release. It's the latest modular-ui branch: the customizable layouts, ride data fields and plugins work, rebuilt on every merge into that branch. Riders should use the latest release.

Lactic Modular installs beside Lactic and Lactic Preview as its own app (purple icon) with its own data, saved keys, ports and Claude Desktop entry (lactic-modular), so trying it never touches your real rides or your Preview. It checks this page for updates.

Mac, in Terminal:

curl -fsSL https://raw.githubusercontent.com/blairj09/lactic/modular-ui/app/scripts/try-preview.sh | bash -s -- --modular

Add a pull request number (bash -s -- --modular 160) to try a pull request into modular-ui before it's merged (needs the GitHub CLI: brew install gh && gh auth login).

Lactic v0.2.0 (Beta)

Choose a tag to compare

@github-actions github-actions released this 11 Nov 19:38
8ef83c6

What's new

  • Post rides to Strava from the iPhone app (an experiment): connect Strava in Settings on an iPhone you use on its own, or, if it's paired with your computer, rides you record on the iPhone go to Strava from your computer once they sync, so none shows up twice.
  • Sleep debt is fixed: reading Health from your iPhone could keep only the last hour or two of some nights, which made sleep debt far too high. The iPhone reads your last 60 days once more to put those nights back, and debt now counts only the last 7 days.
  • Today no longer shows a weekly sleep debt warning. When you're behind on sleep it just says how long to aim for tonight to catch up; the week's total is still on the Sleep page.
  • Three iPhone widgets to choose from: Today (recovery and your ride together, now also in a large size), Recovery (last night only) and Ride (today's workout, tomorrow's and your week). If you don't track sleep, Today shows your ride and week instead of an empty ring.
  • Today puts your workout and Start ride first, with this morning's recovery beside it on a computer and right below it on a phone. The full Last night card now lives at the top of Health, and both pages use the same words: "usual" for your own ranges, one way of writing hours, and sleep shown as a share of your need.
  • Progress works out W/kg in the power profile from your latest weigh-in, the same weight VO2 max uses, and weigh-ins from intervals.icu now keep your profile weight up to date too.
  • Today no longer offers to lower your FTP when your recent rides didn't include a hard enough effort; it only offers a new number when rides say FTP has gone up.
  • Your plan's first week no longer counts rides from before the plan started, or shows them making up a planned session.
  • Rides named for a workout, like "Sweet spot 3 × 12", now show that type in your rides list instead of a guess from intensity, and ride sources read properly: Zwift, not "zwift".
  • Zoom Lactic in and out with Cmd + and Cmd − (Ctrl on Windows and Linux), and back to normal size with Cmd 0.
  • The tour no longer asks twice: choosing "Show me around" after setup, or "Take the tour" in Settings, goes straight to the first stop. Its list of what's not set up yet no longer suggests choosing a coach once you've picked one, No coach included.
  • On a phone, the Health page's tiles no longer leave empty grey gaps, and choices with long names (like "Garmin, Oura, WHOOP") wrap instead of running into each other.
  • Setting up Lactic on an iPhone without a computer now talks about your iPhone, connects Apple Health in its own step, and leaves out the options that need a computer (local AI models, AI apps, Strava).
  • The iPhone remote keeps Pause, Skip and Intensity at the bottom of the screen within reach of your thumb, and Intensity moves in 5% steps.
  • While your computer is riding, the iPhone's Ride tab opens the remote for that ride instead of trying to connect to the trainer.
  • Import rides from GPX and TCX files as well as FIT, on their own or inside a zip like Strava's account archive, so older Strava rides come in too.
  • Import .erg and .mrc workout files (from TrainerRoad, Golden Cheetah and others) on the Ride screen, alongside .zwo.
  • Save any workout as a file from the Ride screen: a .fit workout to copy onto a Garmin (or open in another head unit or app), or a .zwo for Zwift and most trainer apps. No intervals.icu needed.
  • Pick a workout is simpler: choose the type, style and length from three menus, and make it easier or harder with one Level − / + control. The library and your saved workouts sit behind one link.
  • On the iPhone, the coach panel and pop-up windows no longer slide under the clock and battery at the top or the home bar at the bottom.
  • If your iPhone widgets stay empty, they now say why, and the iPhone app's settings show when they last updated, with a button to update them now.
  • Lactic on your Apple Watch: last night's recovery, HRV, resting heart rate, sleep and today's ride in the Watch app, plus a Smart Stack widget and complications for your watch face. Your iPhone sends them over whenever it updates.
  • Lactic widgets for your iPhone's home screen and lock screen: last night's recovery score, HRV, resting heart rate and sleep, today's ride and today's exertion against its target, at a glance. They update whenever the app reads Health or syncs with your computer.
  • Your saved keys are now tied to the service they're for: the intervals.icu key only goes to intervals.icu, the Strava sign-in only to Strava, and the coach's AI key only to your AI provider. If you use a custom provider and change its address, your computer asks before the key is used there.
  • Pairing your iPhone is safer: the QR code now only starts the pairing, and your iPhone and computer agree on their own private key that was never on screen. A photo or screen recording of the code can't be used to read what they send each other. Pair again once both are updated to get the new key.
  • Lactic stays responsive while it reads a long ride history, makes a backup or waits on the keychain, and lists of rides load faster because they no longer pull every ride's full power and route data.
  • Today has a new Last night card: your recovery score with the past week, HRV, resting heart rate, sleep, breathing, wrist temperature and yesterday's exertion over the last two weeks against your usual range, last night's sleep stages, and a bar showing today's exertion against today's target (and where your planned ride should land it).
  • Today's options and the coach now notice patterns across nights, not just last night: HRV under your usual range three nights running, signs you may be getting ill, or a pile of sleep debt make an easier day the suggestion, and the coach keeps them in mind when it picks the week's workouts.
  • Chart dates and times no longer pile up on a phone: the fitness forecast, power curve, ride and race charts show fewer axis labels when the screen is narrow.
  • Each block of a workout is now its own lap on Strava and intervals.icu, with its own time and average power, so you can see how every interval went. Rides you post or export again from their ride page get laps too.
  • With your iPhone paired, Settings → Sleep and recovery shows Apple Health coming from it, when the phone last read Health and last night's numbers. Without a paired iPhone, the card points you to pairing it, and the Shortcut steps sit behind a "No iPhone app yet?" link.
  • Your API keys (the coach's AI key and intervals.icu) now move between your Mac and paired iPhone, so you type each one once; change or remove one on either and the other follows. Keys go only over the direct encrypted link and stay in each device's keychain. Units and your ride habits (auto-start, sprint grade, how Extend works) sync too, and a post-ride survey or week review you skipped on one isn't asked again on the other. Theme and paired gear stay per device.
  • Away from your Mac, your iPhone keeps syncing through iCloud: your rides and Health data reach the Mac next time Lactic is open there.
  • Your iPhone finds Lactic on your Mac nearby by itself and connects straight to it, the way AirDrop does, even when the two are on different networks.
  • When your iPhone can't reach your computer, it now says why, including when the two are on different networks.
  • The ride overlay opens where you left it, at the size you left it, every ride and after restarting Lactic. If that screen isn't connected anymore, it opens on one that is.
  • Stretch the ride overlay short and wide and its end-of-workout choices fit on one row, with bigger Extend and End buttons.
  • The ride overlay's buttons work again in the desktop app: Extend and End at the end of a workout, and back, pause and skip in its controls, did nothing when pressed there.
  • Ask coach buttons (beside a sensor or intervals.icu problem) now start a new coach conversation instead of adding to the one you were in.
  • Progress has two tabs: Trends for your fitness and power charts, and Rides for every ride on a calendar or as a list, with search and filters. Your rides are no longer under all the charts.
  • Race reports (experimental): in the week after a race on your plan, Today points you to its report, and every race report now opens with an automatic look at the race: your peak power and W/kg against your bests of the last 90 days, where you placed once the results are in (gap to the winner, the podium and the riders either side), your earlier rides of the same course, found on their own from your history, and, when the event has a course, how you rode it against your pre-race plan, climb by climb. On races that aren't laps, line any of those up with one click.
  • New experiment: race courses. Turn on "Race courses" in Settings → Experimental features, then find your race by name when you add an event (US races on BikeReg; Lactic picks up its Ride with GPS course when the listing links one), or attach a course file (GPX, TCX or FIT) or paste a course link. You get a pre-race report with the profile, each climb and the power to hold on it, your estimated time, fueling, and the forecast with the wind on the course from two weeks out. The plan's key workouts also train for the course's climbs.
  • New experiment: post rides to Strava. Turn on "Post rides to Strava" in Settings → Experimental features, connect Strava under Connections, and rides you record in Lactic show on Strava as Lactic activities, titled with the workout and described with how each interval went. Earlier rides get a Post to Strava button on their ride page.
  • Lactic for iPhone (coming to TestFlight): pair it with Lactic on your Mac by scanning a code in Settings → iPhone, and the two stay in sync over your Wi-Fi, with your Mac keeping the main copy. It reads sleep, HRV and resting heart rate straight from Apple Health, so the Shortcut isn't needed, and saves your Lactic rides to Health as cycling workouts.
  • With Lactic's Ride page ope...
Read more

Lactic v0.1.5 (Beta)

Choose a tag to compare

@github-actions github-actions released this 09 Nov 16:08
aed47b6

What's new

  • Lactic for Mac is now signed and checked by Apple, so it installs like any other app with no Terminal step, and it runs on Intel Macs too. Your Mac may ask once more for permission to use Lactic's saved keys; choose Always Allow and it remembers it from then on, across updates.
  • Moving to a new computer? Back up in Settings → Your data, copy the file across, and choose "Bring your data across" when Lactic first opens on the new one (or Restore from a backup in Your data). Rides, plan, workouts, favorites, recovery, coach chats and settings all come with you; you add your API keys and pair your gear again, and Lactic lists what's left.
  • On Windows and Linux, the ride overlay now keeps itself on top when a game or video goes full screen. If a game in exclusive full screen still covers it, the Ride page's Overlay settings explain how to switch the game to borderless or windowed (and how to pin the overlay on Wayland).
  • Experimental features in Settings: new things we're still trying out, off until you turn them on. The first is Race reports: open a race from its ride page, add other riders' files and the results, and see where you lost time, corner by corner and lap by lap, what to work on, and a debrief from the coach.
  • Race reports now work for long races that aren't laps, like LoToJa or a gran fondo, even with nobody to compare with. Lactic cuts the course into its climbs and the roads between, and shows how you paced it, where you faded, your power once tired, what each climb took, your stops and what you rode between them (with how much to eat). Add your ride from another year and see where you gained or lost on it.
  • Don't know your FTP? Tick "I don't know" in setup and your plan starts with a ramp test on your first good day. When you finish it, Lactic sets your FTP from the result (with Undo), so every workout after it fits you.
  • No smart scale? Today no longer shows a Weigh in step. It appears once you pair a scale in Settings → Bluetooth or on Health.
  • Starting over or moving on? Settings → Your data → Delete all my data removes every ride, plan, setting and saved key from this computer, after offering an export first.
  • Rides that reached intervals.icu through Strava can't come into Lactic, because Strava doesn't let intervals.icu share them. Settings → intervals.icu now says how many are missing and how to bring them in, and Import FIT files takes Strava's account archive .zip.
  • A starter workout library: 50 workouts for recovery, endurance, tempo, sweet spot, threshold, VO2 max, anaerobic and sprints, plus a ramp test and a 20-minute FTP test. Find it under Ride → Pick a workout → My workouts, or put one on any plan day.
  • Heart the workouts you like, in the library or after a ride, and find them under Favorites. When a favorite fits a key day, the plan picks it.
  • Disconnecting intervals.icu now removes its API key from your computer too. A key pasted in Settings also goes into your system keychain now, not the database.
  • Two races on one weekend? The plan now keeps both, with openers before the first, instead of turning Saturday's race into an openers ride.
  • Your week stays put. Lactic keeps the week as it was planned on Monday instead of reshuffling it as rides come in, and if your fitness has moved enough to change it by more than 15%, the Plan offers a Re-plan button rather than changing it quietly. Easier days now say why, like Recovery week or Fresh for your event.
  • Numbers now say where they came from: measured (a test or your scale), estimated by Lactic from your rides, or synced from Apple Health or intervals.icu, with the date. Look under FTP in Settings and the tiles on Health and Progress.
  • Take your data anywhere: each ride's page has Export FIT for Garmin Connect, Strava or any training app, and Settings → Your data → Export everything saves all your rides, plan, recovery, weight and coach chats in one zip. And your AI key now has a Remove button in Settings → Coach.
  • When your rides say your FTP has gone up, Today offers to use the new number, with Undo if you change your mind. And when your last FTP test is over eight weeks old, one click puts a ramp test on the next good day.
  • Each ride now gets an execution score out of 100. Rides on Lactic are checked block by block, so you can see which interval you cut short or faded in. Rides from elsewhere are scored on time and stress against the plan.
  • Using Claude or another AI app as your coach? Click the coach button in the top bar (or press ⌘K) to see that you chat with it there, whether it's connected and what to ask. The built-in coach can now let AI apps connect too, in Settings → Coach.
  • Missed a key workout? Lactic moves it to the next open day that week, shortened if that day is shorter, and never right next to another hard day or just before a race. The Plan shows where it went.
  • When something in Lactic frustrates you or you ask for a feature it doesn't have, the coach offers a Send feedback button with your note already written up. Check it, change it, and send it if you like.
  • The tour now shows the Send feedback button and how to include a marked-up screenshot.
  • Only ride and plan? Setup now asks whether you want sleep and recovery, weight, both or neither, and Lactic hides what you skip. Not ready? Set them up later in Settings → What you track, or ask the coach.
  • Today's Recovery step names where your sleep comes from, like Connect Apple Health or Connect intervals.icu, instead of asking for a watch.
  • Lactic is in beta: you'll see a Beta tag next to the name. Expect a few rough edges, and tell us what you find with Send feedback.
  • Like Lactic? Settings → About now has a Support Lactic link if you want to chip in.
  • A new startup screen: the Lactic logo builds one interval at a time each time you open the app, then fades into Today.
  • Weigh in on many more smart scales: Xiaomi Mi scales, Renpho and other QN scales, Etekcity ESF-551 and scales with the standard Bluetooth weight profile, as well as the Hume Body Pod.
  • Feedback no longer screenshots on its own. Press Include screenshot to take one, circle the problem, then attach it.
  • Fewer Mac keychain password prompts: your API keys now share one keychain entry, so Lactic asks at most once after each update.

Lactic is in beta: expect a few rough edges, and tell us what you find with Send feedback in the app.

Already have Lactic? Versions with in-app updates offer this one themselves when they start: choose Update and restart.

Download

  • Mac (Apple silicon or Intel): Lactic_*_universal.dmg. Drag Lactic to Applications and open it. It's signed and notarized by Apple.
  • Windows: Lactic_*_x64-setup.exe. Windows warns about an unknown publisher; choose More info, then Run anyway.
  • Linux: Lactic_*_amd64.AppImage (chmod +x, then run it) or Lactic_*_amd64.deb (sudo apt install ./Lactic_*_amd64.deb).

What's Changed

  • Today: an Indoors / Outside switch with one Start ride button by @blairj09 in #29
  • Read more smart scales: standard Bluetooth, Xiaomi, Renpho/QN, Etekcity by @blairj09 in #17
  • Keep API keys in one keychain item so macOS asks at most once per build by @blairj09 in #36
  • Homepage: the app window is the real app, running with sample data by @blairj09 in #35
  • Feedback: Include screenshot opens markup, no automatic capture by @blairj09 in #37
  • Add Support Lactic links (Ko-fi + GitHub Sponsors) by @blairj09 in #38
  • Site: closing band reads "Ride Free." by @blairj09 in #39
  • Site: Support Lactic button in the Ride Free. band by @blairj09 in #40
  • Mark Lactic as Beta: site, README, releases, app by @blairj09 in #41
  • Name the rider's recovery source on Today instead of "Connect your watch" by @blairj09 in #43
  • Play the startup loader every time Lactic opens by @blairj09 in #44
  • Ask in setup whether to track recovery and weight by @blairj09 in #42
  • Setup: say recovery and weight can be set up later by @blairj09 in #45
  • Tour points at the Send feedback button by @blairj09 in #46
  • Tour's feedback stop leaves out GitHub by @blairj09 in #48
  • Coach offers to send feedback when the rider is frustrated with Lactic by @blairj09 in #47
  • Add trademark policy for the Lactic name and logo by @blairj09 in #50
  • Move a missed key session to the next open day of the week by @blairj09 in #52
  • Explain the External coach: popover with status and what to ask, ⌘K, AI apps alongside the built-in coach by @blairj09 in #49
  • Score each ride 0 to 100 against its workout, block by block by @blairj09 in #54
  • Nudge an FTP retest when the last test is stale, and offer a higher FTP with undo by @blairj09 in #55
  • Label numbers as measured, estimated or synced, with their date by @blairj09 in #56
  • Keep the week stable: offer a re-plan on big drift, and say which rule eased a day by @blairj09 in #60
  • Keep both races on a back-to-back race weekend by @blairj09 in #57
  • Remove the intervals.icu API key on disconnect by @blairj09 in #58
  • Export a ride as FIT, or ...
Read more

Lactic v0.1.4

Choose a tag to compare

@github-actions github-actions released this 08 Nov 02:31
5f47429

What's new

  • Feedback now attaches a picture of the screen you're on, ready to circle the problem. Remove it or add your own images if you like.

Already have Lactic? Versions with in-app updates offer this one themselves when they start: choose Update and restart.

Download

  • Mac (Apple silicon): Lactic_*_aarch64.dmg. Drag Lactic to Applications, then run xattr -cr /Applications/Lactic.app once in Terminal (the app isn't signed yet).
  • Windows: Lactic_*_x64-setup.exe. Windows warns about an unknown publisher; choose More info, then Run anyway.
  • Linux: Lactic_*_amd64.AppImage (chmod +x, then run it) or Lactic_*_amd64.deb (sudo apt install ./Lactic_*_amd64.deb).

What's Changed

  • Feedback attaches a picture of the current screen (v0.1.4) by @blairj09 in #34

Full Changelog: v0.1.3...v0.1.4

Lactic v0.1.3

Choose a tag to compare

@github-actions github-actions released this 08 Nov 01:53
825231a

What's new

  • Lactic now tells you when there's a new version and installs it for you with one click, then shows what changed.
  • Check for updates any time from the Lactic menu on a Mac, or Settings → About.

Already have Lactic? Versions with in-app updates offer this one themselves when they start: choose Update and restart.

Download

  • Mac (Apple silicon): Lactic_*_aarch64.dmg. Drag Lactic to Applications, then run xattr -cr /Applications/Lactic.app once in Terminal (the app isn't signed yet).
  • Windows: Lactic_*_x64-setup.exe. Windows warns about an unknown publisher; choose More info, then Run anyway.
  • Linux: Lactic_*_amd64.AppImage (chmod +x, then run it) or Lactic_*_amd64.deb (sudo apt install ./Lactic_*_amd64.deb).

What's Changed

  • Run the coach evals from GitHub Actions by @blairj09 in #28
  • Lactic landing page by @blairj09 in #25
  • Site: download popup that picks your OS, footer says Ride Free. by @blairj09 in #31
  • Metric or imperial units, in Settings and through the coach by @blairj09 in #33
  • Coach answers app questions and changes any setting by @blairj09 in #32
  • In-app updates with what's new; release v0.1.3 by @blairj09 in #30

Full Changelog: v0.1.2...v0.1.3

Lactic v0.1.2

Choose a tag to compare

@github-actions github-actions released this 08 Nov 01:07
c93499d

Download

  • Mac (Apple silicon): Lactic_*_aarch64.dmg. Drag Lactic to Applications, then run xattr -cr /Applications/Lactic.app once in Terminal (the app isn't signed yet).
  • Windows: Lactic_*_x64-setup.exe. Windows warns about an unknown publisher; choose More info, then Run anyway.
  • Linux: Lactic_*_amd64.AppImage (chmod +x, then run it) or Lactic_*_amd64.deb (sudo apt install ./Lactic_*_amd64.deb).

What's Changed

  • README: new screenshots and shorter copy to match the simplified app by @blairj09 in #23
  • Send feedback from the app, with or without a GitHub account by @blairj09 in #24
  • Release v0.1.2: send feedback from the app by @blairj09 in #27

Full Changelog: v0.1.1...v0.1.2

Lactic v0.1.1

Choose a tag to compare

@github-actions github-actions released this 07 Nov 23:46
2bc7503

Download

  • Mac (Apple silicon): Lactic_*_aarch64.dmg. Drag Lactic to Applications, then run xattr -cr /Applications/Lactic.app once in Terminal (the app isn't signed yet).
  • Windows: Lactic_*_x64-setup.exe. Windows warns about an unknown publisher; choose More info, then Run anyway.
  • Linux: Lactic_*_amd64.AppImage (chmod +x, then run it) or Lactic_*_amd64.deb (sudo apt install ./Lactic_*_amd64.deb).

What's Changed

  • A proper README: what Lactic is, screenshots, downloads, build and contributing by @blairj09 in #13
  • MIT license, and a big screenshot at the top of the README by @blairj09 in #14
  • Explain heart rate from a watch in setup and pairing by @blairj09 in #15
  • Replace native dropdowns with an app-styled Select by @blairj09 in #16
  • Recommend coach models and fix the monthly AI limit by @blairj09 in #18
  • Describe the ride overlay as an always-on-top window, not a Zwift feature by @blairj09 in #19
  • Coach evals: realistic scenarios, scripted checks and a judge, across models by @blairj09 in #20
  • Simplify copy and UI across every screen by @blairj09 in #21
  • Fix packaged builds showing "Running without Supabase" (v0.1.1) by @blairj09 in #22

Full Changelog: v0.1.0...v0.1.1

Lactic v0.1.0

Choose a tag to compare

@github-actions github-actions released this 07 Nov 22:25
dff963f

Download

  • Mac (Apple silicon): Lactic_*_aarch64.dmg. Drag Lactic to Applications, then run xattr -cr /Applications/Lactic.app once in Terminal (the app isn't signed yet).
  • Windows: Lactic_*_x64-setup.exe. Windows warns about an unknown publisher; choose More info, then Run anyway.
  • Linux: Lactic_*_amd64.AppImage (chmod +x, then run it) or Lactic_*_amd64.deb (sudo apt install ./Lactic_*_amd64.deb).

What's Changed

  • Lactic desktop app: Tauri shell, Rust core, the training app on local SQLite by @blairj09 in #1
  • First-run tour with a demo ride on the simulated trainer by @blairj09 in #4
  • Build for Windows and Linux; simulated gear becomes a development-only switch by @blairj09 in #3
  • Let the coach troubleshoot gear and connected services by @blairj09 in #5
  • Tour: accurate copy, and a walk around the Ride screen instead of the demo ride by @blairj09 in #6
  • Coach no longer offers to turn simulated gear on or off by @blairj09 in #7
  • Read recovery and weight from intervals.icu wellness (Garmin, Oura, WHOOP, Polar, Coros) by @blairj09 in #8
  • Publish GitHub releases from version tags by @blairj09 in #9
  • Health setup: Android steps (Health Sync to intervals.icu) by @blairj09 in #10
  • Release from a manual workflow run too by @blairj09 in #11
  • Release automatically when main has an unreleased version by @blairj09 in #12

New Contributors

Full Changelog: https://github.com/blairj09/lactic/commits/v0.1.0