Ga naar inhoud

All versions since 32.1.3

32.1.3

  • fix(http-client): :bug: stop basic-auth credentials leaking between webhook targets
  • test(http-client): :white_check_mark: pin that Boot’s RestClient.Builder arrives converter-loaded

32.1.4

  • docs: :memo: updated PageResponse to show real content

32.1.5

  • refactor: :recycle: made guest user available on public booking

33.0.0

  • chore(inventory): :wrench: add travel-inventory minRate/baseRate/address/contact backfill
  • feat(grpc): :sparkles: add Spring gRPC foundation as a shared module family (#660)
  • fix(actuator): :bug: stop replacing the JSON converter’s default media types (#663)
  • fix(booking): :bug: persist roomStay.guestUser at write time instead of recomputing it
  • fix(booking): :bug: share one outcome budget across a group refund
  • fix(booking): record an obligation when a Stripe refund fails (#647)
  • fix(ci): :bug: make the deploy diagnose itself — real registry errors, sso first, and a freshness gate that works (#655)
  • fix(ci): :bug: read the ADC log line from jsonPayload, not just textPayload (#658)
  • fix(ci): :bug: skip the ADC gate for apps with no Google client, and stop lying about what deployed (#657)
  • fix(ci): :wrench: stamp the real build time into the app images (#656)
  • fix(ci): hand the pushed image tag from CI to CD, and reject stale local images (#654)
  • fix(computed): :bug: name the actual reason a property is unavailable
  • fix(google): keyless ADC for all Google clients, plus the module-boundary migration (#650)
  • fix(sellable): delete links on managing-entity removal + stop discarding status in Lightweight.from() (#653)
  • refactor: :perf: removed the biggest reason for Sentry errors
  • refactor: :zap: removed spring-boot-starter-hateoas
  • refactor(channel-manager): :fire: finish removing the legacy /api/services/channelmanager API (#659)

33.0.1

  • fix: :arrow_up: bump handlebars to 4.5.2 (GHSA-r4gv-qr8j-p3pg path traversal)
  • fix: :bug: fail fast on missing SENTRY_AUTH_TOKEN, harden GeoIP update
  • test(google-hotel): :white_check_mark: fix stale test after Sentry-noise refactor

34.0.0

  • feat(open-api): document the gRPC surface by generating OpenAPI from protobuf descriptors (#669)
  • feat(partner): first business gRPC endpoint — destination autocomplete + lookup contract trim (#666)
  • feat(partner): migrate GetLookup and establish the Stripe-style expand convention (#668)
  • feat(property-aggregate): collapse 8 per-dimension scores into one demand score (#667)
  • perf(inventory): harden the inventory/period endpoint
  • perf(inventory): make the supplier-aggregate city search index-usable (#670)
  • perf(rate): bulk portal edits, bounded retries, processedEvents guard, index audit (#672)
  • perf(rate): flatten the rooted-$or daily-rate query into one cacheable shape (#671)

34.1.0

  • feat(monitoring): :chart_with_upwards_trend: Micrometer -> Google Cloud Monitoring export (allow-listed) (#679)
  • feat(pricing-view): nightly-grain pricing read model + maintenance pipeline (#675)
  • feat(pricing-view): view-backed pricing gateway with shadow mode (#677)
  • fix(pricing-view): rewrite staleness gate as digest-drift convergence probe (#680)
  • fix(scripts): repair legacy VariableCharge percent scale + negative occupancy (#678)
  • perf(pricing): batch pricing N+1s, cache hot lookups, response-cache /inventory/period (#674)
  • refactor(computed): PricingDataGateway seam — split pricing data fetch from pricing math (#676)

34.2.0

  • feat(payment): :sparkles: process stripe booking webhook synchronously and fail loud so stripe retries (#681)
  • feat(pricing-view): :chart_with_upwards_trend: emit shadow denominators and count distinct drifting hotels (#683)
  • fix(pricing-view): :building_construction: move @Document PricingView out of the api layer (#682)

34.2.1

  • fix(build): :wrench: scope MaxDirectMemorySize per app — it is taken off the heap (#685)
  • fix(pricing-view): :bug: keep the full master-rate set on the availableOnly=false path (#684)

34.2.2

  • fix(pricing-view): :bug: fall back to the room-type base-rate currency instead of skipping the hotel (#687)

34.2.3

  • fix(channel-manager): :bug: stamp the property currency on eZee rate pushes (#689)
  • fix(rate): :bug: floor quantity at 0 and repair the 30 negative rows (#690)
  • fix(scripts): :bug: repair negative VariableCharge.fixedAmount, the last bad-data class (#692)
  • fix(web): :bug: stop reporting client errors to Sentry (#691)
  • fix(web): :bug: unwrap CompletionException so async 4xx are not served as 500 (#688)

34.3.0

  • docs: :wrench: added tech comments
  • docs(scripts): :memo: record partner media Metronome runs across all three accounts (#696)
  • feat(analytics): :sparkles: cache assembled chart responses in the consumer facades (#702)
  • feat(analytics): :sparkles: incremental rollup writer with watermarks, lease, and backfill endpoint (#700)
  • feat(analytics): :sparkles: rollup document schema for booking, link, and API usage time series (#699)
  • feat(analytics): :sparkles: route chart and usage reads to the rollup collections behind a flag (#701)
  • feat(media): env/account CDN folders, asset metadata standard, migration suite (#695)
  • feat(partner): partner media retrieval API with per-hotel metering (#693)
  • fix(analytics): :bug: accept the staging analytics database name in the rollup index script (#705)
  • fix(analytics): :bug: repair grouped-chart group keys, projection copy-paste bugs, and quadratic gap-fill (#698)
  • fix(booking): cap Stripe refunds at the PaymentIntent’s remaining refundable amount (#694)
  • fix(pricing-view): :bug: compare EFFECTIVE currency in the shadow snapshot diff (#697)
  • fix(scripts): :bug: eviction reminder printed prod for staging-target hotels (#706)
  • fix(scripts): :bug: harden media-migration suite from live-run findings (#704)

34.4.0

  • fix(subscription): :white_check_mark: pin PARTNER_MEDIA_API into the platform pricing rate card test

34.5.0

  • feat(checkout): :sparkles: guard checkout against charging more than quoted
  • fix(open-api): :white_check_mark: publish Media in the gRPC OpenAPI test so the 64-bit assertion runs

34.5.1

  • refactor(analytics): :truck: move rollup documents out of the api layer (#708)

35.0.0

  • chore: :fire: removed currences MCP tool
  • chore: :recycle: updated Siteminder password in prod
  • chore: :wrench: added booking sync entried for missing bookings
  • chore: :wrench: replaced with toList()
  • chore: :zap: removed HOTEL_GURU from HotelCodeContext enum
  • chore: :zap: removed HOTEL_LINK_SOLUTIONS from HotelCodeContext enum
  • chore(booking-sync): record the #733 async-wedge bookingSyncEntry recovery scripts (#796)
  • chore(booking): add repair script for misclassified fully-refunded bookings (#785)
  • chore(booking): add the read-only refund triage reports (#821)
  • chore(deps): :arrow_up: bump stripe.version to 33.3.0
  • chore(partner-app): enable DEBUG gRPC logging in the local dev profile (#797)
  • docs: :globe_with_meridians: updated translations
  • docs: :memo: PRD — split the Inventory sales-channel gate from its search projection
  • docs: :memo: updated PRD for improving fetching rates
  • docs: answer PRD Q10 — Option D needs a channel cache first, and should not go first (#744)
  • docs: answer PRD step 7.3 — the index reshaping, designed and measured (#748)
  • docs: answer PRD step C — the gate query, designed and measured (#747)
  • docs: record the deployed hostnames, and how to probe them without fooling yourself (#768)
  • docs: record the pre-D0 pricing baselines for prod and staging (#752)
  • docs: split the OpenAPI Bamboo artifact by the stage that actually produces it (#765)
  • feat(booking): deprecate the Travel Agent booking REST endpoints, and make partner-app able to start (#736)
  • feat(inventory): read rate modifiers from the cached sales channel (#745)
  • feat(mail): reliable email send with persisted-obligation retry outbox (#808)
  • feat(mcp): publish the 509-tool MCP surface as 16 job-shaped toolset endpoints (#775)
  • feat(openapi): disable the SpringDoc runtime endpoints in inventory-app and integrations-app (#767)
  • feat(openapi): generate integrations-app’s API reference at build time (#716)
  • feat(openapi): generate inventory-app’s ten API reference documents at build time (#717)
  • feat(partner): :sparkles: add the Inventory gRPC surface, prices-only (#712)
  • feat(partner): :sparkles: add the Search gRPC surface, move the billable account to metadata, and retire deprecated ScoreSort aliases (#710)
  • feat(partner): :sparkles: conditional content fetch via cache_token and NOT_MODIFIED (#728)
  • feat(partner): :sparkles: enable gRPC server reflection on local and staging (#726)
  • feat(partner): :sparkles: implement the Travel Agent Booking gRPC service (2/3)
  • feat(partner): :sparkles: price deterministically — remove IP and geo from the Partner pricing boundary (#753)
  • feat(partner): :sparkles: publish the Travel Agent Booking gRPC contract (1/3)
  • feat(partner): add account discovery to the gRPC partner API (#783)
  • feat(partner): collapse the rate-calendar cache key to seven bounded components (#754)
  • feat(partner): tune the gRPC transport, and prove the tuning actually applies (#757)
  • feat(pricing-view): :sparkles: serve /inventory, /inventory/list and /inventory/period from the read model (#770)
  • feat(reference): :sparkles: deprecate the reference-data listing endpoints (sunset 2026-10-01)
  • feat(scripts): capture the pre-D0 pricing baseline before the evidence is gone (#751)
  • feat(subscription): add admin-scoped PAYG subscription and usage endpoints
  • feat(webhook): outbox dispatcher, signed curated payloads and generated openapi webhooks reference (#786)
  • fix(async): :bug: bound and expose the shared @Async pool, the partner fan-out, and outbound HTTP
  • fix(booking): bound the whole-PaymentIntent refund guard to actual intent siblings (#809)
  • fix(booking): cancel booking on any successful refund, not only full ones (#805)
  • fix(booking): derive the refund axis from the cumulative ledger, not the last refund (#823)
  • fix(booking): honour the cancellation policy on hotel cancellations (#810)
  • fix(booking): refund the exact captured amount on full cancellations (#784)
  • fix(booking): split the refund axis out of bookingStatus (#811)
  • fix(build): purge jar-less build-cache entries and the remote cache to stop empty-jar installs (#787)
  • fix(cancellation-policy): :bug: rename NINENTY_PERCENT to NINETY_PERCENT (#806)
  • fix(ci): :bug: retry transient registry errors when pushing images
  • fix(computed-property): stop showHotel/images/videos/recognition from partitioning the inventory cache (#794)
  • fix(customization): itinerary advance-days ignored the visitor’s timezone (#177) (#801)
  • fix(IAB-1329): :bug: declare checked MailerSendException on shouldHandleNon2xxResponseCode (#825)
  • fix(inventory): :bug: fan inventory edits out atomically instead of per-document (#741)
  • fix(inventory): exclude DRAFT items from public reads, fix dead descriptions validation (#798)
  • fix(inventory): make address, location and multimedias optional so third parties can create inventory (#779)
  • fix(inventory): media pruning crash, hero images, commission rounding, and OpenAPI operation names (#790)
  • fix(itinerary): :bug: accept the pre-collapse items payload again, deprecated (#737)
  • fix(mcp): scope channel-manager to integrations, move room types to facilities (#776)
  • fix(mcp): thread the visitor ZoneId through the shortened-url MCP tool (#802)
  • fix(partner-grpc): round Search commission to 2 decimals (#793)
  • fix(partner-grpc): use snake_case in Accounts/DestinationLookup error messages (#795)
  • fix(partner): :bug: advance the property content version when content changes (#725)
  • fix(partner): :bug: bill partner search on hotels returned, not the one-unit floor (#709)
  • fix(partner): :bug: register the repositories the Content API made partner-app need (#727)
  • fix(partner): permit grpc.health.v1.Health/Check so the Cloud Run probe can reach it (#769)
  • fix(partner): take refund out of the booking status enum (#824)
  • fix(payment): stop shipping MockSpringBootApplication into deployed images (#764)
  • fix(property): aggregate properties by the status they actually have (#777)
  • fix(property): let the welcome-text editor remove a language, and require English (#780)
  • fix(special-rate): :bug: revive the timezone qualifier and wire up the geo-location one (#738)
  • perf(scripts): :zap: parallelize media migration and make interrupted rows resumable (#713)
  • perf(scripts): :zap: parallelize orphan quarantine (#722)
  • refactor: :recycle: UserLightweight now extends AbstractDto
  • refactor(computed): drop the dead geo parameters from the rate-calendar chain (#756)
  • refactor(inventory): consolidate the inventory write sites behind one seam (PRD step B) (#746)
  • refactor(inventory): remove the two unique indexes that enforce nothing (#749)
  • refactor(partner): :recycle: adopt a Partner protobuf naming convention and enforce it (#711)
  • refactor(pricing-view): :recycle: extract the public inventory-list fan-out and prime the read model (#771)
  • test(booking): pin roomStay date-range boundary behavior (#806) (#804)
  • test(inventory): cover SupplierAggregatePage’s empty-$count handling (#766)
  • test(openapi): close three holes in the spec-generation guards (#718)
  • test(property-aggregate): cover the listener failure paths and un-hide them from the gate (#763)

35.1.0

  • fix: :bug: guard commit-msg hook ANSI colors behind TTY check
  • fix(exchange-rate): :bug: add jakarta.servlet-api dep to exchange-rate-mcp (#828)
  • refactor: invert @Document entities out of published -api modules (91/108) (#829)

35.1.1

Housekeeping release — no user-facing changes.

35.2.0

  • fix(inventory-app): :bug: update ManagedTypeScannerTest counts after @Document eviction (#831)
  • fix(release): :bug: guard release-notes pipeline against an empty commit range (#830)

35.2.1

  • fix(cache): :bug: don’t let a slow L2 Redis at boot abort partner-app startup
  • fix(ci): :bug: retry Go net/http client timeouts in pushImages.bash

35.2.2

Housekeeping release — no user-facing changes.

35.3.0

  • docs(analytics): :memo: raw-retention TTL script and rollup deploy runbook
  • feat(booking-sync): :sparkles: detect paid bookings whose sync entry was never written (#834)
  • fix(metrics): :bug: export the executor meters #733 added but never shipped (#833)
  • fix(pricing-view): :bug: stop concurrent rebuilds silently truncating a hotel’s view

35.3.1

  • docs: :memo: buf and gh are provisioned on both Bamboo agents (#838)
  • fix(booking-sync): :bug: write the outbox row inline instead of on the shared @Async pool (#839)
  • fix(grpc-proto): :bug: make buf lint pass on the Partner proto release path (#837)

35.3.2

Housekeeping release — no user-facing changes.

35.3.3 Latest

  • fix(booking): :bug: only adjust local availability for direct inventory (#840)
  • fix(metrics): :bug: read the allow-list from the main properties, not the shadowed test copy