Alle Versionen seit 32.1.4
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
itemspayload 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
