Release Notes - Technical Details
Internal companion to RELEASE_NOTES.md. Not for customers.
- Range:
728b92858c5b97d6d8da6d435b7d2d34afd1081b→13aa73dddd386e098879b1c27d9fd49381da982e - Generated: 2026-10-06 17:49 UTC
- Merge requests: 49
- Commits: 118 (0 without a merge request)
Merge requests
!2421 refactor: upgrade to React 19
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2421
- Author: Rein de Vries
- Commits:
115fd033refactor: drop react-helmet-async for React 19 native metadata8e2de3bdrefactor: migrate useStables and useActivityFiles to useApiPromisesState26d1ebadrefactor: migrate the contact-duplicate pages to useApiPromisesState3f88496drefactor: drop optional chaining from memo dependency arrays1e363ae6refactor: use useApiPromisesState across all ApiPromises call sites36456160feat: add useApiPromisesState hook4361d5d7fixup: fix(watch): replace watch subscription inside useEffect with the useWatch ho802e41fdfix: replace derived-state-via-effect with useMemo in 5 spots48bb4ac5fix(watch): replace watch subscription inside useEffect with the useWatch hookfb8fcbebfix: replace watch() with useWatch() to fix react-hooks/incompatible-library169daf1cchore: suppress existing react-hooks compiler-rule violationsed1242abchore: bump eslint-plugin-react-hooks to v7031d3acdchore: upgrade to React 19cb5a91f7fix: replace ReactElement<any> with ReactElement after codemod4785cb3cchore: run types-react-codemod preset-19 on src
!2433 feat(reports): handle null future months in stable occupancy and bold current month
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2433
- Author: Gerben Morsink
- Commits:
224faa11feat(reports): handle null future months in stable occupancy and bold current month
!2434 fix(horses): register departure when deleting or marking horse as deceased
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2434
- Author: Gerben Morsink
- Commits:
d9056035fix(horses): register departure when deleting or marking horse as deceased
!2436 feat(horses): QR code and NFC tag that open the horse in the app
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2436
- Author: Michel
- Commits:
eac1b8d9feat(horses): write the QR link to an NFC tag on Android and iOS6ef29eaafeat(horses): add a QR code dialog with PDF download to the horse actions menue1dac76dfeat(horses): add a public QR landing page that opens the horse in the appcafa7733chore(mobile): register the @capacitor/device native plugin447389a8fix(horses): build public horse links with the frontend url in the mobile app
!2438 feat(activities): date dropdown and a single activity form for the compact and full modal
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2438
- Author: Michel
- Commits:
dd0a2c88fix(activityEditor): adapt to React 19 types and lint rules4966fc90fix(activityEditor): address MR review commentse7552672feat(activities): open the date dropdown when expanding from the compact date field961c9870feat(activities): morph the compact activity modal into the full modal8d912450refactor(activities): use the shared activity editor on all planning pagese18ea9d5feat(activities): share one activity form between the compact and full modalb8418f8efeat(activities): open the full form from the date field in the compact activity form9c73cb4afeat(activities): move date and recurrence inputs into a dropdown in the full activity form4a071bcefeat(activities): add date summary field with dropdown for date inputs
!2440 fix(subscription): translate 'Additional modules' label
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2440
- Author: Rein de Vries
- Closes: #585 Untranslated words in EquineM App
- Commits:
bd992370fix(subscription): translate 'Additional modules' label
!2441 Use inclusive end date when stopping or editing a recurring service
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2441
- Author: Michel
- Closes: #1717 End date of recurring service is not processed and invoiced correctly
- Commits:
3c529ecffix(financial): use inclusive end date when stopping or editing a recurring service
!2442 feat(contact): include business and person name when copying the address
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2442
- Author: Rein de Vries
- Closes: #594 Button to copy address information to clipboard on contact
- Commits:
4a1946e4feat(contact): include business and person name when copying the address
!2443 fix(breedingPlans): use last order receiving date as last insemination date
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2443
- Author: Michel
- Commits:
9b885cacfix(breedingPlans): use last order receiving date as last insemination date
!2444 BreedingPlanDetails: sort related orders and mare cycle checks oldest first
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2444
- Author: Michel
- Commits:
a05ccff7fix(breedingPlanDetails): sort related orders and mare cycle checks oldest first
!2445 feat(breedingPlanDetails): upload and remove a barrenness certificate
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2445
- Author: Michel
- Commits:
8bb13847feat(breedingPlanDetails): upload and remove a barrenness certificate
!2446 fix(feed): sort box numbers numerically in feed schedule
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2446
- Author: Gerben Morsink
- Commits:
92799818fix(feed): sort box numbers numerically in feed schedule
!2447 docs(claude): forbid Claude attribution in MR descriptions
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2447
- Author: Gerben Morsink
- Commits:
2b8caed8docs(claude): forbid Claude attribution in MR descriptions
!2448 refactor(activityEditor): replace deprecated Portal.Group with floating-ui portals
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2448
- Author: Michel
- Commits:
c8f744dbrefactor(ui): position popovers and organization selector with floating-ui4844dc28refactor(ui): replace Headless UI anchor with floating-ui in DropdownMenu and SearchContact3dc8ef98refactor(activityEditor): replace deprecated Portal.Group with floating-ui portals
!2449 feat(reports): rename KWPN export to Order Export
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2449
- Author: Gerben Morsink
- Commits:
25c0f225feat(reports): rename KWPN export to Order Export
!2452 chore(openapi): regenerate client (horse note, refresh token, nullable occupancy)
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2452
- Author: Gerben Morsink
- Commits:
cf975beafeat(horses): add note and warning columns to horse exporte5fefaf1chore(openapi): regenerate client (horse note, refresh token, nullable occupancy)
!2453 fix(planning): use horse_uids instead of deprecated horse_uid on activities
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2453
- Author: Gerben Morsink
- Closes: #1724 Stop using deprecated horse_uid on v5 activities; use horse_uids
- Commits:
d8a8db16fix(planning): filter the action list on the stables of all horses of an activity2a812377fix(planning): use horse_uids instead of deprecated horse_uid on activities
!2454 fix(webshop): require email in contact address modal
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2454
- Author: Rein de Vries
- Closes: #601 Webshop - Adress of contact change should also have email field
- Commits:
c42c020dfix(webshop): require email in contact address modal
!2455 feat(users): add a role filter to the users list
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2455
- Author: Rein de Vries
- Labels: Enhancement, Prio:Low, pre-launch
- Closes: #656 Add a "role" filter on "Users"
- Commits:
3e31fe32feat(users): add a role filter to the users list
!2456 fix(planning): skip the mare cycle check and stallion mount report without the breeding module
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2456
- Author: Rein de Vries
- Labels: Prio:Low
- Closes: #664 Users without breeding module do see mare cycle check card when marking activity
- Commits:
f3f3743efix(planning): skip the mare cycle check and stallion mount report without the breeding module
!2458 feat(horses): show selection checkbox when hovering the row
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2458
- Author: Michel
- Commits:
5a9acbd9feat(horses): show selection checkbox when hovering the row
!2459 feat(inputs): add PhoneInput with country code hint for all phone fields
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2459
- Author: Rein de Vries
- Commits:
260e68fafeat(inputs): add PhoneInput with country code hint for all phone fields
!2460 fix(subscription): show the actual payment result instead of assuming success
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2460
- Author: Rein de Vries
- Closes: #708 Indicate failed payment on new subscription
- Commits:
61ff13a1fix(subscription): use location.assign for Mollie redirectbf27bd71fix(subscription): show the actual payment result instead of assuming success
!2461 fix(rvo): reload report list when the horse filter is cleared
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2461
- Author: Rein de Vries
- Closes: #726 RVO report list needs refresh after a successful report
- Commits:
f800b32efix(rvo): reload report list when the horse filter is cleared
!2462 Chore/update open api 2809
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2462
- Author: Rein de Vries
- Commits:
fda70804chore: adapt to OpenApi42bf0084chore: update OpenApi
!2463 Refactor the horse details page
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2463
- Author: Michel
- Commits:
02f71c0afix(planning): avoid invalid li/p nesting in ActionListRow6e9bbcf3feat(horses): add button in the activities tabffa8ad23feat(horses): replace the start/end badges of planned items with bold text92c85c6bfeat(horses): show the activity type category as a badge in the activities filter7c10e152feat(horses): show the note as a blue callout in the general tabb7b95dddfeat(horses): timeline, recurring services and facility reservations in the activities tabb44698a6feat(horses): show a label and dash when a horse has no note or warning71ba9fd5feat(horses): hide the warning text and dragging in the activities tabf6eb1d88fix(date-range-picker): keep the start and end day of a day based quick select3ce71982feat(horses): show a message in the breeding tab for stallions and geldingse60aa81cfeat(horses): show the care activities in the care tab6767ad04feat(horses): filter the activities tab on activity typececc68a9fix(horses): process the review of the horse details page4f395ca7feat(horses): muted uppercase field labels and an amber warning callout in the general tab113dfbb1feat(horses): open graph tags and preview image for shared horse links5fe613b1feat(horses): share a horse directly from a compact modal with share options31f37fd3feat(horses): show the horse details page in tabs74f7ea34feat(financial): preselect a horse when adding a recurring service3c3dec30feat(planning): load the action list activities for a custom date rangea2af2339feat(ui): add tabs, flat tiles and other building blocks for the horse details page
!2465 Fix/invitation and verify email flow
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2465
- Author: Rein de Vries
- Commits:
b510950dfix(verify-email): treat the allauth 401 as a successful verification67d08c81fix(invitation): show a pending-invitation ping on the mobile menu button2ffea449fix(invitation): redirect back to the invitation after login
!2466 fix(webshop): match repeat order parent on breeding product type
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2466
- Author: Rein de Vries
- Closes: #1726 Repeat order links the wrong parent item when the first item has no mare
- Commits:
b9d5ee4dfix(webshop): match repeat order parent on breeding product type
!2467 fix(upload): pass serverless host as baseUrl so s3 presign works on mobile
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2467
- Author: Rein de Vries
- Labels: Bug, Prio:High
- Closes: #1727 File uploads fail in the mobile app: S3 presign response is missing url/fields
- Commits:
0af59ec8fix(upload): pass serverless host as baseUrl so s3 presign works on mobile
!2468 Resolve "Random logout on reload: rotated refresh token is never persisted"
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2468
- Author: Rein de Vries
- Closes: #1728 Random logout on reload: rotated refresh token is never persisted
- Commits:
b754d8effix(auth): only adopt a refresh token from another tab when it is the same user90cc6583fix(auth): persist rotated refresh token and serialize refreshes across tabs
!2469 fix(shipping-product): trim trailing zero decimals on price
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2469
- Author: Rein de Vries
- Labels: Prio:High
- Closes: #1716 Shop setting for the breeding price shows an incorrect price
- Commits:
61ecb387fix(shipping-product): trim trailing zero decimals on price
!2470 fix(rvo): merge stable/location columns and show movement counterpart in RVO report list
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2470
- Author: Rein de Vries
- Labels: Enhancement, Pareg Migratie, Quick fix
- Closes: #783 RVO Notificationlist, what is stable doing here?
- Commits:
97de05fefix(rvo): merge stable/location columns and show movement counterpart in RVO report list
!2471 fix(rvo): update authorization guide to RVO's new machtiging design
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2471
- Author: Rein de Vries
- Labels: Pareg Migratie, Prio:Medium, Quick fix
- Closes: #790 RvO connection explanation updated design
- Commits:
749e5823fix(rvo): update authorization guide to RVO's new machtiging design
!2472 fix(horsetelex): import birth date, sex, ids and height alongside pedigree
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2472
- Author: Rein de Vries
- Labels: Bug, Prio:Medium, Quick fix
- Closes: #791 Via Stambook zoeken op HorseTelex vult niet alle gegevens aan [very quick fix]
- Commits:
fb4fc7acfix(horsetelex): import birth date, sex, ids and height alongside pedigree
!2473 fix(activity-types): drop hidden roles and skip unchanged roles on save
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2473
- Author: Rein de Vries
- Closes: #796 Hidden roles are sent to the API, resulting in weird errors.
- Commits:
7f599e3efix(activity-types): drop hidden roles and skip unchanged roles on save
!2474 fix(feed): rename feeding labels to feeding times
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2474
- Author: Rein de Vries
- Closes: #799 Improve unclear wording and texts
- Commits:
44be2780fix(feed): rename feeding labels to feeding times
!2475 fix: remove the ts-ignores for image crop and base64 encode
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2475
- Author: Rein de Vries
- Closes: #801 Fix ESLINT disable line
- Commits:
577d81f3fix: remove the ts-ignores for image crop and base64 encode
!2476 refactor(zod): update link for creating Estonia translation
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2476
- Author: Rein de Vries
- Commits:
fa07a5d1refactor(zod): added link to the correct MR for translation estiona
!2479 fix(push): reset app badge and clear delivered notifications on app open
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2479
- Author: Rein de Vries
- Labels: Enhancement, Prio:Medium
- Closes: #845 Notification badge stays on 1 after a notification. Should reset when opening the app
- Commits:
af174879fix(push): reset app badge and clear delivered notifications on app open
!2480 feat: more table sorting
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2480
- Author: Rein de Vries
- Closes: #820 Add sorting feature to several more tables
- Commits:
51e4280dfix(users): persist sort and filter state for the users list1781f7a7feat(users): add sorting to the users table6ca289acfeat(contacts): add sorting to the contacts table99f50b2bfeat(webshop): add sorting to the order listd0b6c038feat(payments): add sorting to the payments table
!2482 Enhanced order settings page
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2482
- Author: Rein de Vries
- Labels: Enhancement
- Closes: #868 Create a new page for insemination stations/requester, #908 Search for stallion (by name) in the product list
- Commits:
13c8ee41refactor(shopSettings): rename tab names93ce715bchore(shop): make the add button blue - primairy actiona6c9dca3feat(shop): split breeding and shipping products in own tabs814323e6feat(shop): filter and search breeding and shipping productse5daf8a3feat(shop): manage agents/insemination and semen collection stations in shop settings4b29b82dfix(navback): keep query params so filters survive the back link845e409efeat(shop): split shop settings into tabs
!2483 fix(activities): wrap breeding box number buttons so all boxes are visible
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2483
- Author: Rein de Vries
- Closes: #875 (mareCycleActivity) support more than 6 boxes
- Commits:
f12637b5fix(activities): wrap breeding box number buttons so all boxes are visible
!2484 feat(contacts): group default shipping methods by country and warn on mismatch
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2484
- Author: Rein de Vries
- Closes: #886 Default shipping method of contact should take into country of contact
- Commits:
82ace181feat(contacts): group default shipping methods by country and warn on mismatch
!2485 multiple fixes for contact Merger
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2485
- Author: Rein de Vries
- Labels: Bug
- Commits:
ac386b52fix(contacts): report form validation errors instead of failing silently34e0e1eefix(ui): submit the form of a page action that lands in a dropdown menu
!2487 fix(horses): export date of birth and arrival as ISO dates
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2487
- Author: Gerben Morsink
- Closes: #1732 Horse export shows wrong date of birth and date of arrival
- Commits:
b0f0eaa6fix(horses): export date of birth and arrival as ISO dates
!2491 fix(organization): guard against missing me.stables in the organisation response
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2491
- Author: Rein de Vries
- Labels: Bug, Prio:High
- Closes: #1736 App crashes when the organisation response has no me.stables
- Commits:
1d10baa4fix(organization): guard against missing me.stables in the organisation response
!2494 Chore/update open api 0510
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2494
- Author: Rein de Vries
- Commits:
cf17a736chore: Adapt to OpenApi changes690a5080chore: update OpenApi
!2496 feat(breeding): split menu into breeding mares and breeding stallions
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2496
- Author: Michel
- Closes: #1737 Breedings menu structure
- Commits:
7cf75b60fix: translation labelsf62615e8refactor(shopSettings): merge breeding settings into the other tab2954aabafeat(breeding): split menu into breeding mares and breeding stallions
!2497 fix(serviceContract): open pricing tab when clicking the service link
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2497
- Author: Michel
- Closes: #1738 Link to service on service contract needs update
- Commits:
093be5b8refactor(financialSettings): rename activities tab key to pricinga5bf60abfix(serviceContract): open pricing tab when clicking the service link
Left out of the customer release notes
OpenAPI schema refreshes and other changes with no customer-visible effect.
- !2462 Chore/update open api 2809 (https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2462)
- !2494 Chore/update open api 0510 (https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2494)