# Release Notes - Technical Details Internal companion to `RELEASE_NOTES.md`. Not for customers. - **Range:** `510ac48fb93da55364fb0498b42f424ca1b89a0b` → `22cee013be5e4dc7cb0f095ad1e913598f3c9129` - **Generated:** 2026-09-18 13:45 UTC - **Merge requests:** 23 - **Commits:** 38 (0 without a merge request) ## Merge requests ### !2312 Breeding plans page - Merge request: https://gitlab.equinem.com/equinem/equiapp/-/merge_requests/2312 - Author: Michel - Labels: VDL - Commits: - `a0cb47c1` Added 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](https://gitlab.equinem.com/equinem/equiapp/-/work_items/329) Horse details tab shows UID for some team members - Commits: - `db00808e` fix(horses): stop showing raw contact/stable uid when it can't be resolved - use clear unkown names ### !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: - `e6f0457f` chore(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](https://gitlab.equinem.com/equinem/equiapp/-/work_items/1645) Add 'SWS' filter to fertility report - Commits: - `4e37474d` chore(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: - `34174c5c` chore(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: - `3d2b1488` feat(reports): remove the 'show chart' filter - `6eed083a` feat(reports): filter income/expense report by horse and/or contact - `85fe8bce` feat(reports): add Total column to income/expense report - `0b57ba88` fix(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: - `0a494474` chore(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: - `790e1923` chore(report): show active filters for the feed report - `360dbfe8` chore(report): added cost toggle for the feed report - `b4ea4253` feat(feed): added average\_feed\_price in the feed type setting modal - `2464ca0a` chore(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: - `a9581af2` chore(report): reorder list ### !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: - `b6653adc` chore(toInvoice): disable horse sale - `54277329` chore(invoice): when moving an horse via sale, prefill the destination if possible - `1801554b` chore(invoice): make sure a horse sale can be for just one horse on the invoice - `e4c39766` feat(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](https://gitlab.equinem.com/equinem/equiapp/-/work_items/1253) Upgrade the trial experience (collection of ideas) - Commits: - `3c22470a` refactor(signup): remove dead code - `2d8b205d` fix(signup): image was not resizing correctly when the content is higher - `130e36d1` feat(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: - `028c5d48` ci: 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: - `a71e393f` Remove 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](https://gitlab.equinem.com/equinem/equiapp/-/work_items/1661) shop: added invoice language update - Commits: - `6f212abb` chore(invoice): translate the invoice language to the actual name in the meta tabel next to the invoice - `b485121a` chore: sync language list with the available languages from the locale repo - `b32a60a7` fix(invoice): remove setting the invoice language as that is obsolete now - `0c635d57` feat(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: - `56561341` fix(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: - `3a268d0f` fix(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: - `ef83ffda` chore: 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](https://gitlab.equinem.com/equinem/equiapp/-/work_items/1713) Opening a 2nd browser tab logs out the 1st tab - Commits: - `5aba0bd2` fix(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](https://gitlab.equinem.com/equinem/equiapp/-/work_items/1709) Offer "finalize and send anyway" when the invoice has no valid payment mandate - Commits: - `87c428a2` chore(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](https://gitlab.equinem.com/equinem/equiapp/-/work_items/1714) Profile avatar upload crashes with "Cannot convert undefined or null to object" when S3 presign response is empty - Commits: - `e5d6049b` fix: 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: - `f34adbf8` chore(careHorseForm): do not log cancel error ### !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: - `88de1abf` fix: 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: - `610c74e7` chore: adapt to OpenApi changes - `d5843a6f` chore: update OpenAPi ## 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)