Update dependencies and improve build script

- Updated `embed-resource` version in `Cargo.toml` and `Cargo.lock` to 3.0.6 for enhanced functionality.
- Upgraded several dependencies including `dirs`, `dirs-sys`, `float-cmp`, and `hashbrown` to their latest versions for better performance and security.
- Modified the build script to handle resource compilation more gracefully by using `embed_resource::NONE`.
This commit is contained in:
Joe 2026-02-01 10:24:47 -06:00
parent e342f00306
commit b2ce199a37
8 changed files with 149 additions and 122 deletions

170
Cargo.lock generated
View file

@ -735,11 +735,11 @@ dependencies = [
[[package]] [[package]]
name = "dirs" name = "dirs"
version = "5.0.1" version = "6.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e"
dependencies = [ dependencies = [
"dirs-sys 0.4.1", "dirs-sys 0.5.0",
] ]
[[package]] [[package]]
@ -755,14 +755,14 @@ dependencies = [
[[package]] [[package]]
name = "dirs-sys" name = "dirs-sys"
version = "0.4.1" version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab"
dependencies = [ dependencies = [
"libc", "libc",
"option-ext", "option-ext",
"redox_users 0.4.6", "redox_users 0.5.2",
"windows-sys 0.48.0", "windows-sys 0.61.2",
] ]
[[package]] [[package]]
@ -790,15 +790,16 @@ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
[[package]] [[package]]
name = "embed-resource" name = "embed-resource"
version = "1.8.0" version = "3.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e62abb876c07e4754fae5c14cafa77937841f01740637e17d78dc04352f32a5e" checksum = "55a075fc573c64510038d7ee9abc7990635863992f83ebc52c8b433b8411a02e"
dependencies = [ dependencies = [
"cc", "cc",
"memchr",
"rustc_version 0.4.1", "rustc_version 0.4.1",
"toml 0.5.11", "toml",
"vswhom", "vswhom",
"winreg 0.10.1", "winreg 0.55.0",
] ]
[[package]] [[package]]
@ -903,9 +904,9 @@ dependencies = [
[[package]] [[package]]
name = "float-cmp" name = "float-cmp"
version = "0.9.0" version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" checksum = "b09cf3155332e944990140d967ff5eceb70df778b34f77d8075db46e4704e6d8"
dependencies = [ dependencies = [
"num-traits", "num-traits",
] ]
@ -918,9 +919,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
[[package]] [[package]]
name = "foldhash" name = "foldhash"
version = "0.1.5" version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
[[package]] [[package]]
name = "form_urlencoded" name = "form_urlencoded"
@ -1186,26 +1187,20 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
[[package]] [[package]]
name = "hashbrown" name = "hashbrown"
version = "0.15.5" version = "0.16.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
dependencies = [ dependencies = [
"foldhash", "foldhash",
] ]
[[package]]
name = "hashbrown"
version = "0.16.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
[[package]] [[package]]
name = "hashlink" name = "hashlink"
version = "0.10.0" version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" checksum = "ea0b22561a9c04a7cb1a302c013e0259cd3b4bb619f145b32f72b8b4bcbed230"
dependencies = [ dependencies = [
"hashbrown 0.15.5", "hashbrown 0.16.1",
] ]
[[package]] [[package]]
@ -1568,9 +1563,9 @@ dependencies = [
[[package]] [[package]]
name = "jod-thread" name = "jod-thread"
version = "0.1.2" version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b23360e99b8717f20aaa4598f5a6541efbe30630039fbc7706cf954a87947ae" checksum = "a037eddb7d28de1d0fc42411f501b53b75838d313908078d6698d064f3029b24"
[[package]] [[package]]
name = "js-sys" name = "js-sys"
@ -1800,6 +1795,15 @@ dependencies = [
"winapi 0.3.9", "winapi 0.3.9",
] ]
[[package]]
name = "normpath"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf23ab2b905654b4cb177e30b629937b3868311d4e1cba859f899c041046e69b"
dependencies = [
"windows-sys 0.61.2",
]
[[package]] [[package]]
name = "notify" name = "notify"
version = "4.0.18" version = "4.0.18"
@ -1881,12 +1885,13 @@ checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e"
[[package]] [[package]]
name = "opener" name = "opener"
version = "0.5.2" version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "293c15678e37254c15bd2f092314abb4e51d7fdde05c2021279c12631b54f005" checksum = "a2fa337e0cf13357c13ef1dc108df1333eb192f75fc170bea03fcf1fd404c2ee"
dependencies = [ dependencies = [
"bstr", "bstr",
"winapi 0.3.9", "normpath",
"windows-sys 0.61.2",
] ]
[[package]] [[package]]
@ -2268,14 +2273,14 @@ version = "6.1.0"
dependencies = [ dependencies = [
"rbx_types", "rbx_types",
"serde", "serde",
"thiserror 1.0.69", "thiserror 2.0.18",
] ]
[[package]] [[package]]
name = "rbx_reflection_database" name = "rbx_reflection_database"
version = "2.0.2+roblox-700" version = "2.0.2+roblox-700"
dependencies = [ dependencies = [
"dirs 5.0.1", "dirs 6.0.0",
"log", "log",
"rbx_reflection", "rbx_reflection",
"rmp-serde", "rmp-serde",
@ -2360,6 +2365,17 @@ dependencies = [
"thiserror 1.0.69", "thiserror 1.0.69",
] ]
[[package]]
name = "redox_users"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac"
dependencies = [
"getrandom 0.2.17",
"libredox",
"thiserror 2.0.18",
]
[[package]] [[package]]
name = "regex" name = "regex"
version = "1.12.2" version = "1.12.2"
@ -2557,7 +2573,7 @@ dependencies = [
"termcolor", "termcolor",
"thiserror 2.0.18", "thiserror 2.0.18",
"tokio", "tokio",
"toml 0.8.23", "toml",
"uuid", "uuid",
"walkdir", "walkdir",
"winreg 0.10.1", "winreg 0.10.1",
@ -2781,11 +2797,11 @@ dependencies = [
[[package]] [[package]]
name = "serde_spanned" name = "serde_spanned"
version = "0.6.9" version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776"
dependencies = [ dependencies = [
"serde", "serde_core",
] ]
[[package]] [[package]]
@ -3306,53 +3322,42 @@ dependencies = [
[[package]] [[package]]
name = "toml" name = "toml"
version = "0.5.11" version = "0.9.11+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" checksum = "f3afc9a848309fe1aaffaed6e1546a7a14de1f935dc9d89d32afd9a44bab7c46"
dependencies = [
"serde",
]
[[package]]
name = "toml"
version = "0.8.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362"
dependencies = [
"serde",
"serde_spanned",
"toml_datetime",
"toml_edit",
]
[[package]]
name = "toml_datetime"
version = "0.6.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c"
dependencies = [
"serde",
]
[[package]]
name = "toml_edit"
version = "0.22.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a"
dependencies = [ dependencies = [
"indexmap 2.13.0", "indexmap 2.13.0",
"serde", "serde_core",
"serde_spanned", "serde_spanned",
"toml_datetime", "toml_datetime",
"toml_write", "toml_parser",
"toml_writer",
"winnow", "winnow",
] ]
[[package]] [[package]]
name = "toml_write" name = "toml_datetime"
version = "0.1.2" version = "0.7.5+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347"
dependencies = [
"serde_core",
]
[[package]]
name = "toml_parser"
version = "1.0.6+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44"
dependencies = [
"winnow",
]
[[package]]
name = "toml_writer"
version = "1.0.6+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607"
[[package]] [[package]]
name = "tower-service" name = "tower-service"
@ -3999,9 +4004,6 @@ name = "winnow"
version = "0.7.14" version = "0.7.14"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829"
dependencies = [
"memchr",
]
[[package]] [[package]]
name = "winreg" name = "winreg"
@ -4031,6 +4033,16 @@ dependencies = [
"windows-sys 0.48.0", "windows-sys 0.48.0",
] ]
[[package]]
name = "winreg"
version = "0.55.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97"
dependencies = [
"cfg-if 1.0.4",
"windows-sys 0.59.0",
]
[[package]] [[package]]
name = "wit-bindgen" name = "wit-bindgen"
version = "0.51.0" version = "0.51.0"
@ -4070,9 +4082,9 @@ dependencies = [
[[package]] [[package]]
name = "yaml-rust2" name = "yaml-rust2"
version = "0.10.4" version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2462ea039c445496d8793d052e13787f2b90e750b833afee748e601c17621ed9" checksum = "631a50d867fafb7093e709d75aaee9e0e0d5deb934021fcea25ac2fe09edc51e"
dependencies = [ dependencies = [
"arraydeque", "arraydeque",
"encoding_rs", "encoding_rs",

View file

@ -67,10 +67,10 @@ globset = "0.4.18"
humantime = "2.3.0" humantime = "2.3.0"
hyper = { version = "0.14.32", features = ["server", "tcp", "http1"] } hyper = { version = "0.14.32", features = ["server", "tcp", "http1"] }
hyper-tungstenite = "0.11.1" hyper-tungstenite = "0.11.1"
jod-thread = "0.1.2" jod-thread = "1.0.0"
log = "0.4.29" log = "0.4.29"
num_cpus = "1.17.0" num_cpus = "1.17.0"
opener = "0.5.2" opener = "0.8.4"
rayon = "1.11.0" rayon = "1.11.0"
rbx_cookie = "0.1.5" rbx_cookie = "0.1.5"
reqwest = { version = "0.11.27", default-features = false, features = [ reqwest = { version = "0.11.27", default-features = false, features = [
@ -88,18 +88,18 @@ serde = { version = "1.0.228", features = ["derive", "rc"] }
serde_json = "1.0.149" serde_json = "1.0.149"
json5 = "1.3.0" json5 = "1.3.0"
strum = { version = "0.27", features = ["derive"] } strum = { version = "0.27", features = ["derive"] }
toml = "0.8" toml = "0.9"
termcolor = "1.4.1" termcolor = "1.4.1"
thiserror = "2" thiserror = "2"
tokio = { version = "1.49.0", features = ["rt", "rt-multi-thread", "macros"] } tokio = { version = "1.49.0", features = ["rt", "rt-multi-thread", "macros"] }
uuid = { version = "1.20.0", features = ["v4", "serde"] } uuid = { version = "1.20.0", features = ["v4", "serde"] }
clap = { version = "4", features = ["derive"] } clap = { version = "4", features = ["derive"] }
profiling = "1.0.17" profiling = "1.0.17"
yaml-rust2 = "0.10.4" yaml-rust2 = "0.11.0"
data-encoding = "2.10.0" data-encoding = "2.10.0"
blake3 = "1.8.3" blake3 = "1.8.3"
float-cmp = "0.9.0" float-cmp = "0.10.0"
indexmap = { version = "2.13.0", features = ["serde"] } indexmap = { version = "2.13.0", features = ["serde"] }
rmp-serde = "1.3.1" rmp-serde = "1.3.1"
serde_bytes = "0.11.19" serde_bytes = "0.11.19"
@ -110,7 +110,7 @@ winreg = "0.10.1"
[build-dependencies] [build-dependencies]
memofs = { version = "0.3.0", path = "crates/memofs" } memofs = { version = "0.3.0", path = "crates/memofs" }
embed-resource = "1.8.0" embed-resource = "3.0.6"
anyhow = "1.0.100" anyhow = "1.0.100"
bincode = "1.3.3" bincode = "1.3.3"
fs-err = "3" fs-err = "3"

View file

@ -107,7 +107,7 @@ fn main() -> Result<(), anyhow::Error> {
println!("cargo:rerun-if-changed=build/windows/rojo-manifest.rc"); println!("cargo:rerun-if-changed=build/windows/rojo-manifest.rc");
println!("cargo:rerun-if-changed=build/windows/rojo.manifest"); println!("cargo:rerun-if-changed=build/windows/rojo.manifest");
embed_resource::compile("build/windows/rojo-manifest.rc"); let _ = embed_resource::compile("build/windows/rojo-manifest.rc", embed_resource::NONE);
Ok(()) Ok(())
} }

View file

@ -68,21 +68,17 @@ function SelectionOption:render()
local isParentOnly = props.isParentOnly local isParentOnly = props.isParentOnly
local hasChildren = props.hasChildren local hasChildren = props.hasChildren
-- Determine if we should show the caret:
-- - Parent-only nodes: always show caret (they only do subtree operations)
-- - Normal nodes with children: show caret when already selected AND hovering
local showCaret = if isParentOnly then true elseif hasChildren and isSelected and isHovered then true else false
local bgColor = if isSelected local bgColor = if isSelected
then (if props.optionType == "push" then (if props.optionType == "push"
then Color3.fromHex("27AE60") then Color3.fromHex("335FFF")
elseif props.optionType == "pull" then Color3.fromHex("E74C3C") elseif props.optionType == "pull" then Color3.fromHex("E74C3C")
else Color3.fromHex("7F8C8D")) else Color3.fromHex("7F8C8D"))
else theme.BorderedContainer.BackgroundColor else theme.BorderedContainer.BackgroundColor
local textColor = if isSelected then Color3.new(1, 1, 1) else theme.TextColor local textColor = if isSelected then Color3.new(1, 1, 1) else theme.TextColor
local displayText = if showCaret then props.text .. " ▼" else props.text local displayText = props.text
local buttonWidth = if showCaret then 48 else 36 -- Use wider button for "Studio" text (6 chars vs 4 for others)
local buttonWidth = if props.text == "Studio" then 44 else 36
-- Transparency logic: -- Transparency logic:
-- - Parent-only nodes: more transparent when not hovered, less so when hovering button -- - Parent-only nodes: more transparent when not hovered, less so when hovering button
@ -376,9 +372,8 @@ function DomLabel:render()
PaddingLeft = UDim.new(0, 10), PaddingLeft = UDim.new(0, 10),
PaddingRight = UDim.new(0, 10), PaddingRight = UDim.new(0, 10),
}), }),
Button = e("TextButton", { Button = e("Frame", {
BackgroundTransparency = 1, BackgroundTransparency = 1,
Text = "",
Size = UDim2.new(1, 0, 1, 0), Size = UDim2.new(1, 0, 1, 0),
[Roact.Event.MouseEnter] = function() [Roact.Event.MouseEnter] = function()
self:setState({ isHovered = true }) self:setState({ isHovered = true })
@ -386,18 +381,27 @@ function DomLabel:render()
[Roact.Event.MouseLeave] = function() [Roact.Event.MouseLeave] = function()
self:setState({ isHovered = false }) self:setState({ isHovered = false })
end, end,
[Roact.Event.Activated] = function(_rbx: Instance, _input: InputObject, clickCount: number) [Roact.Event.InputBegan] = function(_rbx: Instance, input: InputObject)
if clickCount == 1 then if input.UserInputType ~= Enum.UserInputType.MouseButton1 then
return
end
-- Check for double click
local now = os.clock()
local lastClickTime = self.lastClickTime or 0
self.lastClickTime = now
if now - lastClickTime < 0.3 then
-- Double click opens the instance in explorer -- Double click opens the instance in explorer
self.lastDoubleClickTime = os.clock() self.lastDoubleClickTime = now
if props.instance then if props.instance then
SelectionService:Set({ props.instance }) SelectionService:Set({ props.instance })
end end
elseif clickCount == 0 then else
-- Single click expands the changes -- Single click expands the changes (after a delay to check for double click)
task.wait(0.25) task.delay(0.3, function()
if os.clock() - (self.lastDoubleClickTime or 0) <= 0.25 then if os.clock() - (self.lastDoubleClickTime or 0) <= 0.35 then
-- This is a double click, so don't expand -- This was a double click, so don't expand
return return
end end
@ -410,6 +414,7 @@ function DomLabel:render()
dampingRatio = 1, dampingRatio = 1,
})) }))
end end
end)
end end
end, end,
}), }),

View file

@ -175,7 +175,7 @@ function ConfirmingPage:render()
Accept = e(TextButton, { Accept = e(TextButton, {
text = if hasChanges then "Accept" else "OK", text = if hasChanges then "Accept" else "OK",
style = if hasChanges then "Primary" else "Success", style = "Primary",
transparency = self.props.transparency, transparency = self.props.transparency,
layoutOrder = 2, layoutOrder = 2,
onClick = function() onClick = function()

View file

@ -126,7 +126,7 @@ function NotConnectedPage:render()
Connect = e(TextButton, { Connect = e(TextButton, {
text = "Sync", text = "Sync",
style = "Solid", style = "Primary",
transparency = self.props.transparency, transparency = self.props.transparency,
layoutOrder = 2, layoutOrder = 2,
onClick = self.props.onConnect, onClick = self.props.onConnect,

@ -1 +1 @@
Subproject commit 44bf8aeb0c754a304917a622baaf028f5065bb6e Subproject commit 419046c50ca45a27749a2cf6c1bc465fa845b19c

View file

@ -1476,6 +1476,16 @@ impl ApiService {
StatusCode::INTERNAL_SERVER_ERROR, StatusCode::INTERNAL_SERVER_ERROR,
) )
} }
_ => {
return msgpack(
ErrorResponse::internal_error(format!(
"Failed to open {}: {}",
script_path.display(),
error
)),
StatusCode::INTERNAL_SERVER_ERROR,
)
}
}, },
}; };