Correct the DNR header story and document the gecko-block trap
Safari does not crash on a modifyHeaders rule, it accepts one and never
applies it. D1 now carries the measurement (accepted, stored, listed back,
never applied; a block rule in the same call blocks) instead of the crash
misattribution, plus the header allowlist, the synchronous-throw behaviour and
the unimplemented response side. D2 gains the measured numbers: 249 of Bypass
Paywalls Clean's 253 regexFilter rules refused, all 530 urlFilter rules kept.
New E3b for the trap the conversion creates itself: we add
browser_specific_settings.safari, so a bundle reading its Firefox block
through a container-only guard throws at the top level of its background
script. That is what left BPC registering no rules at all.
Also record that the --debug ring now captures uncaught host-script errors,
and thread guardGeckoSettingsAccess through the pipeline and stage pages.
Document the bridge transports, sender rules and world:"MAIN" fallback
Covers what 1.11.0 changed and why each piece is shaped the way it is: the two
transports into a converted background, the origin and tab a bridged sender
carries, the script-tag fallback for a world:"MAIN" entry Safari skipped, the
scoping rule on strict_min_version, and Safari's "Tab not found." teardown.
Adds Safari Quirks E9 and E10, updates E1, records the diagnostics in Testing
and Debugging, and moves Claude in Chrome to a verified login.
Document the content-script / MV2-background native messaging carve-out
The storage relay wraps chrome/browser in a Proxy for extension-page to
background messaging. That Proxy breaks Safari's native content-to-background
delivery, and the relay can't cross a content script's separate storage.local
partition anyway, so the relay must never touch a content script or the MV2
background. Records the quirk (Safari-Quirks E6), the relay scoping in the
runtime shim, and the corrected MV2 background.scripts row in Manifest-Transform.
Document chrome:// scheme in permissions load failure (#11)
Add Safari-Quirks A6, a Release-History bullet, and a Manifest-Transform
table note for the chrome://favicon/ permission strip.
Document content-script double-injection fix and XHR timeout event fix
- Safari Quirks E4: document_end/all_frames groups re-evaluated into a shared
isolated world (about:blank/srcdoc), top-level const/let crash, and the
idempotentContentScriptGlobals const-to-var fix.
- Safari Quirks D6: proxied XHR now fires timeout (not error) on a timeout.
- Wire the new stage into Conversion Pipeline (11a + diagram), Input Handling
and Manifest Transform export lists, and Release History unreleased notes.
Humanize wiki prose: remove em/en dashes and curly quotes
Replace em/en dashes with commas, colons, or sentence breaks per context,
and normalize curly quotes to straight. Dashes inside code blocks, diagrams,
and range expressions are preserved.
Add Viaduct CLI wiki
Contributor-grade documentation for viaduct-cli, verified against src/ and
grounded in the git history. 14 content pages plus Home, sidebar, and footer:
architecture, conversion pipeline, CLI reference, input handling, manifest
transform, analyzer, runtime shim, OAuth bridge, build/install, Safari quirks,
testing/debugging, limitations/FAQ, and a commit-grounded release history.