Skip to content

Releases: KyberWolffe/roblox-studio-mcp-multisession

Roblox Studio MCP Multisession 0.4.0-rc.7

Choose a tag to compare

@KyberWolffe KyberWolffe released this 30 Jul 16:44
Immutable release. Only release title and notes can be modified.

Roblox Studio MCP Multisession 0.4.0-rc.7

0.4.0-rc.7 adds bounded transactional script creation and exact transaction-owned cleanup to the explicit-session Multisession MCP. It corrects the successful-creation cleanup-admission defect found in the rejected, unpublished rc.6 candidate.

Exact release identity

  • Tag: v0.4.0-rc.7
  • Commit: 63dd793f385ebb9c992fd325185acae07c27aa21
  • Source tree: f9f4921e779c4d46a4cef8bb1e3af3053337d947
  • Platform: native Apple-Silicon macOS
Release asset SHA-256 of uploaded file
roblox-studio-mcp-v2-0.4.0-rc.7-macos-arm64.tar.gz 2f116b0a072c59513e3a0f63857c2f0559a17ead5a8d06bb9d525ac00d59d7b8
roblox-studio-mcp-v2-0.4.0-rc.7-macos-arm64.tar.gz.sha256 dfce91f45171396820d49d22a2c5f55b7ccef356bd66069bc7879e2c5612e362
roblox-studio-mcp-v2-bootstrap-0.4.0-rc.7.py e4f35d878024a3c73d6276bc512236e1cad8637c98894da976b233d556cd346b
roblox-studio-mcp-v2-bootstrap-0.4.0-rc.7.py.sha256 17a3638a5b972532a520a02933c660971ec9799b26b4c369948b39c13df5236e
SHA256SUMS ab023fbab1198c704006287024705cb57a599b478a235c767d398fa9a86ca14e

Transactional script creation and cleanup

A revision-protected multi-edit transaction can now combine edits to existing exact script paths with expected-absent creation of bounded Script, LocalScript, or ModuleScript instances beneath an existing exact parent. Host and Studio preflight every target before mutation, reject stale revisions, duplicate or ambiguous paths, invalid class/name/source data, and preserve deterministic ordering and identity-bound prepare/apply receipts.

A successful creation returns a separate ten-minute cleanup authorization. studio_cleanup_multi_edit_v2 accepts only the original transaction ID, apply-receipt SHA-256, and cleanup-authorization SHA-256; callers cannot choose paths or deletion targets. Cleanup may remove only exact, unchanged instances proven created by that transaction in the same Studio/client/document/generation. Changed, moved, renamed, replaced, or decorated content is preserved. Expiry, reconnect, replay, wrong-session reuse, or impossible metadata fails closed. Direct and background-job results use the same identity and receipt fences.

Qualification

The exact source and archive passed 540 automated tests, deterministic double-build and archive audit, isolated install lifecycle, native Studio compilation/load/registration, same-session FIFO, concurrent cross-session isolation, adversarial CAS/replay/reconnect/expiry tests, and byte-for-byte rc.5 rollback proof.

The bounded live gate used only Custom MCP Test Place 1 (119127323538055) and Custom MCP Test Place 2 (126199173733750). Mixed edit/create and concurrent peer-job creation, expected-absent rejection, wrong-session reuse rejection before dispatch, exact read-back, source restoration, and transaction-owned cleanup all passed. The durable installed-path sanity then resolved both as distinct client/document identities in Edit with zero pending, uncertainty, recovery, or nonterminal jobs.

Machine-bound Studio plugin

The portable archive contains the exact renderer, template, and operation handlers; installation renders a host-specific .rbxmx with local broker identity and credentials. Its whole-file hash is therefore expected to differ across machines and from the isolated live-gate plugin.

For this qualification, the isolated plugin SHA-256 was fdb7de4e84322e06687736d7fd984f77170f22802bc49456232342ac9aeb4eb7; the installed host-specific plugin SHA-256 was 4b49c55f55df60f94c326e3f5c5b021e41a6041b39c4d1a49de466adb42d662a. The installed doctor and registration gate bound that render to the archive-manifest renderer (deb82a318f692ac0e0dcfeae59ab7e73320df0adabd8538d487669e06663a130), template (2ee26b4f2229ad4f11606ebd3826d6b8b9bfc321bc020a433b92e4fb020a8da7), and handlers (fbb1761fd17d8f55aca0a49101d3de4eab4501fe7bca23d3515f07bb9fea89e6). Neither plugin file is a portable release asset, and another correct installation will normally have a different plugin hash.

Install or upgrade

Fully close Roblox Studio before install, update, or rollback, handling any Save/Don't Save prompts yourself. Restart Codex and reopen Studio afterward.

For a fresh install or reinstall of the same version only, download and verify the exact bootstrap before running it:

/bin/bash -ceu 'd="$(mktemp -d)"; f="$d/roblox-studio-mcp-v2-bootstrap-${3#v}.py"; curl --fail --location --output "$f" "https://github.com/$1/$2/releases/download/$3/${f##*/}"; printf "%s  %s\n" "$4" "$f" | shasum -a 256 --check; python3 "$f" --owner "$1" --repo "$2" --tag "$3" --expected-sha256 "$5"; rm -- "$f"; rmdir -- "$d"' -- KyberWolffe roblox-studio-mcp-multisession v0.4.0-rc.7 e4f35d878024a3c73d6276bc512236e1cad8637c98894da976b233d556cd346b 2f116b0a072c59513e3a0f63857c2f0559a17ead5a8d06bb9d525ac00d59d7b8

Do not use the bootstrap to replace a different installed Multisession version. Upgrade an installed rc.5 through its canonical manager so rc.5 remains the immediate rollback:

"$HOME/Library/Application Support/RobloxStudioMCPv2/bin/roblox-studio-mcp-multisession-manage" update \
  --owner KyberWolffe \
  --repo roblox-studio-mcp-multisession \
  --tag v0.4.0-rc.7 \
  --expected-sha256 2f116b0a072c59513e3a0f63857c2f0559a17ead5a8d06bb9d525ac00d59d7b8

Rollback a retained rc.7-to-rc.5 installation with:

"$HOME/Library/Application Support/RobloxStudioMCPv2/bin/roblox-studio-mcp-multisession-manage" rollback \
  --to-version 0.4.0-rc.5 \
  --accept-current-version 0.4.0-rc.7

Experimental boundary

Every operational tool requires an explicit studio_id; discovery is the only exception. There is no active/global/default Studio route and no silent v1 fallback. This feature does not add arbitrary Luau, general instance deletion, or asset operations.

Capability parity remains incomplete: twelve P0 rows remain partial or deferred, and multi_edit remains v2_partial. Roblox Studio provides no cross-script atomic transaction, so rc.7 uses explicit prepare/apply/receipt semantics and quarantines outcomes it cannot prove. Cleanup cannot delete pre-existing or changed content and cannot dispatch new deletion after its original deadline. This is an experimental prerelease, not a full-parity or stable-release claim.

Roblox Studio MCP Multisession 0.4.0-rc.5

Choose a tag to compare

@KyberWolffe KyberWolffe released this 30 Jul 03:47
Immutable release. Only release title and notes can be modified.

Roblox Studio MCP Multisession 0.4.0-rc.5

Version 0.4.0-rc.5 is a public-name migration candidate. It carries forward
the corrected rc.4 Phase 2 behavior while changing the user-facing product and
Codex registration to names that describe the actual multi-window design.
The durable installed 0.4.0-rc.4 integration and its immutable restore
bundle remain the required immediate rollback target. The
0.3.0-rc.4 restore artifact remains older recovery history.

Publication and qualification

This exact candidate is published as an experimental prerelease:

  • tag: v0.4.0-rc.5;
  • commit: 923422254e95050f0fe66bacc0114e9ace2789c5;
  • source tree: 3e3713045821412b6a6bbe0a4db9e27ab7bb58e3;
  • Apple-Silicon archive SHA-256:
    d279d1f6c9b3f075b176efd4e98e543053ccd0fff5e99a8be2d7f949012b559d;
  • bootstrap SHA-256:
    e4f35d878024a3c73d6276bc512236e1cad8637c98894da976b233d556cd346b;
  • SHA256SUMS SHA-256:
    fa7339b2271f815e7e43bdd7a93008646bf062b701ddcf72f358c99b25924b4f.

The exact rendered plugin compiled in Studio, loaded and registered under the
canonical Codex name, and passed bounded explicit-session state, search, grep,
inspection, same-session serialization, cross-session isolation, and
revision-protected multi-edit routing gates. All 479 automated tests passed.
The retained 0.4.0-rc.4 package remains the immediate guarded rollback for
systems migrated from rc.4.

Canonical names

Surface Canonical rc.5 value
Human product Roblox Studio MCP Multisession
Display/short name Studio MCP Multisession
Codex server Roblox_Studio_Multisession
Repository/release slug roblox-studio-mcp-multisession

The installer migrates only an exactly owned former
[mcp_servers.Roblox_Studio_v2] table. It snapshots and hash-binds the complete
pre-migration Codex configuration, writes
[mcp_servers.Roblox_Studio_Multisession], and verifies that exactly one of
the two registration names is active. An unowned, drifted, dual-active, or
otherwise ambiguous configuration fails closed for review.

Codex must be restarted after install, update, rollback, or repair changes the
registration. Studio windows must be closed before a plugin-file transaction
and reopened afterward; the user remains responsible for any Save or Don't
Save prompt.

Legacy-filename bridge

Rc.5 intentionally does not rename compatibility-sensitive physical or
protocol identities:

  • public tool names ending in _v2 and authenticated /v2 routes;
  • Python package and internal wire identifiers;
  • ~/Library/Application Support/RobloxStudioMCPv2;
  • ~/Documents/Roblox/Plugins/StudioMCPv2SideBySide.rbxmx;
  • canonical roblox-studio-mcp-multisession launcher/manager names are added,
    while the former roblox-studio-mcp-v2 launcher and
    roblox-studio-mcp-v2-manage manager remain compatibility aliases;
  • roblox-studio-mcp-v2-* archive/bootstrap filenames and existing manifest
    formats.

This is a deliberate bridge, not incomplete branding. The 0.4.0-rc.4
bootstrap, archive manifests, transaction journal, retained package, and
rollback proof all bind exact legacy filenames. Preserving them allows the
normal guarded update path to activate rc.5 and allows one-step rollback to
restore 0.4.0-rc.4 byte-for-byte. Rc.4 artifacts, tags, hashes, commands,
and provenance records remain immutable.

Functional and safety boundary

This candidate changes public naming and registration ownership only. It does
not add a global/default Studio selector, silently invoke v1, widen the
capability catalog, rename tools or routes, or weaken per-session credentials,
locks, correlation, generation fencing, uncertainty quarantine, or Play
two-phase semantics.

Every operational tool still requires an explicit studio_id; discovery is
the sole exception. Capability parity remains incomplete and the release must
remain marked as a prerelease. The qualification above applies only to the
exact tagged source and fixed release digests; it is not a full-parity claim.

Roblox Studio MCP v2 0.3.0-rc.2

Pre-release

Choose a tag to compare

@github-actions github-actions released this 26 Jul 08:07
Immutable release. Only release title and notes can be modified.

Roblox Studio MCP v2 0.3.0-rc.2

This release candidate packages the validated v2 0.2.0 architecture for
repeatable installation and update from a versioned GitHub Release. It targets
native Apple Silicon macOS only.

This is an experimental prerelease, not a claim that all 25 modern v1 tools are
implemented. The formal matrix records 12 P0 gaps as partial or deferred.
Missing capabilities fail closed and never route through a global v1 active
Studio. See V1 capability parity.

Highlights

  • Authenticated Python loopback clients now ignore all ambient HTTP proxy
    settings and refuse redirects, so local bearer credentials cannot be routed
    through a proxy or forwarded away from the exact broker endpoint.
  • Broker startup skips reverse-DNS lookup for the already validated literal
    loopback address, avoiding resolver-dependent startup delays on macOS.
  • GitHub CI suppresses Python bytecode for every project command and audits the
    source tree before and after tests.
  • Multiple Studio windows register as distinct authenticated sessions.
  • Every operational call names an exact studio_id; there is no global active
    Studio selection or one-Studio fallback.
  • Work for different sessions can run concurrently. Conflicting writes and
    Play/Stop transitions within one session serialize.
  • The side-by-side Studio plugin uses documented plugin-security lifecycle
    APIs and proves return to Edit mode before reporting Stop complete.
  • Users name a place or project normally. Codex resolves it through v2
    discovery and handles studio_id internally, asking only when duplicate or
    unsaved windows are genuinely ambiguous.
  • The installer preserves the existing Roblox_Studio MCP entry and plugin as
    the v1 fallback.
  • Credentials are generated per machine and are excluded from source and
    release archives.
  • Updates are pinned, checksum-verified, staged, validated, and recoverable.
  • Upstream Roblox tool-catalog changes are diffed and review-gated; unknown
    operation shapes remain quarantined.

Release assets

  • roblox-studio-mcp-v2-0.3.0-rc.2-macos-arm64.tar.gz
  • roblox-studio-mcp-v2-0.3.0-rc.2-macos-arm64.tar.gz.sha256
  • roblox-studio-mcp-v2-bootstrap-0.3.0-rc.2.py
  • roblox-studio-mcp-v2-bootstrap-0.3.0-rc.2.py.sha256
  • SHA256SUMS

The final published digests must match the locally reproduced
SHA256SUMS. Release archives contain source and standard-library Python/Luau,
not machine credentials or native executables.

Upgrade notes

The installed manager accepts a selected version tag:

"$HOME/Library/Application Support/RobloxStudioMCPv2/bin/roblox-studio-mcp-v2-manage" \
  update \
  --owner KyberWolffe \
  --repo roblox-studio-mcp-multisession \
  --tag v0.3.0-rc.2 \
  --expected-sha256 61c88ef0c582917b3d4606439d027f7c79764b8288a100f1cd7645525fc03328

For a private repository, download the archive and checksum through an
authenticated GitHub client, then use the manager's offline --archive,
--checksum-file, and --expected-sha256 options. Tokens are never passed to
or stored by v2.

Restart Codex after an install or version switch so it reloads MCP schemas.
Reload local Studio plugins or restart open Studio windows after plugin
changes. Enable Allow HTTP Requests for each place that should register
with the loopback broker. A disabled place stays safely unregistered.

V1 remains installed for deliberate use when v2 lacks an operation, but v2
never silently falls back. Do not use v1's selection-based routing for
concurrent Studio tasks.

The installed launcher records the Python interpreter used at install time. If
that interpreter is moved by a Python or package-manager update, rerun repair
with a current Python 3.9+ to repin it.

Evidence boundary

The 0.2.0 broker/plugin operation surface and lifecycle behavior were validated
with two explicitly authorized disposable Studio places before this repository
was prepared. The 0.3.0-rc.2 work changes packaging, architecture enforcement,
proxy isolation, update, audit, and CI behavior. Its release proof runs in an
isolated temporary home and does not open Studio or repeat live place edits.

Known limitations

  • Intel Macs and Rosetta are unsupported and rejected before installation
    mutation.
  • Session and job state is in memory; after a clean broker restart, callers
    rediscover fresh studio_id values.
  • One local MCP principal is installed per user; studio_id is routing
    context, not a multi-user authorization identity.
  • Studio HTTP requests must be enabled for the local plugin to reach the fixed
    loopback broker.
  • Screenshot and Scriptable InputBinding operations remain subject to
    Roblox Studio permissions and platform support.