feat(studio-bridge): add Linux/Wine support for headless Studio#672
Open
Quenty wants to merge 14 commits intofeat/studio-bridgefrom
Open
feat(studio-bridge): add Linux/Wine support for headless Studio#672Quenty wants to merge 14 commits intofeat/studio-bridgefrom
Quenty wants to merge 14 commits intofeat/studio-bridgefrom
Conversation
045302e to
2073c26
Compare
2073c26 to
cad437e
Compare
cad437e to
6b4733f
Compare
6b4733f to
e67f532
Compare
796ac70 to
0f6ff94
Compare
0f6ff94 to
a6ed2fc
Compare
a6ed2fc to
cdf2030
Compare
cdf2030 to
d3d3b04
Compare
d3d3b04 to
7a03ca0
Compare
7a03ca0 to
89adb59
Compare
89adb59 to
c980e52
Compare
Adds the linux/ module tree for running Roblox Studio under Wine on Linux, including virtual display management, shader patching, FFlag configuration, credential injection, and headless launch. Pre-registers ExecuteAction in the plugin at boot so execute messages work without needing registerAction. Accepts empty heartbeat payloads with defaults, surfaces plugin errors in the script execution listener, and extracts captured output from scriptComplete responses.
c980e52 to
f05fcd2
Compare
Pre-build a Docker image with Wine, Roblox Studio, and studio-bridge baked in. Eliminates fragile 5-10 min CI setup that re-installs everything each run. - Dockerfile uses studio-bridge's own `linux setup` command (no logic duplication) and pnpm deploy for self-contained runtime - Nightly build workflow pushes to ghcr.io with version tags - E2E workflow runs inside the container, skipping setup steps - devcontainer gains docker-in-docker for local image building
62add87 to
989e484
Compare
989e484 to
f5792f7
Compare
f5792f7 to
fdc5396
Compare
fdc5396 to
2920879
Compare
StudioBridgeServer.executeAsync() sent the execute message without first registering the execute.luau action handler with the plugin, causing UNKNOWN_REQUEST errors. Add _ensureActionsAsync() to sync dynamic action modules (via syncActions + registerAction) before the first execute call, matching the pattern already used by BridgeSession.
2920879 to
3e307f2
Compare
25b9c8d to
ebdb4ee
Compare
ebdb4ee to
a8149db
Compare
a8149db to
9e35dfb
Compare
9e35dfb to
bf3d66f
Compare
- write-cred.exe now accepts multiple target/value pairs in one invocation, eliminating 2 extra Wine process startups (~8s saved) - Dockerfile pre-runs wineboot -i and compiles write-cred.exe at build time, so auth skips the ~30s Wine prefix initialization at runtime - Skip wineboot -i when prefix already exists (system.reg present)
bf3d66f to
fb84921
Compare
…de code The Docker image contains an old single-pair write-cred.exe that silently ignores extra arguments. When the batch credential writer passes 3 pairs, only the first (userid) is written — Studio launches without cookie credentials and hangs on a login dialog.
The cookie may be invalidated between credential writes and the OAuth2 CSRF request. Since cookie-based credentials alone are sufficient for the Studio version in the Docker image, treat OAuth2 failure as a warning rather than crashing the entire auth step.
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.
Adds Linux/Wine support for running Roblox Studio headlessly, with a pre-built Docker image for fast CI. The
linux setup,linux auth, andlinux statuscommands handle Wine + Studio installation, credential injection, and health checks. A nightly Docker build workflow bakes everything into a container image so the E2E workflow starts in seconds instead of re-installing from scratch each run.Shared auth code (cookie resolution, CSRF handling) moved from nevermore-cli to nevermore-cli-helpers so both CLIs can use it. The process manager gained a Linux/Wine launch path using Xvfb + D3D11 rendering, and the bridge server now syncs dynamic action modules (like
execute.luau) to the plugin before first use, fixing UNKNOWN_REQUEST errors on the v2 protocol path.