Repository navigation
Release readiness v0.3.0: fix dead content script and blank popup, privacy and store package - #10
Merged
Merged
Conversation
added 14 commits
September 26, 2026 18:30
…, fix key decrypt write-back race Adds scripts/verify-package.mjs and release-check, sets minimum_chrome_version 111, strips manifest key from the packaged zip, and stops erasing ciphertext that failed to decrypt.
…pshot backup, diagnostics, hosts, and v0.3.0 Add releaseDocs regression test.
…gleapis books host permissions
Bundle Courier Prime and IBM Plex Mono (latin woff2, SIL OFL) for the popup and options pages. Content-script shadow roots no longer inject a Google Fonts stylesheet on every page; they use a local monospace stack and expose no web-accessible resources. Add regression test.
…lows; document content-script check
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release readiness for v0.3.0
Everything short of the Chrome Web Store upload itself.
Two ship-blocking bugs found and fixed
dist/content.jswas an ES module with static imports; Chrome loads manifest content scripts as classic scripts, so every page threwCannot use import statement outside a moduleand plaques, hover cards and detection never appeared. The content script is now built as a self-contained IIFE (vite.content.config.ts, run bynpm run build).popup.tsxmounted on#popup-rootbutpopup.htmlonly has#app. Fixed, with a regression test that checks every UI entry mounts on an element that exists.box-sizing). Fixed.Privacy and compliance
covers.openlibrary.org(image URLs only) and the redundantgoogleapis.com/books/*.minimum_chrome_versionset to 111.Packaging
keyfield is stripped from the zipped manifest (the Web Store rejects it). Effect: the store-installed extension gets a store-assigned ID, so the Drive OAuth redirect URI must be added in Google Cloud for that ID after first upload.scripts/verify-package.mjs+npm run release-check(typecheck, tests, build, package, verify): manifest and icons, referenced files exist, forbidden paths, secrets, remote code, content scripts are classic scripts.Store assets
Real 1280x800 screenshots and promo tiles (
store/screenshots,store/assets), rendered from the built extension byscripts/render-store-assets.py. Frame 04 uses a local stand-in page.Verified
670 tests pass, typecheck and build clean, package verification passes; the unzipped store package was loaded in a browser: content script runs, popup renders, no
keyin the manifest.Still needs the owner
Developer account and fee, human-timed T7 run (blocked by the Brave policy), confirm the Google OAuth consent screen is published, review screenshots, upload.