Skip to content
3.58.026 October 2026 (bf56b3d)App bf56b3dTechnical details

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:
    • 4e3f4b34 feat(breedingPlan): load the breeding plan list paginated
    • f8e4ed1c feat(breedingPlan): only fetch the plans of the selected years
    • d3a3a6ec refactor(breedingPlan): split the plan and metadata loading
    • 2998c5c0 fix(picklist): send the semen collection stations as repeated params
    • ba87fe84 refactor(api): share the comma-separated query param helper

!2527 fix(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:
    • 87919233 fix(help): no crash following a link on a page without help, and back from it
    • 4f3f663a fix(help): no help in the header menu over a page without a title bar, its toolbar has the button
    • 13269677 ci: release notes and help docs in one docs stage
    • 6ac95279 fix(feed): a key of its own for 'No feeding set', so every language translates it again
    • 184f468c fix(help): the help-docs job publishes what succeeded, runs from master only and one at a time, and sharper text checks
    • a2dc324b fix(help): back in the panel, help on the mobile calendar, none in the shops, a modal before its page, Escape stays in the panel
    • 6a01b334 fix(help): a screenshot of the visible part of the page only, and a larger view of it
    • 34e86447 fix: toasts below the notch and above the home indicator
    • 5a5303c9 fix(help): Chatwoot forgets the user on logout, and keeps its conversation where the page keeps no cookies
    • e7c8e3c8 feat(help): check the form of every text, report what the generator corrects itself, and test the checks and fixes
    • 361ecd7d fix(help): escaped line breaks from the model become real ones
    • 703e1311 fix(help): Führanlagen for Walker in a German list, je for uw, and a bold UI label stays as the app has it
    • 14e7e28e fix(help): the hints name the horse walker in every language
    • 80a550d0 fix(help): stapmolen, not walker, in Dutch; Führanlage in German
    • 4c704e45 fix(help): merries, not merrieën: wrong word forms are fixed and words the glossary avoids are sent back
    • dd7e7795 fix(help): the prompt of a guide gives its title
    • 5151fe42 fix(help): a guide has its own title
    • ea38f17d fix(help): the introduction never writes merrieden
    • 6ca45b1e fix(help): the introduction writes merries
    • 2184383c fix(help): a template heading left in English is published translated, getting started doesn't turn modules on in the settings
    • aafcdeea feat(help): the help panel points to getting started where a page has no help
    • c91d6d29 feat(help): guides about the app as a whole, an introduction on the start page and getting started
    • 55a6e888 fix(help): a glossary term with an umlaut or accent isn't misspelled
    • d476828d feat(help): help anchors and hints for my reservations, contacts and the organisation admin
    • 31c53a7e feat(help): help anchors and hints for the facilities and feeding
    • 34044e17 feat(help): help anchors and hints for breeding mares and breeding stallions, with its webshop
    • a392fa21 feat(help): help anchors and hints for the activities, views on the same activities
    • 47132790 feat(help): help anchors and hints for the financial administration
    • bfe18d34 feat(help): help anchors and hints for the horse pages, tiles and forms
    • f419d2e1 feat(help): a Support tab with the Chatwoot chat, screenshots and unread replies
    • e5e2026d feat(help): an in-app help panel with the documentation of the open page or modal
    • b42c442a fix(feed): say 'No feeding set' when a horse gets nothing at a feeding
    • fa0ee6a8 feat(help): a help-docs job that generates the help docs from help anchors

!2551 fix(rvo): list horses without UELN in import error ​

!2554 fix(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:
    • 8ad315cd fix(facilities): move my reservations through the my_events endpoint
    • 47a5c27d feat(facilities): drag and drop reservations in the week view with mouse and touch
    • bbfb582c fix(planning): don't start dragging a row when the action list isn't grouped
    • 5d91be0b feat(ui): haptic feedback when picking up and dropping on touch devices
    • baeba45e feat(calendar): drag and drop in the time scale with mouse and touch
    • e1a79887 feat(planning): drag and drop in the action list with mouse and touch
    • 4013e999 refactor(ui): share DragSession and auto scroll the element below the pointer
    • e95f8c03 fix(calendar): drop an activity into its placeholder and hide the loader once saved
    • 6f0b864b fix(calendar): reload the activities after reordering one in the staff calendar
    • fb07c635 feat(facilities): drag and drop reservations in the gantt view with mouse and touch
    • d9ad3d7c feat(facilities): show a moved reservation at its new place while saving
    • 5aed5074 feat(calendar): show a moved activity at its new place while saving
    • fba4f701 feat(calendar): drag and drop activities with mouse and touch
    • a58bb7e4 refactor(calendar): share the activity drop logic between day parts and rows
    • 82a32f28 perf(planning): keep the dragged activity outside of React state

!2562 fix(availability): fit work schedule on mobile screens ​

!2568 fix(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:
    • fd96d88f fix: send the key when deleting a file from s3
    • ada04b00 test: deleting a file from s3 sends its key to the edge function
    • d6e8c2ea fix(transactions): leave deleting a removed file from s3 to the API
    • 1ca45103 fix(edge-functions): only delete s3 keys in the folder of the checked object
    • 42555d83 test(edge-functions): s3 keys stay in the folder of the object whose access was checked
    • 302ad8b9 refactor(edge-functions): move the s3 access checks out of the express handlers

!2570 chore(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:
    • d62be052 feat(nav): add page transitions to all drill-down pages
    • ab29cd9d feat(nav): show press feedback on mobile header and tab bar buttons
    • b6ae68d6 feat(nav): slide in horse, contact and user details on mobile
    • 34875a69 feat(nav): animate page transitions on mobile like a native app

!2572 fix(horses): validate horse owner form against the writable schema ​

!2573 feat(modals): show modals as bottom sheets on mobile ​

!2574 feat(modals): close sheets by dragging down or with the Android back button ​

!2575 fix(upload): show a clear message for unsupported and RAW files ​

!2576 fix(planning): keep the primary assignee when reassigning a role ​

!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:
    • 18fa4e42 refactor(mobile): use IS_MOBILE_APP and simplify the onRefresh fallback
    • 3b345dc5 fix(mobile): spell out the no-select selectors and keep the callout menu in inputs
    • 52425921 feat(mobile): no text selection or callout menu on long press in the app
    • efe38c16 feat(mobile): scroll to the top when tapping the active tab
    • cdcdfb7e feat(mobile): scroll to the top on a tap on the status bar (iOS)
    • 14d2dbf2 feat(mobile): haptic feedback on toggles and pull to refresh

!2578 feat(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:
    • dc56e689 chore: require a patched Node version and add .nvmrc
    • 2bc43eaa ci: pin Node to 22.23.4 for the Brotli RCE fix
    • d3522465 chore: regenerate package-lock.json
    • aa11dddd fix(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:
    • 8b49aa97 fix(users): don't offer a company contact when inviting a user
    • fe7a6de4 fix(horses): show the group of a horse without a stable
    • 51a6be91 fix(breeding): match carrier mares when filtering on several mares
    • 7b8c73c0 fix(invoicing): filter billable item types with source__in
    • 6df9d46e chore(orders): filter on semen_collection_station__uid__in
    • e8787be3 chore: adapt to OpenApi changes
    • 5d70e399 chore: update OpenApi

!2582 fix(companies): prefix website with https:// when no scheme is given ​

!2583 fix(ui): don't change number inputs on scroll ​

!2584 fix(horse-files): rename and delete folders atomically with the bulk endpoints ​

!2586 fix(planning): keep the task assignee and show it in the calendar ​

!2587 docs(help): update the module hints for the how it works pages ​

!2588 fix(cache): show cached list data right away when navigating back ​

EquineM documentation