Release Notes - Technical Details
Internal companion to RELEASE_NOTES.md. Not for customers.
- Range:
868905445fe17639c7fb5b262129b8ae52c5b1a6→bf56b3d8f28894ac890189076f4269113cc22509 - Generated: 2026-10-28 12:30 UTC
- Merge requests: 26
- Commits: 99 (0 without a merge request)
Merge requests
!2490 Refactor/enhanced bp list
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2490
- Author: Rein de Vries
- Commits:
4e3f4b34feat(breedingPlan): load the breeding plan list paginatedf8e4ed1cfeat(breedingPlan): only fetch the plans of the selected yearsd3a3a6ecrefactor(breedingPlan): split the plan and metadata loading2998c5c0fix(picklist): send the semen collection stations as repeated paramsba87fe84refactor(api): share the comma-separated query param helper
!2527 fix(feed): only offer active feed types when adding a feed
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2527
- Author: Gerben Morsink
- Closes: #1595 Deactivated feed types can be added to a feed
- Commits:
fca50e9cfix(feed): only offer active feed types when adding a feed
!2543 feat(help): in-app help generated from help anchors
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2543
- Author: Michel
- Commits:
87919233fix(help): no crash following a link on a page without help, and back from it4f3f663afix(help): no help in the header menu over a page without a title bar, its toolbar has the button13269677ci: release notes and help docs in one docs stage6ac95279fix(feed): a key of its own for 'No feeding set', so every language translates it again184f468cfix(help): the help-docs job publishes what succeeded, runs from master only and one at a time, and sharper text checksa2dc324bfix(help): back in the panel, help on the mobile calendar, none in the shops, a modal before its page, Escape stays in the panel6a01b334fix(help): a screenshot of the visible part of the page only, and a larger view of it34e86447fix: toasts below the notch and above the home indicator5a5303c9fix(help): Chatwoot forgets the user on logout, and keeps its conversation where the page keeps no cookiese7c8e3c8feat(help): check the form of every text, report what the generator corrects itself, and test the checks and fixes361ecd7dfix(help): escaped line breaks from the model become real ones703e1311fix(help): Führanlagen for Walker in a German list, je for uw, and a bold UI label stays as the app has it14e7e28efix(help): the hints name the horse walker in every language80a550d0fix(help): stapmolen, not walker, in Dutch; Führanlage in German4c704e45fix(help): merries, not merrieën: wrong word forms are fixed and words the glossary avoids are sent backdd7e7795fix(help): the prompt of a guide gives its title5151fe42fix(help): a guide has its own titleea38f17dfix(help): the introduction never writes merrieden6ca45b1efix(help): the introduction writes merries2184383cfix(help): a template heading left in English is published translated, getting started doesn't turn modules on in the settingsaafcdeeafeat(help): the help panel points to getting started where a page has no helpc91d6d29feat(help): guides about the app as a whole, an introduction on the start page and getting started55a6e888fix(help): a glossary term with an umlaut or accent isn't misspelledd476828dfeat(help): help anchors and hints for my reservations, contacts and the organisation admin31c53a7efeat(help): help anchors and hints for the facilities and feeding34044e17feat(help): help anchors and hints for breeding mares and breeding stallions, with its webshopa392fa21feat(help): help anchors and hints for the activities, views on the same activities47132790feat(help): help anchors and hints for the financial administrationbfe18d34feat(help): help anchors and hints for the horse pages, tiles and formsf419d2e1feat(help): a Support tab with the Chatwoot chat, screenshots and unread repliese5e2026dfeat(help): an in-app help panel with the documentation of the open page or modalb42c442afix(feed): say 'No feeding set' when a horse gets nothing at a feedingfa0ee6a8feat(help): a help-docs job that generates the help docs from help anchors
!2551 fix(rvo): list horses without UELN in import error
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2551
- Author: Rein de Vries
- Closes: #1086 RVO import of horses leads to an error message
- Commits:
c8fd874cfix(rvo): list horses without UELN in import error #1086
!2554 fix(contacts): make the date of birth editable
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2554
- Author: Rein de Vries
- Closes: #1098 Not possible to edit contact date of birth
- Commits:
bbce6c20fix(contacts): make the date of birth editable
!2559 feat(calendar): drag and drop activities with mouse and touch
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2559
- Author: Rein de Vries
- Commits:
8ad315cdfix(facilities): move my reservations through the my_events endpoint47a5c27dfeat(facilities): drag and drop reservations in the week view with mouse and touchbbfb582cfix(planning): don't start dragging a row when the action list isn't grouped5d91be0bfeat(ui): haptic feedback when picking up and dropping on touch devicesbaeba45efeat(calendar): drag and drop in the time scale with mouse and touche1a79887feat(planning): drag and drop in the action list with mouse and touch4013e999refactor(ui): share DragSession and auto scroll the element below the pointere95f8c03fix(calendar): drop an activity into its placeholder and hide the loader once saved6f0b864bfix(calendar): reload the activities after reordering one in the staff calendarfb07c635feat(facilities): drag and drop reservations in the gantt view with mouse and touchd9ad3d7cfeat(facilities): show a moved reservation at its new place while saving5aed5074feat(calendar): show a moved activity at its new place while savingfba4f701feat(calendar): drag and drop activities with mouse and toucha58bb7e4refactor(calendar): share the activity drop logic between day parts and rows82a32f28perf(planning): keep the dragged activity outside of React state
!2562 fix(availability): fit work schedule on mobile screens
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2562
- Author: Rein de Vries
- Closes: #1791 Mobile availability
- Commits:
46f70776fix(availability): fit work schedule on mobile screens
!2568 fix(equiboard): show clock in organisation timezone regardless of device timezone
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2568
- Author: Gerben Morsink
- Closes: #1798 EquiBoard clock shows wrong time when device timezone differs from organisation timezone
- Commits:
19293f96fix(equiboard): show clock in organisation timezone regardless of device timezone
!2569 fix(edge-functions): only delete s3 keys in the folder of the checked object
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2569
- Author: Gerben Morsink
- Closes: #1802 Edge s3 route deletes objects outside the transaction it checks
- Commits:
fd96d88ffix: send the key when deleting a file from s3ada04b00test: deleting a file from s3 sends its key to the edge functiond6e8c2eafix(transactions): leave deleting a removed file from s3 to the API1ca45103fix(edge-functions): only delete s3 keys in the folder of the checked object42555d83test(edge-functions): s3 keys stay in the folder of the object whose access was checked302ad8b9refactor(edge-functions): move the s3 access checks out of the express handlers
!2570 chore(nfc): turn off writing NFC tags for now
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2570
- Author: Rein de Vries
- Closes: #1805 Turn off writing NFC tags for now
- Commits:
d0450abbchore(nfc): turn off writing NFC tags for now
!2571 feat(nav): native-like page transitions on mobile
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2571
- Author: Michel
- Commits:
d62be052feat(nav): add page transitions to all drill-down pagesab29cd9dfeat(nav): show press feedback on mobile header and tab bar buttonsb6ae68d6feat(nav): slide in horse, contact and user details on mobile34875a69feat(nav): animate page transitions on mobile like a native app
!2572 fix(horses): validate horse owner form against the writable schema
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2572
- Author: Rein de Vries
- Labels: Prio:High
- Closes: #1801 Error when adding horse owner
- Commits:
71fec9adfix(horses): validate horse owner form against the writable schema
!2573 feat(modals): show modals as bottom sheets on mobile
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2573
- Author: Michel
- Commits:
5090e00bfeat(modals): show modals as bottom sheets on mobile
!2574 feat(modals): close sheets by dragging down or with the Android back button
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2574
- Author: Michel
- Commits:
f6659496feat(modals): close sheets by dragging down or with the Android back button
!2575 fix(upload): show a clear message for unsupported and RAW files
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2575
- Author: Rein de Vries
- Closes: #1788 Media upload gives API error 415
- Commits:
ff05e455fix(upload): show a clear message for unsupported and RAW files
!2576 fix(planning): keep the primary assignee when reassigning a role
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2576
- Author: Michel
- Closes: #1799 Reassigning an activity in day staff view shows it as unassigned
- Commits:
8a380a33fix(planning): keep the primary assignee when reassigning a role #1799
!2577 feat(mobile): haptics, status bar tap, tab re-tap and no text selection in the app
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2577
- Author: Michel
- Commits:
18fa4e42refactor(mobile): use IS_MOBILE_APP and simplify the onRefresh fallback3b345dc5fix(mobile): spell out the no-select selectors and keep the callout menu in inputs52425921feat(mobile): no text selection or callout menu on long press in the appefe38c16feat(mobile): scroll to the top when tapping the active tabcdcdfb7efeat(mobile): scroll to the top on a tap on the status bar (iOS)14d2dbf2feat(mobile): haptic feedback on toggles and pull to refresh
!2578 feat(menu): rename List to Action list and reorder the mobile tab bar
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2578
- Author: Michel
- Commits:
001a439cfeat(menu): rename List to Action list and reorder the mobile tab bar
!2580 fix: update Node.js for the Brotli RCE (CVE-2026-111497)
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2580
- Author: Rein de Vries
- Closes: #1809 Update Node.js for the Brotli RCE (CVE-2026-111497)
- Commits:
dc56e689chore: require a patched Node version and add .nvmrc2bc43eaaci: pin Node to 22.23.4 for the Brotli RCE fixd3522465chore: regenerate package-lock.jsonaa11ddddfix(docker): pin Node to 24.22.1 for the Brotli RCE fix
!2581 chore: update OpenApi (GAT release of 2026-10-26)
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2581
- Author: Rein de Vries
- Closes: #1803 API changes in the GAT release of 2026-10-26 (7f9bdc1b4)
- Commits:
8b49aa97fix(users): don't offer a company contact when inviting a userfe7a6de4fix(horses): show the group of a horse without a stable51a6be91fix(breeding): match carrier mares when filtering on several mares7b8c73c0fix(invoicing): filter billable item types with source__in6df9d46echore(orders): filter on semen_collection_station__uid__ine8787be3chore: adapt to OpenApi changes5d70e399chore: update OpenApi
!2582 fix(companies): prefix website with https:// when no scheme is given
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2582
- Author: Rein de Vries
- Closes: #1812 Company website requires typing https://
- Commits:
b8fa559dfix(companies): prefix website with https:// when no scheme is given
!2583 fix(ui): don't change number inputs on scroll
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2583
- Author: Rein de Vries
- Closes: #1813 Scrolling over a number field changes its value
- Commits:
601d7841fix(ui): don't change number inputs on scroll
!2584 fix(horse-files): rename and delete folders atomically with the bulk endpoints
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2584
- Author: Michel
- Closes: #1807 Horse files: rename and delete folders atomically with the horsemedia bulk endpoints
- Commits:
275775d7fix(horse-files): rename and delete folders atomically with the bulk endpoints
!2586 fix(planning): keep the task assignee and show it in the calendar
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2586
- Author: Rein de Vries
- Closes: #1792 Assigned person to task gets cleared upon entry
- Commits:
615a6534feat(planning): show the task assignee's initials in the calendar39688cebfix(planning): keep the task assignee when typing in the compact form
!2587 docs(help): update the module hints for the how it works pages
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2587
- Author: Michel
- Closes: #1816 Updates to how it works pages in documentation
- Commits:
2aa121b3docs(help): update the module hints for the how it works pages
!2588 fix(cache): show cached list data right away when navigating back
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2588
- Author: Michel
- Commits:
78131002fix(cache): show cached list data right away when navigating back