| 2025-08-30 18:42 | Merge branch 'dev' | Asher Morgan | 91 | +14532 | -8264 |
| 2025-08-30 18:39 | Update version to 1.5.0 | Asher Morgan | 3 | +25 | -3 |
| 2025-08-30 17:24 | Fix position of empty message in TargetEditor | Asher Morgan | 1 | +1 | -1 |
| 2025-08-30 17:09 | Update browsers list | Asher Morgan | 1 | +3 | -3 |
| 2025-08-25 01:42 | Generate changelog page content at build-time | Asher Morgan | 7 | +93 | -81 |
| 2025-08-24 22:56 | Create changelog page generated from CHANGELOG.md | Asher Morgan | 7 | +148 | -32 |
| 2025-08-23 22:08 | Use consistent capitalization in CHANGELOG.md | Asher Morgan | 1 | +14 | -14 |
| 2025-08-23 22:02 | Update about page | Asher Morgan | 1 | +3 | -1 |
| 2025-08-23 21:53 | Rename option to "Workout name customization" | Asher Morgan | 5 | +16 | -16 |
| 2025-08-23 21:49 | Merge branch 'reorganize-localstorage' into dev | Asher Morgan | 25 | +2279 | -1327 |
| 2025-08-23 21:47 | Update unit tests | Asher Morgan | 5 | +330 | -207 |
| 2025-08-23 21:20 | Update localStorage migrations and related tests | Asher Morgan | 6 | +465 | -190 |
| 2025-08-23 02:42 | Reorganize localStorage items | Asher Morgan | 14 | +542 | -329 |
| 2025-08-18 01:47 | Sync race prediction options globally | Asher Morgan | 16 | +1096 | -837 |
| 2025-08-15 21:03 | Create RacePredictionOptions interface | Asher Morgan | 14 | +342 | -260 |
| 2025-07-26 18:32 | Update README.md and about page text | Asher Morgan | 2 | +23 | -13 |
| 2025-07-26 18:15 | Improve consistency in CHANGELOG.md | Asher Morgan | 1 | +70 | -48 |
| 2025-07-20 01:53 | Update wording on Vue NotFoundPage view | Asher Morgan | 1 | +1 | -1 |
| 2025-07-20 00:50 | Use consistent capitalization in advanced options | Asher Morgan | 3 | +7 | -7 |
| 2025-07-19 23:35 | Implement custom batch column label option | Asher Morgan | 11 | +337 | -47 |
| 2025-07-13 19:38 | Hide riegel exponent option when not applicable | Asher Morgan | 4 | +61 | -21 |
| 2025-07-12 21:36 | Rename src/utils/ to src/core/ | Asher Morgan | 43 | +2771 | -2752 |
| 2025-07-12 21:02 | Organize e2e tests into sections | Asher Morgan | 7 | +1831 | -1776 |
| 2025-07-12 20:38 | Update storage migration logic and its e2e tests | Asher Morgan | 3 | +339 | -32 |
| 2025-07-12 19:28 | Extract default calculator state | Asher Morgan | 8 | +186 | -216 |
| 2025-07-12 18:53 | Inline pace util functions | Asher Morgan | 3 | +3 | -39 |
| 2025-07-12 18:40 | Implement formatDistance and formatPace functions | Asher Morgan | 11 | +543 | -350 |
| 2025-07-12 15:03 | Fix length of mile | Asher Morgan | 8 | +25 | -25 |
| 2025-07-07 21:08 | Replace TargetSetTypes with the Calculator enum | Asher Morgan | 5 | +22 | -29 |
| 2025-07-06 22:06 | Extract advanced calculator options into component | Asher Morgan | 13 | +568 | -227 |
| 2025-07-06 03:37 | Move *-target-set settings into *-options setting | Asher Morgan | 13 | +571 | -308 |
| 2025-06-30 01:35 | Add unit tests for PaceInput/TimeInput labels | Asher Morgan | 3 | +46 | -13 |
| 2025-06-30 01:26 | Fix vite warning about illegal HTML in about page | Asher Morgan | 1 | +7 | -7 |
| 2025-06-30 01:18 | Merge branch 'typescript' into dev | Asher Morgan | 60 | +8468 | -5512 |
| 2025-06-30 01:14 | Merge branch 'dev' into typescript | Asher Morgan | 3 | +333 | -6 |
| 2025-06-30 01:09 | Miscellaneous cleanup after TypeScript migration | Asher Morgan | 11 | +232 | -289 |
| 2025-06-29 02:11 | Convert remaining project src files to TypeScript | Asher Morgan | 4 | +5 | -4 |
| 2025-06-28 20:19 | Convert all views to TypeScript | Asher Morgan | 23 | +504 | -350 |
| 2025-06-28 21:52 | Use withDefaults macro for most prop definitions | Asher Morgan | 11 | +93 | -105 |
| 2025-06-28 19:31 | Convert remaining components to TypeScript | Asher Morgan | 4 | +134 | -88 |
| 2025-06-22 20:38 | Convert remaining utils to TypeScript | Asher Morgan | 11 | +435 | -365 |
| 2025-06-22 15:27 | Convert most components to TypeScript | Asher Morgan | 15 | +115 | -65 |
| 2025-06-22 01:04 | Convert composables to TypeScript | Asher Morgan | 9 | +75 | -70 |
| 2025-06-21 22:55 | Convert most utils to TypeScript | Asher Morgan | 14 | +1114 | -963 |
| 2025-06-29 22:46 | Save unit calculator category to localStorage | Asher Morgan | 3 | +10 | -8 |
| 2025-06-29 22:39 | Add e2e tests for localStorage behavior | Asher Morgan | 1 | +326 | -0 |
| 2025-06-21 22:00 | Add basic typescript packages | Asher Morgan | 6 | +850 | -6 |
| 2025-06-21 21:24 | Migrate other components to useObjectModel | Asher Morgan | 9 | +262 | -122 |
| 2025-06-21 17:59 | Update dependencies | Asher Morgan | 10 | +5588 | -4023 |
| 2025-05-31 20:07 | Merge branch custom-workout-target-names into dev | Asher Morgan | 18 | +586 | -226 |
| 2025-05-31 19:58 | Automatically migrate workout calculator options | Asher Morgan | 4 | +136 | -15 |
| 2025-05-31 19:46 | Update end-to-end tests | Asher Morgan | 3 | +14 | -5 |
| 2025-05-31 19:44 | Implement target name customization option | Asher Morgan | 5 | +259 | -216 |
| 2025-05-31 17:26 | Add link to git repository on about page | Asher Morgan | 2 | +8 | -2 |
| 2025-05-31 01:57 | Refactor vite build variables | Asher Morgan | 5 | +19 | -15 |
| 2025-05-30 03:02 | Implement custom workout target names | Asher Morgan | 8 | +141 | -7 |
| 2025-05-30 02:33 | Implement workoutTargetToString util function | Asher Morgan | 3 | +67 | -14 |
| 2025-05-21 01:47 | Fix spacing in target editor | Asher Morgan | 2 | +2 | -2 |
| 2025-05-18 02:05 | Update symbol for marathon distance | Asher Morgan | 1 | +1 | -1 |
| 2025-05-18 00:51 | Fix early formatting bug in Decimal & IntegerInput | Asher Morgan | 2 | +4 | -16 |
| 2025-05-17 22:05 | Simplify description of some workout targets | Asher Morgan | 2 | +18 | -8 |
| 2025-03-24 20:38 | Round durations in Batch Calculator | Asher Morgan | 8 | +48 | -41 |
| 2025-02-10 01:11 | Fix GitHub Actions CI | Asher Morgan | 1 | +2 | -2 |
| 2025-02-06 04:39 | Update README.md | Asher Morgan | 1 | +5 | -0 |
| 208 more commits remaining, fetch the repository |