Chrome extension

A Manifest V3 side-panel extension that calls the unified server's /api/booking. The booking pipeline runs server-side; the extension is just a UI shell with a desktop notification on completion.

Install

The extension ships with the unified server. With bun start running:

  1. Open http://localhost:4242/dobby-browser-extension.zip (or click the install link on the landing page) and download the zip.
  2. Unzip it - you'll get a dobby-browser-extension/ folder.
  3. In Chrome, open chrome://extensions/, enable Developer mode (top-right), click Load unpacked, and pick the unzipped folder.
  4. Pin the extension's icon to your toolbar.

Click the icon โ†’ Chrome opens the side panel. The first time it opens it probes the server URL (default http://localhost:4242); change it via the Settings link in the side panel footer.

Build (for repo users)

bun run extension:build

Output: dist/dobby-browser-extension/ (load this directly via "Load unpacked") and public/dobby-browser-extension.zip (served by the unified server).

bun start runs this automatically as part of prestart:extension if the zip doesn't exist yet.

What it does

Architecture

src/extension/
  manifest.json         MV3 declaration: side_panel + service worker + notifications
  sidepanel.html/css/ts UI shell - form, result rendering, settings dialog
  background.ts         service worker - does the fetch, fires notifications
  shared.ts             types + station list shared between the two
  build.ts              bundles via Bun.build, copies static files, zips
  icons/icon-192.png    extension icon (Chrome scales for all sizes)

Limitations