dominus-cli 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,53 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.3.0 (2026-07-15)
4
+
5
+ ### Roblox building toolkit
6
+
7
+ - Added `studio_clone_instances` for safe deep cloning of Parts, Models, UI,
8
+ scripts, and arbitrary instance trees. Clones support renaming, reparenting,
9
+ root property overrides, repeated copies, and spatial offsets without arbitrary
10
+ Luau execution.
11
+ - Added `studio_create_parts` for building up to 200 Parts, Wedges, MeshParts,
12
+ Seats, SpawnLocations, and related BaseParts in one batch, with optional Model
13
+ or Folder grouping.
14
+ - Added `studio_transform_instances` using `PVInstance:PivotTo()`, so Models and
15
+ BaseParts support exact CFrames plus world/local position and rotation offsets.
16
+ - Added `studio_group_instances`, `studio_ungroup_instances`,
17
+ `studio_create_welds`, `studio_query_parts`, and `studio_set_selection` for
18
+ hierarchy organization, rigid assemblies, spatial inspection, and Studio UX.
19
+ - Extended atomic `studio_apply` and parallel worker proposals with a typed
20
+ `clone` operation. Coordinators validate clone source and destination scopes,
21
+ detect destination conflicts, and verify the resulting hierarchy.
22
+
23
+ ### Safety and reliability
24
+
25
+ - All new writes run through dedicated allowlisted plugin commands and one
26
+ ChangeHistoryService recording, with stable-ref validation, item limits,
27
+ rollback, and read-back-ready refs. Arbitrary `run_code` remains unavailable.
28
+ - Added tests for the 25-tool MCP catalog, clone routing, batch part creation,
29
+ transform validation, and packaged building command hardening.
30
+ - Pinned Rojo `7.6.1` with Rokit so plugin builds use a current reflection database
31
+ and consistently preserve `RunContext.Plugin`.
32
+
33
+ ## 2.2.1 (2026-07-13)
34
+
35
+ ### Stable Studio bridge architecture
36
+
37
+ - Moved WebSocket ownership out of individual MCP stdio processes and into one
38
+ detached local bridge daemon. MCP hosts now act as controllers, so closing or
39
+ restarting one agent no longer disconnects Studio or other agents.
40
+ - Added race-safe bridge startup and reuse. Concurrent MCP launches converge on
41
+ the same loopback bridge instead of creating separate connection state.
42
+ - The plugin installer now starts the bridge automatically and provisions the
43
+ user-specific 256-bit credential into the local plugin. Manual connection IDs
44
+ and six-digit pairing codes are no longer part of setup or recovery.
45
+ - Built the plugin root with `RunContext.Plugin` and added an entry-point guard.
46
+ Starting a Play test can no longer launch duplicate Client and Server Dominus
47
+ sessions from one Studio window.
48
+ - Added regressions for plugin run context, seamless credential provisioning,
49
+ unauthorized plugin rejection, and bridge survival across MCP controller exits.
50
+
3
51
  ## 2.2.0 (2026-07-13)
4
52
 
5
53
  ### MCP-native multi-agent coordinator
package/README.md CHANGED
@@ -8,14 +8,17 @@ Luau execution.
8
8
  ## What changed
9
9
 
10
10
  - MCP-only product: the old Ink chat CLI is no longer published.
11
- - 17 focused tools with input/output schemas, structured results, and risk hints.
11
+ - 25 focused tools with input/output schemas, structured results, and risk hints.
12
12
  - MCP-native parallel coordination uses the host's model through Sampling, with
13
13
  proposal-only workers and coordinator-owned Studio writes.
14
14
  - Stable instance refs survive dots in names, renames, reparenting, and duplicate
15
15
  sibling names for the life of the Studio session.
16
16
  - Script writes require a revision from `studio_read_script`.
17
17
  - Mutation batches and UI replacement are undoable and roll back on failure.
18
- - The installer provisions a private bridge token into the local Studio plugin.
18
+ - The installer provisions a local bridge credential automatically; users never
19
+ copy connection IDs or pairing codes.
20
+ - A single background bridge keeps Studio connected while MCP hosts and agents
21
+ start, stop, or run in parallel.
19
22
  - Multiple Studio windows are selected by unique connection ID, not place ID.
20
23
  - Roblox Creator Docs API lookup is built in.
21
24
 
@@ -65,7 +68,7 @@ For a version-pinned configuration that does not require a global install:
65
68
  "mcpServers": {
66
69
  "dominus": {
67
70
  "command": "npx",
68
- "args": ["-y", "-p", "dominus-cli@2.2.0", "dominus-mcp"]
71
+ "args": ["-y", "-p", "dominus-cli@2.3.0", "dominus-mcp"]
69
72
  }
70
73
  }
71
74
  }
@@ -75,9 +78,13 @@ Restart the MCP client after changing its configuration.
75
78
 
76
79
  ## First connection
77
80
 
78
- 1. Run `dominus-install-plugin`; restart Roblox Studio only if it does not reload.
79
- 2. Start the MCP client so `dominus-mcp` is running.
80
- 3. Open Roblox Studio. The plugin connects and authenticates automatically.
81
+ 1. Run `dominus-install-plugin`; it installs the personalized plugin and starts
82
+ the local Studio bridge in the background.
83
+ 2. Open Roblox Studio and start the MCP client. Dominus authenticates
84
+ automatically with no connection ID or pairing code.
85
+
86
+ If the local credential is replaced or lost, run `dominus-install-plugin` again.
87
+ Studio normally reloads it without a restart.
81
88
 
82
89
  If several Studio windows are open, call `dominus_select_studio` with the exact
83
90
  connection ID before editing. Two windows on the same place ID remain distinct.
@@ -96,6 +103,12 @@ For UI fidelity work, use `studio_snapshot_ui` after `studio_build_ui` and compa
96
103
  fonts, UDim2 values, colors, strokes, and hierarchy rather than relying on a
97
104
  successful write response alone.
98
105
 
106
+ For 3D building, use `studio_create_parts` for batches and
107
+ `studio_clone_instances` when an existing object is the template. Models and
108
+ parts can be moved safely with `studio_transform_instances`, organized with the
109
+ grouping tools, connected with `studio_create_welds`, and discovered spatially
110
+ with `studio_query_parts`.
111
+
99
112
  For broad tasks with independent branches, use `run_parallel_task`. Dominus
100
113
  partitions immediate child scopes, supplies each worker with hierarchy and typed
101
114
  property evidence, runs up to five Sampling workers concurrently, validates their
@@ -123,11 +136,19 @@ Studio inspection:
123
136
  - `studio_snapshot_ui`
124
137
  - `studio_get_output`
125
138
  - `studio_get_reflection`
139
+ - `studio_query_parts`
126
140
 
127
141
  Studio changes and verification:
128
142
 
129
143
  - `studio_update_script`
130
144
  - `studio_apply`
145
+ - `studio_create_parts`
146
+ - `studio_clone_instances`
147
+ - `studio_transform_instances`
148
+ - `studio_group_instances`
149
+ - `studio_ungroup_instances`
150
+ - `studio_create_welds`
151
+ - `studio_set_selection`
131
152
  - `studio_delete_instances`
132
153
  - `studio_build_ui`
133
154
  - `studio_run_test`
@@ -139,12 +160,13 @@ Roblox documentation:
139
160
 
140
161
  ## Security model
141
162
 
142
- The MCP transport is stdio. The separate Studio WebSocket bridge binds only to
143
- `127.0.0.1`, limits messages to one MiB, rate-limits sockets, times out incomplete
144
- handshakes, and authenticates both Studio plugins and relay controllers. The local
145
- installer injects a user-specific token into the plugin, so no manual pairing flow
146
- is needed. The plugin only accepts an explicit command allowlist and contains no
147
- `loadstring` executor.
163
+ The MCP transport is stdio. A single background Studio WebSocket bridge binds
164
+ only to `127.0.0.1`, limits messages to one MiB, rate-limits sockets, times out
165
+ incomplete handshakes, and authenticates both Studio plugins and MCP controllers.
166
+ The distributed plugin contains only a credential placeholder;
167
+ `dominus-install-plugin` writes the user-specific token into the local copy. The
168
+ plugin only accepts an explicit command allowlist and contains no `loadstring`
169
+ executor.
148
170
 
149
171
  The bridge token protects against accidental or opportunistic access by unrelated
150
172
  local processes. Like other user-level credentials, it cannot protect against a