CampBot Browser Helper v0.7.0

Precision clock
===============
v0.7 reads GoingToCamp's actual:
    /api/transactionlocation/servertime

Example response:
    "2026-08-18T22:05:22.7773608Z"

For each sample the helper records:
- browser send time
- browser receive time
- direct GoingToCamp RTT
- GoingToCamp server timestamp
- local midpoint
- estimated server/browser clock offset

The production clock uses the median clock offset from the three lowest-RTT
samples. The same low-jitter set supplies the one-way network estimate.

Precision release
=================
At about T-10 seconds the CampBot page asks the helper for 5 fresh direct
server-time samples.

The helper then receives:
- exact GoingToCamp release epoch
- measured GoingToCamp/browser clock offset
- estimated one-way network latency

The helper itself waits until:
    GoingToCamp release
    - clock offset
    - estimated one-way latency

and sends the first hold commit directly from the extension.

This removes DreamHost, HTTP Date headers, page-to-extension dispatch at the
release instant, and coarse 10 ms web-worker timing from the critical send.

A very short final high-resolution wait is used only for the last few
milliseconds before the first request.

Request volume
==============
Clock synchronization:
- 3 read-only /servertime samples for ordinary Sync now/login validation
- 5 read-only samples once at about T-10 for an armed release

Hold commits remain the compact serial plan:
    3 sites: P1, P2, P1, P2, P1, P3
    2 sites: P1, P2, P1, P2, P1
    1 site : P1, P1, P1

CampBot stops on a confirmed or uncertain hold.
There is no six-second propagation retry.

Checkout handoff/payment behavior is unchanged.
