Skip to content
- feat(financials): fee-total model rework — totalPlatformFee(+InPercent), TripPay→PaymentProcessing rename, gross-based platform fee (#493)
- fix(acl): register managing-entity cache so @RequireAccountPermission resolves teams
- refactor: :recycle: changed Exely query so bookings will return when the exely booking is confirmed
- refactor(api): use native mapping version attribute for v2.0 endpoints
- docs: :globe_with_meridians: updated translation keys
- docs: :memo: add JaCoCo 85% rollout plan and cache-domain test logback config
- docs: :memo: JaCoCo 85% rollout COMPLETE — 40 modules gated, 500+ tests added
- docs: :memo: phase0 discovery complete — 40 real modules, 13 empty stubs, 500+ tests needed
- docs: :memo: phase1 task1 json-domain complete — 100% coverage
- docs: :memo: phase1 task2 geo-name-web complete — 89% coverage
- docs: :memo: phase1 task3 analytics-domain complete — 86.6% coverage
- docs: :memo: phase1 tasks 1-3 complete
- docs: :memo: phase1 tasks 1-3 complete — 3 modules at 85%+
- docs: :memo: phase1-2 summary — 7 modules complete at 91.2% avg coverage
- docs: :memo: phase2 task6 inventory-domain complete — 85.8% coverage + bug fix
- docs: :memo: phase2 task7 message-template-domain complete — 100% coverage
- docs: :memo: phase2 tasks 12-15 complete — 15/16 Tier 2 modules at 85%+
- docs: :memo: phase2 tasks 8-11 complete — 4 modules at 85%+ (11/7 total complete)
- docs: :memo: phase2-3 checkoint — 20 modules at 85%+ (16 Tier2 + 4 Tier3)
- feat(analytics): multi-party server-side GA4/GTM purchase tracking (#485)
- feat(booking): only email travelers on concrete Stripe payment failures (#491)
- feat(cache): add managingEntityIdsByUser ID-list cache to ManagingEntityService (#484)
- feat(room-type): draft + per-section PATCH endpoints; refactor: remove fake-async from request/response services (#481)
- fix: :recycle: fixed selfAcquired and selfDisburses
- fix(booking,accounting): agent refunds settle + self-managed agents kept off the ledger (#488)
- fix(booking): :bug: settle admin manual refunds with no Stripe PaymentIntent (#492)
- fix(booking): apply channel-manager status filter to all pull paths (Exely, CloudBeds)
- fix(booking): filter booking status for channel-manager delivery and review emails (#489)
- fix(booking): scope channel-manager pulls by rateSource + hide INITIALIZED from non-admin (#490)
- fix(customization): map CustomizationException to 404; 409 for primary removal (#482)
- fix(lookup-web): handle missing ‘term’ param as 400 Bad Request (#483)
- perf(rate): eliminate N+1 query in RateRepository.findByDateRange Map overloads
- refactor: :recycle: fixed Stripe issues due to new Stripe version
- refactor: :recycle: remove leftover PasswordEncoder dependency from YanoljaServiceImpl
- refactor: :recycle: removed property status everywhere
- refactor: :recycle: removed unused imports
- refactor: :recycle: tried to get more insight into why Exely is failing in staging
- refactor: :recycle: updated Yanolja by removing bcrypted password
- test: :green_heart: fixed some AI generated tests
- test: :white_check_mark: booking-domain — enable JaCoCo 85% gate → 86.9%
- test: :white_check_mark: booking-web — boost instruction coverage from 85% to 93%
- test: :white_check_mark: booking-web — enable JaCoCo 85% gate → 85%+
- test: :white_check_mark: cache-domain, lookup-web — → 85%+
- test: :white_check_mark: caldav-web — enable JaCoCo 85% gate and add 404 test
- test: :white_check_mark: customization-web — enable JaCoCo 85% gate → 100%
- test: :white_check_mark: customization-web, message-template-web, report-web — → 85%+
- test: :white_check_mark: enable JaCoCo 85% gate on 49 empty/tiny modules (integrations, mcp stubs, scaffolding)
- test: :white_check_mark: fix cancellationType assertion in BookingPhase0TypesTest
- test: :white_check_mark: fix disabled tests and raise coverage in 5 modules to 80%+ gate
- test: :white_check_mark: improve room-type-domain JaCoCo coverage with comprehensive event listener tests
- test: :white_check_mark: lookup-web — enable JaCoCo 85% gate → 95%+
- test: :white_check_mark: message-template-domain coverage verified at 100%
- test: :white_check_mark: message-template-web — enable JaCoCo 85% gate → 100%
- test: :white_check_mark: payment-web — enable JaCoCo 85% gate → 89.6%
- test: :white_check_mark: phase1 analytics-domain coverage — 65% → 85%+
- test: :white_check_mark: phase1 analytics-domain coverage — 86.6%
- test: :white_check_mark: phase1 application-domain coverage — 50% → 95.7%
- test: :white_check_mark: phase1 application-domain coverage — 50% → 95.7%+
- test: :white_check_mark: phase1 geo-name-web coverage — 50% → 89%+ (gate enabled)
- test: :white_check_mark: phase1 json-domain coverage — 0% → 85%
- test: :white_check_mark: phase1 point-of-interest-domain coverage — ~40% → 89%+
- test: :white_check_mark: phase1 point-of-interest-domain coverage — 40% → 89.3%
- test: :white_check_mark: phase2 add-on-web — → 85%+
- test: :white_check_mark: phase2 customization-client-domain — → 85%+
- test: :white_check_mark: phase2 exchange-rate-web — → 85%+
- test: :white_check_mark: phase2 geo-ip-web — → 85%+
- test: :white_check_mark: phase2 inventory-domain coverage — 65% → 85.8%+
- test: :white_check_mark: phase2 invite-domain — → 85%+
- test: :white_check_mark: phase2-final cancellation-policy-web — → 85%+
- test: :white_check_mark: phase3 accounting-domain — → 85%+
- test: :white_check_mark: phase3 checkout-domain — → 85%+
- test: :white_check_mark: phase3 lookup-domain — → 85%+
- test: :white_check_mark: reconcile tests after origin/develop merge
- test: :white_check_mark: report-web — enable JaCoCo 85% gate → pass
- test: :white_check_mark: scheduler-domain — → 85%+
- test: :white_check_mark: shortened-url-domain — enable JaCoCo 85% gate
- test(room-type): :white_check_mark: fix failing tests and restore 85% gate; enable events-command-gateway and translate-inventory gates
- feat: add comprehensive external webhook event catalogue (#479)
- test: :green_heart: fixed test
- test: :green_heart: fixed test
- chore: remove ALLOTZ and FASTBOOKING channel managers
- docs: :memo: add Bamboo CI pipeline commands to CLAUDE.md
- fix: :bug: fix forgot-password flow and reset code length
- fix: :bug: restore magic link (OTT) passwordless login after Spring Boot 4.1 upgrade
- feat(cache): add Caffeine L1 cache for managing entities and harden shared cache infra (#478)
- refactor: :recycle: priritizing supplier GA4 config
- docs: :memo: added RequestBodu openapi annotations
- feat: add Layer C entity-type access control via @RequireManagingEntityType (#476)
- feat(channel-manager): :sparkles: expose per-room unitAmount on PropertyBooking
- fix: :bug: resolve bedType from OTA bed codes in booking emails
- fix(analytics): :bug: split studio/extranet booking analytics to stop dual @PreAuthorize 500
- fix(channel-manager): :bug: emit one RoomStay per room for Allotz, Rate-Gain, Travelclick
- fix(channel-manager): emit one Siteminder RoomStay per room (#477)
- fix(google-places): :bug: correct scrambled address field mapping
- fix(managing-entity): :bug: reject blank address1 during registration
- fix(property-aggregate): :bug: repair availability filter dropped by Criteria mutation
- refactor(mcp): :recycle: split booking analytics and review MCP tools to match controller split
- test: :green_heart: fixed setUp issue while running surefire with fork = 3
- test: :green_heart: fixed some weird MongoDb issue
- test: :green_heart: fixed test
- test: :white_check_mark: added enough coverage to property-web
- docs: :memo: GA level API documentation
- docs(openapi): :memo: comprehensive OpenAPI @Schema/@ArraySchema/@Parameter sweep across all API modules
- fix(openapi): :bug: remove redundant implementation= from field-level @ArraySchema
- fix(openapi): consolidate example constants and fix @ArraySchema annotation structure (#473)
- fix(revolut): gate webhook initializer behind revolut.webhook-initializer.enabled (#474)
- fix(test): use exact args in WithdrawalControllerTest stub and verify
- refactor: :recycle: All OpenAPI examples now display
- refactor: :recycle: allowed npm dep
- refactor: :recycle: fixed Stripe webhook issue (#475)
- refactor: :zap: removed Application MCP tools
- test: :green_heart: fixed all tests after OpenAPI changes
- docs(openapi): add @ApiResponse + @Parameter sweep across all *-web controllers
- fix: amend git-flow back-merge commit before pushing develop to suppress CI
- fix(test): correct JWT claim key in WithdrawalControllerTest mock
- refactor: :recycle: moved applications and invites to SSO
- refactor: :recycle: removed Exely code check
- docs: :memo: added OpenAPI example text
- fix: :bug: accepting / rejecting invite now works
- fix: :bug: normalize passkey (WebAuthn) login to the canonical authentication shape
- fix: :bug: skip no-op release commit so set -e can’t abort the release
- fix: :rotating_light: compiles and tests pass
- refactor: :recycle: added meid request param on cta link
- refactor: :recycle: improved customization client
- test: :green_heart: fixed test