fix(deepseek-ivideo): pass preview owner guard to --import as a file URL - #5
Open
Shyboy0499 wants to merge 1 commit into
Open
fix(deepseek-ivideo): pass preview owner guard to --import as a file URL#5Shyboy0499 wants to merge 1 commit into
Shyboy0499 wants to merge 1 commit into
Conversation
node --import accepts a URL or a bare specifier, never a native path. On Windows the resolved guard path C:\...\preview-owner-guard.js parses as protocol 'c:' and the ESM loader rejects it with ERR_UNSUPPORTED_ESM_URL_SCHEME, so every plugin-owned HyperFrames preview child dies at boot and the iVideo view never starts. POSIX tolerates native paths, which hid the defect on macOS and Linux. Keep the guard in URL form via resolvePreviewOwnerGuardUrl(), mirroring the existing resolveHyperframesCli() helper, and rename the field to ownerGuardUrl so its representation is stated at every use site. cliPath is deliberately left as a native path because it is passed as a positional argument, where Node expects a path rather than a URL. Fixes Devin-AXIS#3 Fixes Devin-AXIS#4
Shyboy0499
marked this pull request as ready for review
August 25, 2026 11:59
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.
Summary
On Windows the iVideo view never starts: every plugin-owned HyperFrames preview child process dies at boot with
ERR_UNSUPPORTED_ESM_URL_SCHEME.VideoRuntimeManagerresolves the preview owner guard to a native path and hands it tonode --import, which accepts only a URL or a bare specifier. On WindowsC:\...\preview-owner-guard.jsparses as protocolc:and the ESM loader refuses it. POSIX tolerates native paths, which is why macOS and Linux are unaffected.Fixes #3
Fixes #4
Change
resolvePreviewOwnerGuardUrl()returns the guard as afile://URL, mirroring the existingresolveHyperframesCli()helper directly above it.ownerGuardPath→ownerGuardUrlso its representation is stated at every use site. Its only consumer is the--importargument.cliPathis deliberately left as a native path: it is passed as a positional argument, where Node expects a path rather than a URL. Converting it too would be incorrect.file:, that it round-trips to a real file, and thatnode --importaccepts it as produced.Verification
Run in
source/plugins/deepseek-ivideoon macOS (darwin 25.6.0), Node v22.21.1:pnpm install --frozen-lockfilenpx tsc -p tsconfig.json --noEmitnode --check test/runtime.test.mjsI could not run
pnpm test, or get a cleanpnpm check, in this repository — for reasons unrelated to this change:build:runtimerequiresvendor/hyperframesandbun, neither of which is mirrored here.source/carries upstream-relative imports (../../../../packages/video-studio/...,../../studio-host/...) that do not resolve against this repository'ssource/shared/...layout, producing 13 type errors on a clean checkout. Filed separately as source/ cannot be type-checked or built: sync relocates packages/* to source/shared/* without rewriting relative imports #6.So I verified the behaviour directly instead. The assertion that catches the bug is pure URL parsing and is platform-independent:
The last line reproduces, on macOS, the exact error class both issue reports hit on Windows.
I do not have a Windows machine and have not confirmed the end-to-end fix on Windows firsthand. The reporter of #4 states they verified the equivalent one-line patch locally on Windows 10.0.26200 with Node v24.13.0.
I also confirmed the defect is still present in the currently published bundle (
packages/deepseek-ivideo/lib/runtime-BDSMUY5d.js, v0.5.0 —ownerGuardPath = fileURLToPath(...), nopathToFileURLanywhere), so this is not already fixed upstream.Notes
source/is touched; no generated file underpackages/is edited.