Skip to content

Releases: torlyai/Schengen-master

v1.3.4 — More reliable Premium auto-booking + selector-miss diagnostics

12 Jun 18:52

Choose a tag to compare

What's new

  • Adaptive confirm wait (Premium auto-booking) — the booking driver now polls for the confirm button for up to 5.5s instead of waiting a fixed 500ms. Slow networks and multi-step confirmation forms no longer fail the booking.

  • Selector-miss diagnostics — when the driver misses (slot not matched, confirm button not found, or confirmation page not detected), the extension records a structural DOM outline into its diagnostic ring buffer. Privacy-preserving by design: text content is never recorded — only structural counts, scrubbed class tokens, and digit-masked URL paths. This finally gives us real-world selector evidence to harden future builds against TLScontact UI changes.

Upgrade

Most installs will receive v1.3.4 automatically over the next few hours via Chrome Web Store auto-update. To force-update now: open chrome://extensions, enable Developer mode, and click "Update".

v1.3.3 — Reliable Premium auto-booking → capture

05 Jun 16:32

Choose a tag to compare

Premium-tier reliability release. Fixes the auto-booking → £19 capture chain so a confirmed TLScontact booking is actually captured, with correct appointment times.

What's fixed

  • Capture handoff — after the booking is confirmed on TLS, the extension now verifies the confirmation from the service worker and drives the capture directly, instead of relying solely on a page reload. This was the main reason confirmed bookings could complete without being captured.
  • No more silent stalls — every auto-booking failure path now ends in a clear "booking failed" state immediately, instead of a 60-second frozen "Booking in progress…".
  • Correct appointment times — slot times read from the TLS page are now converted from the venue's local timezone to UTC correctly (previously non-UK times — and UK times during BST — were stored an hour or two off).
  • Smarter confirm-button detection — no longer mis-clicks navigation links like "Booking history", "My bookings" or "Cancel booking".
  • Cleaner licence handling — a cancelled Premium licence now notifies you and tidies up booking state, and won't interrupt a booking that's mid-capture.

Free tier

Unchanged. Still 100% local — no network calls outside the TLS tab + optional Telegram, never reads your credentials.

Under the hood

New automated test harness covering the booking state machine (26 tests across 5 suites). No new permissions; no change to what Premium sends to torly.ai.

v1.3.1 — Auto-booking lands + liveness ping

01 Jun 19:16

Choose a tag to compare

What's new

Auto-booking implementation (PR #1). driveBookingFlow() is no longer a stub — Premium users now get automated slot click + confirm via chrome.scripting.executeScript. Includes the long-awaited UTC→venue-local time fix (Europe/London, Europe/Paris, Europe/Rome, …) so slot times actually match the DOM.

CWS listing optimizations.

  • i18n setup via __MSG_*__ placeholders + default_locale: "en".
  • Onboarding restructured into a multi-step wizard (welcome step 2 — release windows + Telegram test).
  • 5-star review prompt once a slot has been found.

Liveness ping (Patch B). New VM_LICENSE_STATUS daily alarm POSTs to /license/status so the backend finally sees who's polling, what version they're on, and which browser. Fixes the gap where all installs reported extension_version=NULL despite PRD 17 promising the data flow. Premium-only by design (Free never reaches torly.ai).

Tier 2 opt-in diagnostic report (Settings → Build report). User-initiated only, with privacy-whitelist redaction and mailto: hybrid transport. The full JSON is auto-copied to clipboard; the summary lands in the email body. No DOM, no credentials, no PII.

Caveats

driveBookingFlow() is functional but fragile — see CLAUDE.md Known Open Items for the 6 documented limitations (loose confirm-button match, hardcoded 500ms wait, missing Italian/Polish/Russian button text, no extension-side click idempotency, no click-success verification).

Install

Auto-update via Chrome rolls out from CWS over the next 24–48h. New installs grab the latest from the Chrome Web Store.

v1.3.0 — CWS listing optimizations

24 May 20:09
88d4d6e

Choose a tag to compare

Visa Master v1.3.0

Submitted to Chrome Web Store — pending review. Free-tier trust boundary unchanged. No new permissions. No backend deploy required.


What's new

🌐 Localized Chrome Web Store listing

The extension name and description now render in the user's browser language on the Chrome Web Store:

  • English: Visa Master — Schengen Visa Slot Watcher (TLScontact: France, Italy, Spain)
  • 中文: Visa Master — 申根签证预约助手 (法国, 意大利, 西班牙, TLScontact)

Chinese-language users searching for "申根签证" or "法签预约" can now discover Visa Master on the store.

⭐ Review prompt after value delivered

A small "Rate us" card appears in the popup only after the extension has successfully found a visa slot for you. Both "Rate 5 Stars" and "Dismiss" permanently hide the card — you'll never be asked again.

  • Appears in Monitoring and Paused states only (never during errors or attention-needed states)
  • Opens the CWS review page via chrome.tabs.create (reliable in popup context)
  • Zero network calls — fully local

🧭 Guided onboarding (Welcome page step 2)

New users now configure two key settings during onboarding, before monitoring starts:

  1. Release windows — customize the time slots when Visa Master polls more frequently
  2. Telegram alerts — set up bot token + chat ID with a mandatory test before proceeding

The "Start watching" button is disabled until the Telegram test succeeds (when Telegram is enabled), reducing misconfigured-bot support requests.


Hardening

  • setReviewPrompt() moved after notify() in slot-found path — storage failures can no longer block the slot notification
  • useSettings() gains flush() — prevents debounce-race data loss when closing the welcome page
  • onConsent() resets on failure — user can't get stuck with a disabled button
  • sendMessage catch block now logs warnings instead of swallowing silently
  • Bootstrap catch blocks log warnings instead of /* ignore */
  • Monotonicity guard on review prompt flags — hasEverFoundSlot and promptDismissed can only transition false → true

Upgrade path

If you are… What happens
v1.2.0 user on Chrome Web Store Chrome auto-updates within ~5 hours of CWS approval. All settings preserved.
Sideloading from this Releases page Download the ZIP below and load unpacked. Existing data preserved.
New installer Install from CWS once approved, or sideload from the ZIP below.

Install (no Node / no terminal required)

  1. Download visa-master-v1.3.0.zip from the Assets section below.
  2. Unzip it. You'll get one folder.
  3. Open Chrome → chrome://extensions → Developer mode ON.
  4. Click Load unpacked and select the unzipped folder.
  5. Open your TLScontact appointment page — the extension activates.

Full bilingual instructions in the README and 中文 README.


Support

  • Bug / question / feedback: open an issue or email support@torly.ai
  • MIT licensed — audit, fork, or contribute freely.

v1.2.0

18 May 18:43

Choose a tag to compare

Visa Master v1.2.0

Live on the Chrome Web Store since 2026-05-22. Existing v1.1.0 users auto-update to v1.2.0 over the following ~24h. Four improvements aimed at Premium users — and a long-standing fix. Free-tier behaviour is unchanged.

If you only read one line: after a successful Premium booking, the extension can now book follow-up appointments for family members on the same TLS account.


What's new

🔄 Multi-booking after the refund window

Until now, after Visa Master booked a slot for you, it stayed in the Booked state indefinitely — useful for the 24-hour refund window, but unhelpful if you needed to book a second appointment (e.g. for a family member on the same TLS account, or because you'd missed a date).

In v1.2.0:

  • 24 hours after a booking, when the refund window closes, the extension automatically returns to watching for slots. The next slot that matches your travel window triggers a second £19 booking.
  • A new "Done — stop watching" button on the Booked screen lets you explicitly stop monitoring as soon as you're satisfied — no need to wait 24 hours.
  • If you were already in a Booked state with a stale booking (>24h old) when v1.2.0 installs, the extension auto-rescues you to the watching state on first run.

📧 Email notifications for Premium

Premium users now get transactional emails alongside their existing Telegram + desktop notifications. Four events fire automatically:

  • Booking confirmed — slot booked + £19 captured
  • Booking failed — booking attempted but Stripe charge declined or 60-second timeout reached
  • Refund issued — refund processed within the 24h window
  • Auto-login disabled — 3 failed TLS login attempts; auto-login paused for 1 hour to protect your account

Emails are sent to the Stripe email you provided at activation. The extension never sends your email address to torly.ai — the backend resolves it from your install record. Same trust model as the existing Telegram channel.

Heads-up: there's no per-event opt-out toggle yet (planned for the next release). For now, Premium users with email notifications get all four event types.

🧾 Refund evidence

The 24h refund flow now asks you for a short description of what TLS told you about the cancellation (minimum 20 characters). The refund still processes automatically — there's no human-in-the-loop — but the evidence is stored alongside the refund record for honesty + audit.

If you have a TLS cancellation email handy, paste a relevant sentence. If TLS told you over the phone, describe what they said. Refunds with suspiciously generic or duplicate evidence may be reviewed.

A secondary "Send full evidence with screenshots" link opens a pre-filled email to support@torly.ai for users who want to provide more.

📊 Install metadata + attribution

On Premium activation, the extension now sends a few non-personal fields to help us improve the product: extension version, browser, OS, and (if you choose to share) where you heard about us. The uiLang field is also sent so transactional emails render in your language.


Behind the scenes

🛠 Fix: Stripe activation redirect

Some new Premium users couldn't complete activation in early days of the launch because of a Stripe {CHECKOUT_SESSION_ID} substitution that wasn't being recognised by the activation page. v1.2.0 ships the fix end-to-end. The backend also retroactively self-heals any historic activation that got stranded — you should not see this issue again.

🪄 Smaller UX fixes

  • "Never mind" on the refund screen now returns you to your booking screen, not the active-monitoring view.
  • The new "Done — stop watching" link sits properly on its own line below the existing "Slot was cancelled by TLS" link.
  • The "Slot was cancelled by TLS" link now opens the proper refund screen instead of firing the refund directly with no confirmation.

Upgrade path

If you are… What happens
v1.1.0 user on Chrome Web Store Chrome auto-updates within ~5 hours of CWS approval. License, settings, target URL, and any saved booking state all preserved.
v1.1.0 user with a Booked state past 24h On first run of v1.2.0, the extension auto-recovers you to the watching state — no action needed.
Sideloading from this Releases page Download the ZIP below and follow the install instructions. Existing chrome.storage.local data is preserved.
New installer Once CWS approves, install one-click from the store listing. Until then, sideload from the ZIP below.

Install (no Node / no terminal required)

  1. Download visa-master-v1.2.0.zip from the Assets section below.
  2. Double-click the ZIP to unzip it. You'll get one folder.
  3. Open Chrome and visit chrome://extensions.
  4. Toggle Developer mode ON (top-right).
  5. Click Load unpacked and select the unzipped folder.
  6. Open your TLScontact appointment page — the extension badge turns green.

Full step-by-step bilingual instructions are in the README (English) and 中文 README.


Support

  • Bug / question / feedback: open an issue or email support@torly.ai
  • The extension is MIT licensed — audit, fork, or contribute freely.

Built from commit 3fe191ab6f9e361691f55749da11ce7a1edad175.

v1.1.5

18 May 19:42

Choose a tag to compare

Install (no Node / no terminal required)

  1. Download visa-master-v1.2.0.zip from the Assets section below.
  2. Double-click the ZIP to unzip it. You'll get one folder.
  3. Open Chrome and visit chrome://extensions.
  4. Toggle Developer mode ON (top-right).
  5. Click Load unpacked and select the unzipped folder.
  6. Open your TLScontact appointment page — the extension badge turns green.

Full step-by-step bilingual instructions are in the
README.


Built from commit 3fe191ab6f9e361691f55749da11ce7a1edad175 by GitHub Actions.

Full Changelog: v1.2.0...v1.1.5

v1.1.0

14 May 17:01

Choose a tag to compare

Install (no Node / no terminal required)

  1. Download visa-master-v1.1.0.zip from the Assets section below.
  2. Double-click the ZIP to unzip it. You'll get one folder.
  3. Open Chrome and visit chrome://extensions.
  4. Toggle Developer mode ON (top-right).
  5. Click Load unpacked and select the unzipped folder.
  6. Open your TLScontact appointment page — the extension badge turns green.

Full step-by-step bilingual instructions are in the
README.


Built from commit e3f3a905a9bee2bfaa2d4fadba0c7da5254718b4 by GitHub Actions.

Full Changelog: v1.0.9...v1.1.0

v1.0.9

12 May 21:30

Choose a tag to compare

Install (no Node / no terminal required)

  1. Download visa-master-v1.0.9.zip from the Assets section below.
  2. Double-click the ZIP to unzip it. You'll get one folder.
  3. Open Chrome and visit chrome://extensions.
  4. Toggle Developer mode ON (top-right).
  5. Click Load unpacked and select the unzipped folder.
  6. Open your TLScontact appointment page — the extension badge turns green.

Full step-by-step bilingual instructions are in the
README.


Built from commit e0cbf5df1c9bf384f466c40f6a4c2b6bc2db4754 by GitHub Actions.

Full Changelog: v1.0.8...v1.0.9

v1.0.8

12 May 21:20

Choose a tag to compare

Install (no Node / no terminal required)

  1. Download visa-master-v1.0.8.zip from the Assets section below.
  2. Double-click the ZIP to unzip it. You'll get one folder.
  3. Open Chrome and visit chrome://extensions.
  4. Toggle Developer mode ON (top-right).
  5. Click Load unpacked and select the unzipped folder.
  6. Open your TLScontact appointment page — the extension badge turns green.

Full step-by-step bilingual instructions are in the
README.


Built from commit 37f57e14708faeb84639cd7d40dc8c15713148d1 by GitHub Actions.

Full Changelog: v1.0.7...v1.0.8

v1.0.7

12 May 21:05

Choose a tag to compare

Install (no Node / no terminal required)

  1. Download visa-master-v1.0.7.zip from the Assets section below.
  2. Double-click the ZIP to unzip it. You'll get one folder.
  3. Open Chrome and visit chrome://extensions.
  4. Toggle Developer mode ON (top-right).
  5. Click Load unpacked and select the unzipped folder.
  6. Open your TLScontact appointment page — the extension badge turns green.

Full step-by-step bilingual instructions are in the
README.


Built from commit 469fee53fbab307631b940a324a996529cf5dae2 by GitHub Actions.

Full Changelog: v1.0.6...v1.0.7