Release Notes - Technical Details
Internal companion to RELEASE_NOTES.md. Not for customers.
- Range:
510ac48fb93da55364fb0498b42f424ca1b89a0b→728b92858c5b97d6d8da6d435b7d2d34afd1081b - Generated: 2026-09-24 13:36 UTC
- Merge requests: 54
- Commits: 102 (0 without a merge request)
Merge requests
!2310 Service bundles
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2310
- Author: Michel
- Labels: VDL
- Commits:
c2e20407feat(horse): select button on mobile to start selecting horses5d0494aefix(horse): load the current stay only when needed and log errors8154486dfix(horse): correct the location sort order commentsccf51650fix(financial): type the service bundle request body as ProductTagWritable0f5505eefix(horse): only show rvo status and report for rvo authorized locations480b5f90fix(horse): offer the rvo report after a multi-horse movef08d88dcfix(horse): no unfinished activities warning for external horses075900c4feat(horse): service bundles in the location section of the horse details45d844dafeat(horse): service tags and rvo status in the horse list65487418feat(horse): gmail style selection via the avatar in the horse list63051790feat(horse): move selected horses via the move dropdown and MoveHorseModalb0623bf9feat(horse): multi-horse move and service bundles in MoveHorseModald4fcb65afeat(horse): rvo status and report actions in the location history tiled8b539aefeat(financial): settings page in tabs, tabs component96a3f91dfeat(financial): product tags (service bundles) on billable services
!2312 Breeding plans page
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2312
- Author: Michel
- Labels: VDL
- Commits:
a0cb47c1Added breading plan list page and details page
!2364 fix(horses): stop showing raw contact/stable uid when it can't be resolved - use clear unkown names
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2364
- Author: Rein de Vries
- Closes: #329 Horse details tab shows UID for some team members
- Commits:
db00808efix(horses): stop showing raw contact/stable uid when it can't be resolved - use clear unkown names
!2367 Feat/1227 bulk update horse
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2367
- Author: Rein de Vries
- Closes: #1227 Request: allow bulk edit of horses in the horse list
- Commits:
e2696888fix(selection): select-all checkbox did nothing without totalCount7f903abdfeat(horse): added bulk moveb785ca0bfeat(horse): added bulk edit on some simple fields9158b026chore(claude): added more instructions
!2377 chore(deleteAccount): do not log 400 error - its a user error not a fixable app error
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2377
- Author: Rein de Vries
- Commits:
e6f0457fchore(deleteAccount): do not log 400 error - its a user error not a fixable app error
!2379 chore(FertilityReport): added SWS filter
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2379
- Author: Rein de Vries
- Closes: #1645 Add 'SWS' filter to fertility report
- Commits:
4e37474dchore(FertilityReport): added SWS filter
!2380 chore(report): show the deployment report only for BP
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2380
- Author: Rein de Vries
- Commits:
34174c5cchore(report): show the deployment report only for BP
!2381 fix(reports): show income/expense chart by default
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2381
- Author: Rein de Vries
- Commits:
3d2b1488feat(reports): remove the 'show chart' filter6eed083afeat(reports): filter income/expense report by horse and/or contact85fe8bcefeat(reports): add Total column to income/expense report0b57ba88fix(reports): show income/expense chart by default
!2382 chore(report): make the grouped report sortable
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2382
- Author: Rein de Vries
- Commits:
0a494474chore(report): make the grouped report sortable
!2383 Chore/fead report fixes
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2383
- Author: Rein de Vries
- Commits:
790e1923chore(report): show active filters for the feed report360dbfe8chore(report): added cost toggle for the feed reportb4ea4253feat(feed): added average_feed_price in the feed type setting modal2464ca0achore(feedSetting): show the avarage price in the table of types
!2384 chore(report): reorder list
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2384
- Author: Rein de Vries
- Commits:
a9581af2chore(report): reorder list
!2385 chore(menu): enable report menu
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2385
- Author: Rein de Vries
- Commits:
ce0829ecchore(menu): enable report menu
!2386 feat(invoice): integrate move Horse when a horse sale item is created
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2386
- Author: Rein de Vries
- Commits:
b6653adcchore(toInvoice): disable horse sale54277329chore(invoice): when moving an horse via sale, prefill the destination if possible1801554bchore(invoice): make sure a horse sale can be for just one horse on the invoicee4c39766feat(invoice): integrate move Horse when a horse sale item is created
!2387 Feat/demo data
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2387
- Author: Rein de Vries
- Closes: #1253 Upgrade the trial experience (collection of ideas)
- Commits:
3c22470arefactor(signup): remove dead code2d8b205dfix(signup): image was not resizing correctly when the content is higher130e36d1feat(signup): added checkbox for demo content (default = true)
!2388 ci: added release-notes stage and added production deployment with this need
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2388
- Author: Rein de Vries
- Commits:
028c5d48ci: added release-notes stage and added production deployment with this need
!2389 Remove vercel dependencies
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2389
- Author: Michel
- Commits:
a71e393fRemove vercel dependencies
!2390 feat(organization): added fallback and preferred languages fields
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2390
- Author: Rein de Vries
- Closes: #1661 shop: added invoice language update
- Commits:
6f212abbchore(invoice): translate the invoice language to the actual name in the meta tabel next to the invoiceb485121achore: sync language list with the available languages from the locale repob32a60a7fix(invoice): remove setting the invoice language as that is obsolete now0c635d57feat(organization): add available and fallback invoice language settings
!2392 fix(order-wizard): stop re-logging handled 400s to Bugsink
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2392
- Author: Rein de Vries
- Commits:
56561341fix(order): stop re-logging handled 400s to Bugsink
!2393 fix(api): parse index-wrapped field errors from bulk endpoints
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2393
- Author: Rein de Vries
- Commits:
3a268d0ffix(api): parse index-wrapped field errors from bulk endpoints
!2394 chore: update OpenApi
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2394
- Author: Rein de Vries
- Commits:
ef83ffdachore: update OpenApi
!2395 fix(auth): sync rotated refresh token across tabs to prevent logout
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2395
- Author: Rein de Vries
- Closes: #1713 Opening a 2nd browser tab logs out the 1st tab
- Commits:
5aba0bd2fix(auth): sync rotated refresh token across tabs to prevent logout
!2396 chore(invoice): allow finalizing without a valid payment mandate
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2396
- Author: Rein de Vries
- Closes: #1709 Offer "finalize and send anyway" when the invoice has no valid payment mandate
- Commits:
87c428a2chore(invoice): allow finalizing without a valid payment mandate
!2397 fix: guard against missing url/fields in S3 presign response
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2397
- Author: Rein de Vries
- Closes: #1714 Profile avatar upload crashes with "Cannot convert undefined or null to object" when S3 presign response is empty
- Commits:
e5d6049bfix: guard against missing url/fields in S3 presign response
!2398 chore(careHorseForm): do not log cancel error
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2398
- Author: Rein de Vries
- Commits:
f34adbf8chore(careHorseForm): do not log cancel error
!2399 chore(apiParser): support non index array
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2399
- Author: Rein de Vries
- Commits:
c7cd1f10fix(apiParser): surface nested __all__ row errors as non-field errors
!2400 fix: stop double-logging already-handled API errors to Bugsink
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2400
- Author: Rein de Vries
- Commits:
88de1abffix: stop double-logging already-handled API errors to Bugsink
!2401 chore: update OpenAPi
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2401
- Author: Rein de Vries
- Commits:
610c74e7chore: adapt to OpenApi changesd5843a6fchore: update OpenAPi
!2403 fix(activities): show horse name in unassigned column of day view
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2403
- Author: Michel
- Commits:
0bc55ee4fix(activities): show horse name in unassigned column of day view
!2404 fix(planning): show tasks with a stable in action list
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2404
- Author: Michel
- Closes: #1711 Task not visible in action list
- Commits:
9da640cbfix(planning): show tasks with a stable in action list
!2405 fix(products): send current_price_currency to backend, clarify upfront payment currency
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2405
- Author: Rein de Vries
- Closes: #347 Currency support improvements (backlog)
- Commits:
74dee026fix(products): send current_price_currency to backend, clarify upfront payment currency
!2406 fix: upgrade react-router-dom to 6.30.6 for open-redirect advisories
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2406
- Author: Michel
- Commits:
24a09d24fix: upgrade react-router-dom to 6.30.6 for open-redirect advisories
!2407 feat(horse): show location history tile as a timeline
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2407
- Author: Rein de Vries
- Closes: #363 Show location history in horse details more like a timeline
- Commits:
28828309feat(horse): show location history tile as a timeline4b648ba5chore: update Claude.md with commit instructions
!2408 fix: generate S3 key uuids with node:crypto instead of the uuid package
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2408
- Author: Michel
- Commits:
f5ff8e66fix: generate S3 key uuids with node:crypto instead of the uuid package
!2409 feat(contacts): enhanced contact merger
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2409
- Author: Rein de Vries
- Closes: #1307 Enhanced contact merge and support Horse Merge, #1540 Duplicate merger shows 'hidden' contact as primary
- Commits:
28100ca7fix(contacts): confirm merge before saving duplicate primary contact84576b4afeat(contacts): move duplicate merge to dedicated pages with per-field conflict picker
!2410 feat(order): added mare and stallion filter
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2410
- Author: Rein de Vries
- Closes: #369 Bestelpagina lijst filteren op hengst
- Commits:
c49043a3feat(order): added mare filter4824167dfeat(order): added stallion filter
!2412 fix(api): surface API errors for fields not present in the form's own schema
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2412
- Author: Rein de Vries
- Commits:
cab0b69dfix(api): surface API errors for fields not present in the form's own schema
!2413 fix(invitation): show organisation name in accept-invitation page title
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2413
- Author: Rein de Vries
- Closes: #375 Text "Uitnodigingsverzoek" moet worden "Uitnodiging voor {organisatie}" op de accepteer uitnodiging pagina
- Commits:
9a22af42fix(invitation): show organisation name in accept-invitation page title
!2414 chore: npm audit fix (non-breaking advisories only)
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2414
- Author: Michel
- Commits:
dd1751b2chore: npm audit fix (non-breaking advisories only)
!2415 fixes: Stal Hendrix
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2415
- Author: Rein de Vries
- Commits:
4b9d5953fix(webshop): hide pay-order button while a payment is pending4e50e842feat(webshop): require UELN when adding a mare via the client portale901e060fix(breeding): label order item quantity as its own key instead of reusing 'amount'
!2416 fix(integrations): make machtiging_rvo_gegeven the leading RvO connection signal
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2416
- Author: Michel
- Commits:
36f668defix(integrations): make machtiging_rvo_gegeven the leading RvO connection signal
!2418 fix(products): stop overwriting a product's drifted currency, add inline fix
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2418
- Author: Rein de Vries
- Commits:
e93d4733fix(products): stop overwriting a product's drifted currency, add inline fix
!2419 feat(activities): split action list into List and Day (staff tile) views
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2419
- Author: Michel
- Commits:
75fb5b92fix(activities): bump Day view tile grid to 4/5 cols at xl/2xle07fc218fix(menu): hide Day view from the menu on mobile screens17609531fix(activities): make Day view tile grid responsive7c0bc786fix(activities): polish unassigned-by-type tiles and rename Day routeda86a12dfeat(activities): split unassigned staff group by activity type26664034fix(activities): use sibling route for Day view to avoid menu highlight bleed4d0146a2feat(activities): split action list into List and Day (staff tile) views
!2420 feat(horse): show feedschema on the horse detail page
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2420
- Author: Rein de Vries
- Closes: #466 Tegeltje met huidig voer in paard profiel
- Commits:
a7ccdc85feat(horse): show feedschema on the horse detail page
!2422 feat(feed): restrict feed type average price to admins
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2422
- Author: Rein de Vries
- Commits:
7199fe08feat(feed): restrict feed type average price to admins
!2423 fix(order): hide service contract orders from semen orders list
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2423
- Author: Rein de Vries
- Closes: #526 All order types are shown in semen orders list, #606 orders/supplied endpoint should have a new filter to filter out the service_contracts
- Commits:
459c2057fix(order): hide service contract orders from semen orders list
!2424 fix(planning): clip swipe animation so text doesn't bleed into horse-name column
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2424
- Author: Rein de Vries
- Closes: #537 Horizontal scrolling glitch on feed and care
- Commits:
c2b7dc41fix(permissions): clip swipe animation so text doesn't bleed into label column76973714fix(planning): clip swipe animation so text doesn't bleed into horse-name column
!2425 fix(sidebar): measure submenu height after commit instead of during render
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2425
- Author: Rein de Vries
- Closes: #1718 Sidebar submenu overlaps neighboring item on first page load
- Commits:
fd43e7e7fix(sidebar): measure submenu height after commit instead of during render
!2426 fix(shop-settings): trim trailing zero decimals on cost fields
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2426
- Author: Rein de Vries
- Closes: #1719 Cost field shows incorrect value (10,00000) in shop settings
- Commits:
1f0e271efix(shop-settings): trim trailing zero decimals on cost fields
!2427 fix(subscription): show estimated horse cost for accounts without a service contract yet
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2427
- Author: Rein de Vries
- Closes: #616 web.equinem user purchasing subscription doesnt get horse count
- Commits:
ffc8077dfix(subscription): show estimated horse cost for accounts without a service contract yet
!2428 fix(companies): refresh org companies after save to fix stale invoice letterhead address
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2428
- Author: Rein de Vries
- Closes: #543 Invoices: change in stable address is not immediately visible in concept invoices
- Commits:
4aa4a356fix(companies): refresh org companies after save to fix stale invoice letterhead address
!2429 chore: update OpenApi & show gantt chart also when transpas is enabled
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2429
- Author: Rein de Vries
- Commits:
6ee55b04feat(menu): show gantt chart also when transpas is enabledabc196ddchore: Adapt to OpenApi changes987033cdchore: update OpenApi
!2430 fix(activities): catch background reload error after quick save
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2430
- Author: Rein de Vries
- Closes: #1721 Silent error when refreshing calendar after creating a quick reservation
- Commits:
39664529fix(activities): catch background reload error after quick save
!2431 Fix/breeding plans mobile
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2431
- Author: Michel
- Commits:
d8a61063fix(breeding): show tile border on related orders and cycle checks7dadcbb2fix(breeding): compact mobile breeding plan rows without horizontal overflow
!2432 chore(duplicateContacts): more UI enhancements to distinct the primary contact
- Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2432
- Author: Rein de Vries
- Commits:
26f839c1chore(duplicateContacts): more UI enhancements to distinct the primary contact6e3e09f4chore(duplicateList): show no result bar in case of no results
Left out of the customer release notes
OpenAPI schema refreshes and other changes with no customer-visible effect.
- !2394 chore: update OpenApi (https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2394)
- !2401 chore: update OpenAPi (https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2401)