Skip to content
3 November 2026App 6510e26Technical details

Release Notes - Technical Details ​

Internal companion to RELEASE_NOTES.md. Not for customers.

  • Range: bf56b3d8f28894ac890189076f4269113cc22509 → 6510e26efa52ecad6afaaaec85715b8c147753e3
  • Generated: 2026-11-03 16:25 UTC
  • Merge requests: 29
  • Commits: 120 (0 without a merge request)

Merge requests ​

!2017 Add tack module ​

  • Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2017
  • Author: Gerben Morsink
  • Commits:
    • 7b651ff5 docs: note help anchors in CLAUDE.md
    • 54ddd94a docs(tack): add help anchors
    • 844f0304 feat(tack): paginate the tack room list
    • d9891092 feat(list-filter): add a year range filter type
    • 8067b158 refactor: remove the unused SearchHorse component
    • 5ead7d35 refactor(tack): align the tack module with the codebase conventions
    • 82ae6d81 feat(form): add hasFieldError to useFormError
    • 31bbc35d feat(tack): add tack room and tack maintenance screens

!2368 refactor(printOrders): load lists instead of detail endpoints to speed up ​

  • Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2368
  • Author: Rein de Vries
  • Commits:
    • 578e6489 fix(printOrders): split uid__in filters into requests of max 75 uids
    • 24f04499 refactor(printOrders): send the filter query to the order exports instead of order uids
    • 5ef265e0 feat(topdf): forward the order_query param to the order print pages
    • de8d9685 refactor(printOrders): load lists instead of detail endpoints to speed up

!2590 feat(help): play a page's product video above its help ​

!2591 fix(reservations): save the end date of a reservation period ​

!2592 chore(ci): run android builds one at a time via a shared resource group ​

!2593 fix(ci): upload sourcemaps to the actual Bugsink project slugs ​

!2594 perf: decode jwt without jsonwebtoken to drop crypto polyfills from the bundle ​

!2595 perf: only load the core-js polyfills the build needs ​

!2598 fix(files): keep the file extension when opening a file on mobile ​

!2599 chore: update OpenApi (GAT release 2026-10-28) ​

  • Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2599
  • Author: Rein de Vries
  • Closes: #1787 Contact merge page: merge all duplicates in one call with the picked values, #1819 API changes in the GAT release of 2026-10-28 (aba45fbc2)
  • Commits:
    • 451693f2 chore: adapt to OpenApi changes (website and employment date on contact merge)
    • 68b5c11a chore: adapt to OpenApi changes (contact merge in one call)
    • 17a2972b chore: adapt to OpenApi changes (invoice create send_failed)
    • ea182352 chore: adapt to OpenApi changes (finalize send_failed)
    • dcb1dac4 chore: update OpenApi

!2600 chore: update peer flags in package-lock ​

!2601 fix(horses): show transport instructions next to note and warning ​

  • Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2601
  • Author: Rein de Vries
  • Closes: #1826 Show transport instructions next (or below) to note and warning
  • Commits:
    • 7d650b11 fix(horses): edit warning, note and transport instructions separately
    • 759982b3 fix(horses): mention transport instructions in the note modal title and empty state
    • 9e60603f fix(horses): show transport instructions next to note and warning

!2602 chore: update OpenApi (GAT release of 2026-10-29) ​

  • Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2602
  • Author: Rein de Vries
  • Closes: #1829 API changes in the GAT release of 2026-10-29 (3774e1c74), #1830 API changes in the GAT release of 2026-10-29 (272f95128)
  • Commits:
    • 5286ed61 chore: adapt to OpenApi changes (order search results by relevance)
    • 3108260b chore: adapt to OpenApi changes (confirm a status change of a breeding plan without orders)
    • d4a37cfc fix(breeding): only offer the agent filter in the search box
    • eabb558b chore: adapt to OpenApi changes (is pregnant filter on the breeding plan list)
    • d4a047a8 chore: adapt to OpenApi changes (show who set the breeding plan status)
    • 2e6c6dd3 chore: adapt to OpenApi changes (reload the breeding plan after its activities change)
    • 539dc1ab chore: adapt to OpenApi changes (only send a changed breeding plan status)
    • 1baaa5ed chore: adapt to OpenApi changes (assumed pregnant breeding plan status)
    • b8a291af chore: adapt to OpenApi changes (chatwoot identifier hash)
    • 2863db8a docs: check the error catalogue and answer in the API changes threads
    • e83d9119 chore: adapt to OpenApi changes (error response catalogue)
    • f1933a29 chore: update OpenApi

!2603 feat(calendar): swipeable calendar, sheet-like modals, day overview and planning performance ​

  • Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2603
  • Author: Michel
  • Closes: #373 When opening an existing task the target (stable) of the tasks changes, #448 Make the repeat functionality of activities and reservations more prominent, #612 Activity recurrence is difficult to find, #676 Re-introduce the quick add of taks/message via the date ribbon, #1065 Planning: add monthly view or make the week view slide over, #1278 RealActivities: Make bulk 'mark as done' action, #1311 Add collapse button for tasks in planning, #1608 When selecting activities as done, possible errors are not shown to the user, #1656 Hide stable filter in activities when there is only one stable, #1675 Calendar functionality on iOS, #1793 Reduce full calendar re-renders on planning data changes, #1815 Typing in the compact activity form is slow and drops characters
  • Commits:
    • fafc5937 perf(calendar): only keep the panes of the periods used last
    • eac5d321 fix(planning): open the day overview on the day again and give it an accessible name
    • 34fadf41 fix(horses): only clear the unfinished activities of the horse that were handled
    • 1be094d4 fix(planning): pause between marking the tasks as done, for the deadlock in the backend
    • e05248c6 fix(planning): only mark all as done with the permission to, and not the activities that need a report
    • 0c70c333 fix(calendar): don't show a wrong location or unknown owners of a horse without access to the contacts
    • ae7ebc50 fix(planning): show a message when marking all as done fails per activity
    • afc6fa4e fix(planning): don't keep the end date of the recurrence of the previous activity
    • f14235bf fix(planning): only offer the week overview when the whole week is loaded
    • b6fe6021 fix(planning): only show the tasks of the selected stables in the day overview
    • 3c544460 fix(calendar): cancel a slide when the view type changes during it
    • af0feece fix(calendar): don't slide the calendar when printing or without animations
    • 4adf292a fix(calendar): swipe the week view a whole week
    • 1261c9b8 fix(calendar): go back to the calendar from the horse profile opened in it
    • a68e4230 fix(calendar): don't let the roles of a staff member push its name out of the row
    • fe121a98 fix(planning): place the unavailability of the staff on the right days
    • 98d50569 feat(planning): drag tasks and messages to another day
    • f7d623ff feat(planning): collapse the tasks and messages again with a handle on the line
    • c5cb5c7f fix(horses): show why handling the unfinished activities failed when moving a horse
    • e0b43a9e feat(planning): hide the stable filter and stable view with a single stable
    • e4c0609a fix(ui): don't truncate the selected option of a multi-select early
    • d16e7d2d fix(planning): keep the selected time scale when clicking it again
    • 59c906e0 feat(planning): slide the date and recurrence panels open and closed
    • 5bbaa7c0 feat(planning): give the recurrence a field of its own with quick choices
    • 76089d11 feat(planning): mark activities as done in one request
    • c2822847 feat(planning): flip the activity type pages with a vertical mouse wheel
    • 002f75b6 fix(planning): keep the stable of a task or message when it's changed
    • 86f2f491 feat(calendar): shorten the filter and day/week buttons on a smaller desktop screen
    • e3ee30b7 feat(calendar): show an overview of the day or week with its progress when clicking a day
    • cfabc2cc fix(calendar): size the daily notes bar to the period in view
    • 55192c6e feat(calendar): hold the arrow buttons to move the week view one day at a time
    • 1a710239 feat(calendar): make the selected item stand out and center the assignee avatar of tasks
    • 42ed0658 feat(planning): improve the blueprint form
    • 32f7f7ab feat(planning): improve the titles and details of activities, tasks and messages
    • 6a320ea9 fix(planning): load the daily notes without a stable again
    • 4b2eaef4 feat(calendar): show the mobile date header like a calendar app, with the stable and the visible range in its date selector
    • 605abcb3 feat(calendar): show the bloodline, location and owners in the horse inspect modal
    • fd01af6a feat(calendar): show the mobile calendar hints once in a generic onboarding overlay
    • b46fcf35 feat(calendar): restyle the column headers and the mobile row bar, and let the whole mobile calendar respond to swipes and task taps
    • ba7af6a5 refactor(calendar): resolve the React 19 lint todos in the calendar
    • f1a34fc0 feat(modals): make the action and page modals behave like iOS and Android sheets
    • 8fc5152c feat(calendar): keep the scroll position on the same row when navigating between periods
    • e5d88acb feat(calendar): swipe between periods with the next and previous periods loaded in the background
    • 2b3b3b5d perf(planning): keep the selected activity in a store so a selection only re-renders what it affects
    • 03e506d6 perf(planning): keep the blueprint in a store so a change only re-renders what it affects
    • 58c1dd6f refactor(activities): build the multi add activity once in the form
    • dbf6a755 refactor(activities): keep entered values on blueprint changes instead of copying them into the blueprint
    • 87f6836f feat(calendar): grow the mobile blueprint sheet into the full modal on 'More options'
    • 4c68545f fix(modal): shrink the mobile page modal to its content, up to full height
    • db5a45c9 fix(calendar): smooth drawing, moving and resizing of the blueprint in the time scale
    • 43f256ff fix(gantt): only move the dragged horse of a reservation to another slot
    • bea742f9 feat(facility-booking): book a facility for multiple horses
    • 3aabce18 feat(planning): link multiple horses to a facility reservation

!2604 fix: remember the selected stable over the preferred stable and filter the action list on it ​

  • Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2604
  • Author: Rein de Vries
  • Closes: #1825 Filter on stable does not stick if you have a preferred stable
  • Commits:
    • 2148ba52 fix(actionList): apply the stable filter when a specific stable is selected
    • c949273c fix(profile): forget the selected stable when the preferred stable changes
    • 621e5175 fix(listFilter): remember the selected stable for the session over the preferred stable

!2605 fix(horses): keep line breaks in horse warning and note ​

!2606 fix(horses): show care defaults bulk update error instead of closing the modal ​

!2607 fix(breeding): keep a hidden insemination station selectable in the breeding plan modal ​

!2608 feat(companies): show the company website in the company info ​

!2609 fix(financial): hide the external provider id for Snelstart on VAT percentages ​

!2611 feat(manure): show the manure menu for BP organisations ​

!2612 fix(integrations): save the Exact sales journal on the primary company ​

!2613 fix(api): show a clear message when the server can't be reached ​

!2615 feat(facilities): default a booking to the minimum booking time of the facility ​

!2616 fix(breeding): clarify the insemination route export text ​

!2618 feat(breeding): show a clock icon for an assumed pregnant breeding plan ​

!2619 fix(feed): accept a decimal comma in feed quantities and price ​

!2620 chore: update OpenApi (GAT release 2026-11-02) ​

  • Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2620
  • Author: Rein de Vries
  • Closes: #1837 API changes in the GAT release of 2026-11-02 (e19d6d9ee)
  • Commits:
    • c55b8c63 docs(claude): explain which contact name to use where
    • 98488a79 feat(contacts): replace the title with form of address and academic title
    • 0042e064 feat(invoices): show why sending an invoice failed
    • 307d4286 fix(invoices): sum billable items as price × quantity in the to invoice list
    • 070a3219 fix(ui): don't show "undefined" after a filter option's subtitle
    • 35659911 feat(invoices): print the address name with form of address and academic title
    • 49cb636a chore: adapt to OpenApi changes
    • 5d976462 chore: update OpenApi

EquineM documentation