• Joined on 2026-06-25
jtr pushed to main at hotel-manage-stack/rates 2026-07-06 08:57:20 +01:00
3b501f95c5 Parity: like-for-like tariff matching instead of headline vs lead-in
jtr pushed to main at hotel-manage-stack/rates 2026-07-06 08:41:59 +01:00
9545fd651d Parity markup and tolerance configurable as % or flat £
jtr pushed to main at hotel-manage-stack/rates 2026-07-06 08:30:43 +01:00
493e87b2dc Rate parity: expected-markup config, alert writer job, alerts UI + direct-link UI
jtr pushed to main at hotel-manage-stack/rates 2026-07-06 08:09:12 +01:00
029e3b379f Add benchmark & tier-offset configuration UI to Direct Rates Manage tab
jtr pushed to main at hotel-manage-stack/rates 2026-07-06 07:53:46 +01:00
46020576f8 Stats: fall back to all rate plans when no benchmark rate configured
jtr pushed to main at hotel-manage-stack/rates 2026-07-06 07:50:41 +01:00
20d939de00 Restore guestline-monitor features: room stock/occupancy, rate history, room stats
jtr pushed to main at hotel-manage-stack/rates 2026-07-06 07:01:59 +01:00
74ae94671b Wire up direct-rates column; remove dormant pause-on-block flow
jtr pushed to main at hotel-manage-stack/rates 2026-07-05 23:55:26 +01:00
1dc8c0a945 Extract shared proxy module; make it available to direct scraper; remove dead code
jtr pushed to main at hotel-manage-stack/rates 2026-07-05 23:13:25 +01:00
6b7f00b40a Parallel scrape workers (proxy-gated, configurable)
jtr pushed to main at hotel-manage-stack/rates 2026-07-05 23:00:30 +01:00
579a189cb8 Use pasted Booking.com search URL to pin scrape destination
jtr pushed to main at hotel-manage-stack/rates 2026-07-05 22:50:01 +01:00
9e5728efb1 Pin Booking.com search to a dest_id
jtr pushed to main at hotel-manage-stack/rates 2026-07-05 21:36:22 +01:00
270d8293d1 Manage scraper proxy from the Settings page
jtr pushed to main at hotel-manage-stack/rates 2026-07-05 21:30:34 +01:00
11b995739c Add residential proxy support to Booking.com scraper
jtr pushed to main at hotel-manage-stack/rates 2026-07-05 17:35:05 +01:00
1743590743 Fix backend startup: launch Xvfb directly, not via xvfb-run
jtr pushed to main at hotel-manage-stack/rates 2026-07-05 17:26:04 +01:00
349c795708 Scraper stealth: headful+xvfb, playwright-stealth, coherent UA, warm-up, click-paginate
jtr pushed to main at hotel-manage-stack/rates 2026-07-05 17:14:58 +01:00
b712196262 Scraper: process-wide lock, one scrape at a time
jtr pushed to main at hotel-manage-stack/rates 2026-07-05 16:47:03 +01:00
bf9425ee7e Market View: honest staleness per cell after partial scrapes
jtr pushed to main at hotel-manage-stack/rates 2026-07-05 16:29:09 +01:00
218b2f45f6 Scraper: don't flag not_listed from partial scrapes
jtr pushed to main at hotel-manage-stack/rates 2026-07-05 16:19:54 +01:00
de8c4ec257 Market View: make Scrape 7d/30d buttons gold with icon, right-aligned
jtr pushed to main at hotel-manage-stack/rates 2026-07-05 16:15:33 +01:00
77284b3ecc Market View: Scrape 7d/30d buttons, Booking.com day-search links on date headers