Single-file phone-first chat UI over the agent bridges. Reads the LandBridge + AirBridge Drive folders, renders lane heartbeats as chat bubbles, and posts Ben's typed messages as versioned directive files to the AirBridge. Client-side only. No backend. v1.1.0 adds the Violet lane: the composer toggles between "Directive" (posts AIRBRIDGE-DIRECTIVE) and "Ask Violet" (posts VIOLET-ASK); Violet's 1-minute heartbeat answers unanswered VIOLET-ASK files with VIOLET-REPLY files, rendered as Violet bubbles. No server needed. v1.1.1: chat order is chronological (oldest first, latest at bottom) with a floating violet down-arrow button that jumps to the latest message; "Load older" moved above the timeline. v1.1.2: 30s auto-refresh — new bridge files appear on their own; a scrolled-up reader is never yanked, the down-arrow appears instead. SETUP (one time): 1. Google Cloud Console -> new project -> OAuth 2.0 client ID (web app). 2. Authorized JavaScript origin: the https origin where you host this file. 3. Paste the client ID into CONFIG.CLIENT_ID below. 4. Host this file + manifest.json on any static https host (GitHub Pages, Cloudflare Pages). Open on iPhone -> Share -> Add to Home Screen. 5. Sign in. Scopes requested: drive.readonly + drive.file (least privilege). -->