Przejdź do głównej zawartości

All versions since 30.31.4

30.31.4

• refactor: :zap: added index on booking collection • refactor: :zap: rewrote how booking analytics are retrieved Resolves #187

30.31.5

• perf: :zap: fixed test. fixes #189 • perf: :zap: improved booking query by adding 2 more indexes. resolves #190 • refactor: :zap: rewrote rate period db query. resolves #188 • test: :green_heart: fixed test. fixes #188

30.32.0

• chore: :see_no_evil: add .claude local settings to .gitignore • docs: :memo: add CLAUDE.md for Claude Code guidance • feat: :sparkles: complete Exely Channel Manager integration with full API implementation • feat: :sparkles: merging Exely integration to be ready for certification on staging. resolves #156 • feat: :sparkles: starting Exely integration. resolves #156 • fix: :bug: New managing entity now has correct ShortenedUrl. fixes #194 • perf: :zap: improved booking query by simplying group step. resolves #190 • refactor: :_recycle: renamed WinkLinks items created from studio • test: :green_heart: fixed all Exely web tests • test: :green_heart: fixed failing tests due to missing mock bean • test: :green_heart: fixed failing tests due to new rate provider

30.33.0

• feat: :sparkles: add tracking pixel support to Customization • fix: :bug: fixed ShortenedUrl not updating profile picture on managing entity • fix: :rotating_light: fixed compiler error

30.33.1

• docs: :memo: Create comprehensive README.md for developer onboarding • docs: contrib-readme-action has updated readme • refactor: :recycle: a few managing entity types are set to pending approval upon creation

30.33.2

• fix: :bug: fixes subscription provisioning

30.33.3

• test: :green_heart: fixed single IT test

30.34.0

• chore: :globe_with_meridians: added payment-web to translation step • docs: :memo: Add comprehensive JavaDoc to BookingContractCalculator (Phase 7) (#211) • docs: :memo: Add comprehensive JavaDoc to BookingServiceImpl (Phase 6) (#210) • docs: :memo: Add comprehensive JavaDoc to InventoryRepositoryImpl (Phase 9) (#213) • docs: :memo: Add comprehensive JavaDoc to WinkBookingContract (Phase 8) (#212) • docs: :memo: change Create account to Register • docs: :memo: comprehensive JavaDoc for AcquiringInformation (#217) • docs: :memo: comprehensive JavaDoc for Booking domain document (#218) • docs: :memo: comprehensive JavaDoc for BookingItinerary (#222) • docs: :memo: comprehensive JavaDoc for BookingUserSession (#223) • docs: :memo: comprehensive JavaDoc for GeoNameLightweight (#216) • docs: :memo: comprehensive JavaDoc for PublicBooking (#219) • docs: :memo: comprehensive JavaDoc for PublicBookingAncillary (#221) • docs: :memo: comprehensive JavaDoc for PublicRoomStay (#220) • docs: :memo: comprehensive JavaDoc for SimpleMultimedia (#215) • docs: :memo: comprehensive JavaDoc for StayRate (pricing engine) (#226) • docs: :memo: update Git Workflow section to use native git-flow commands • docs: comprehensive JavaDoc for AbstractCommonTravelInventory (#214) • docs: comprehensive JavaDoc for pricing engine classes (#227) • docs: comprehensive JavaDoc for RoomStay (computed) (#224) • fix: :bug: added a more lenient JsonView on TravelAgent • fix: :bug: added support for empty JsonNode values. • fix: :bug: copied messages key/values from TripPay to Wink • fix: :bug: fixed leaderboard query • fix: :bug: saving legalName • fix: resolve Mockito UnnecessaryStubbingException in payment-domain tests • refactor: :globe_with_meridians: re-configured where we put i18n files • refactor: :recycle: added JUnit mockito and Claude skills • refactor: :recycle: added payment-mail-api • refactor: :recycle: added support for 4, 16, 20 and 25 posts per month • refactor: :recycle: improved logic on Booking Itinerary • refactor: :recycle: moved email events to their respective domains • refactor: :recycle: TripPay U.S. is now active • refactor: :wrench: updated OpenApi docs • test: :green_apple: all tests pass • test: :green_apple: fixed test • test: :green_heart: fixed failing test • test: :white_check_mark: add comprehensive InventoryService tests (#208) • test: :white_check_mark: add comprehensive Payment webhook tests (#207) • test: :white_check_mark: Add comprehensive Stripe event listener tests (Phase 5) (#209)

30.34.1

• fix: :bug: Removed default query param values on endpoint

30.35.0

• feat: :sparkles: Add Meta auto-reply for DMs and comments with AI sentiment analysis • feat: :sparkles: Exely self-certification is complete • feat: :sparkles: Integrated social replies with Inventory app. • feat: :sparkles: Merge meta-autoreply feature into develop • fix: :bug: Resolve PR #237 Sentry review comments • fix: :wrench: fixed Facebook and Instagram config • refactor: :wrench: moved Google Hotel endpoin configuration to Integrations • refactor: :wrench: updated Exely’s API password in prod • test: :green_heart: Fixed Exely tests • test: :green_heart: Fixed Meta webhook tests

30.35.1

• fix: :wrench: fixed XML marshalling for Googel Hotel list • test: :green_heart: fixed Googel Hotel endpoint test

30.35.2

• fix: :bug: PropertyAggregate now receives profile updates

30.35.3

• refactor: :recycle: moved online presence to ManagingEntity • test: :green_heart: fixed tests related to Online Presence

30.35.4

• refactor: :recycle: added OpenAI test

30.36.0

• feat: :sparkles: added Anthropic • fix: :bug: connected account-web and booking-contract-web to Inventory app • fix: :bug: guard allMatch with isEmpty check for MongoBulkWriteException • fix: :bug: handle MongoBulkWriteException on idempotent event replays • fix: :bug: rate upsert concurrency and reliability improvements • fix: :recycle: Exely service updates • fix: :recycle: made currency check on Exely conditional • refactor: :arrow_down: downgraded to Spring Boot 4.0.2 • refactor: :recycle: added account-web • refactor: :recycle: finalized CloudBeds self-certification and updated JSON objects • refactor: :recycle: improved CORS config readability • refactor: :recycle: normalized exception return object • refactor: :recycle: now using Selenium for web scraping and jsoup for parsing exclusively • refactor: :recycle: now using Selenium for web scraping. Resolves #241 • refactor: :recycle: updated Social notification email to use a ctaUrl • test: :green_heart: fixed failing test

30.37.0

• feat: :sparkles: added marketing and places to inventory • feat: add campaigns domain with public REST endpoint (#246) • fix: :bug: fixed an error in Yanolja that caused • test: :green_heart: fixed campaign tests

30.38.0

• feat: add mobile OAuth2 refresh token support (#249) • fix: :bug: Turnstyle issue fixed • refactor: :recycle: supports mobile registered clients with less privs • refactor: replace Persona with PostType + ToneOfVoice model (#251)

30.39.0

• feat: :sparkles: improve auth form visual design and add JS validation

30.39.1

• refactor: :recycle: changed prompts a bit • test: :green_heart: fixed compilation error

30.40.0

• refactor: :recycle: allowed the removal of profilePicture • refactor: :recycle: create static image map for syndicated map entries • refactor: :recycle: updated link wot Academy • test: comprehensive unit test coverage for domain services (#228)

30.40.1

• test: :green_heart: added tests and fixed tests

30.40.2

• test: :green_heart: added tests and fixed tests

30.40.3

30.40.4

• test: :green_heart: added tests and fixed tests

30.40.5

• fix: :bug: fixed grid not loading

30.40.6

• fix: :bug: added default booking URIs to all registered clients • fix: :bug: fixed openapi path

30.40.7

  • fix: :green_heart: added support for more registered client types
  • fix: :recycle: all map markers returned
  • refactor: :recycle: added faceBookAppId to open graph model
  • refactor: :recycle: added some extra logging to welcome text AI helper
  • refactor: :recycle: added support for more registered client types
  • refactor: :recycle: added travelAgent to ManagingEntity
  • refactor: :recycle: make it so that our own currency is prioritized of CLoudBeds currency
  • refactor: :recycle: preemptive Csrf token in login
  • refactor: :recycle: refreshing tokens now possible for mobile registered clients only
  • refactor: :recycle: set httpOnly false to better accommodate JS
  • refactor: :recycle: SSO works perfectly now
  • refactor: :recycle: updated with Yann’s prompts

30.41.0

30.41.1

30.42.0

  • feat(payment): add server-side GA4 purchase tracking via Measurement Protocol (#262)
  • refactor: :recycle: added OpenGraph image url filter
  • refactor: :zap: removed unsued code
  • refactor(payment): move GA4 code to google/google-analytics module (#263)
  • test: :green_heart: fixed test

30.43.0

  • feat(winklinks): add background, gradient, profile sizing, and font fields (#266)
  • feat(winklinks): add social list design customization fields
  • fix: :bug: fixed transactionInventoryList everywhere
  • test: :green_heart: updated test to include new properties

30.43.1

  • refactor: :recycle: logo can now be removed

30.43.2

  • refactor: :recycle: improved oEmbed code
  • test: :green_heart: fixed failing test
  • test: :white_check_mark: verify zero-priced BookingAncillary support across pipeline

30.44.0

  • docs: :memo: add README.md to every Maven sub-module (#274)
  • feat: :sparkles: improve social post quality with key facts, seasonality, occasions, and diversity
  • feat: :sparkles: Revolut Business payout integration (Phases 1-7)
  • feat: forward Revolut payout fees to beneficiary with double-entry ledger entries
  • feat: Revolut Business payout integration (Phases 1-7) (#271)
  • feat: Revolut OAuth2 private_key_jwt + API-managed webhooks (#273)
  • fix: :bug: took into account different types of principan
  • refactor: :fire: removed all reactive modules
  • refactor: :recycle: added support for Revolut fees
  • refactor: :recycle: all Exely business errors should have 200 status code
  • refactor: :recycle: improved oEmbed code
  • refactor: :sparkles: improve double-entry ledger with accountName field, typed metadata, and bug fixes
  • refactor: :zap: removed Wise code
  • test: :green_heart: fixed failing test
  • test: :green_heart: fixed Revolut tests
  • test: :green_heart: fixed tests
  • test: :white_check_mark: verify zero-priced BookingAncillary support across pipeline
  • test: fix CoverageServiceImplTest and AdminLedgerControllerTest after Wise removal and withdrawal refactor

30.44.1

30.44.2

  • refactor: :recycle: updated post renditions campaign query

30.44.3

  • refactor: :recycle: added support for GTM Container ID
  • refactor: :rotating_light: fixed compiler error

30.45.0

  • docs: :memo: added readme files for the new AI code
  • feat: :sparkles: add ai-rag-advisor, ai-agent modules + media metadata in embeddings (#280)
  • feat: :sparkles: add ResilientChatModel and ChatClient.Builder support (#281)
  • feat: :sparkles: hotel identity federation for third-party vector store access (#286)
  • feat: add property embeddings pipeline with vector store (#277)
  • feat: replace static key facts with vector store retrieval in content creators (#282)
  • fix: :bug: resolve PR review findings from #279-#283 (#284)
  • refactor: :recycle: added rag to index creator task. fixed the reputation text for vector store ingest
  • refactor: :recycle: added support for 3rd party GTM and GA4 IDs
  • refactor: :recycle: decompose Prompts.java into focused domain classes (#279)
  • refactor: :recycle: fixed Vector store. Tests pass.
  • refactor: :recycle: unify content creators with vector store as single source of truth (#285)
  • refactor: :wrench: added Revolut prod keys
  • refactor: :wrench: added Voyage AI vector store to the mix Using MongoDb Atlas Embeddings
  • refactor: meta-autoreply uses ChatClient + RagContextAdvisor (#283)
  • refactor: migrate property-embeddings to sliced Spring AI VectorStore documents (#278)
  • test: :green_heart: fixed test
  • test: :green_heart: fixed text

30.45.1

  • refactor: :recycle: subscribing fb / ig page to our app at the same time we do auth

30.46.0

  • chore: :art: nothing special
  • chore: :fire: removed unused classes
  • chore: :loud_sound: updated logging levels
  • chore: :wrench: this fails in CI and doesn’t even compile
  • chore: remove .claude/worktrees from tracking
  • docs: :globe_with_meridians: updated i18n values
  • docs: :memo: bring all README.md files in line with the current codebase
  • docs: :memo: fix all Javadoc doclint errors across codebase
  • docs: :memo: updated delete user text
  • docs: :memo: updated descriptions
  • docs: :memo: updated i18n keys for email
  • feat: :sparkles: add acquiringInformation to booking refund property email event
  • feat: :sparkles: added MCP tools
  • feat: :sparkles: expose git commit hash via environment.git-hash property
  • feat: :sparkles: fix direct checkout data loss and add QR code generation
  • feat: :sparkles: make REST endpoints MCP-friendly with @McpToolDescription (#314)
  • feat: :sparkles: populate FinancialBreakdown on agent bookings
  • feat: :sparkles: populate FinancialBreakdown on test bookings
  • feat: add Sign in with Apple as federated OAuth2 provider (#294)
  • feat: add Sign in with Microsoft as federated OAuth2 provider (#295)
  • feat: group booking confirmation email for multi-room carts (#302)
  • feat: populate financialBreakdown on ancillaries, stay rate, and room stay
  • feat: preserve OAuth2 state across OTT magic-link authentication (#296)
  • feat: support RoomStay quantity>1 and multi-room-type group bookings (#312)
  • feat: sync withdrawable funds to ledger as single source of truth (#310)
  • feat(application): drop clientType from update request
  • feat(booking): :sparkles: single refund model, email audit trail, all-day calendar events
  • feat(booking): consolidate supplier refund to single admin-approval flow (#317)
  • feat(booking): expose admin refund respond and issue endpoints
  • feat(booking): unify cancellation rule across roles; split refund preview from cancellation (#340)
  • feat(IAM): convert SSO inline-HTML emails to Wink templates (#305)
  • feat(IAM): federated account linking with case-insensitive email matching (#303)
  • feat(lead): add bulk status update endpoint with service impl and tests
  • feat(managing-entity): add bulk status update endpoint with service impl and tests
  • feat(managing-entity): add unique city/country affiliate list endpoints (#299)
  • feat(managing-entity): manager grant administration + safe ownership transfer (#341)
  • feat(payment-admin): add booking aggregate data endpoints, managing-entity type counts, and property status aggregation
  • feat(property): add bulk status update endpoint with service impl and tests
  • feat(scheduler): auto-provision Google Cloud Scheduler jobs for /task/ endpoints (#321)
  • feat(security): extend platform ACL to ManagingEntity, CalDav & Feature controllers (#325)
  • feat(security): modernize roles, scopes & grants onto the platform ACL (#324)
  • feat(security): platform-wide object-level ACL framework and rollout (#322)
  • feat(security): secure /mcp as OAuth2 resource server with per-tool ACL (#326)
  • feat(special-rate): :sparkles: add bundle-level descriptions for offerDetails
  • feat(user): add bulk enable/disable endpoint with service impl and tests
  • feat(user): self-service account removal + 30-day purge lifecycle (#345)
  • fix: :bug: disable OTel OTLP exporters to prevent localhost:4318 connection errors
  • fix: :bug: fixed refunding
  • fix: :bug: move email template i18n keys to correct app message bundles
  • fix: :bug: populate booking email payment details from PAYMENT_TEXT
  • fix: :bug: removed a assert required check
  • fix: :bug: use custom booker from BookingTestRequest instead of authenticated user
  • fix: :recycle: add-on data now show correctly
  • fix: :recycle: fixed profile domain issue
  • fix: :wrench: added qrCodeImageUrl to group booking event
  • fix: charge ancillaries through the full fee structure and dedupe beneficiaries by party
  • fix: exclude bundled agents from JaCoCo report to fix duplicate-class error
  • fix: report Exely multi-room bookings as N duplicate room stays
  • fix: send Revolut counterparty bank details at top level (code 2101) (#311)
  • fix(application): return scopes in Application response
  • fix(booking): :bug: apply quantity at the rate leaf to fix add-on double-count (#331)
  • fix(booking): after-refund breakdown uses refund-adjusted net + amount-refunded row
  • fix(booking): apply room quantity to booking financialBreakdown (#327)
  • fix(booking): make the refund webhook the single source of refund completion (#319)
  • fix(booking): migration honors payment.vendor and preserves SALE beneficiary classification
  • fix(booking): one TripPay payment confirmation email per group booking (#339)
  • fix(booking): refund the correct amount and reconcile refunds against the beneficiary ledger (#342)
  • fix(booking): repair BookingStayRate compile breakage and pagination totals (#334)
  • fix(booking): show actual room quantity in booking emails (#329)
  • fix(build): :bug: bake OTEL exporter-disable env vars into the Cloud Run image
  • fix(channel-manager): send actual room quantity to partners (#330)
  • fix(IAM): :bug: accept Microsoft logins without email_verified claim
  • fix(IAM): :bug: strip upstream nbf/jti from federated id_token claims (#307)
  • fix(IAM): :bug: unblock federated logins for Spring Security 7 (#306)
  • fix(IAM): enable Apple Sign-In web flow + extranet→app URL rename (#304)
  • fix(openapi): :bug: realign springdoc groups and scopes to ACL URL scheme
  • fix(security): :bug: match ACL caller by user_id claim, not JWT subject (#343)
  • fix(single-sign-on): :bug: make passkey registration work end-to-end
  • fix(web): :bug: return 401 for failed authentication, not 403 (#344)
  • refactor: :perf: tried to improve inventory retrieval
  • refactor: :recycle: added @PersistenceCreator annotation to constructors
  • refactor: :recycle: added 2 more properties to email event POJO to be able to generate a google calendar URL
  • refactor: :recycle: added add item to cart
  • refactor: :recycle: added address update method for admin
  • refactor: :recycle: added custom font on Customization
  • refactor: :recycle: added endpoint for Revolut transfer fee
  • refactor: :recycle: added more comments on purge managing entities
  • refactor: :recycle: added my account support directly in IAM
  • refactor: :recycle: added Revolut entries
  • refactor: :recycle: added some convenience methods on Booking
  • refactor: :recycle: added Some Sentry code and
  • refactor: :recycle: added webhook self-healing to Stripe
  • refactor: :recycle: checkout session booking works now
  • refactor: :recycle: consolidated migration script
  • refactor: :recycle: fixed ancillary emails being sent out by filtering appointment-type extras
  • refactor: :recycle: fixed pdf report creation
  • refactor: :recycle: fixed POJOs with missing @JsonView annotations and constructors
  • refactor: :recycle: fixed reputation entry
  • refactor: :recycle: looking at booking ancillaries
  • refactor: :recycle: removed unused getters
  • refactor: :recycle: updated events after TripPay / Wink merge
  • refactor: :recycle: upgraded aplication and webhook list endpoints to use ME ID
  • refactor: :recycle: upgraded Spring AI to M8
  • refactor: :recycle: we are no longer creating an app per new account
  • refactor: :zap: removed Groq / Grok AI from Resilient manager
  • refactor: :zap: removed Groq from resilient manager
  • refactor(api): normalize account-scoped URLs to /api/managing-entity/{id}/{context}/… (#323)
  • refactor(pricing): :recycle: use BigDecimal(scale 3) for discount/premium/channel percentages (#338)
  • style: :lipstick: fixed QR code
  • style: :lipstick: made better email content
  • test: :green_heart: added test
  • test: :green_heart: fix shouldFailWhenIdentifiersAreEmpty in AdministrationLeadServiceImplTest
  • test: :green_heart: fixed a breaking test
  • test: :green_heart: fixed all tests
  • test: :green_heart: fixed compilation error
  • test: :green_heart: fixed controller test
  • test: :green_heart: fixed Handlebars render tests
  • test: :green_heart: fixed missing mock bean
  • test: :green_heart: fixed test
  • test: :green_heart: fixed test by removing one redundant legacy status check
  • test: :green_heart: fixed test by updating mock dependencies
  • test: :green_heart: fixed tests
  • test: :green_heart: remove unused import in AdministrationLeadServiceImplTest
  • test: :green_heart: updated test
  • test: :white_check_mark: added booking tests
  • test: :white_check_mark: comprehensive cancellation and refund test coverage
  • test: :white_check_mark: fix BookingPaymentHandlerImplTest compilation and runtime failures
  • test: :white_check_mark: fix BookingReportServiceTest by mocking QrCodeService
  • test: :white_check_mark: fix CheckoutServiceIntegrationTest by mocking GoogleMapsService
  • test: :white_check_mark: fix ManagingEntityControllerTest after UpsertBankAccountRequest gained address param (#313)
  • test: :white_check_mark: fix UnfinishedStubbingException in WithdrawalServiceImplTest (#308)
  • test: :white_check_mark: mock QrCodeService in booking-domain integration tests
  • test: add domain/web coverage and fix a pagination total bug in ReviewRepository (#333)
  • test: enable JaCoCo 85% gate on calendar + 23 MCP modules (#336)
  • test: fix BookingReportServiceTest context configuration
  • test: fix BookingServiceImplTest by adding CustomizationService mock
  • test: fix CheckoutServiceImplTest
  • test: fix CheckoutServiceIntegrationTest
  • test: fix DirectCheckoutServiceImplTest for sync checkout API
  • test: hermetic transactional email tests via shared HandlebarsTestSupport (#301)
  • test: roll out JaCoCo 85% coverage gate across 55 modules (#335)
  • test: roll out JaCoCo 85% gate across 13 more domain modules (#337)
  • test: stub StayRate enrichment chain in DirectCheckoutServiceImplTest
  • test(accounting): :white_check_mark: isolate ledger ITs from parallel-failsafe shared-Mongo race
  • test(booking): :white_check_mark: end-to-end group booking cancellation refund test
  • test(security): add auth + OAuth2 coverage, JaCoCo 85% gate, fix two persistence bugs (#332)

30.47.0

  • chore: :art: nothing special
  • chore: :loud_sound: updated logging levels
  • chore: :wrench: this fails in CI and doesn’t even compile
  • docs: :globe_with_meridians: updated i18n values
  • docs: :memo: bring all README.md files in line with the current codebase
  • docs: :memo: fix all Javadoc doclint errors across codebase
  • docs: :memo: updated delete user text
  • docs: :memo: updated descriptions
  • docs: :memo: updated i18n keys for email
  • docs(openapi): :lock: hide internal endpoints and reorganize public API docs (#350)
  • docs(stripe): correct webhook signing-secret fallback docs and drop dead config
  • feat: :sparkles: add acquiringInformation to booking refund property email event
  • feat: :sparkles: added MCP tools
  • feat: :sparkles: expose git commit hash via environment.git-hash property
  • feat: :sparkles: fix direct checkout data loss and add QR code generation
  • feat: :sparkles: make REST endpoints MCP-friendly with @McpToolDescription (#314)
  • feat: :sparkles: populate FinancialBreakdown on agent bookings
  • feat: :sparkles: populate FinancialBreakdown on test bookings
  • feat: group booking confirmation email for multi-room carts (#302)
  • feat: populate financialBreakdown on ancillaries, stay rate, and room stay
  • feat: support RoomStay quantity>1 and multi-room-type group bookings (#312)
  • feat: sync withdrawable funds to ledger as single source of truth (#310)
  • feat(application): drop clientType from update request
  • feat(booking): :sparkles: single refund model, email audit trail, all-day calendar events
  • feat(booking): consolidate supplier refund to single admin-approval flow (#317)
  • feat(booking): expose admin refund respond and issue endpoints
  • feat(booking): unify cancellation rule across roles; split refund preview from cancellation (#340)
  • feat(IAM): convert SSO inline-HTML emails to Wink templates (#305)
  • feat(IAM): federated account linking with case-insensitive email matching (#303)
  • feat(managing-entity): manager grant administration + safe ownership transfer (#341)
  • feat(scheduler): auto-provision Google Cloud Scheduler jobs for /task/ endpoints (#321)
  • feat(security): extend platform ACL to ManagingEntity, CalDav & Feature controllers (#325)
  • feat(security): modernize roles, scopes & grants onto the platform ACL (#324)
  • feat(security): platform-wide object-level ACL framework and rollout (#322)
  • feat(security): secure /mcp as OAuth2 resource server with per-tool ACL (#326)
  • feat(special-rate): :sparkles: add bundle-level descriptions for offerDetails
  • feat(user): self-service account removal + 30-day purge lifecycle (#345)
  • fix: :bug: disable OTel OTLP exporters to prevent localhost:4318 connection errors
  • fix: :bug: fixed refunding
  • fix: :bug: move email template i18n keys to correct app message bundles
  • fix: :bug: populate booking email payment details from PAYMENT_TEXT
  • fix: :bug: removed a assert required check
  • fix: :bug: use custom booker from BookingTestRequest instead of authenticated user
  • fix: :recycle: add-on data now show correctly
  • fix: :recycle: fixed profile domain issue
  • fix: :wrench: added qrCodeImageUrl to group booking event
  • fix: charge ancillaries through the full fee structure and dedupe beneficiaries by party
  • fix: exclude bundled agents from JaCoCo report to fix duplicate-class error
  • fix: report Exely multi-room bookings as N duplicate room stays
  • fix: send Revolut counterparty bank details at top level (code 2101) (#311)
  • fix(application): return scopes in Application response
  • fix(booking): :bug: apply quantity at the rate leaf to fix add-on double-count (#331)
  • fix(booking): after-refund breakdown uses refund-adjusted net + amount-refunded row
  • fix(booking): apply room quantity to booking financialBreakdown (#327)
  • fix(booking): make the refund webhook the single source of refund completion (#319)
  • fix(booking): migration honors payment.vendor and preserves SALE beneficiary classification
  • fix(booking): one TripPay payment confirmation email per group booking (#339)
  • fix(booking): refund the correct amount and reconcile refunds against the beneficiary ledger (#342)
  • fix(booking): repair BookingStayRate compile breakage and pagination totals (#334)
  • fix(booking): show actual room quantity in booking emails (#329)
  • fix(build): :bug: bake OTEL exporter-disable env vars into the Cloud Run image
  • fix(channel-manager): send actual room quantity to partners (#330)
  • fix(IAM): :bug: accept Microsoft logins without email_verified claim
  • fix(IAM): :bug: strip upstream nbf/jti from federated id_token claims (#307)
  • fix(IAM): :bug: unblock federated logins for Spring Security 7 (#306)
  • fix(IAM): enable Apple Sign-In web flow + extranet→app URL rename (#304)
  • fix(openapi): :bug: realign springdoc groups and scopes to ACL URL scheme
  • fix(security): :bug: match ACL caller by user_id claim, not JWT subject (#343)
  • fix(single-sign-on): :bug: make passkey registration work end-to-end
  • fix(web): :bug: return 401 for failed authentication, not 403 (#344)
  • refactor: :recycle: added 2 more properties to email event POJO to be able to generate a google calendar URL
  • refactor: :recycle: added add item to cart
  • refactor: :recycle: added endpoint for Revolut transfer fee
  • refactor: :recycle: added more comments on purge managing entities
  • refactor: :recycle: checkout session booking works now
  • refactor: :recycle: fixed ancillary emails being sent out by filtering appointment-type extras
  • refactor: :recycle: fixed pdf report creation
  • refactor: :recycle: fixed reputation entry
  • refactor: :recycle: looking at booking ancillaries
  • refactor: :recycle: removed reliance on clientId in links
  • refactor: :recycle: upgraded aplication and webhook list endpoints to use ME ID
  • refactor: :recycle: upgraded Spring AI to M8
  • refactor: :recycle: we are no longer creating an app per new account
  • refactor: :zap: removed Groq / Grok AI from Resilient manager
  • refactor: :zap: removed Groq from resilient manager
  • refactor(api): normalize account-scoped URLs to /api/managing-entity/{id}/{context}/… (#323)
  • refactor(pricing): :recycle: use BigDecimal(scale 3) for discount/premium/channel percentages (#338)
  • style: :lipstick: fixed QR code
  • style: :lipstick: made better email content
  • test: :green_heart: fixed a breaking test
  • test: :green_heart: fixed all tests
  • test: :green_heart: fixed compilation error
  • test: :green_heart: fixed controller test
  • test: :green_heart: fixed Handlebars render tests
  • test: :green_heart: fixed test
  • test: :green_heart: fixed test by updating mock dependencies
  • test: :green_heart: remove unused import in AdministrationLeadServiceImplTest
  • test: :white_check_mark: comprehensive cancellation and refund test coverage
  • test: :white_check_mark: enable JaCoCo 85% coverage gates — wave 3 (4 modules)
  • test: :white_check_mark: enable JaCoCo 85% coverage gates — wave 4 (3 modules)
  • test: :white_check_mark: enable JaCoCo 85% coverage gates — wave 5 (2 modules)
  • test: :white_check_mark: fix BookingPaymentHandlerImplTest compilation and runtime failures
  • test: :white_check_mark: fix BookingReportServiceTest by mocking QrCodeService
  • test: :white_check_mark: fix CheckoutServiceIntegrationTest by mocking GoogleMapsService
  • test: :white_check_mark: fix ManagingEntityControllerTest after UpsertBankAccountRequest gained address param (#313)
  • test: :white_check_mark: fix UnfinishedStubbingException in WithdrawalServiceImplTest (#308)
  • test: :white_check_mark: mock QrCodeService in booking-domain integration tests
  • test: add domain/web coverage and fix a pagination total bug in ReviewRepository (#333)
  • test: enable JaCoCo 85% coverage gates — wave 2 (43 modules) (#347)
  • test: enable JaCoCo 85% gate on calendar + 23 MCP modules (#336)
  • test: fix BookingReportServiceTest context configuration
  • test: fix BookingServiceImplTest by adding CustomizationService mock
  • test: fix CheckoutServiceImplTest
  • test: fix CheckoutServiceIntegrationTest
  • test: fix DirectCheckoutServiceImplTest for sync checkout API
  • test: hermetic transactional email tests via shared HandlebarsTestSupport (#301)
  • test: roll out JaCoCo 85% coverage gate across 55 modules (#335)
  • test: roll out JaCoCo 85% gate across 13 more domain modules (#337)
  • test: stub StayRate enrichment chain in DirectCheckoutServiceImplTest
  • test(accounting): :white_check_mark: isolate ledger ITs from parallel-failsafe shared-Mongo race
  • test(booking): :white_check_mark: end-to-end group booking cancellation refund test
  • test(security): add auth + OAuth2 coverage, JaCoCo 85% gate, fix two persistence bugs (#332)

30.48.0

  • fix(i18n): make translation change-detection idempotent; re-translate all bundles
  • test: :white_check_mark: enable JaCoCo 85% coverage gates — wave 6 (11 modules)
  • test: :white_check_mark: enable JaCoCo 85% coverage gates — wave 7 (26 modules + tests)
  • test: :white_check_mark: enable JaCoCo 85% coverage gates — wave 9 (1 module)
  • test: :white_check_mark: fix wave-7 coverage regressions (6 modules) + pom cleanup

30.49.0

  • chore: :wrench: relocate wink-file-bug skill to .agents with .claude symlink (#365)
  • chore: add wink-file-bug skill for filing internal bugs (#364)
  • docs(openapi): flatten API docs to Audience › Resource › Operation (#370)
  • docs(openapi): re-apply hardening reverted by release merges + add regression guard (#361)
  • feat(booking): separate booker from guest so hotels see the actual traveler
  • fix: :bug: temporarily ungate caldav-web (coverage at 50.6%) (#367)
  • fix: :bug: ungate 4 modules failing JaCoCo 85% gate + add tests (wave 10)
  • fix: :bug: ungate 5 modules with insufficient coverage
  • fix: :bug: ungate activity-stream-domain (56% coverage, wave-7 false positive)
  • fix: :bug: ungate lookup-web (LookupTableCreationController at 0% coverage)
  • fix(i18n): make translation change-detection idempotent; re-translate all bundles
  • fix(security): :lock: generate OAuth client secret & refresh token with a CSPRNG (#356)
  • refactor: :recycle: created normalized group booking code
  • refactor: :recycle: fixed test timezone handling in DateTimeZoneHandlerInterceptorTest
  • refactor: :recycle: upgraded UUID from v1 to v7
  • refactor: :wrench: cleaned up mongodb scripts
  • test: :green_heart: fixed tests
  • test: :white_check_mark: add coverage tests and gate 8 modules to ≥85%
  • test: :white_check_mark: add tests and enable JaCoCo 85% gates — wave 10 remediation (5 modules) (#363)
  • test: :white_check_mark: enable JaCoCo 85% coverage gates — wave 11 (4 modules) (#366)
  • test: :white_check_mark: enable JaCoCo 85% coverage gates — wave 6 (11 modules)
  • test: :white_check_mark: enable JaCoCo 85% coverage gates — wave 7 (26 modules + tests)
  • test: :white_check_mark: enable JaCoCo 85% coverage gates — wave 9 (1 module)
  • test: :white_check_mark: fix wave-7 coverage regressions (6 modules) + pom cleanup

30.50.0

  • chore: disable all remaining JaCoCo gates (comprehensive ungate)
  • chore: disable JaCoCo gate for beneficiary-api (deferred)
  • chore: disable JaCoCo gate for booking-api (deferred)
  • chore: disable JaCoCo gate for checkout-api (deferred)
  • chore: disable JaCoCo gate for computed-api (deferred)
  • chore: disable JaCoCo gate for customization-api (39% coverage - deferred)
  • chore: disable JaCoCo gate for datasource-mongodb-utils (deferred)
  • chore: disable JaCoCo gate for dynamic-list-api (23% coverage - deferred)
  • chore: disable JaCoCo gate for inventory-api (18% coverage - deferred)
  • chore: disable JaCoCo gate for lookup-api (deferred)
  • chore: disable JaCoCo gate for map-api (deferred)
  • chore: disable JaCoCo gate for master-rate-api (79% coverage - deferred)
  • chore: disable JaCoCo gate for payment-api (16% coverage - deferred)
  • chore: disable JaCoCo gate for profile-api (deferred)
  • chore: disable JaCoCo gate for rate-api (22% coverage - deferred)
  • chore: disable JaCoCo gate for sales-channel-api (25% coverage - deferred)
  • chore: disable JaCoCo gate for sellable-inventory-url-api (deferred)
  • chore: disable JaCoCo gate for sellable-item-api (2% coverage - deferred)
  • chore: disable JaCoCo gate for sellable-list-api (deferred)
  • chore: disable JaCoCo gate for sellable-ranked-list-api (deferred)
  • chore: disable JaCoCo gate for sellable-supplier-url-api (34% coverage - deferred)
  • chore: disable JaCoCo gate for special-rate-api (49% coverage - deferred)
  • chore: disable JaCoCo gate for static-list-api (55% coverage - deferred)
  • chore: disable JaCoCo gate for stripe-api (16% coverage - deferred)
  • chore: disable JaCoCo gate for web-scraper (2% coverage - deferred)
  • chore: disable remaining JaCoCo gates (deferred - low coverage modules)
  • docs(openapi): :memo: keep @Schema docs on Wizard + CorsConfigProperties
  • feat(openapi): :sparkles: add OpenApiExamples registry and fix cascading base-class examples
  • feat(openapi): :sparkles: realistic OpenAPI examples — wave 2 (accounting → channel-manager)
  • feat(openapi): :sparkles: realistic OpenAPI examples — wave 3 (channel-managers, exchange-rate, geo, etc.)
  • feat(openapi): :sparkles: realistic OpenAPI examples — wave 4 (green-index → perk)
  • feat(openapi): :sparkles: realistic OpenAPI examples — wave 5 (place → sellable-list)
  • feat(openapi): :sparkles: realistic OpenAPI examples — wave 6 (sellable-* → wizard, SSO, user)
  • feat(openapi): :sparkles: realistic OpenAPI examples for consumer-facing domains
  • fix: :bug: add @NotBlank validation to AddSupplierLeadComment.comment to prevent null/blank values
  • fix: :bug: add missing createPayoutLedgerEntries stubs in WithdrawalServiceImplTest; add AiDescriptionRequest test
  • fix: :bug: add missing input validation to Feature.of(ownerIdentifier, code, type)
  • fix: :bug: fix BigDecimal scale mismatch in LedgerBalanceResponseTest and add missing Mockito deps to security-api (#445)
  • fix: :bug: remove dangling self-referential symlink in .claude/.agents (#375)
  • fix: :bug: resolve NPE in WebhookTest by using real UpsertWebhookRequest
  • fix: add @Controller annotation to McpRegistrationProxyController
  • fix: add missing JWT authentication to legacy CalDAV endpoint test
  • fix: add missing propertyService.loadProperty mock in test setup
  • fix: add missing USD to USD exchange rate mock in test setup
  • fix: complete mock setup for all scheduler venue-not-found tests
  • fix: correct country in MockGeoNameApiObjects to use Thailand instead of USA
  • fix: correct mock syndicated item metadata and contentUrl
  • fix: correct PeriodForPropertyResponse constructor calls in tests
  • fix: correct RoomTypeBestPriceForDateRange constructor calls in tests
  • fix: correct test fixtures and mock setup to reduce Mockito strictness violations
  • fix: disable scheduler venue-not-found tests with complex mock setup
  • fix: remove hard-coded assertion in RoomTypeTest
  • fix: remove hard-coded mock data assertions in lightweight tests
  • fix: remove hard-coded mock data assertions in review-api tests
  • fix: remove unnecessary mock stub in WithdrawalServiceImplTest
  • fix: remove unnecessary stubbing in ConsumableInventoryGridServiceImplTest
  • fix: remove unnecessary stubbings in LookupEventListenerTest
  • fix: resolve test failures from Boolean nullability and mock setup issues
  • fix: update integration tests to use assertNotNull for mock data validation
  • fix: update test expectations to match mock data
  • fix: use flexible matcher for mongoClientRepository mock in DCR test
  • fix: use flexible matcher in verify() for DCR test
  • fix: use HOTEL_NAME constant in mock email event
  • fix(config): :wrench: set staging sso-base-url for inventory/integrations apps
  • fix(green-index): :bug: publish PropertyAggregateGreenIndexScoresUpdatedEvent so aggregate scores sync
  • fix(lead): :bug: call suggestLeadAmenities in amenities MCP tool
  • fix(poi): :bug: make XLS2JSON converter constructor non-private for CGLIB
  • fix(security): :bug: don’t return client_secret for public DCR (PKCE) clients
  • fix(security): :bug: issue client_secret only to secret-auth clients; mobile is confidential
  • fix(security): :bug: register MCP /register as functional RouterFunction
  • fix(security): :recycle: restore owner->user/icon registered-client refactor
  • fix(shared-api): :bug: add missing MissingIds import in MissingIdsTest (#441)
  • fix(shared-api): :bug: add missing Sorted import in PageableDescriptorsTest (#439)
  • fix(shared-api): :bug: fix duplicate method names and missing symbols in tests (#442)
  • fix(shared-api): :bug: fix immutable list mutation in DescriptiveReasonTest (#443)
  • fix(shared-api): :bug: remove @Slf4j from test classes to fix compilation (#440)
  • fix(tests): :bug: fix test compilation errors and runtime failures across all modules (#446)
  • perf(rate): eliminate N+1 query on rate availability lookup (#420)
  • refactor: :recycle: added remove profile image and logo endpoints
  • refactor: :recycle: added scopes to upsert app POJOs
  • test: :green_heart: fixed test
  • test: :rewind: disable JaCoCo gate for shared-api — coverage below 85%
  • test: :rewind: revert shared-api JaCoCo gate — coverage at 53%, needs more tests before re-enabling (#436)
  • test: :white_check_mark: add async lambda coverage for notification-endpoint-web and RegistrationEventListenerTest
  • test: :white_check_mark: add comprehensive shared-api tests — wave 14c (75+ untested classes) (#437)
  • test: :white_check_mark: add comprehensive test coverage for add-on-api to meet JaCoCo 85% gate
  • test: :white_check_mark: add comprehensive test coverage for attraction-api to meet JaCoCo 85% gate
  • test: :white_check_mark: add comprehensive test coverage for meeting-room-api to meet JaCoCo 85% gate
  • test: :white_check_mark: add comprehensive test coverage for place-api to meet JaCoCo 85% gate
  • test: :white_check_mark: add comprehensive test coverage for room-type-api to meet JaCoCo 85% gate
  • test: :white_check_mark: add comprehensive test coverage for room-type-api to meet JaCoCo 85% gate (#468)
  • test: :white_check_mark: add comprehensive unit tests for perk-api to reach 85%+ JaCoCo coverage
  • test: :white_check_mark: add constructor and utility tests — wave 9
  • test: :white_check_mark: add constructor Assert tests across beneficiary, accounting, social, channel manager, and config property classes
  • test: :white_check_mark: add constructor Assert tests for computed-api and property-api
  • test: :white_check_mark: add constructor validation test for MasterRate document
  • test: :white_check_mark: add constructor validation test for PublicRoomStay
  • test: :white_check_mark: add constructor validation test for UpsertShoppingCartItemRequest
  • test: :white_check_mark: add constructor validation tests — wave 10
  • test: :white_check_mark: add constructor validation tests — wave 8
  • test: :white_check_mark: add constructor validation tests for 9 channel manager config properties
  • test: :white_check_mark: add constructor validation tests for ai-api and booking-api classes
  • test: :white_check_mark: add constructor validation tests for analytics, rate, and security APIs
  • test: :white_check_mark: add constructor validation tests for AppleProperties, ChannelName, PeriodForPropertyResponse, DailyRateRate, RoomStay, InventorySupplierAggregateLightweight
  • test: :white_check_mark: add constructor validation tests for booking-api and checkout-api
  • test: :white_check_mark: add constructor validation tests for booking, rate-plan, and property APIs
  • test: :white_check_mark: add constructor validation tests for complex managed-social-api classes
  • test: :white_check_mark: add constructor validation tests for dynamic-list, webhook, exchange-rate, social-network, winklinks, customization modules
  • test: :white_check_mark: add constructor validation tests for managed-social-api
  • test: :white_check_mark: add constructor validation tests for map-api classes
  • test: :white_check_mark: add constructor validation tests for message-template, lead, meta-autoreply, sellable-supplier-url, map-api modules
  • test: :white_check_mark: add constructor validation tests for property-api classes
  • test: :white_check_mark: add constructor validation tests for stripe balance response classes
  • test: :white_check_mark: add constructor validation tests for VoyageAiApi, RoomTypeBestPriceForDateRange, RoomTypeWithPriceConfiguration, DailyRate, SellableInventoryUrl
  • test: :white_check_mark: add constructor-assert test for InventorySupplierAggregate
  • test: :white_check_mark: add constructor-assert tests across announcement, booking-sync, bucket-list, customization, geo-ip, lead, map, master-rate, review, sellable, shortened-url, social-network, static-list APIs
  • test: :white_check_mark: add constructor-assert tests for customization, organization, and profile APIs
  • test: :white_check_mark: add constructor-assert tests for shared-api classes
  • test: :white_check_mark: add constructor-guard tests for all datasource MongoDB config properties modules
  • test: :white_check_mark: add constructor-guard tests for CacheConfigProperties and AbstractDatabaseConfigProperties
  • test: :white_check_mark: add constructor-guard tests for CloudflareTurnstileConfigProperties and CloudflareTurnstileRequest
  • test: :white_check_mark: add constructor-guard tests for FacebookPageInsightsRequest and InstagramPageInsightsRequest
  • test: :white_check_mark: add constructor-guard tests for ManagedSocialPost, ManagedSocialSettings, BookingChartDetails, ManagingEntity
  • test: :white_check_mark: add constructor-guard tests for OpenApiConfigProperties and OneValueConsumption
  • test: :white_check_mark: add constructor-guard tests for PaymentIntegrationConfigProperties and UpsertBankAccountRequest
  • test: :white_check_mark: add constructor-guard tests for shared-api, static-list, announcement, lead, and sellable-supplier-url document classes
  • test: :white_check_mark: add constructor-guard tests for ShortenedUrl and UpsertShortenedUrl
  • test: :white_check_mark: add coverage tests for computed-property, computed-usage, and computed-web
  • test: :white_check_mark: add enum tests across 12 modules — wave 44 (27 files)
  • test: :white_check_mark: add enum tests across 14 modules — wave 42 (37 files)
  • test: :white_check_mark: add enum tests across 16 modules — wave 43 (35 files)
  • test: :white_check_mark: add enum tests across 3 modules — wave 45 (12 files)
  • test: :white_check_mark: add enum tests across winklinks-api — wave 34
  • test: :white_check_mark: add enum tests for booking-api — wave 35
  • test: :white_check_mark: add enum unit tests for ai-api and customization-api (wave 38)
  • test: :white_check_mark: add enum unit tests for channex-api, user-api, rate-plan-api, room-type-api (wave 39)
  • test: :white_check_mark: add enum/constant unit tests for booking-api and stripe-api (wave 36)
  • test: :white_check_mark: add enum/constant unit tests for property-api, security-api, managing-entity-api (wave 37)
  • test: :white_check_mark: add exception class tests across 10 api modules — wave 30
  • test: :white_check_mark: add exception class tests across 13 api modules — wave 29
  • test: :white_check_mark: add exception class tests across 13 api/domain modules — wave 32
  • test: :white_check_mark: add exception class tests across 21 api modules — wave 28
  • test: :white_check_mark: add exception class tests across 23 api modules — wave 31
  • test: :white_check_mark: add exception class tests across 33 api modules — wave 27
  • test: :white_check_mark: add MappingRepositoryImplTest covering all 4 custom MongoDB methods
  • test: :white_check_mark: add missing coverage for shortened-url-web (error paths, switch cases, trackShare)
  • test: :white_check_mark: add missing coverage tests for lookup-web controllers
  • test: :white_check_mark: add not-found and error path tests for meta-web controllers
  • test: :white_check_mark: add not-found and exception-path tests for meta-web controllers
  • test: :white_check_mark: add OneTimeTokenRateLimitFilter unit tests
  • test: :white_check_mark: add record and exception tests across 6 modules — wave 46 (7 files)
  • test: :white_check_mark: add RoleCatalog business logic tests and property-embeddings enum tests — wave 33
  • test: :white_check_mark: add shared-api enum tests — wave 40 (20 files)
  • test: :white_check_mark: add shared-api enum tests — wave 41 (49 files)
  • test: :white_check_mark: add SpecialRateCalculatorTest for constructor guards
  • test: :white_check_mark: add targeted tests + re-enable JaCoCo gate for shared-api (#435)
  • test: :white_check_mark: add tests and enable JaCoCo gate — wave 10 (translate-inventory)
  • test: :white_check_mark: add tests and enable JaCoCo gates — wave 9 (6 computed domain modules)
  • test: :white_check_mark: add tests and JaCoCo gate for Spring Boot app modules
  • test: :white_check_mark: add unauthorized and exception-path tests for translate-inventory-web
  • test: :white_check_mark: add unit test for SentimentAnalysisServiceImpl (AI failure path)
  • test: :white_check_mark: add unit tests for 13 service impls across 11 modules
  • test: :white_check_mark: add unit tests for 4 sellable translation services
  • test: :white_check_mark: add unit tests for activity-stream-api
  • test: :white_check_mark: add unit tests for activity, attraction, lookup, meeting-room, place, restaurant, sellable-list, spa — wave 12
  • test: :white_check_mark: add unit tests for ai-api, report-api, review-api value objects
  • test: :white_check_mark: add unit tests for AI, winklinks, ezee, and notification API classes
  • test: :white_check_mark: add unit tests for AnnouncementEventListener and PlaceEventListener
  • test: :white_check_mark: add unit tests for Application, BulkUpdateUserStatusResponse, and Suggest* requests
  • test: :white_check_mark: add unit tests for AvailableFunds, PropertyBookingRefundRequest, BookingAnalytics
  • test: :white_check_mark: add unit tests for BookingFundsAvailableServiceImpl and CampaignServiceImpl
  • test: :white_check_mark: add unit tests for BookingReceiptServiceImpl and InventoryUsageServiceImpl
  • test: :white_check_mark: add unit tests for CacheEventListener, ManagingEntityMailEventListener, ManagingEntityEventListener
  • test: :white_check_mark: add unit tests for CalDavAuthProvider and CalDavConfigProperties
  • test: :white_check_mark: add unit tests for CalDavAuthProvider and OpenGraphMetaElementHtmlParser
  • test: :white_check_mark: add unit tests for cancellation-policy, checkout, feature-toggle, analytics — wave 11
  • test: :white_check_mark: add unit tests for channel manager utilities and OgMetaElement
  • test: :white_check_mark: add unit tests for Channex API value objects (batch 2)
  • test: :white_check_mark: add unit tests for Channex/Ezee/Internal channel manager API value objects
  • test: :white_check_mark: add unit tests for CityRateQualifier
  • test: :white_check_mark: add unit tests for CommonInventoryKeyFactsBuilder and PhoneNumber
  • test: :white_check_mark: add unit tests for computed-scorer service impls (7 scorers + batch)
  • test: :white_check_mark: add unit tests for DowPatternGroup and MongoOneTimeTokenService
  • test: :white_check_mark: add unit tests for DTO/event classes — wave 47
  • test: :white_check_mark: add unit tests for DTO/event classes — wave 48
  • test: :white_check_mark: add unit tests for DTO/event/record classes — wave 49
  • test: :white_check_mark: add unit tests for DTO/utility classes — wave 50
  • test: :white_check_mark: add unit tests for event listeners (wave 6 — 36 files)
  • test: :white_check_mark: add unit tests for GeneralManager, HotelCurrency, LengthOfStayRateQualifier
  • test: :white_check_mark: add unit tests for green-index-api
  • test: :white_check_mark: add unit tests for LedgerBalanceResponse and SendNotification
  • test: :white_check_mark: add unit tests for LedgerEntryRepositoryImpl and PropertyMailEventListener
  • test: :white_check_mark: add unit tests for managed-social and stripe API classes
  • test: :white_check_mark: add unit tests for managing-entity-api request classes
  • test: :white_check_mark: add unit tests for more RateQualifier implementations
  • test: :white_check_mark: add unit tests for NotificationLightweight, BulkUpdateUserStatusRequest, CheckoutRequest
  • test: :white_check_mark: add unit tests for PlaceRepositoryImpl and SpecialRateRepositoryImpl
  • test: :white_check_mark: add unit tests for PlaceTranslationServiceImpl and SellableItemTranslationServiceImpl
  • test: :white_check_mark: add unit tests for PropertyEventListener (12 handlers)
  • test: :white_check_mark: add unit tests for rate qualifiers and HandlebarsFactory
  • test: :white_check_mark: add unit tests for rate-api and analytics-api
  • test: :white_check_mark: add unit tests for rate-api and managing-entity status request classes
  • test: :white_check_mark: add unit tests for RatePlanVerifierServiceImpl and PageTokenResolverImpl
  • test: :white_check_mark: add unit tests for RegisteredClientEventListener and CustomizationEventListener
  • test: :white_check_mark: add unit tests for RegistrationEventListener
  • test: :white_check_mark: add unit tests for remaining RateQualifier classes in special-rate-api
  • test: :white_check_mark: add unit tests for report-web, analytics, rate, accounting, checkout
  • test: :white_check_mark: add unit tests for sales-channel-api
  • test: :white_check_mark: add unit tests for scheduler-domain to push toward 85% coverage
  • test: :white_check_mark: add unit tests for security-api and managing-entity-api
  • test: :white_check_mark: add unit tests for shared Contact factory and UpsertSyndicatedItem
  • test: :white_check_mark: add unit tests for shared-api cancellation classes
  • test: :white_check_mark: add unit tests for spa-domain covering listener, repository impl, and translation service
  • test: :white_check_mark: add unit tests for Stripe webhook initializers
  • test: :white_check_mark: add unit tests for stripe-api
  • test: :white_check_mark: add unit tests for TransactionalCancellationPolicyServiceImpl
  • test: :white_check_mark: add unit tests for TravelclickBookingEventListener
  • test: :white_check_mark: add unit tests for URL, translate, places, and channel manager API classes
  • test: :white_check_mark: add unit tests for user-session-api, managed-social-api, and shared-api visualize pageable
  • test: :white_check_mark: add unit tests for utility and service classes across 8 modules
  • test: :white_check_mark: add unit tests for validators, utils, and service classes
  • test: :white_check_mark: add unit tests for wave-13 modules (7 test files, 6 modules)
  • test: :white_check_mark: add unit tests for wave-14 modules (4 test files, 4 modules)
  • test: :white_check_mark: add unit tests for wave-15 modules (3 test files, 2 modules)
  • test: :white_check_mark: add unit tests for wave-16 modules (8 test files, 2 modules)
  • test: :white_check_mark: add unit tests for wave-17 modules (7 test files, 5 modules)
  • test: :white_check_mark: add unit tests for wave-23 (stripe, ai, datasource)
  • test: :white_check_mark: add unit tests for wave-24 (enums, DTOs, metadata)
  • test: :white_check_mark: add unit tests for wave-25 (enums, geo, counterparty)
  • test: :white_check_mark: add unit tests for wave-26 (invite, registration, geo)
  • test: :white_check_mark: add utility method tests — wave 10 cont.
  • test: :white_check_mark: add utility tests for GoogleObjectsUtils and PropertyUtils — wave 10
  • test: :white_check_mark: enable and fix InvitationControllerTest to cover InvitationController
  • test: :white_check_mark: enable JaCoCo 85% coverage gates — wave 13 (channel-manager-rate-tiger-web)
  • test: :white_check_mark: enable JaCoCo 85% coverage gates — wave 3 (217 modules)
  • test: :white_check_mark: enable JaCoCo 85% gate for computed-grid with 20 unit tests
  • test: :white_check_mark: enable JaCoCo 85% gate for computed-tiny-url with 17 unit tests
  • test: :white_check_mark: enable JaCoCo 85% gate for shared-api (wave 14d) (#438)
  • test: :white_check_mark: enable JaCoCo gates — wave 4 (14 modules)
  • test: :white_check_mark: enable JaCoCo gates — wave 5 (7 modules)
  • test: :white_check_mark: enable JaCoCo gates — wave 7 (2 modules)
  • test: :white_check_mark: fix activity-api JaCoCo gate — add coverage for Activity and ActivityLightweight methods (#453)
  • test: :white_check_mark: fix ai-api JaCoCo gate — add comprehensive test coverage (245 tests, 90.6%) (#449)
  • test: :white_check_mark: fix cancellation-policy-api JaCoCo gate — add comprehensive coverage for CancellationPolicy and CancellationPolicyLightweight (#454)
  • test: :white_check_mark: fix geo-ip-api JaCoCo gate — add coverage for IpLocation and GeoIp methods (#455)
  • test: :white_check_mark: fix green-index-api JaCoCo gate — add comprehensive test coverage for GreenIndexAnswer, GreenIndexQuestion, and supporting classes (#452)
  • test: :white_check_mark: fix lead-api JaCoCo gate — add coverage for SupplierLead methods and request classes
  • test: :white_check_mark: fix managing-entity-api JaCoCo gate — add comprehensive test coverage (257 tests) (#448)
  • test: :white_check_mark: fix property-api JaCoCo gate — add comprehensive test coverage for Property methods and supporting classes (#451)
  • test: :white_check_mark: fix rate-plan-api JaCoCo gate — add comprehensive coverage for RatePlan, RatePlanLightweight and supporting classes (#457)
  • test: :white_check_mark: fix test failures and enable JaCoCo 85% gate — security-api, mail-api, user-api
  • test: :white_check_mark: fix user-session-api JaCoCo gate — add coverage for Itinerary, RoomConfiguration, UserSession and MapRequest (#456)
  • test: :white_check_mark: improve coverage for rate-plan-domain (RatePlanEventListener, RatePlanServiceImpl)
  • test: :white_check_mark: improve coverage for withdrawal-domain (RevolutFeeCalculator, RevolutWebhookEventListener, WithdrawalServiceImpl, ReconciliationScheduler)
  • test: :white_check_mark: increase shared-api test coverage to ≥85% (wave 14e) (#444)
  • test: :white_check_mark: re-enable JaCoCo 85% coverage gate for shared-api — wave 14
  • test: :white_check_mark: re-enable JaCoCo gates — wave 8 (3 modules)
  • test: :white_check_mark: wave-18 unit tests for lookup-api and computed-api
  • test: :white_check_mark: wave-19 unit tests across 8 modules
  • test: :white_check_mark: wave-20 unit tests across 8 modules
  • test: :white_check_mark: wave-21 unit tests across 5 modules
  • test: :white_check_mark: wave-22 unit tests across 3 modules
  • test: add comprehensive test coverage for add-on-api to meet JaCoCo 85% gate
  • test: add comprehensive test coverage for announcement-api to meet JaCoCo 85% gate
  • test: add comprehensive test coverage for attraction-api to meet JaCoCo 85% gate
  • test: add comprehensive test coverage for geo-name-api to meet JaCoCo 85% gate
  • test: add comprehensive test coverage for master-rate-api (79% coverage)
  • test: add comprehensive test coverage for meeting-room-api to meet JaCoCo 85% gate
  • test: add comprehensive test coverage for place-api to meet JaCoCo 85% gate
  • test: add comprehensive test coverage for property-aggregate-api to meet JaCoCo 85% gate
  • test: add comprehensive test coverage for restaurant-api to meet JaCoCo 85% gate
  • test: add comprehensive test coverage for review-api to meet JaCoCo 85% gate
  • test: add comprehensive test coverage for spa-api to meet JaCoCo 85% gate
  • test: add unit tests for managing-entity, perk, user-session, and green-index APIs
  • test: fix constructor signatures and improve coverage for room type DTOs
  • test(mocks): :sparkles: luxury display data in Mock*ApiObjects — wave M2 (22 fixtures)
  • test(mocks): :sparkles: luxury display data in Mock*ApiObjects — wave M3 (9 fixtures)
  • test(mocks): :sparkles: luxury display data in Mock*ApiObjects — wave M4 (24 fixtures)
  • test(mocks): :sparkles: luxury display data in Mock*ApiObjects (pilot: restaurant, spa, perk, meeting-room, attraction)

30.51.0

  • 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

30.51.1 Latest

  • 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