2026.7.14 (2026-07-21)
- support manual previous owner ordering (987d86d)
2026.7.13 (2026-07-21)
- harden authentication and container runtime (3c79563)
2026.7.12 (2026-07-19)
- point the password change at the settings endpoint (a22e9e2)
2026.7.11 (2026-07-19)
- serve the apple-app-site-association for iOS passkey login (5e45190)
2026.7.10 (2026-07-19)
- enable umami web vitals and identify users with a distinct ID (2ce41ae)
2026.7.9 (2026-07-19)
- motorcycle details (Title/Value pairs) in Werkstattdaten (df64df4)
- drop the duplicate location name from printed bin labels (f441a5d)
- force patched undici and esbuild via pnpm overrides (62d41be)
- move Details above Reifendruck and slim down its empty state (be26b0a)
- update vitest to 4.1.10 to match @vitest/coverage-v8 peer range (adf6660)
2026.7.8 (2026-07-17)
- drop archived status and restyle the sold toggle (a7a2894)
- fuel additive and lead substitute checkboxes on fuel records (c8ce203)
- motorcycle status (active/archived/sold) with sell flow (68e6ee2)
- wrap long maintenance titles and descriptions (37dbf18)
- default dev server port to 5174 (e544abf)
- fix all oxlint warnings (213d1e6)
- stop tracking .direnv/ (already gitignored) (9a6a21f)
- add coverage PR reports and main-tracking badge (7c3ff85)
2026.7.7 (2026-07-15)
- brake-type config and simplified brake maintenance dialog (cee38f9)
- drivetrain filtering and drum-brake component fix (d15ea53)
- min km/year card warning and proximity location merge (9a7dec6)
2026.7.6 (2026-07-14)
- add Hinterachsgetriebeöl fluid type, consolidate labels (fc8df3e)
- de-duplicate locations per section in settings (ff79b3b)
- pick a nearby fuel station from your location (af6660b)
- use backend coordinate matching in fuel import (93df932)
2026.7.5 (2026-07-13)
- show skipped backup status (9e13cd7)
2026.7.4 (2026-07-13)
2026.7.3 (2026-07-12)
- manage previous owners from the edit screen + unknown-history flag (392f38e)
- show unverified badge on torque specs (9282edb)
- tire pressure configurations with sidecar support (06271a3)
- hide unknown-history label from the summary card (a789bae)
- send session token with document and preview file requests (27309f7)
2026.7.2 (2026-07-11)
- keep parent modal open when a nested dialog closes (cbe7fa0)
2026.7.1 (2026-07-09)
- add compatible-parts page to the motorcycle detail (c5d79bf)
- add Modellkatalog page, hierarchical pickers and VIN auto-detection (84c306f)
- add part detail page with catalog-sheet hero and printable labels (d742049)
- add parts inventory, part images and storage location QR labels (1435419)
- decode frame numbers in the motorcycle form and fix field saving (26f4c47)
- import parts and stock from Huggett invoice PDFs (e7a49c0)
- import parts from BMWBike by URL or part number (da505cf)
- mark stock entries as used/salvaged parts (aa0a457)
- rework storage location pages and unify the Lagerort picker (9ea0252)
- repair motorcycle dialog layout overflow and misalignments (1800444)
2026.7.0 (2026-07-04)
- improve webapp UX, performance, security and tooling (3e5df6b)
- focus main with preventScroll so route changes don't clip the header (a1069b8)
- roll calver to 2026.7.0 (1efc6df)
2026.6.5 (2026-06-12)
- add detail skeleton, incremental history, and live form validation (4ba71f3)
- show submit progress in all forms and dialogs (df7d7ea)
2026.6.4 (2026-06-10)
- track SPA route navigations and custom perf marks in Umami (fd8e82e)
- prevent horizontal overflow on small iPhone viewports (91e8697)
- update dependencies to latest (0a68a6c)
2026.6.3 (2026-06-06)
- reverse-geocode coords-only fuel imports via Nominatim (0eb0fe5)
- opt in to React Router v8 future flags (52b1c83)
2026.6.2 (2026-06-05)
- auto-link fuel imports to existing or new locations (dc01473)
- bulk-delete locations from the selection bar (3bd6ff2)
- bulk-select and delete multiple maintenance entries (4c16ff7)
- run bulk deletes sequentially to avoid SQLITE_BUSY (317c0d2)
- bump frontend dependencies to latest versions (dc01bdc)
2026.6.1 (2026-06-04)
- derive a motorcycle's current location only from storage locations (042b16d)
- typed location manager with map picker and bulk type assignment (9c60823)
- persist maintenance location via locationId and stop toast loop (92b4371)
- bump frontend dependencies to latest versions (5a456bf)
2026.6.0 (2026-06-01)
- require a title on issues, make description optional (c7f272c)
- tire pressures on the Werkstattdaten page (was Anzugsmomente) (51060f1)
- surface tire-pressure backend errors as a banner, not a crash (edc6797)
- roll calver to 2026.6.0 (6c05a7a)
- drop tire-pressure backend-missing fallback (f82383d)
- round psi pressures to whole numbers (7508e44)
- scope torque page actions per section, fix print background (82441b7)
2026.5.8 (2026-05-28)
- add page description to fleet expenses header row (6729e4f)
- redesign — service-manual precision meets race telemetry (e0cc22e)
- broad UX cleanup — detail page, sticky offsets, chip language (869332f)
- drop .menu class from DropdownMenu to stop daisyUI from inflating children (c5cb965)
- equalize motorcycle card header height; un-tilt veteran stamp (e3b2f5c)
- hide desktop add-button on phones; truncate motorcycle-card location (4ed64a5)
- phone-breakpoint polish from in-browser audit (7403661)
- restore floating DropdownMenu — remove
relativefrom panel (5a4c4e3) - stable motorcycle hero across sub-tabs by computing stats in every loader (57648ba)
- swap mono font + beef up small uppercase labels for legibility (ce71a03)
- switch release-please to simple type to bypass package.json component fallback (8647638)
- unify outer container across motorcycle sub-tabs to stop layout shift (52fbf8b)
- untangle motorcycle detail page scroll UX (db7565d)
- restore navigation index numerals (d2384d5)
- bump dependencies to latest (1f0bd63)
- 4-band Garage Flag palette, distinct from BMW Motorsport mark (85bfc6b)
- align expenses and statistics page widths with documents (c6b7f2e)
- align fleet expenses page with the new design vocabulary (e128e85)
- align fleet statistics page with the new design vocabulary (2c21e00)
- align torque-spec row title and description with system patterns (f75fd7a)
- apply service-manual style consistently across all pages (c6bdbfd)
- bring attention chips into the new design vocabulary (108f268)
- bring DropdownMenu into the new design vocabulary (6d83276)
- bring maintenance list into the new design vocabulary (53818db)
- bring torque-specs page into the new design vocabulary (82672e9)
- compact expense card with description-first heading (96525d1)
- dial color tokens to canonical Dakar palette (ce70fcd)
- drop § section markings and nav index numerals (fabae3b)
- drop back button from statistics page (92ac375)
- drop leading numerals from CardHeading titles (de17204)
- drop title block on motorcycle documents page (f1a92a9)
- refine maintenance list filters, layout, and expanded button (672c069)
- replace home FAB with add-button next to sort selector (971ba02)
- sharpen documents page filter chips to match the system (75bdf06)
- stack expense card edit-button above amount, tighten button height (ca06ef5)
- strip documents page title and add preview-failure fallback (cd41fa0)
- swap expense card pencil-icon for labeled Bearbeiten button (061bf7b)
- tighten documents page header spacing (6baab27)
- bump Node + pnpm to match the local toolchain (d7e49d9)
- drop pnpm
version:to match package.json packageManager (345ac4c)
2026.5.7 (2026-05-24)
- override release-please component to match parsed PR title (0f283f5)
2026.5.6 (2026-05-24)
- pin release-please-action to v4.4.1 (46b7f7a)
2026.5.5 (2026-05-24)
- enable umami performance metrics tracking (7b8735a)
- ensure motorcycle picker shows user bikes when assigning public doc (e63e448)
- make document private checkbox visible in edit form (b3a8790)
- refresh maintenance form state per record and enlarge description (91d029b)
- remount maintenance form on every dialog open (c73062c)
- remount shared-expense form on every dialog open (e377226)
- restore torque-specs import button and reorder action buttons (f4975c8)
- revert to default release-please group title pattern (05ad596)
- show only assigned documents on motorcycle documents tab (aef85d9)
- upgrade dependencies to latest minor/patch versions (0d3fc34)
- lift empty-array prop defaults to stable module constants (06df5c4)
2026.5.4 (2026-05-16)
- include component in release-please group title pattern (eeca079)
- only mount fuel-row map iframe when the row is expanded (a4c5add)
2026.5.3 (2026-05-13)
- align Service-Intervalle card with design system kit (d407557)
- paginate the home page motorcycle grid (0e14a58)
- tighten motorcycle card hierarchy and a11y (4746c62)
- tighten open issues card to match design kit (0033138)
- tint maintenance log rows by category (ab65aec)
- re-inject umami tracker script in SPA mode (1a32791)
- use group title pattern for release-please aggregate PR (8cdf947)
- upgrade all dependencies to latest (cc5421c)
2026.5.2 (2026-05-11)
- move loading indicator to bottom edge of header (a777896)
2026.5.1 (2026-05-09)
- more descriptive fleet stats cards with units (a5b07d2)
- skip lifecycle scripts on docker prune (711e62d)
- include component in release-please pr title pattern (505a3df)
- replace headless ui with daisyui across the ui (bf440af)
2026.5.0 (2026-05-09)
- a11y, toasts, empty states, tokens — four-phase audit follow-up (1526eb1)
- overhaul dashboard UX (eaa1cab)
- keep page layout stable when sort menu opens on mobile (826bb1e)
- serialize release-please runs and rebase before push (59beb72)
- enforce conventional commits via husky + commitlint (ebf7d35)
- forbid scope in conventional commit messages (b840b26)
- replace release-it with release-please (9da4196)
- roll calver to 2026.5.0 (a0de3b0)
- set explicit release-please PR title pattern (8277872)
- upgrade all dependencies to latest (e01697f)
- compact stats, mobile order, stable sort menu (d015107)
2026.4.9 (2026-04-16)
- resolve fuel import 405 error by using sequential processing (0a74586)
2026.4.8 (2026-04-16)
- identify user session with Umami (d1f291d)
2026.4.7 (2026-04-15)
- add filtering and sorting capabilities to documents page (287c3e5)
- implement production-grade Umami Analytics integration (a7a7e4b)
- improve maintenance details, fleet expenses and location selection (65e1937)
- track maintenance events with Umami (68e61bb)
2026.4.6 (2026-04-13)
- add dealership location and coordinates to service maintenance items (54f075a)
- display app version in login footer (f60157d)
- implement selectable service locations from previous records (5768514)
- improve maintenance form and list to show optional fields and bundled items during edit (e9e6ad3)
- improve maintenance location management and service detail view (4e85a0c)
- remove make and model fields from service items and cleanup dialog props (fbc6b56)
- restrict optional fields to service type in maintenance form and list (9c7298f)
- use busiestBike field for home page stats card (86f6250)
- use direct backend URLs for document downloads and ensure consistency (9324a0e)
- ensure login/logout routes handle server-side requests and reloads (3645436)
- ensure maintenance location dropdown shows by default when locations exist (d1eaf62)
- handle busiestBike as string in dashboard stats (17a954a)
- handle capitalized property names for busiest bike stats (ea80309)
- remove incorrect api prefix from backend asset urls (c9143c5)
- resolve 404 on login reload by fixing greedy proxy and synchronizing loaders (bd3a31c)
- support snake_case property names from backend in dashboard stats (2611fe4)
2026.4.5 (2026-04-12)
- ensure environment variables are truly dynamic at runtime (056f492)
2026.4.4 (2026-04-12)
- ensure all image paths use the public backend URL (731d192)
- implement authenticated document downloads (6a112a0)
2026.4.3 (2026-04-12)
- enhance proxy stability and support internal docker networking (7c927f0)
2026.4.2 (2026-04-12)
- implement robust server-side proxying for all API calls to avoid production CORS issues (68ca9d2)
2026.4.1 (2026-04-12)
- enable absolute backend URLs and runtime environment injection (c42cebd)
2026.4.0 (2026-04-11)
- disable add motorcycle and document buttons when offline (4f5a15a)
- enable offline data entry for issues/maintenance with auto-sync (6843213)
- enable offline torque specs management with auto-sync (210fd75)
- enhance frontend UX with skeletons, refactored forms, and loading states (0972696)
- improve image cropping quality and resolution (e46f34b)
- improve offline mode with auth caching and better error handling (f46b787)
- migrate to external backend and remove local database (8c42f62)
- move server statistics link to admin area (dbf95a3)
- refactor to client-side rendered SPA and offline-capable PWA (2e3043e)
- show changelog only for logged in users and fix lint issues (a7a831e)
- update home dashboard to use /home endpoint and cleanup passkey routes (c365bc4)
- allow passkey login without specifying a username (7c7505d)
- correctly pass nested publicKey to simplewebauthn library (d4b32c4)
- enable SSR to support server-side resource routes and fix production build (b7addb8)
- ensure offline cache is properly cleaned by using syncCache for lists (4e69f20)
- ensure UI updates after sync and prevent duplicate entries (e498ff6)
- prevent duplicate entries during sync and ensure surgical cache updates (4c945ce)
- prevent white screen on reload by adding HydrateFallback and safety checks (faaa6cf)
- resolve passkey JSON error and refine proxy implementation (08a184b)
- resolve passkey JSON error by using Vite proxy and relative paths (4b61788)
- resolve TypeError in maintenance form and improve currency handling (a473fac)
- resolve TypeErrors and restore missing data in documents and statistics (4858372)
- restore passkey proxy routes for local development compatibility (6ed1f60)
- settings page recovery and improved offline logging (6362ff9)
- use 127.0.0.1 for proxy and add safety checks for passkey options (7151f5d)
- use server-aggregated stats and improve dashboard resilience (f19ab5c)
2026.3.1 (2026-03-12)
- add country code to locations and use for homepage sorting (1cf48b8)
- display changelog on new release (583329b)
- allow saving 4-digit year as fabrication date (7e93ef7)
- fix badge z-index and positioning on motorcycle card (01b0d94)
2026.3.0 (2026-03-09)
- add filtering to maintenance list (d89ad64)
- add fuel recording to maintenance history with map integration (b88ff4d)
- add fuel tank size and estimated range calculation (8bbe69f)
- add interactive map picker and location autocomplete for fuel entries (332ab43)
- add RoadTrip fuel data import (a06e820)
- automatic fuel consumption and trip calculations (7ae2f74)
- display dual currencies for international maintenance items (1845207)
- enable cross-user document assignment (479fef0)
- enhance RoadTrip import with currency and location support (628c430)
- improve fuel entry descriptions and auto-populate metadata (0a46a16)
- set fuel as default type in maintenance form (78428f4)
- use short identifiers for fuel types and display verbose labels (aabb961)
- address PR review comments on accessibility, delete button, and transaction error handling (7b81d8b)
- correctly format currency in RoadTrip import preview (9b1a2a5)
- ensure Leaflet map is removed in MapPicker cleanup (3c20b54)
- ensure map visibility in edit dialog and improve picker robustness (e1fcfa7)
- improve RoadTrip CSV date parsing (49e0345)
- make MapPicker SSR-safe by using dynamic imports for Leaflet (3a201a3)
- only show normalized cost in maintenance list when available (d66178c)
- prevent recalculateFuelConsumption from modifying descriptions (725980f)
- prevent theme flash by applying class on server-side (bd25dfd)
- resolve empty map rendering in MapPicker modal (e012a7d)
- resolve hydration crash and fix mangled action logic (ce74e0d)
- restrict location autocomplete to fuel entries only (e82bf43)
- optimize fuel consumption recalculation with transaction and change check (66ae460)
2026.2.9 (2026-02-26)
- implement robust offline read-only mode for PWA (af81bc1)
- remove all PWA and offline mode related code (3d23f4e)
- ensure previous owners list updates automatically after save (4d7b693)
- improve Service Worker and data caching for better offline stability (a18caf3)
- make useIsOffline hook SSR-safe by removing .client suffix (2743370)
- resolve missing imports and undefined variables (60a7121)
2026.2.8 (2026-02-25)
- add ability to record and manage previous owners for motorcycles (a102fda)
- implement offline support with PWA manifest, service worker, and real-time status indicator (603096a)
- add PNG icons to PWA manifest for better platform compatibility (a4839c5)
- apply PWA review feedback - cache cleanup, error handling, and SW registration (7d1680d)
- update tests to match new cache key and offline error behavior (1bce1ce)
2026.2.7 (2026-02-24)
- add optional kilometer-based maintenance intervals (164a203)
- add user-configurable maintenance intervals for fork oil, brake fluid, and coolant (93a83a7)
- ensure all configured maintenance types are listed in insights even without history (3b29c85)
- make maintenance intervals configurable for each user (ad70a83)
- rename model year to fabrication date and support MM/YYYY format (77f721e)
- correct kmsSinceLast calculation when odometer data is missing or invalid (bb7cc4b)
- hide maintenance intervals if no previous data exists (ca67080)
- resolve black box issue in torque specifications print layout (cc4b3e4)
- resolve ReferenceErrors and missing imports in maintenance intervals implementation (790e1f6)
2026.2.6 (2026-02-23)
- implement comprehensive user management in admin panel (9561079)
- move settings to user dropdown in header (83e74bb)
- allow user dropdown to be visible by removing overflow-hidden from header (1d021a0)
- ensure torque spec text is black when printing (81dcd73)
- further improve print styles for torque specs to ensure visibility (bda9b0d)
2026.2.5 (2026-02-23)
- add delete functionality to torque specifications with confirmation dialog (ee678ff)
- add optimized print view for torque specifications with technical motorcycle data (05eb7ec)
- implement passkey (WebAuthn) support for faster and more secure logins (975a0f7)
- provide category suggestions in torque spec form using existing entries (5e336b7)
- improve torque specification print stylesheet and ignore root PNGs (fa96fc8)
2026.2.4 (2026-02-22)
- add fleet statistics page with yearly development data (d07cb3f)
- group all maintenance and fleet data by year (1892df4)
- improve maintenance record descriptions in list (79146a8)
- docker build by forcing corepack installation to (60f2c1e)
- docker build error by installing corepack via npm (dc72ec1)
- proper version noting in changelog by disabling recommended bump in conventional-changelog plugin (e4708d2)
2026.2.3 (2026-02-22)
- add last login time to user management in admin panel (1c004d8)
- calculate tire age from DOT code for maintenance and insights (54fea9c)
- display app version in settings and re-apply lint fixes (e112feb)
2026.2.1 (2026-02-22)
- adds titles (094cf58)
- Adjust header behavior on motorcycle detail pages, making the main header scrollable on mobile and the detail header compact on scroll. (c76b7f0)
- enhance UI with improved spacing, sizing, and smooth expansion animations for lists and modals. (91513e8)
- accessibility, sequential preview regeneration, and sequential DB updates (51b56ed)
- resolve type errors and update project mandates (db021c6)
- satisfy exhaustive-deps lint rule in documents route (0ca40d2)
- optimize database performance, image delivery, and security (d653012)
2026.2.0 (2026-02-15)
- Add functionality to regenerate all PDF document previews with cross-platform support and a dedicated admin setting. (a853745)
- Add script to add
tool_sizecolumn totorque_specstable and update DB inspection to focus ontorque_specs. (55c47fa) - Implement dynamic currency selection in motorcycle and maintenance forms, fetching currency settings from the database. (f0f4ef8)
- Include currencies in motorcycle detail loader data and update component type usage. (9a13ca4)
- Introduce document privacy and normalized cost tracking, rebase database migrations, and add new database utility scripts. (4180e63)
- attribute manual odometer readings to the last known activity date. (539de9e)
- attribute manual odometer readings to the last known activity date. (cf5ae9f)
- Fall back to cost when normalizedCost is null in maintenance totals (0930c63)
- use explicit null checks in backfill script to handle zero values (0d5be92)
2025.12.0 (2026-02-15)
- Add a dashboard statistics display to the home page. (2670779)
- Add a new server statistics page displaying key application metrics and counts for various entities. (379deff)
- add admin settings for user and currency management (eca6e12)
- add battery type selection to maintenance form (1559d8d)
- add capability to create new torque specifications (edb1a9b)
- add daily cron job for currency updates (f8a1cfc)
- add location tracking to maintenance workflow (e1a0157)
- add maintenance insights to motorcycle detail page (ad596f6)
- add maintenance management (add/edit/view) (741d26d)
- add settings screen for password change and location management (470d1c6)
- add tool size field to torque specifications (40c1e3b)
- add torque specifications page to motorcycle details (c14affe)
- add utility scripts for Drizzle migration management and database inspection. (f7ad733)
- adds image upload and serves from cache (498ff4b)
- adds issue crud (04a65b1)
- allow editing of torque specifications (58a842e)
- allow importing torque specs from other motorcycles (657db12)
- Centralize and standardize number and currency formatting to use Swiss-style separators across components. (a193200)
- display and upload images (0e5f930)
- display motorcycle ownership and usage statistics on the detail page, supported by a new duration formatting utility. (aebc3a7)
- document upload and management (14172c5)
- enhance motorcycle detail page header (9cae3f8)
- expand maintenance item details to full width (65341c0)
- Extract server-side file handling logic for documents and images into dedicated services. (d0f8781)
- group maintenance history items (143a7ab)
- Implement maintenance record deletion and remove obsolete database inspection scripts. (584f6aa)
- implements smart scroll-away header on detail pages (f52a932)
- integrate frankfurter api for auto currency rates (60f9d23)
- limit currency factor precision in UI to two digits (5ed2f16)
- make dialogs full width on mobile (63ea612)
- open issue dialog fixes (86253c4)
- playwright tests, migrations, initial registration (6d0f953)
- refactor maintenance list display (71e3464)
- unifies delete confirmation dialogs (52ab30e)
- update maintenance form type selection and dynamic fields (7cc80b9)
- update maintenance insights to show history (date, duration, kms) instead of due date (bb15c89)
- Improve accessibility in torque specification form, refine home stats tests, and update dependencies. (c7a3829)
- invert currency rate for correct conversion direction (41bb6a5)
- only show import button if source motorcycles have torque specs (066781e)
- zoom issue on iOS (2dcd3e4)
- Revert "feat: improves rendering performance" (ef05c2e)
- Revert "feat: adds server side caching" (ab65156)
- Revert "feat: adds loading indicator" (15d6caf)
2025.11.0 (2025-11-16)
- adds loading indicator (ef461c9)
- adds server side caching (d40f3d9)
- adds server statistics page (0e15834)
- ensures that at least one currency is available (cbc4b1f)
- improves rendering performance (0e22235)
2025.10.12 (2025-10-20)
- fixes migration issue (315067f)
- show cross-owner document assignments and fix dialog overflow (b879389)
2025.11.0 (2025-10-20)
- enable importing torque specs between motorcycles (b119352)
- enables importing torque data from all users (80fbbdd)
- enables setting documents to private (d3414c0)
- fixes dialog height on tablet and above (49ae799)
2025.10.10 (2025-10-20)
- The App version is now defined as an env variable (0ec46b6)
2025.10.9 (2025-10-19)
- adds release-it (8155167)
- post to invalid routes on the motorcycle page (58886d8)