v2: port the proposal-0015 wire — re-pin upstream to d4dd2f0 master
upstream (Jim Calabro) replaced the pre-launch /subscribe-v2 superset wire before publishing. the port follows: - /xrpc/network.bsky.jetstream.subscribeEvents: xrpc.v1.json message frames ({"$type":"message","payload":{...}}), payload key order pinned to upstream's lexgen output; Sec-WebSocket-Protocol echo; kinds/dids/collections params (legacy wanted* names 400 with the replacement named); inclusive cursors with the timestamp magnitude split; below-floor seq is a pre-upgrade CursorTooOld JSON envelope; clamped timestamps send one #info OutdatedCursor frame; server-push only (any client data frame closes 1008); terminal error frames (ConsumerTooSlow carries lag + resume cursor); dict-zstd only. - record_cbor removed (record is the JSON data-model value; DRISL defines its canonical CBOR — upstream #327). - time is RFC 3339 UTC with exactly six fractional digits; time_us and the bare-object envelope are gone from v2. - v1 envelope gains cursor (omitted when the seq is unknown), matching atmos's JetstreamEvent. - planBackfill renamed planSnapshot (the filter/window semantics were already ported); the old name answers 400 naming the successor. - v2 zstd dictionary: upstream's retrained subscribe_events_20260811 artifact (id 20260811), sha256 pinned in test. - gate suites and the injected Go differential tests re-pinned to d4dd2f0; the differential oracle now drives upstream's own client (planSnapshot + subscribeEvents + zstd default) against stream. - docs/llms.txt/homepage updated; upstream-subscribe-protocol.md's v2 half marked superseded by the lexicon. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>