Fix Chrome extension send after the MV3 service worker drops - #32
Merged
Conversation
The packed side panel kept a stale Connected chip after chrome.runtime.connect died, then send threw "disconnected port object" and never reached vavd. Rebind the port, queue outbound frames, and flush them after reconnect. Co-authored-by: Oboo Cheng <oboochin@gmail.com>
esbuild emits relative image URLs. The side panel HTML lives at the extension root, so those URLs 404ed as chrome-extension://<id>/deepseek-*.svg and Chrome showed an Errors chip. Point the document base at phone/ so marks load next to phone.js. Co-authored-by: Oboo Cheng <oboochin@gmail.com>
tsconfig.web.json failed on macOS and Windows because the local MV3 stub omitted onDisconnect, which the reconnect listener requires. Co-authored-by: Oboo Cheng <oboochin@gmail.com>
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.
The packed Chrome extension release, installed in branded Chrome 148 via Developer mode → Load unpacked (Chrome 137+ ignores
--load-extension), auto-discovers vavd and shows the desktop session shell. Two release-install gaps showed up:window.vav.agent.sendthrewAttempting to use a disconnected port objectand vavd never got the turn../deepseek-*.svg.sidepanel.htmllives at the extension root, so Chrome requestedchrome-extension://<id>/deepseek-*.svgand showed an Errors chip.Fixes
sidepanelport, queue outbound frames, flush on reconnect, mark statusreconnecting<base href="phone/">so bundled assets resolve next tophone.jspublicPath: './'in the phone-ui buildInstalled-Chrome verification (headed Chrome 148 + unpacked release zip)
hello from the release extension→ You + e2e stub replychrome://extensions— VAV 1.19.0,background.jsservice worker activeThe Cursor
computerUsesubagent could not start (Claude usage exceeded). The same pass was driven onDISPLAY=:1against the already-installed release tree at/tmp/vav-ext-release.