Document the popover scroll trap and the dropped root-absolute imports Safari Quirks F5 (the popover never scrolls its main frame) and G1a (a root-absolute importScripts target resolved to nowhere, so the background page loaded none of its libraries), plus the Runtime Shim notes for both and a Tested Extensions row for Replace AI Translator API 1.0.21.
Document D4a (iframe loads labeled main_frame), the --debug/--logs pair, and today's corrections New Safari-Quirks entry D4a: webRequest reports every frame's document load as main_frame with a raw 64-bit frameId, which made uBlock's strict blocker hijack the tab over ad-iframe cookie syncs, plus the WebKit weak-wrapper lesson that forced the fix onto the event prototype. D4 gains the main-frame-vs-subresource split with the live tabs-API strict-blocking evidence. B4's Handling paragraph is brought back in line with the source (the empty getURL arg IS lowercased) and gains the port path. C3 and both Tampermonkey rows drop the sandbox-setter misdiagnosis, a Firefox-only code path, and name the real remaining suspects. The uBlock row records the live verifications and explains the serverlist.txt console noise. CLI-Reference, Testing-and-Debugging and Runtime-Shim document --debug conversions and the --logs reader.
Document E15 (dispatch resolves through the global chrome/browser) and the menus.create rejections TWP 10.2.5 (MV3): the webRequest sanitizer's global-root republish silently detached the background from all message dispatch (fixed in 895e7a3), and menus.create threw on file://*/* and page_action (fixed in cf96d63). New quirk entry E15 with the WebKit mechanism, F4 extended, shim table and tested-extensions rows updated.
Document the navigation the emulation used to miss Safari 26, measured with a probe extension: a page-world pushState re-injects no content script and produced no report at all, so the burst-after-input watcher missed any route change the page made on its own. C5 said SPA navigation was an open gap; it now records what was measured, the standing watch armed by the background's answer to a report, and the round trip confirmed working. The Cloaked row gets the user report that found it and what is still untested, the shim table names the emulated pair, and 1.11.2 gets its release entry.
Document the frame-ancestors limit and the blank-frame explainer
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 serviceWorker bridge and cookies.get precedence for v1.10.1
Record LastPass fix, Google Translate/Session Buddy passes, uBlock popup regression, Requestly/Tampermonkey partials
Record the four Honey fixes and how they were found Honey converts and works now: popup renders, session is recognized. Four shim bugs came out of it, none of them Honey-specific. - B4 is new: Safari reports the UUID in different cases per API, and getURL can only return one of them. Says why the fix moved onto the sender. - C6 is new: no tab or window events reach a converted background page, so an extension caching the selected tab from them stays blind, and the shim now polls for it. - B2 and F3 were wrong about ?tabId. It is our own injection, not Safari's, and it no longer goes into action popups. - Runtime-Shim's getURL and onMessage rows described the old lowercasing. Also writes down the storage.local instrumentation used throughout, since the background console was never reachable in that session and every conclusion had to come from a log the popup could read.
Record the 1.9.0 release and how far Cloaked was driven
Record the chrome.userScripts work and where Tampermonkey still stops
Document the three Tampermonkey fixes: offscreen postMessage, DNR batching, locale tail
Note the dynamic-DNR content-blocker fix and the stable Tampermonkey build
Add a Tested Extensions page Records which extensions have been converted and actually used in Safari, split between the three verified on the current build (Dark Reader, Claude in Chrome, TWP) and the June corpus round that hasn't been re-checked since. Recovered the June results from the reports/ tree before it was untracked.