oss.sarwagya.wtf

Compatibility

What CI actually proves, per engine — and what still needs a human with two phones.

Every claim in the first table is exercised by CI on every commit: an offer created in one browser context must decode to identical state in a fresh one, per engine.

FeatureChromiumFirefoxWebKit
URL-fragment transfer across contextsTested in CITested in CITested in CI
deflate-raw compressionTested in CITested in CITested in CI
Compression Streams are Baseline since May 2023. Without them, encoding degrades to uncompressed artifacts — tested too.
Adversarial decoding (bombs, bad flags, bad versions)Tested in CITested in CITested in CI
Fragment scrubbed from history after receiveTested in CITested in CITested in CI

Server runtimes

encodeHandoff / decodeHandoff run anywhere with TextEncoder and Compression Streams — Node 18+, Deno, Bun, and edge workers all qualify. The browser conveniences no-op gracefully where location and history do not exist.

Real devices — the honest gap

QR scanning lives in physical reality: cameras, glare, cracked screens. CI cannot prove it, so this matrix ships as pending until measured against the live demo:

PathStatus
Laptop → phonepending manual verification
Phone → laptoppending manual verification
iPhone → Androidpending manual verification
Android → iPhonepending manual verification

The qrFriendly threshold (1,000 artifact characters) encodes published scanning research; the measured device numbers will replace it here when the matrix is run.