From 850cda114a5eb4a373bad302e82048177c32c60f Mon Sep 17 00:00:00 2001 From: worldisonline <242876766+worldisonline@users.noreply.github.com> Date: Mon, 20 Jul 2026 23:13:15 +0200 Subject: [PATCH] Apply Prism branding --- plugin/UploadDetails.json | 6 +- plugin/assets/prism/icon.png | Bin 0 -> 152085 bytes plugin/assets/prism/logo.png | Bin 0 -> 62407 bytes plugin/assets/prism/warning.png | Bin 0 -> 177757 bytes plugin/http/Error.lua | 4 +- plugin/log/init.lua | 8 +- plugin/src/ApiContext.lua | 101 ++- plugin/src/App/Components/Header.lua | 2 +- .../Notifications/FullscreenNotification.lua | 2 +- plugin/src/App/StatusPages/Confirming.lua | 4 +- plugin/src/App/StatusPages/Connected.lua | 2 +- plugin/src/App/StatusPages/NotConnected.lua | 2 +- plugin/src/App/StatusPages/Settings/init.lua | 4 +- plugin/src/App/init.lua | 25 +- plugin/src/Assets.lua | 4 +- plugin/src/ChangeBatcher/createPatchSet.lua | 2 +- plugin/src/Exec.lua | 796 ++++++++++++++++++ plugin/src/Exec.spec.lua | 713 ++++++++++++++++ plugin/src/PatchSet.lua | 2 +- plugin/src/ServeSession.lua | 34 +- plugin/src/Timer.lua | 6 +- plugin/src/Types.lua | 103 +++ plugin/src/init.server.lua | 1 + plugin/src/invariant.lua | 4 +- plugin/src/soundPlayer.lua | 2 +- src/cli/exec.rs | 98 ++- 26 files changed, 1858 insertions(+), 67 deletions(-) create mode 100644 plugin/assets/prism/icon.png create mode 100644 plugin/assets/prism/logo.png create mode 100644 plugin/assets/prism/warning.png create mode 100644 plugin/src/Exec.lua create mode 100644 plugin/src/Exec.spec.lua diff --git a/plugin/UploadDetails.json b/plugin/UploadDetails.json index 2396598f..2441794c 100644 --- a/plugin/UploadDetails.json +++ b/plugin/UploadDetails.json @@ -1,7 +1,7 @@ { "assetId": 13916111004, - "name": "Rojo", - "description": "The plugin portion of Rojo, a tool to enable professional tooling for Roblox developers.", + "name": "Prism", + "description": "The Prism plugin, a tool to enable professional tooling for Roblox developers.", "creatorId": 32644114, "creatorType": "Group" -} \ No newline at end of file +} diff --git a/plugin/assets/prism/icon.png b/plugin/assets/prism/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..50eee4b80efaf08fd4d6dcea7aa821a22c45ef8c GIT binary patch literal 152085 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ν4ZXn_4*>hltm-}UmP~T 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 literal 0 HcmV?d00001 diff --git a/plugin/assets/prism/warning.png b/plugin/assets/prism/warning.png new file mode 100644 index 0000000000000000000000000000000000000000..ae79969fa3652a9842caaf7a4ed9b6ce9dc1fab4 GIT binary patch literal 177757 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
r8SQ4mrR&s3Y2>^YFcY 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

y0(@g0LSb3x~0hTNsv-zv0h>2WbJvfMRSZ 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 LeF4>er1Sp=r{&1q literal 0 HcmV?d00001 diff --git a/plugin/http/Error.lua b/plugin/http/Error.lua index f9e46b38..98ea041f 100644 --- a/plugin/http/Error.lua +++ b/plugin/http/Error.lua @@ -3,11 +3,11 @@ Error.__index = Error Error.Kind = { HttpNotEnabled = { - message = "Rojo requires HTTP access, which is not enabled.\n" + message = "Prism requires HTTP access, which is not enabled.\n" .. "Check your game settings, located in the 'Home' tab of Studio.", }, ConnectFailed = { - message = "Couldn't connect to the Rojo server.\n" + message = "Couldn't connect to the Prism server.\n" .. "Make sure the server is running — use 'rojo serve' to run it!", }, Timeout = { diff --git a/plugin/log/init.lua b/plugin/log/init.lua index 882be997..51242975 100644 --- a/plugin/log/init.lua +++ b/plugin/log/init.lua @@ -16,10 +16,10 @@ local function addTags(tag, message) return tag .. message:gsub("\n", "\n" .. tag) end -local TRACE_TAG = (" "):rep(15) .. "[Rojo-Trace] " -local INFO_TAG = (" "):rep(15) .. "[Rojo-Info] " -local DEBUG_TAG = (" "):rep(15) .. "[Rojo-Debug] " -local WARN_TAG = "[Rojo-Warn] " +local TRACE_TAG = (" "):rep(15) .. "[Prism-Trace] " +local INFO_TAG = (" "):rep(15) .. "[Prism-Info] " +local DEBUG_TAG = (" "):rep(15) .. "[Prism-Debug] " +local WARN_TAG = "[Prism-Warn] " local Log = {} diff --git a/plugin/src/ApiContext.lua b/plugin/src/ApiContext.lua index 2ce6ea14..0b064463 100644 --- a/plugin/src/ApiContext.lua +++ b/plugin/src/ApiContext.lua @@ -14,6 +14,8 @@ local validateApiSocketPacket = Types.ifEnabled(Types.ApiSocketPacket) local validateApiSerialize = Types.ifEnabled(Types.ApiSerializeResponse) local validateApiRefPatch = Types.ifEnabled(Types.ApiRefPatchResponse) +local EXEC_COMPLETION_BODY_LIMIT_BYTES = 256 * 1024 + local function rejectFailedRequests(response) if response.code >= 400 then local message = string.format("HTTP %s:\n%s", tostring(response.code), response.body) @@ -24,11 +26,37 @@ local function rejectFailedRequests(response) return response end +local function decodeExecResponse(response, validator, description) + local decodeOk, body = pcall(response.msgpack, response) + if not decodeOk then + return Promise.reject( + string.format("Prism exec protocol error: could not decode %s: %s", description, tostring(body)) + ) + end + + local valid, validationError = validator(body) + if not valid then + return Promise.reject( + string.format("Prism exec protocol error: malformed %s: %s", description, tostring(validationError)) + ) + end + + return body +end + +local function isCompletionConflict(errorValue) + -- The existing HTTP wrapper intentionally turns every non-2xx response + -- into Http.Error.Unknown and includes the status at the start of its + -- message. Keep this compatibility check here instead of creating another + -- HTTP connection path just for exec. + return tostring(errorValue):find("^Unknown HTTP error: 409:") ~= nil +end + local function rejectWrongProtocolVersion(infoResponseBody) if infoResponseBody.protocolVersion ~= Config.protocolVersion then local message = ( - "Found a Rojo dev server, but it's using a different protocol version, and is incompatible." - .. "\nMake sure you have matching versions of both the Rojo plugin and server!" + "Found a Prism dev server, but it's using a different protocol version, and is incompatible." + .. "\nMake sure you have matching versions of both the Prism plugin and server!" .. "\n\nYour client is version %s, with protocol version %s. It expects server version %s." .. "\nYour server is version %s, with protocol version %s." .. "\n\nGo to https://github.com/rojo-rbx/rojo for more details." @@ -57,7 +85,7 @@ local function rejectWrongPlaceId(infoResponseBody) end local message = ( - "Found a Rojo server, but its project is set to only be used with a specific list of places." + "Found a Prism server, but its project is set to only be used with a specific list of places." .. "\nYour place ID is %u, but needs to be one of these:" .. "\n%s" .. "\n\nTo change this list, edit 'servePlaceIds' in your .project.json file." @@ -77,7 +105,7 @@ local function rejectWrongPlaceId(infoResponseBody) end local message = ( - "Found a Rojo server, but its project is set to not be used with a specific list of places." + "Found a Prism server, but its project is set to not be used with a specific list of places." .. "\nYour place ID is %u, but needs to not be one of these:" .. "\n%s" .. "\n\nTo change this list, edit 'blockedPlaceIds' in your .project.json file." @@ -328,4 +356,69 @@ function ApiContext:refPatch(ids: { string }) end) end +function ApiContext:claimNextExecJob() + local url = ("%s/api/exec/jobs/next"):format(self.__baseUrl) + + return Http.get(url):andThen(function(response) + if response.code == 204 then + return nil + end + + if response.code ~= 200 then + return Promise.reject(string.format("Unexpected exec claim response status %s", tostring(response.code))) + end + + return decodeExecResponse(response, Types.ApiExecClaimResponse, "claimed-job response") + end) +end + +function ApiContext:completeExecJob(jobId, payload) + local validJobId, jobIdError = Types.Uuid(jobId) + if not validJobId then + return Promise.reject(string.format("Cannot complete exec job: %s", tostring(jobIdError))) + end + + local encodeOk, body = pcall(Http.msgpackEncode, payload) + if not encodeOk then + return Promise.reject("Could not encode exec completion payload: " .. tostring(body)) + end + if #body > EXEC_COMPLETION_BODY_LIMIT_BYTES then + return Promise.reject( + string.format( + "Exec completion payload is %d bytes, exceeding the %d-byte server limit", + #body, + EXEC_COMPLETION_BODY_LIMIT_BYTES + ) + ) + end + + local url = ("%s/api/exec/jobs/%s/complete"):format(self.__baseUrl, jobId) + + return Http.post(url, body) + :andThen(function(response) + if response.code ~= 200 then + return Promise.reject( + string.format("Unexpected exec completion response status %s", tostring(response.code)) + ) + end + + local responseBody = decodeExecResponse(response, Types.ApiExecJobResponse, "completion response") + return Promise.resolve(responseBody):andThen(function(validatedBody) + return { + status = "accepted", + job = validatedBody, + } + end) + end) + :catch(function(errorValue) + if isCompletionConflict(errorValue) then + return { + status = "conflict", + } + end + + return Promise.reject(errorValue) + end) +end + return ApiContext diff --git a/plugin/src/App/Components/Header.lua b/plugin/src/App/Components/Header.lua index fa8c9173..d7ccb1f8 100644 --- a/plugin/src/App/Components/Header.lua +++ b/plugin/src/App/Components/Header.lua @@ -85,7 +85,7 @@ local function Header(props) ImageColor3 = theme.Header.LogoColor, ImageTransparency = props.transparency, - Size = UDim2.new(0, 60, 0, 27), + Size = UDim2.fromOffset(27, 27), LayoutOrder = 1, BackgroundTransparency = 1, diff --git a/plugin/src/App/Components/Notifications/FullscreenNotification.lua b/plugin/src/App/Components/Notifications/FullscreenNotification.lua index 47d0ae6f..ef0b12a2 100644 --- a/plugin/src/App/Components/Notifications/FullscreenNotification.lua +++ b/plugin/src/App/Components/Notifications/FullscreenNotification.lua @@ -116,7 +116,7 @@ function FullscreenNotification:render() Image = Assets.Images.Logo, ImageColor3 = theme.Header.LogoColor, BackgroundTransparency = 1, - Size = UDim2.fromOffset(60, 27), + Size = UDim2.fromOffset(27, 27), LayoutOrder = 1, }), Info = e("TextLabel", { diff --git a/plugin/src/App/StatusPages/Confirming.lua b/plugin/src/App/StatusPages/Confirming.lua index 951df0f5..8b4538bd 100644 --- a/plugin/src/App/StatusPages/Confirming.lua +++ b/plugin/src/App/StatusPages/Confirming.lua @@ -98,7 +98,7 @@ function ConfirmingPage:render() onClick = self.props.onReject, }, { Tip = e(Tooltip.Trigger, { - text = "Push Studio changes to the Rojo server", + text = "Push Studio changes to the Prism server", }), }) else nil, @@ -111,7 +111,7 @@ function ConfirmingPage:render() onClick = self.props.onAccept, }, { Tip = e(Tooltip.Trigger, { - text = "Pull Rojo server changes to Studio", + text = "Pull Prism server changes to Studio", }), }), diff --git a/plugin/src/App/StatusPages/Connected.lua b/plugin/src/App/StatusPages/Connected.lua index 2a489366..8fc9108b 100644 --- a/plugin/src/App/StatusPages/Connected.lua +++ b/plugin/src/App/StatusPages/Connected.lua @@ -468,7 +468,7 @@ function ConnectedPage:render() onClick = self.props.onDisconnect, }, { Tip = e(Tooltip.Trigger, { - text = "Disconnect from the Rojo sync server", + text = "Disconnect from the Prism sync server", }), }), diff --git a/plugin/src/App/StatusPages/NotConnected.lua b/plugin/src/App/StatusPages/NotConnected.lua index aabf7640..2d0ae466 100644 --- a/plugin/src/App/StatusPages/NotConnected.lua +++ b/plugin/src/App/StatusPages/NotConnected.lua @@ -132,7 +132,7 @@ function NotConnectedPage:render() onClick = self.props.onConnect, }, { Tip = e(Tooltip.Trigger, { - text = "Connect to a Rojo sync server", + text = "Connect to a Prism sync server", }), }), diff --git a/plugin/src/App/StatusPages/Settings/init.lua b/plugin/src/App/StatusPages/Settings/init.lua index b93eba3e..4abc5514 100644 --- a/plugin/src/App/StatusPages/Settings/init.lua +++ b/plugin/src/App/StatusPages/Settings/init.lua @@ -214,7 +214,7 @@ function SettingsPage:render() AutoConnectPlaytestServer = e(Setting, { id = "autoConnectPlaytestServer", name = "Auto Connect Playtest Server", - description = "Automatically connect game server to Rojo when playtesting while connected in Edit", + description = "Automatically connect game server to Prism when playtesting while connected in Edit", tag = "unstable", transparency = self.props.transparency, layoutOrder = layoutIncrement(), @@ -269,7 +269,7 @@ function SettingsPage:render() TimingLogsEnabled = e(Setting, { id = "timingLogsEnabled", name = "Timing Logs", - description = "Toggle logging timing of internal actions for benchmarking Rojo performance", + description = "Toggle logging timing of internal actions for benchmarking Prism performance", tag = "debug", transparency = self.props.transparency, layoutOrder = layoutIncrement(), diff --git a/plugin/src/App/init.lua b/plugin/src/App/init.lua index e6e4deee..40873df0 100644 --- a/plugin/src/App/init.lua +++ b/plugin/src/App/init.lua @@ -63,7 +63,7 @@ function App:init() self.notifId = 0 self.waypointConnection = ChangeHistoryService.OnUndo:Connect(function(action: string) - if not string.find(action, "^Rojo: Patch") then + if not string.find(action, "^Prism: Patch") then return end @@ -853,7 +853,9 @@ function App:endSession() end function App:render() - local pluginName = "Rojo " .. Version.display(Config.version) + -- Keep the legacy widget ID so existing Studio dock state is preserved. + local pluginId = "Rojo " .. Version.display(Config.version) + local pluginName = "Prism " .. Version.display(Config.version) local function createPageElement(appStatus, additionalProps) additionalProps = additionalProps or {} @@ -872,7 +874,7 @@ function App:render() e(Theme.StudioProvider, nil, { tooltip = e(Tooltip.Provider, nil, { gui = e(StudioPluginGui, { - id = pluginName, + id = pluginId, title = pluginName, active = self.state.guiEnabled, isEphemeral = false, @@ -993,10 +995,11 @@ function App:render() }), }), + -- Keep action IDs stable so existing Studio shortcuts continue to work. toggleAction = e(StudioPluginAction, { name = "RojoConnection", - title = "Rojo: Connect/Disconnect", - description = "Toggles the server for a Rojo sync session", + title = "Prism: Connect/Disconnect", + description = "Toggles the server for a Prism sync session", icon = Assets.Images.PluginButton, bindable = true, onTriggered = function() @@ -1012,8 +1015,8 @@ function App:render() connectAction = e(StudioPluginAction, { name = "RojoConnect", - title = "Rojo: Connect", - description = "Connects the server for a Rojo sync session", + title = "Prism: Connect", + description = "Connects the server for a Prism sync session", icon = Assets.Images.PluginButton, bindable = true, onTriggered = function() @@ -1025,8 +1028,8 @@ function App:render() disconnectAction = e(StudioPluginAction, { name = "RojoDisconnect", - title = "Rojo: Disconnect", - description = "Disconnects the server for a Rojo sync session", + title = "Prism: Disconnect", + description = "Disconnects the server for a Prism sync session", icon = Assets.Images.PluginButton, bindable = true, onTriggered = function() @@ -1040,8 +1043,8 @@ function App:render() name = pluginName, }, { button = e(StudioToggleButton, { - name = "Rojo", - tooltip = "Show or hide the Rojo panel", + name = "Rojo", -- Legacy toolbar button ID. + tooltip = "Show or hide the Prism panel", icon = self.state.toolbarIcon, active = self.state.guiEnabled, enabled = true, diff --git a/plugin/src/Assets.lua b/plugin/src/Assets.lua index c2c168ee..01891b72 100644 --- a/plugin/src/Assets.lua +++ b/plugin/src/Assets.lua @@ -16,8 +16,8 @@ local Assets = { }, }, Images = { - Logo = "rbxassetid://5990772764", - PluginButton = "rbxassetid://3405341609", + Logo = "rbxassetid://84145747248222", + PluginButton = "rbxassetid://84145747248222", PluginButtonConnected = "rbxassetid://9529783993", PluginButtonWarning = "rbxassetid://9529784530", Icons = { diff --git a/plugin/src/ChangeBatcher/createPatchSet.lua b/plugin/src/ChangeBatcher/createPatchSet.lua index 5502d0d6..547e230b 100644 --- a/plugin/src/ChangeBatcher/createPatchSet.lua +++ b/plugin/src/ChangeBatcher/createPatchSet.lua @@ -19,7 +19,7 @@ return function(instanceMap, propertyChanges) local instanceId = instanceMap.fromInstances[instance] if instanceId == nil then - Log.warn("Ignoring change for instance {:?} as it is unknown to Rojo", instance) + Log.warn("Ignoring change for instance {:?} as it is unknown to Prism", instance) continue end diff --git a/plugin/src/Exec.lua b/plugin/src/Exec.lua new file mode 100644 index 00000000..f74dbdd6 --- /dev/null +++ b/plugin/src/Exec.lua @@ -0,0 +1,796 @@ +local ChangeHistoryService = game:GetService("ChangeHistoryService") +local HttpService = game:GetService("HttpService") +local RunService = game:GetService("RunService") + +local Packages = script.Parent.Parent.Packages +local Http = require(Packages.Http) +local Log = require(Packages.Log) +local Promise = require(Packages.Promise) + +local POLL_INTERVAL_SECONDS = 0.25 +local COMPLETION_RETRY_DELAY_SECONDS = 0.25 +local COMPLETION_ATTEMPTS = 3 +local MAX_COMPLETION_BODY_BYTES = 256 * 1024 +local MAX_RESULT_DEPTH = 32 +local MAX_RESULT_ELEMENTS = 10_000 +local MAX_LOG_ENTRIES = 1_000 +local MAX_LOG_ENTRY_BYTES = 8 * 1024 +local MAX_ERROR_BYTES = 64 * 1024 +local MAX_TRACEBACK_BYTES = 64 * 1024 +local LOG_TRUNCATION_MESSAGE = "[Prism Exec] Logs truncated to fit protocol limits" + +-- The current Rust claim response does not expose its execution deadline. Its +-- store uses 30 seconds, so leave one second for the completion request. This +-- should become a wire value instead of a compatibility constant when the +-- protocol grows an execution-timeout field. +local EXECUTION_TIMEOUT_SECONDS = 29 + +local temporaryNameCounter = 0 + +local function safeTostring(value, stringify): string + local ok, rendered = pcall(stringify or tostring, value) + if ok and type(rendered) == "string" then + return rendered + end + + return "" +end + +local function truncateUtf8(value: string, limit: number, suffix: string?): string + if #value <= limit then + return value + end + + suffix = suffix or "" + local contentLimit = math.max(0, limit - #suffix) + local truncated = value:sub(1, contentLimit) + while #truncated > 0 and utf8.len(truncated) == nil do + truncated = truncated:sub(1, #truncated - 1) + end + + return truncated .. suffix +end + +local function captureError(errorValue, tracebackFunction) + local message = truncateUtf8(safeTostring(errorValue, tostring), MAX_ERROR_BYTES, "... [truncated]") + local tracebackOk, traceback = pcall(tracebackFunction, message, 2) + if not tracebackOk then + traceback = "" + else + traceback = safeTostring(traceback, tostring) + end + + return { + error = message, + traceback = truncateUtf8(traceback, MAX_TRACEBACK_BYTES, "... [truncated]"), + } +end + +local function makeProtectedOnce(callback) + local called = false + local packedResult = nil + + return function(...) + if not called then + called = true + packedResult = table.pack(pcall(callback, ...)) + end + + return table.unpack(packedResult, 1, packedResult.n) + end +end + +local function sanitizeScriptName(scriptName: string): string + local sanitized = scriptName:gsub("[^%w%._%-]", "_"):gsub("_+", "_") + sanitized = sanitized:sub(1, 48) + + if sanitized == "" or sanitized:find("%w") == nil then + return "script" + end + + return sanitized +end + +local function makeTemporaryName(scriptName: string, uniqueToken: string): string + temporaryNameCounter += 1 + + return string.format( + "__RojoExec_%s_%d_%s", + sanitizeScriptName(scriptName), + temporaryNameCounter, + sanitizeScriptName(uniqueToken) + ) +end + +local function buildWrapper(source: string): string + return "return function(rojoExec)\n" .. "\tlocal plugin = nil\n" .. source .. "\nend\n" +end + +local function encodeExecValue(value) + local seen = {} + local elementCount = 0 + + local function encode(current, depth, path) + elementCount += 1 + if elementCount > MAX_RESULT_ELEMENTS then + return nil, string.format("Exec result exceeds the %d-element limit", MAX_RESULT_ELEMENTS) + end + if depth > MAX_RESULT_DEPTH then + return nil, string.format("Exec result exceeds the maximum depth of %d at %s", MAX_RESULT_DEPTH, path) + end + + local valueType = type(current) + if valueType == "nil" then + return { kind = "nil" } + elseif valueType == "string" then + return { kind = "string", value = current } + elseif valueType == "number" then + if current ~= current or current == math.huge or current == -math.huge then + return nil, string.format("Exec result contains a non-finite number at %s", path) + end + return { kind = "number", value = current } + elseif valueType == "boolean" then + return { kind = "boolean", value = current } + elseif valueType ~= "table" then + return nil, string.format("Unsupported exec result type '%s' at %s", typeof(current), path) + end + + if seen[current] then + return nil, string.format("Exec result contains a cycle at %s", path) + end + seen[current] = true + + local numericKeys = 0 + local stringKeys = {} + local maximumIndex = 0 + for key in current do + local keyType = type(key) + if keyType == "number" and key >= 1 and key % 1 == 0 then + numericKeys += 1 + maximumIndex = math.max(maximumIndex, key) + elseif keyType == "string" then + table.insert(stringKeys, key) + else + seen[current] = nil + return nil, string.format("Exec result table at %s has unsupported key type '%s'", path, typeof(key)) + end + end + + if numericKeys > 0 and #stringKeys > 0 then + seen[current] = nil + return nil, string.format("Exec result table at %s mixes array and dictionary keys", path) + end + + local encoded + if numericKeys > 0 then + if maximumIndex ~= numericKeys then + seen[current] = nil + return nil, string.format("Exec result array at %s is sparse", path) + end + + local values = table.create(numericKeys) + for index = 1, numericKeys do + local child, childError = encode(current[index], depth + 1, string.format("%s[%d]", path, index)) + if child == nil then + seen[current] = nil + return nil, childError + end + values[index] = child + end + encoded = { kind = "array", value = values } + else + table.sort(stringKeys) + local entries = table.create(#stringKeys) + for index, key in stringKeys do + local child, childError = encode(current[key], depth + 1, string.format("%s.%s", path, key)) + if child == nil then + seen[current] = nil + return nil, childError + end + entries[index] = { + key = key, + value = child, + } + end + encoded = { kind = "table", value = entries } + end + + seen[current] = nil + return encoded + end + + return encode(value, 1, "result") +end + +local function makeLogCollector(stringify) + local entries = {} + local wasTruncated = false + + local collector = {} + + function collector:add(level, ...) + if #entries >= MAX_LOG_ENTRIES then + wasTruncated = true + return + end + + local renderedArguments = table.create(select("#", ...)) + for index = 1, select("#", ...) do + renderedArguments[index] = safeTostring(select(index, ...), stringify) + end + + local message = table.concat(renderedArguments, "\t") + if #message > MAX_LOG_ENTRY_BYTES then + message = truncateUtf8(message, MAX_LOG_ENTRY_BYTES, "... [truncated]") + wasTruncated = true + end + + table.insert(entries, { + level = level, + message = message, + }) + end + + function collector:finish() + local result = table.clone(entries) + if wasTruncated then + if #result >= MAX_LOG_ENTRIES then + table.remove(result) + end + table.insert(result, { + level = "warn", + message = LOG_TRUNCATION_MESSAGE, + }) + end + + return result + end + + return collector +end + +local function completionPayloadSize(payload, encodePayload) + local ok, body = pcall(encodePayload, payload) + if not ok then + return nil, safeTostring(body, tostring) + end + if type(body) ~= "string" then + return nil, "MessagePack encoder did not return a string" + end + + return #body +end + +local function boundCompletionPayload(payload, encodePayload) + if payload.error ~= nil then + payload.error = truncateUtf8(payload.error, MAX_ERROR_BYTES, "... [truncated]") + end + if payload.traceback ~= nil then + payload.traceback = truncateUtf8(payload.traceback, MAX_TRACEBACK_BYTES, "... [truncated]") + end + + local size, sizeError = completionPayloadSize(payload, encodePayload) + if size == nil then + return { + outcome = "runtimeFailure", + error = "Could not encode exec completion payload: " .. sizeError, + logs = {}, + } + end + if size <= MAX_COMPLETION_BODY_BYTES then + return payload + end + + local removedLogs = false + while #payload.logs > 0 and size > MAX_COMPLETION_BODY_BYTES do + table.remove(payload.logs) + removedLogs = true + size = completionPayloadSize(payload, encodePayload) + if size == nil then + break + end + end + + if removedLogs then + local marker = { + level = "warn", + message = LOG_TRUNCATION_MESSAGE, + } + table.insert(payload.logs, marker) + local markedSize = completionPayloadSize(payload, encodePayload) + if markedSize == nil or markedSize > MAX_COMPLETION_BODY_BYTES then + table.remove(payload.logs) + else + size = markedSize + end + end + + if size ~= nil and size <= MAX_COMPLETION_BODY_BYTES then + return payload + end + + if payload.outcome == "success" then + return boundCompletionPayload({ + outcome = "runtimeFailure", + error = string.format( + "Exec result exceeds the %d-byte completion payload limit", + MAX_COMPLETION_BODY_BYTES + ), + logs = payload.logs, + }, encodePayload) + end + + payload.traceback = nil + return payload +end + +local function failurePayload(outcome, errorMessage, traceback) + return { + outcome = outcome, + error = truncateUtf8(safeTostring(errorMessage, tostring), MAX_ERROR_BYTES, "... [truncated]"), + traceback = traceback, + logs = {}, + } +end + +local function makeExecutionController(dependencies) + local controller = { + temporaryModule = nil, + recording = nil, + logs = makeLogCollector(dependencies.stringify), + } + + controller.finishRecording = makeProtectedOnce(function() + if controller.recording ~= nil then + dependencies.finishRecording(controller.recording) + end + end) + + controller.cleanup = makeProtectedOnce(function() + if controller.temporaryModule ~= nil then + dependencies.cleanupTemporaryModule(controller.temporaryModule) + end + end) + + return controller +end + +local function finalizeController(controller, payload, dependencies) + local finishOk, finishError = controller.finishRecording() + if not finishOk then + local captured = captureError(finishError, dependencies.traceback) + local message = "Failed to finish the Prism exec undo recording: " .. captured.error + if payload.outcome == "success" then + payload = failurePayload("runtimeFailure", message, captured.traceback) + else + payload.error = payload.error .. "\n" .. message + payload.traceback = payload.traceback or captured.traceback + end + end + + local cleanupOk, cleanupError = controller.cleanup() + if not cleanupOk then + local captured = captureError(cleanupError, dependencies.traceback) + local message = "Failed to clean up the temporary Prism exec ModuleScript: " .. captured.error + if payload.outcome == "success" then + payload = failurePayload("runtimeFailure", message, captured.traceback) + else + payload.error = payload.error .. "\n" .. message + payload.traceback = payload.traceback or captured.traceback + end + end + + payload.logs = controller.logs:finish() + return boundCompletionPayload(payload, dependencies.encodePayload) +end + +local function runJob(job, dependencies, controller) + local payload = nil + local controllerOk, controllerError = xpcall(function() + if not dependencies.isEdit() then + payload = failurePayload("rejected", "Prism exec is available only in Studio edit mode") + return + end + + local temporaryName = makeTemporaryName(job.scriptName, dependencies.generateUniqueToken()) + local wrapper = buildWrapper(job.source) + controller.temporaryModule = dependencies.createTemporaryModule() + dependencies.configureTemporaryModule(controller.temporaryModule, temporaryName, wrapper) + + if not dependencies.isEdit() then + payload = failurePayload("rejected", "Studio left edit mode before the exec wrapper could be compiled") + return + end + + local loadOk, loadedValue = pcall(dependencies.requireTemporaryModule, controller.temporaryModule) + if not loadOk then + -- Studio reports the detailed parser diagnostic to Output, but require + -- only returns the generic module-load error. Keep the unique module + -- name in our error so the two messages can be correlated. + payload = failurePayload( + "compileFailure", + string.format("%s (temporary module: %s)", safeTostring(loadedValue, tostring), temporaryName) + ) + return + end + + if type(loadedValue) ~= "function" then + payload = failurePayload( + "compileFailure", + string.format("Exec wrapper returned '%s' instead of a callable function", type(loadedValue)) + ) + return + end + + controller.recording = dependencies.tryBeginRecording("Prism Exec: " .. job.scriptName) + if controller.recording == nil then + payload = failurePayload("rejected", "Could not begin the Prism exec undo recording") + return + end + + if not dependencies.isEdit() then + payload = failurePayload("rejected", "Studio left edit mode before the exec function could be invoked") + return + end + + local hasExplicitOutput = false + local explicitOutput = nil + local rojoExec = table.freeze({ + output = function(value) + hasExplicitOutput = true + explicitOutput = value + end, + print = function(...) + controller.logs:add("print", ...) + end, + warn = function(...) + controller.logs:add("warn", ...) + end, + }) + + local runtimeOk, runtimeValue = xpcall(function() + return loadedValue(rojoExec) + end, function(errorValue) + return captureError(errorValue, dependencies.traceback) + end) + + if not runtimeOk then + payload = failurePayload("runtimeFailure", runtimeValue.error, runtimeValue.traceback) + return + end + + local resultValue = if hasExplicitOutput then explicitOutput else runtimeValue + local encodedResult, resultError = encodeExecValue(resultValue) + if encodedResult == nil then + payload = failurePayload("runtimeFailure", resultError) + return + end + + payload = { + outcome = "success", + result = encodedResult, + logs = {}, + } + end, function(errorValue) + return captureError(errorValue, dependencies.traceback) + end) + + if not controllerOk then + payload = failurePayload("runtimeFailure", controllerError.error, controllerError.traceback) + elseif payload == nil then + payload = failurePayload("runtimeFailure", "Prism exec ended without producing a completion payload") + end + + return finalizeController(controller, payload, dependencies) +end + +local defaultExecutionDependencies = { + isEdit = function() + return RunService:IsEdit() + end, + generateUniqueToken = function() + return HttpService:GenerateGUID(false) + end, + createTemporaryModule = function() + return Instance.new("ModuleScript") + end, + configureTemporaryModule = function(temporaryModule, name, wrapper) + temporaryModule.Name = name + temporaryModule.Archivable = false + temporaryModule.Source = wrapper + temporaryModule.Parent = script + end, + requireTemporaryModule = function(temporaryModule) + return require(temporaryModule) + end, + tryBeginRecording = function(label) + return ChangeHistoryService:TryBeginRecording(label) + end, + finishRecording = function(recording) + ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit) + end, + cleanupTemporaryModule = function(temporaryModule) + temporaryModule:Destroy() + end, + traceback = debug.traceback, + stringify = tostring, + encodePayload = Http.msgpackEncode, + spawn = task.spawn, + cancel = task.cancel, + delay = Promise.delay, +} + +local function startExecution(job, dependencies, timeoutSeconds) + dependencies = dependencies or defaultExecutionDependencies + timeoutSeconds = timeoutSeconds or EXECUTION_TIMEOUT_SECONDS + + local controller = makeExecutionController(dependencies) + local workerThread = nil + local workerPromise = Promise.new(function(resolve, _reject, onCancel) + onCancel(function() + if workerThread ~= nil then + pcall(dependencies.cancel, workerThread) + end + controller.finishRecording() + controller.cleanup() + end) + + workerThread = dependencies.spawn(function() + resolve({ + kind = "completed", + payload = runJob(job, dependencies, controller), + }) + end) + end) + + local timeoutPromise = dependencies.delay(timeoutSeconds):andThen(function() + return { + kind = "timeout", + } + end) + + return Promise.race({ workerPromise, timeoutPromise }):andThen(function(event) + if event.kind == "completed" then + return event.payload + end + + -- This is a soft timeout. A yielding worker can be cancelled, but a + -- non-yielding infinite loop can block this controller until Studio's + -- own script watchdog intervenes. + local payload = failurePayload("timeout", string.format("Execution exceeded %.3g seconds", timeoutSeconds)) + return finalizeController(controller, payload, dependencies) + end) +end + +local Exec = {} +Exec.__index = Exec + +function Exec.new(options) + assert(type(options) == "table", "Exec options must be a table") + assert(type(options.apiContext) == "table", "Exec apiContext must be a table") + + local dependencies = options.dependencies or {} + local self = { + __apiContext = options.apiContext, + __isEdit = dependencies.isEdit or defaultExecutionDependencies.isEdit, + __delay = dependencies.delay or Promise.delay, + __execute = dependencies.execute or function(job) + return startExecution(job, defaultExecutionDependencies, EXECUTION_TIMEOUT_SECONDS) + end, + __onError = options.onError or function(errorValue) + Log.error("Prism exec poller failed: {}", errorValue) + end, + __running = false, + __generation = 0, + __busy = false, + __scheduledPromise = nil, + __executionPromise = nil, + __currentJobId = nil, + } + + return setmetatable(self, Exec) +end + +function Exec:__isCurrent(generation) + return self.__running and self.__generation == generation +end + +function Exec:__fail(generation, errorValue) + if not self:__isCurrent(generation) then + return + end + + self.__onError(errorValue) +end + +function Exec:__schedulePoll(generation, delaySeconds) + if not self:__isCurrent(generation) then + return + end + + local delayPromise = if delaySeconds == 0 then Promise.resolve() else self.__delay(delaySeconds) + self.__scheduledPromise = delayPromise + :andThen(function() + if self:__isCurrent(generation) then + self:__poll(generation) + end + end) + :catch(function(errorValue) + self:__fail(generation, errorValue) + end) +end + +function Exec:__releaseJobAndPoll(generation) + if not self:__isCurrent(generation) then + return + end + + self.__busy = false + self.__executionPromise = nil + self.__currentJobId = nil + self:__schedulePoll(generation, POLL_INTERVAL_SECONDS) +end + +function Exec:__complete(generation, jobId, payload, attempt) + if not self:__isCurrent(generation) then + return + end + + local requestOk, completionPromise = pcall(self.__apiContext.completeExecJob, self.__apiContext, jobId, payload) + if not requestOk then + self:__fail(generation, completionPromise) + return + end + + completionPromise + :andThen(function(result) + if not self:__isCurrent(generation) then + return + end + + if result.status == "conflict" then + Log.warn( + "Prism exec completion for job {} returned HTTP 409; treating it as already committed or expired", + jobId + ) + end + + self:__releaseJobAndPoll(generation) + end) + :catch(function(errorValue) + if not self:__isCurrent(generation) then + return + end + + if attempt >= COMPLETION_ATTEMPTS then + self:__fail( + generation, + string.format( + "Could not acknowledge Prism exec job %s after %d attempts: %s", + jobId, + COMPLETION_ATTEMPTS, + safeTostring(errorValue, tostring) + ) + ) + return + end + + self.__delay(COMPLETION_RETRY_DELAY_SECONDS):andThen(function() + if self:__isCurrent(generation) then + self:__complete(generation, jobId, payload, attempt + 1) + end + end) + end) +end + +function Exec:__executeClaimedJob(generation, job) + if not self:__isCurrent(generation) then + return + end + + self.__currentJobId = job.jobId + local executionOk, executionPromise = pcall(self.__execute, job) + if not executionOk then + self:__fail(generation, executionPromise) + return + end + + self.__executionPromise = executionPromise + executionPromise + :andThen(function(payload) + if self:__isCurrent(generation) then + self:__complete(generation, job.jobId, payload, 1) + end + end) + :catch(function(errorValue) + self:__fail(generation, errorValue) + end) +end + +function Exec:__poll(generation) + if not self:__isCurrent(generation) or self.__busy then + return + end + + if not self.__isEdit() then + self:__schedulePoll(generation, POLL_INTERVAL_SECONDS) + return + end + + self.__busy = true + local claimOk, claimPromise = pcall(self.__apiContext.claimNextExecJob, self.__apiContext) + if not claimOk then + self:__fail(generation, claimPromise) + return + end + + claimPromise + :andThen(function(job) + if not self:__isCurrent(generation) then + return + end + + if job == nil then + self.__busy = false + self:__schedulePoll(generation, POLL_INTERVAL_SECONDS) + return + end + + self:__executeClaimedJob(generation, job) + end) + :catch(function(errorValue) + self:__fail(generation, errorValue) + end) +end + +function Exec:start() + if self.__running then + return + end + + self.__running = true + self.__generation += 1 + self:__schedulePoll(self.__generation, 0) +end + +function Exec:stop() + if not self.__running then + return + end + + self.__running = false + self.__generation += 1 + + if self.__scheduledPromise ~= nil then + self.__scheduledPromise:cancel() + self.__scheduledPromise = nil + end + if self.__executionPromise ~= nil then + self.__executionPromise:cancel() + self.__executionPromise = nil + end + + self.__busy = false + self.__currentJobId = nil +end + +Exec._test = { + boundCompletionPayload = boundCompletionPayload, + buildWrapper = buildWrapper, + encodeExecValue = encodeExecValue, + makeExecutionController = makeExecutionController, + makeLogCollector = makeLogCollector, + makeProtectedOnce = makeProtectedOnce, + makeTemporaryName = makeTemporaryName, + runJob = runJob, + sanitizeScriptName = sanitizeScriptName, + startExecution = startExecution, + constants = { + completionAttempts = COMPLETION_ATTEMPTS, + maxCompletionBodyBytes = MAX_COMPLETION_BODY_BYTES, + maxLogEntries = MAX_LOG_ENTRIES, + maxLogEntryBytes = MAX_LOG_ENTRY_BYTES, + }, +} + +return Exec diff --git a/plugin/src/Exec.spec.lua b/plugin/src/Exec.spec.lua new file mode 100644 index 00000000..8f327ce7 --- /dev/null +++ b/plugin/src/Exec.spec.lua @@ -0,0 +1,713 @@ +return function() + local Packages = script.Parent.Parent.Packages + local Http = require(Packages.Http) + local Promise = require(Packages.Promise) + local Exec = require(script.Parent.Exec) + local Types = require(script.Parent.Types) + local helpers = Exec._test + + local function countPlainOccurrences(haystack, needle) + local count = 0 + local position = 1 + while true do + local first, last = haystack:find(needle, position, true) + if first == nil then + return count + end + count += 1 + position = last + 1 + end + end + + local function makeRunDependencies() + local state = { + cleanupCount = 0, + editCheckCount = 0, + finishCount = 0, + invocationCount = 0, + loaded = function() + return nil + end, + recording = "recording", + } + local dependencies = { + isEdit = function() + state.editCheckCount += 1 + return true + end, + generateUniqueToken = function() + return "test-token" + end, + createTemporaryModule = function() + return {} + end, + configureTemporaryModule = function(temporaryModule, name, wrapper) + temporaryModule.name = name + temporaryModule.wrapper = wrapper + end, + requireTemporaryModule = function() + return function(rojoExec) + state.invocationCount += 1 + return state.loaded(rojoExec) + end + end, + tryBeginRecording = function() + return state.recording + end, + finishRecording = function() + state.finishCount += 1 + end, + cleanupTemporaryModule = function() + state.cleanupCount += 1 + end, + traceback = function(message) + return "traceback: " .. message + end, + stringify = tostring, + encodePayload = Http.msgpackEncode, + } + + return dependencies, state + end + + local function runWith(dependencies, source, scriptName) + local job = { + jobId = "00000000-0000-0000-0000-000000000000", + scriptName = scriptName or "test.lua", + source = source or "return nil", + state = "claimed", + } + local controller = helpers.makeExecutionController(dependencies) + return helpers.runJob(job, dependencies, controller) + end + + local function makeScheduler() + local queue = {} + return { + delay = function() + return Promise.new(function(resolve) + table.insert(queue, resolve) + end) + end, + step = function() + local resolve = table.remove(queue, 1) + assert(resolve ~= nil, "no scheduled delay to resolve") + resolve() + end, + count = function() + return #queue + end, + } + end + + local function claimedJob() + return { + jobId = "00000000-0000-0000-0000-000000000001", + scriptName = "test.lua", + source = "return true", + state = "claimed", + } + end + + describe("Exec wrapper and names", function() + it("contains submitted source exactly once", function() + local source = "local uniqueMarker = 42\nreturn uniqueMarker" + expect(countPlainOccurrences(helpers.buildWrapper(source), source)).to.equal(1) + end) + + it("supports top-level return and shadows plugin", function() + local wrapper = helpers.buildWrapper("return true") + expect(wrapper:find("return function(rojoExec)", 1, true)).to.equal(1) + expect(wrapper:find("local plugin = nil", 1, true)).to.be.ok() + expect(wrapper:find("\nreturn true\nend\n", 1, true)).to.be.ok() + end) + + it("sanitizes and uniquifies temporary names", function() + local sanitized = helpers.sanitizeScriptName("bad/name\0\n with spaces") + local first = helpers.makeTemporaryName(sanitized, "token") + local second = helpers.makeTemporaryName(sanitized, "token") + expect(sanitized:find("[^%w%._%-]")).to.equal(nil) + expect(first).never.to.equal(second) + end) + end) + + describe("Exec result encoding", function() + it("encodes nil", function() + local encoded = helpers.encodeExecValue(nil) + expect(encoded.kind).to.equal("nil") + end) + + it("encodes strings", function() + local encoded = helpers.encodeExecValue("hello") + expect(encoded.kind).to.equal("string") + expect(encoded.value).to.equal("hello") + end) + + it("encodes numbers", function() + local encoded = helpers.encodeExecValue(4.25) + expect(encoded.kind).to.equal("number") + expect(encoded.value).to.equal(4.25) + end) + + it("encodes booleans", function() + local encoded = helpers.encodeExecValue(false) + expect(encoded.kind).to.equal("boolean") + expect(encoded.value).to.equal(false) + end) + + it("encodes dense arrays in order", function() + local encoded = helpers.encodeExecValue({ "first", 2, true }) + expect(encoded.kind).to.equal("array") + expect(encoded.value[1].kind).to.equal("string") + expect(encoded.value[1].value).to.equal("first") + expect(encoded.value[2].kind).to.equal("number") + expect(encoded.value[2].value).to.equal(2) + expect(encoded.value[3].kind).to.equal("boolean") + expect(encoded.value[3].value).to.equal(true) + end) + + it("sorts string-key tables deterministically", function() + local encoded = helpers.encodeExecValue({ zed = 1, alpha = 2 }) + expect(encoded.kind).to.equal("table") + expect(encoded.value[1].key).to.equal("alpha") + expect(encoded.value[2].key).to.equal("zed") + end) + + it("rejects cycles", function() + local value = {} + value.self = value + local encoded, errorMessage = helpers.encodeExecValue(value) + expect(encoded).to.equal(nil) + expect(errorMessage:find("cycle", 1, true)).to.be.ok() + end) + + it("rejects sparse arrays", function() + local encoded, errorMessage = helpers.encodeExecValue({ [1] = true, [3] = true }) + expect(encoded).to.equal(nil) + expect(errorMessage:find("sparse", 1, true)).to.be.ok() + end) + + it("rejects mixed array and dictionary tables", function() + local encoded, errorMessage = helpers.encodeExecValue({ [1] = true, named = true }) + expect(encoded).to.equal(nil) + expect(errorMessage:find("mixes", 1, true)).to.be.ok() + end) + + it("rejects non-string dictionary keys", function() + local encoded, errorMessage = helpers.encodeExecValue({ [false] = true }) + expect(encoded).to.equal(nil) + expect(errorMessage:find("key type", 1, true)).to.be.ok() + end) + + it("rejects Instances", function() + local instance = Instance.new("Folder") + local encoded, errorMessage = helpers.encodeExecValue(instance) + instance:Destroy() + expect(encoded).to.equal(nil) + expect(errorMessage:find("Instance", 1, true)).to.be.ok() + end) + + it("rejects non-finite numbers", function() + local nanEncoded, nanError = helpers.encodeExecValue(0 / 0) + local infinityEncoded, infinityError = helpers.encodeExecValue(math.huge) + expect(nanEncoded).to.equal(nil) + expect(nanError:find("non-finite", 1, true)).to.be.ok() + expect(infinityEncoded).to.equal(nil) + expect(infinityError:find("non-finite", 1, true)).to.be.ok() + end) + end) + + describe("Exec logs", function() + it("preserves print and warn sequence", function() + local collector = helpers.makeLogCollector(tostring) + collector:add("print", "hello", 2) + collector:add("warn", "careful") + collector:add("print", "done") + local logs = collector:finish() + expect(#logs).to.equal(3) + expect(logs[1].level).to.equal("print") + expect(logs[1].message).to.equal("hello\t2") + expect(logs[2].level).to.equal("warn") + expect(logs[2].message).to.equal("careful") + expect(logs[3].level).to.equal("print") + expect(logs[3].message).to.equal("done") + end) + + it("bounds oversized entries and adds a warning", function() + local collector = helpers.makeLogCollector(tostring) + collector:add("print", string.rep("x", helpers.constants.maxLogEntryBytes + 100)) + local logs = collector:finish() + expect(#logs).to.equal(2) + expect(#logs[1].message <= helpers.constants.maxLogEntryBytes).to.equal(true) + expect(logs[2].level).to.equal("warn") + end) + + it("never exceeds the entry count limit", function() + local collector = helpers.makeLogCollector(tostring) + for index = 1, helpers.constants.maxLogEntries + 1 do + collector:add("print", index) + end + local logs = collector:finish() + expect(#logs).to.equal(helpers.constants.maxLogEntries) + expect(logs[#logs].level).to.equal("warn") + end) + end) + + describe("Exec controller", function() + it("posts a scalar success result", function() + local dependencies, state = makeRunDependencies() + state.loaded = function() + return true + end + local payload = runWith(dependencies) + expect(payload.outcome).to.equal("success") + expect(payload.result.kind).to.equal("boolean") + expect(payload.result.value).to.equal(true) + end) + + it("lets the last explicit output override the return value", function() + local dependencies, state = makeRunDependencies() + state.loaded = function(rojoExec) + rojoExec.output("first") + rojoExec.output("last") + return "returned" + end + local payload = runWith(dependencies) + expect(payload.result.kind).to.equal("string") + expect(payload.result.value).to.equal("last") + end) + + it("includes helper logs in a success payload", function() + local dependencies, state = makeRunDependencies() + state.loaded = function(rojoExec) + rojoExec.print("one") + rojoExec.warn("two") + end + local payload = runWith(dependencies) + expect(#payload.logs).to.equal(2) + expect(payload.logs[1].level).to.equal("print") + expect(payload.logs[1].message).to.equal("one") + expect(payload.logs[2].level).to.equal("warn") + expect(payload.logs[2].message).to.equal("two") + end) + + it("classifies require errors as compile failures", function() + local dependencies, state = makeRunDependencies() + dependencies.requireTemporaryModule = function() + error("Requested module experienced an error while loading") + end + local payload = runWith(dependencies, "local =", "compile.lua") + expect(payload.outcome).to.equal("compileFailure") + expect(payload.error:find("Requested module experienced", 1, true)).to.be.ok() + expect(payload.error:find("__RojoExec_", 1, true)).to.be.ok() + expect(state.invocationCount).to.equal(0) + end) + + it("captures runtime failures and tracebacks", function() + local dependencies, state = makeRunDependencies() + state.loaded = function() + error("intentional runtime failure") + end + local payload = runWith(dependencies) + expect(payload.outcome).to.equal("runtimeFailure") + expect(payload.error:find("intentional runtime failure", 1, true)).to.be.ok() + expect(payload.traceback:find("traceback:", 1, true)).to.be.ok() + end) + + it("starts and finishes one recording", function() + local dependencies, state = makeRunDependencies() + local payload = runWith(dependencies) + expect(payload.outcome).to.equal("success") + expect(state.finishCount).to.equal(1) + end) + + it("commits the recording after a partial runtime failure", function() + local dependencies, state = makeRunDependencies() + state.loaded = function() + error("after mutation") + end + local payload = runWith(dependencies) + expect(payload.outcome).to.equal("runtimeFailure") + expect(state.finishCount).to.equal(1) + end) + + it("cleans up exactly once", function() + local dependencies, state = makeRunDependencies() + local controller = helpers.makeExecutionController(dependencies) + helpers.runJob(claimedJob(), dependencies, controller) + controller.cleanup() + expect(state.cleanupCount).to.equal(1) + end) + + it("does not invoke when recording cannot start", function() + local dependencies, state = makeRunDependencies() + state.recording = nil + local payload = runWith(dependencies) + expect(payload.outcome).to.equal("rejected") + expect(state.invocationCount).to.equal(0) + expect(state.finishCount).to.equal(0) + end) + + it("rejects an edit-to-play race before invocation", function() + local dependencies, state = makeRunDependencies() + dependencies.isEdit = function() + state.editCheckCount += 1 + return state.editCheckCount < 3 + end + local payload = runWith(dependencies) + expect(payload.outcome).to.equal("rejected") + expect(state.invocationCount).to.equal(0) + expect(state.finishCount).to.equal(1) + end) + + it("returns a timeout payload and cancels the worker", function() + local dependencies, state = makeRunDependencies() + local releaseWorker = Instance.new("BindableEvent") + local resolveInvocation + local invocationPromise = Promise.new(function(resolve) + resolveInvocation = resolve + end) + local resolveTimeout + state.loaded = function() + resolveInvocation() + releaseWorker.Event:Wait() + end + dependencies.spawn = task.spawn + dependencies.cancel = task.cancel + dependencies.delay = function() + return Promise.new(function(resolve) + resolveTimeout = resolve + end) + end + + local executionPromise = helpers.startExecution(claimedJob(), dependencies, 0.01) + expect(invocationPromise:await()).to.equal(true) + resolveTimeout() + local success, payload = executionPromise:await() + releaseWorker:Destroy() + + expect(success).to.equal(true) + expect(payload.outcome).to.equal("timeout") + expect(state.finishCount).to.equal(1) + expect(state.cleanupCount).to.equal(1) + end) + end) + + describe("Exec poller", function() + it("starts only once", function() + local scheduler = makeScheduler() + local claimCount = 0 + local poller = Exec.new({ + apiContext = { + claimNextExecJob = function() + claimCount += 1 + return Promise.resolve(nil) + end, + }, + dependencies = { + delay = scheduler.delay, + isEdit = function() + return true + end, + }, + }) + poller:start() + poller:start() + expect(claimCount).to.equal(1) + poller:stop() + end) + + it("treats an empty claim as idle polling", function() + local scheduler = makeScheduler() + local executeCount = 0 + local poller = Exec.new({ + apiContext = { + claimNextExecJob = function() + return Promise.resolve(nil) + end, + }, + dependencies = { + delay = scheduler.delay, + isEdit = function() + return true + end, + execute = function() + executeCount += 1 + return Promise.resolve() + end, + }, + }) + poller:start() + expect(executeCount).to.equal(0) + expect(scheduler.count()).to.equal(1) + poller:stop() + end) + + it("claims and executes one job exactly once", function() + local scheduler = makeScheduler() + local executeCount = 0 + local completeCount = 0 + local api = { + claimNextExecJob = function() + return Promise.resolve(claimedJob()) + end, + completeExecJob = function() + completeCount += 1 + return Promise.resolve({ status = "accepted" }) + end, + } + local poller = Exec.new({ + apiContext = api, + dependencies = { + delay = scheduler.delay, + isEdit = function() + return true + end, + execute = function() + executeCount += 1 + return Promise.resolve({ outcome = "success", result = { kind = "nil" }, logs = {} }) + end, + }, + }) + poller:start() + expect(executeCount).to.equal(1) + expect(completeCount).to.equal(1) + poller:stop() + end) + + it("does not claim again while execution is pending", function() + local scheduler = makeScheduler() + local claimCount = 0 + local resolveExecution + local poller = Exec.new({ + apiContext = { + claimNextExecJob = function() + claimCount += 1 + return Promise.resolve(claimedJob()) + end, + }, + dependencies = { + delay = scheduler.delay, + isEdit = function() + return true + end, + execute = function() + return Promise.new(function(resolve) + resolveExecution = resolve + end) + end, + }, + }) + poller:start() + poller:__poll(poller.__generation) + expect(claimCount).to.equal(1) + poller:stop() + resolveExecution({ outcome = "success", logs = {} }) + end) + + it("stops scheduled polling", function() + local scheduler = makeScheduler() + local claimCount = 0 + local poller = Exec.new({ + apiContext = { + claimNextExecJob = function() + claimCount += 1 + return Promise.resolve(nil) + end, + }, + dependencies = { + delay = scheduler.delay, + isEdit = function() + return true + end, + }, + }) + poller:start() + poller:stop() + scheduler.step() + expect(claimCount).to.equal(1) + end) + + it("ignores a late claim after stop", function() + local resolveClaim + local executeCount = 0 + local poller = Exec.new({ + apiContext = { + claimNextExecJob = function() + return Promise.new(function(resolve) + resolveClaim = resolve + end) + end, + }, + dependencies = { + isEdit = function() + return true + end, + execute = function() + executeCount += 1 + return Promise.resolve() + end, + }, + }) + poller:start() + poller:stop() + resolveClaim(claimedJob()) + expect(executeCount).to.equal(0) + end) + + it("cancels active execution when the session stops", function() + local cancellationCount = 0 + local completionCount = 0 + local poller = Exec.new({ + apiContext = { + claimNextExecJob = function() + return Promise.resolve(claimedJob()) + end, + completeExecJob = function() + completionCount += 1 + return Promise.resolve({ status = "accepted" }) + end, + }, + dependencies = { + isEdit = function() + return true + end, + execute = function() + return Promise.new(function(_resolve, _reject, onCancel) + onCancel(function() + cancellationCount += 1 + end) + end) + end, + }, + }) + poller:start() + poller:stop() + expect(cancellationCount).to.equal(1) + expect(completionCount).to.equal(0) + end) + + it("does not claim in play mode and resumes in edit mode", function() + local scheduler = makeScheduler() + local edit = false + local claimCount = 0 + local poller = Exec.new({ + apiContext = { + claimNextExecJob = function() + claimCount += 1 + return Promise.resolve(nil) + end, + }, + dependencies = { + delay = scheduler.delay, + isEdit = function() + return edit + end, + }, + }) + poller:start() + expect(claimCount).to.equal(0) + edit = true + scheduler.step() + expect(claimCount).to.equal(1) + poller:stop() + end) + + it("retries completion without re-executing", function() + local scheduler = makeScheduler() + local executeCount = 0 + local completeCount = 0 + local poller = Exec.new({ + apiContext = { + claimNextExecJob = function() + return Promise.resolve(claimedJob()) + end, + completeExecJob = function() + completeCount += 1 + if completeCount < 3 then + return Promise.reject("transport failure") + end + return Promise.resolve({ status = "accepted" }) + end, + }, + dependencies = { + delay = scheduler.delay, + isEdit = function() + return true + end, + execute = function() + executeCount += 1 + return Promise.resolve({ outcome = "success", logs = {} }) + end, + }, + }) + poller:start() + scheduler.step() + scheduler.step() + expect(completeCount).to.equal(3) + expect(executeCount).to.equal(1) + poller:stop() + end) + + it("treats completion conflict as terminal without re-executing", function() + local scheduler = makeScheduler() + local executeCount = 0 + local poller = Exec.new({ + apiContext = { + claimNextExecJob = function() + return Promise.resolve(claimedJob()) + end, + completeExecJob = function() + return Promise.resolve({ status = "conflict" }) + end, + }, + dependencies = { + delay = scheduler.delay, + isEdit = function() + return true + end, + execute = function() + executeCount += 1 + return Promise.resolve({ outcome = "success", logs = {} }) + end, + }, + }) + poller:start() + expect(executeCount).to.equal(1) + poller:stop() + end) + + it("routes malformed claim failures to the session error callback", function() + local capturedError = nil + local poller = Exec.new({ + apiContext = { + claimNextExecJob = function() + return Promise.reject("Prism exec protocol error: malformed claimed-job response") + end, + }, + dependencies = { + isEdit = function() + return true + end, + }, + onError = function(errorValue) + capturedError = errorValue + end, + }) + poller:start() + expect(tostring(capturedError):find("protocol error", 1, true)).to.be.ok() + poller:stop() + end) + + it("validates the exact claimed-job wire shape", function() + local valid = Types.ApiExecClaimResponse(claimedJob()) + local malformed = Types.ApiExecClaimResponse({ + jobId = claimedJob().jobId, + scriptName = "test.lua", + state = "claimed", + }) + expect(valid).to.equal(true) + expect(malformed).to.equal(false) + end) + end) +end diff --git a/plugin/src/PatchSet.lua b/plugin/src/PatchSet.lua index 3f6ece3c..368d00f6 100644 --- a/plugin/src/PatchSet.lua +++ b/plugin/src/PatchSet.lua @@ -375,7 +375,7 @@ function PatchSet.humanSummary(instanceMap, patchSet) local updatedProperties = {} if update.changedMetadata ~= nil then - table.insert(updatedProperties, "Rojo's Metadata") + table.insert(updatedProperties, "Prism's Metadata") end if update.changedName ~= nil then diff --git a/plugin/src/ServeSession.lua b/plugin/src/ServeSession.lua index 7e9fc742..58aef5de 100644 --- a/plugin/src/ServeSession.lua +++ b/plugin/src/ServeSession.lua @@ -13,6 +13,7 @@ local Timer = require(script.Parent.Timer) local ChangeBatcher = require(script.Parent.ChangeBatcher) local encodePatchUpdate = require(script.Parent.ChangeBatcher.encodePatchUpdate) +local Exec = require(script.Parent.Exec) local InstanceMap = require(script.Parent.InstanceMap) local PatchSet = require(script.Parent.PatchSet) local Reconciler = require(script.Parent.Reconciler) @@ -113,6 +114,15 @@ function ServeSession.new(options) setmetatable(self, ServeSession) + self.__exec = Exec.new({ + apiContext = self.__apiContext, + onError = function(errorValue) + if self.__status ~= Status.Disconnected then + self:__stopInternal(errorValue) + end + end, + }) + return self end @@ -202,13 +212,13 @@ function ServeSession:start() self:__setStatus(Status.Connected, serverInfo.projectName) self:__applyGameAndPlaceId(serverInfo) - return self.__apiContext:connectWebSocket({ + local websocketPromise = self.__apiContext:connectWebSocket({ ["messages"] = function(messagesPacket) if self.__status == Status.Disconnected then return end - Log.debug("Received {} messages from Rojo server", #messagesPacket.messages) + Log.debug("Received {} messages from Prism server", #messagesPacket.messages) for _, message in messagesPacket.messages do self:__applyPatch(message) @@ -216,6 +226,11 @@ function ServeSession:start() self.__apiContext:setMessageCursor(messagesPacket.messageCursor) end, }) + + -- connectWebSocket creates the stream client synchronously. Starting + -- here keeps exec on the same stable, fully-synced session lifecycle. + self.__exec:start() + return websocketPromise end) end) :catch(function(err) @@ -254,7 +269,7 @@ function ServeSession:__onActiveScriptChanged(activeScript) local scriptId = self.__instanceMap.fromInstances[activeScript] if scriptId == nil then - Log.trace("Not opening script {} because it is not known by Rojo.", activeScript) + Log.trace("Not opening script {} because it is not known by Prism.", activeScript) return end @@ -406,7 +421,7 @@ end function ServeSession:__applyPatch(patch) local patchTimestamp = DateTime.now():FormatLocalTime("LTS", "en-us") - local historyRecording = ChangeHistoryService:TryBeginRecording("Rojo: Patch " .. patchTimestamp) + local historyRecording = ChangeHistoryService:TryBeginRecording("Prism: Patch " .. patchTimestamp) if not historyRecording then -- There can only be one recording at a time Log.debug("Failed to begin history recording for " .. patchTimestamp .. ". Another recording is in progress.") @@ -461,7 +476,7 @@ function ServeSession:__applyPatch(patch) if not PatchSet.isEmpty(unappliedPatch) then Log.debug( - "Could not apply all changes requested by the Rojo server:\n{}", + "Could not apply all changes requested by the Prism server:\n{}", PatchSet.humanSummary(self.__instanceMap, unappliedPatch) ) end @@ -492,7 +507,7 @@ function ServeSession:__initialSync(serverInfo) -- For any instances that line up with the Rojo server's view, start -- tracking them in the reconciler. - Log.trace("Matching existing Roblox instances to Rojo IDs") + Log.trace("Matching existing Roblox instances to Prism IDs") self:setLoadingText("Hydrating instance map...") self.__reconciler:hydrate(readResponseBody.instances, serverInfo.rootInstanceId, game) @@ -504,7 +519,7 @@ function ServeSession:__initialSync(serverInfo) self.__reconciler:diff(readResponseBody.instances, serverInfo.rootInstanceId, game) if not success then - Log.error("Could not compute a diff to catch up to the Rojo server: {:#?}", catchUpPatch) + Log.error("Could not compute a diff to catch up to the Prism server: {:#?}", catchUpPatch) end for _, update in catchUpPatch.updated do @@ -514,7 +529,7 @@ function ServeSession:__initialSync(serverInfo) -- message instead of crashing. return Promise.reject( "Cannot sync a model as a place." - .. "\nEnsure Rojo is serving a project file that has a DataModel at the root of its tree and try again." + .. "\nEnsure Prism is serving a project file that has a DataModel at the root of its tree and try again." .. "\nSee project file docs: https://rojo.space/docs/v7/project-format/" ) end @@ -528,7 +543,7 @@ function ServeSession:__initialSync(serverInfo) end if userDecision == "Abort" then - return Promise.reject("Aborted Rojo sync operation") + return Promise.reject("Aborted Prism sync operation") elseif userDecision == "Reject" then if not self.__twoWaySync then return Promise.reject("Cannot reject sync operation without two-way sync enabled") @@ -569,6 +584,7 @@ function ServeSession:__initialSync(serverInfo) end function ServeSession:__stopInternal(err) + self.__exec:stop() self:__setStatus(Status.Disconnected, err) self.__apiContext:disconnect() self.__instanceMap:stop() diff --git a/plugin/src/Timer.lua b/plugin/src/Timer.lua index 9a5bbbd0..3ae18517 100644 --- a/plugin/src/Timer.lua +++ b/plugin/src/Timer.lua @@ -9,7 +9,7 @@ local Timer = { function Timer._start(label) local start = clock() if not label then - error("[Rojo-Timer] Timer.start: label is required", 2) + error("[Prism-Timer] Timer.start: label is required", 2) return end @@ -21,7 +21,7 @@ function Timer._stop() local entry = table.remove(Timer._entries) if not entry then - error("[Rojo-Timer] Timer.stop: no label to stop", 2) + error("[Prism-Timer] Timer.stop: no label to stop", 2) return end @@ -36,7 +36,7 @@ function Timer._stop() local start = entry[2] local duration = stop - start - print(string.format("[Rojo-Timer] %s took %.3f ms", label, duration * 1000)) + print(string.format("[Prism-Timer] %s took %.3f ms", label, duration * 1000)) end -- Replace functions with no-op if not in debug mode diff --git a/plugin/src/Types.lua b/plugin/src/Types.lua index fd04bed2..52db9886 100644 --- a/plugin/src/Types.lua +++ b/plugin/src/Types.lua @@ -74,6 +74,102 @@ local ApiRefPatchResponse = t.interface({ patch = ApiSubscribeMessage, }) +local function Uuid(value) + if type(value) ~= "string" then + return false, string.format("string expected, got %s", type(value)) + end + + local first, second, third, fourth, fifth = + value:match("^([0-9a-fA-F]+)%-([0-9a-fA-F]+)%-([0-9a-fA-F]+)%-([0-9a-fA-F]+)%-([0-9a-fA-F]+)$") + if first == nil or #first ~= 8 or #second ~= 4 or #third ~= 4 or #fourth ~= 4 or #fifth ~= 12 then + return false, "UUID string expected" + end + + return true +end + +local ExecJobState = t.union( + t.literal("pending"), + t.literal("claimed"), + t.literal("succeeded"), + t.literal("failed"), + t.literal("timedOut") +) + +local ExecLogLevel = t.union(t.literal("print"), t.literal("warn")) + +local ExecLog = t.strictInterface({ + level = ExecLogLevel, + message = t.string, +}) + +local function ExecValue(value, seen) + if type(value) ~= "table" then + return false, string.format("exec result table expected, got %s", type(value)) + end + + seen = seen or {} + if seen[value] then + return false, "cyclic exec result value" + end + seen[value] = true + + local kind = value.kind + local valid, message + if kind == "nil" then + valid, message = t.strictInterface({ kind = t.literal("nil") })(value) + elseif kind == "string" then + valid, message = t.strictInterface({ kind = t.literal("string"), value = t.string })(value) + elseif kind == "number" then + valid, message = t.strictInterface({ kind = t.literal("number"), value = t.number })(value) + elseif kind == "boolean" then + valid, message = t.strictInterface({ kind = t.literal("boolean"), value = t.boolean })(value) + elseif kind == "array" then + valid, message = t.strictInterface({ kind = t.literal("array"), value = t.table })(value) + if valid then + valid, message = t.array(function(child) + return ExecValue(child, seen) + end)(value.value) + end + elseif kind == "table" then + valid, message = t.strictInterface({ kind = t.literal("table"), value = t.table })(value) + if valid then + valid, message = t.array(function(entry) + local entryValid, entryMessage = t.strictInterface({ + key = t.string, + value = t.table, + })(entry) + if not entryValid then + return false, entryMessage + end + return ExecValue(entry.value, seen) + end)(value.value) + end + else + valid, message = false, string.format("unknown exec result kind %q", tostring(kind)) + end + + seen[value] = nil + return valid, message +end + +local ApiExecClaimResponse = t.strictInterface({ + jobId = Uuid, + scriptName = t.string, + source = t.string, + state = t.literal("claimed"), +}) + +local ApiExecJobResponse = t.strictInterface({ + jobId = Uuid, + scriptName = t.string, + state = ExecJobState, + result = t.optional(ExecValue), + logs = t.optional(t.array(ExecLog)), + error = t.optional(t.string), + traceback = t.optional(t.string), +}) + local ApiError = t.interface({ kind = t.union(t.literal("NotFound"), t.literal("BadRequest"), t.literal("InternalError")), details = t.string, @@ -103,6 +199,13 @@ return strict("Types", { ApiSubscribeMessage = ApiSubscribeMessage, ApiSerializeResponse = ApiSerializeResponse, ApiRefPatchResponse = ApiRefPatchResponse, + ApiExecClaimResponse = ApiExecClaimResponse, + ApiExecJobResponse = ApiExecJobResponse, + ExecJobState = ExecJobState, + ExecValue = ExecValue, + ExecLog = ExecLog, + ExecLogLevel = ExecLogLevel, + Uuid = Uuid, ApiValue = ApiValue, RbxId = RbxId, diff --git a/plugin/src/init.server.lua b/plugin/src/init.server.lua index c14487ff..e4dacfce 100644 --- a/plugin/src/init.server.lua +++ b/plugin/src/init.server.lua @@ -2,6 +2,7 @@ if not plugin then return end +-- Keep the packaged root name for compatibility with existing module lookups. local Rojo = script:FindFirstAncestor("Rojo") local Packages = Rojo.Packages diff --git a/plugin/src/invariant.lua b/plugin/src/invariant.lua index d1b7ccc8..cbdc2dfb 100644 --- a/plugin/src/invariant.lua +++ b/plugin/src/invariant.lua @@ -16,9 +16,9 @@ else message = Fmt.fmt(message, ...) local fullMessage = string.format( - "Rojo detected an invariant violation within itself:\n" + "Prism detected an invariant violation within itself:\n" .. "%s\n\n" - .. "This is a bug in Rojo. Please file an issue:\n" + .. "This is a bug in Prism. Please file an issue:\n" .. "https://github.com/rojo-rbx/rojo/issues", message ) diff --git a/plugin/src/soundPlayer.lua b/plugin/src/soundPlayer.lua index 32592720..d4de7678 100644 --- a/plugin/src/soundPlayer.lua +++ b/plugin/src/soundPlayer.lua @@ -7,7 +7,7 @@ if plugin then DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Float, false, true, 10, 10, 10, 10) ) widget.Name = "Rojo_soundPlayer" - widget.Title = "Rojo Sound Player" + widget.Title = "Prism Sound Player" end local SoundPlayer = {} diff --git a/src/cli/exec.rs b/src/cli/exec.rs index d08408b7..3b14419e 100644 --- a/src/cli/exec.rs +++ b/src/cli/exec.rs @@ -39,7 +39,7 @@ const REQUEST_TIMEOUT: Duration = Duration::from_secs(10); const MAX_RESPONSE_SIZE_BYTES: usize = 2 * MAX_SOURCE_SIZE_BYTES; const MSGPACK_CONTENT_TYPE: &str = "application/msgpack"; -/// Runs a trusted Luau file through a connected Rojo Studio plugin. +/// Runs a trusted Luau file through a connected Prism Studio plugin. #[derive(Debug, Parser)] pub struct ExecCommand { /// Path to the Luau file to execute. @@ -62,7 +62,7 @@ impl ExecCommand { .connect_timeout(CONNECT_TIMEOUT) .timeout(REQUEST_TIMEOUT) .build() - .context("Could not create the HTTP client for rojo exec")?; + .context("Could not create the HTTP client for Prism exec")?; verify_rojo_server(&client, &server_url)?; let submitted = submit_job(&client, &server_url, &script)?; @@ -95,7 +95,7 @@ fn read_exec_script(path: &Path) -> anyhow::Result { bail!("Exec script '{}' is not a regular file.", path.display()); } - if metadata.len() > MAX_SOURCE_SIZE_BYTES as u64 { + if metadata.len() > (MAX_SOURCE_SIZE_BYTES + '\u{FEFF}'.len_utf8()) as u64 { bail!( "Exec script '{}' is {} bytes, exceeding the {}-byte source limit.", path.display(), @@ -108,6 +108,10 @@ fn read_exec_script(path: &Path) -> anyhow::Result { let source = std::fs::read(path.as_ref()) .with_context(|| format!("Could not read exec script '{}'.", path.display()))?; + let mut source = String::from_utf8(source) + .with_context(|| format!("Exec script '{}' is not valid UTF-8.", path.display()))?; + normalize_source(&mut source); + if source.len() > MAX_SOURCE_SIZE_BYTES { bail!( "Exec script '{}' is {} bytes, exceeding the {}-byte source limit.", @@ -117,15 +121,18 @@ fn read_exec_script(path: &Path) -> anyhow::Result { ); } - let source = String::from_utf8(source) - .with_context(|| format!("Exec script '{}' is not valid UTF-8.", path.display()))?; - Ok(ExecScript { script_name, source, }) } +fn normalize_source(source: &mut String) { + if source.starts_with('\u{FEFF}') { + source.replace_range(..'\u{FEFF}'.len_utf8(), ""); + } +} + fn script_name_from_path(path: &Path) -> anyhow::Result { let file_name = path .file_name() @@ -181,7 +188,7 @@ fn verify_rojo_server(client: &Client, server_url: &str) -> anyhow::Result<()> { if info.protocol_version != PROTOCOL_VERSION { bail!( - "The Rojo server at {server_url} uses protocol version {}, but this rojo exec client requires version {}.", + "The Rojo server at {server_url} uses protocol version {}, but this Prism exec client requires version {}.", info.protocol_version, PROTOCOL_VERSION ); @@ -388,11 +395,11 @@ fn decode_buffered_exec_response( fn exec_http_error(response: &BufferedResponse, operation: &str) -> anyhow::Error { let summary = match response.status { StatusCode::BAD_REQUEST => "Rojo server rejected the request as malformed", - StatusCode::FORBIDDEN => "Rojo exec API is not available from this peer", - StatusCode::NOT_FOUND => "Rojo exec job disappeared or expired", - StatusCode::CONFLICT => "Rojo exec job has an unexpected state conflict", - StatusCode::PAYLOAD_TOO_LARGE => "Rojo exec source or output is too large", - StatusCode::TOO_MANY_REQUESTS => "Rojo exec queue is full", + StatusCode::FORBIDDEN => "Prism exec API is not available from this peer", + StatusCode::NOT_FOUND => "Prism exec job disappeared or expired", + StatusCode::CONFLICT => "Prism exec job has an unexpected state conflict", + StatusCode::PAYLOAD_TOO_LARGE => "Prism exec source or output is too large", + StatusCode::TOO_MANY_REQUESTS => "Prism exec queue is full", StatusCode::INTERNAL_SERVER_ERROR => "Rojo server reported an internal error", _ => "Rojo server returned an unexpected HTTP status", }; @@ -480,9 +487,9 @@ fn terminal_failure_message(job: &ExecJobResponse, timed_out: bool) -> String { .filter(|error| !error.is_empty()) .unwrap_or(fallback); let mut message = if timed_out { - format!("Rojo exec timed out: {error}") + format!("Prism exec timed out: {error}") } else { - format!("Rojo exec failed: {error}") + format!("Prism exec failed: {error}") }; if let Some(traceback) = job @@ -683,6 +690,65 @@ mod test { ); } + #[test] + fn normalization_preserves_source_without_bom() { + let mut source = "return true".to_owned(); + + normalize_source(&mut source); + + assert_eq!(source, "return true"); + } + + #[test] + fn normalization_removes_one_leading_bom() { + let mut source = "\u{FEFF}return true".to_owned(); + + normalize_source(&mut source); + + assert_eq!(source, "return true"); + } + + #[test] + fn normalization_preserves_interior_bom() { + let mut source = "print(\"\u{FEFF}\")".to_owned(); + + normalize_source(&mut source); + + assert_eq!(source, "print(\"\u{FEFF}\")"); + } + + #[test] + fn normalization_turns_single_bom_into_empty_source() { + let mut source = "\u{FEFF}".to_owned(); + + normalize_source(&mut source); + + assert_eq!(source, ""); + } + + #[test] + fn normalization_removes_only_first_of_two_leading_boms() { + let mut source = "\u{FEFF}\u{FEFF}return true".to_owned(); + + normalize_source(&mut source); + + assert_eq!(source, "\u{FEFF}return true"); + } + + #[test] + fn source_limit_applies_after_bom_normalization() { + let dir = tempfile::tempdir().unwrap(); + let path = dir.path().join("maximum-size.lua"); + let mut source = "\u{FEFF}".as_bytes().to_vec(); + source.extend(std::iter::repeat_n(b'x', MAX_SOURCE_SIZE_BYTES)); + fs::write(&path, source).unwrap(); + + let script = read_exec_script(&path).unwrap(); + + assert_eq!(script.source.len(), MAX_SOURCE_SIZE_BYTES); + assert!(!script.source.starts_with('\u{FEFF}')); + } + #[test] fn rejects_invalid_utf8_source() { let dir = tempfile::tempdir().unwrap(); @@ -861,7 +927,7 @@ mod test { let error = finish_job(&response, &mut Vec::new(), &mut Vec::new()).unwrap_err(); assert_eq!( error.to_string(), - "Rojo exec failed: attempt to index nil\nstack traceback:\n test.lua:1" + "Prism exec failed: attempt to index nil\nstack traceback:\n test.lua:1" ); } @@ -873,7 +939,7 @@ mod test { let error = finish_job(&response, &mut Vec::new(), &mut Vec::new()).unwrap_err(); assert_eq!( error.to_string(), - "Rojo exec timed out: execution exceeded its deadline" + "Prism exec timed out: execution exceeded its deadline" ); }