Commit graph

421 commits

Author SHA1 Message Date
John
66930ed7a7 Fix Windows symlink watching (AI-assisted)
On Windows, StdBackend only watched the logical paths Rojo read, so edits made
through the physical target of a file symlink, directory symlink, or junction
outside the watched tree never reached `rojo serve` until it was restarted.

The Windows backend now tracks each watched logical path's resolved target,
registers native watches for targets outside existing watches, and maps target
lifecycle events back to their logical aliases through a new
VfsEvent::Rescan. Watches are refreshed when a link is removed, recreated, or
repointed, and shared targets stay watched until their last alias goes away.
The change processor handles Rescan and logs, rather than panics on, events
for paths that no longer exist. Non-Windows behavior is unchanged.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-05 09:47:09 -04:00
krakow10
ee98fb7833
Remove Reflection Database Cow Remnants (#1264) 2026-10-01 22:17:27 -07:00
krakow10
351194ba93
Use WeakDom::full_path_of (#1185) 2026-10-01 22:16:41 -07:00
EgoMoose
7ade19293c
Fix windows verbatim paths (#1295) 2026-07-05 11:26:35 -07:00
AK-Khan02
16633e3c65
Return 400 for missing /api/serialize IDs (#1272) 2026-06-10 18:48:33 -07:00
Floyd Horng
d12120bab6
Fix syncback not removing stale $properties at engine defaults (#1244) 2026-06-10 18:47:50 -07:00
boatbomber
ac6941f054
Add origin/host validation and warning for exposed serves (#1270) 2026-06-07 15:51:05 -07:00
Ken Loeffler
444dc11b26
Fix init.plugin.lua/init.plugin.luau not being supported (#1252) 2026-06-07 15:50:04 -07:00
EgoMoose
15939b1647
Add ignorable glob support (#1256) 2026-06-02 20:40:12 -07:00
boatbomber
1abf675949
Graceful errors instead of crashing (#1267) 2026-06-01 20:02:39 -07:00
Micah
9bbb1edd79
Upload plugin as part of release workflow (#1227) 2026-02-14 11:10:36 -08:00
Ivan Matthew
a2adf2b517
Improves sourcemap path handling with pathdiff (#1217) 2026-02-12 19:17:28 -08:00
Micah
4deda0e155
Use msgpack for API (#1176) 2026-02-12 18:37:24 -08:00
ari
4df2d3c5f8
Add actor, bindables and remotes to json_model_classes (#1199) 2026-02-12 17:34:32 -08:00
Ivan Matthew
2a1102fc55
Implement VFS Path normalization for improved cross-platform tree synchronization (#1201) 2026-01-19 15:04:59 -08:00
Ken Loeffler
02b41133f8
Use post for ref patch and serialize (#1192) 2026-01-19 22:44:42 +00:00
Micah
d08780fc14
Ensure that pruned Instances aren't treated as existing in syncback (#1179)
Closes #1178.
2025-11-29 21:21:48 -08:00
boatbomber
87f58e0a55
Use WebSocket instead of Long Polling (#1142) 2025-11-26 19:57:01 -08:00
Micah
a61a1bef55
Roundtrip schemas in syncback (#1173) 2025-11-26 16:11:39 -08:00
Micah
a99e877b7c
Actually skip .gitignore if --skip-git is passed to init (#1172) 2025-11-26 13:59:12 -08:00
Ken Loeffler
93e9c51204
Fix rojo plugin install by adding Vfs::exists (#1169) 2025-11-21 07:04:34 -08:00
Micah
2b47861a4f
Properly support EnumItem variants in hashing and variant_eq (#1165) 2025-11-19 19:18:14 -08:00
Micah
9b5a07191b
Implement Syncback to support converting Roblox files to a Rojo project (#937)
This is a very large commit.
Consider checking the linked PR for more information.
2025-11-19 09:21:33 -08:00
Micah
ea70d89291
Support .jsonc extension for all JSON files (#1159) 2025-11-18 18:47:43 -08:00
boatbomber
d0b029f995
Add JSONC Support for Project, Meta, and Model JSON files (#1144)
Replaces `serde_json` parsing with `jsonc-parser` throughout the
codebase, enabling support for **comments** and **trailing commas** in
all JSON files including `.project.json`, `.model.json`, and
`.meta.json` files.
MSRV bumps from `1.83.0` to `1.88.0` in order to
use the jsonc_parser dependency.
2025-10-28 17:29:57 -07:00
Micah
441c469966
Release Rojo v7.6.0 (#1125) 2025-10-10 19:17:55 -07:00
Micah
f3c423d77d
Fix the various lints (#1124) 2025-10-10 13:00:56 -07:00
Micah
beb497878b
Add flag for skipping git initialization to init command (#1122) 2025-10-07 17:12:22 -07:00
Micah
6ea95d487c
Refactor init command (#1117) 2025-09-30 14:38:38 -07:00
Micah
80a381dbb1
Use SerializationService as a fallback for when patch application fails (#1030) 2025-09-21 15:09:20 -07:00
Micah
0056849b51
Put Rojo version in crash message (#1101) 2025-08-13 15:46:08 -07:00
ffrostfall
2ddb21ec5f
Add option for emitting absolute paths to rojo sourcemap (#1092)
Co-authored-by: Micah <micah@uplift.games>
2025-08-04 11:33:35 -07:00
Micah
a4eb65ca3f
Add YAML middleware that behaves like TOML and JSON (#1093) 2025-08-02 20:58:13 -07:00
Micah
9598553e5d
Normalize paths in sourcemap generation (#1085) 2025-07-31 09:19:57 -07:00
Micah
3bac38ee34
Re-add the hack to write NeedsPivotMigration as false for models (#1027) 2025-04-16 15:03:09 -07:00
Parritz
7dee898400
Add place ID blacklist config (#1021) 2025-04-03 08:37:40 -07:00
Micah
4c4b2dbe17
Add legacy and runContext script sync rule middlewares (#909) 2025-04-02 12:47:27 -07:00
Sasial
73ed5ae697
Add Support for Plugin Scripts (#1008) 2025-04-02 11:37:49 -07:00
Micah
833320de64
Update rbx-dom (#1023) 2025-04-02 11:32:27 -07:00
Jack T
55a207a275
Fix clippy lint warnings (#1004) 2025-01-13 10:07:53 -08:00
Kenneth Loeffler
80c406f196
Fix returning NoProjectFound for any project load error (#985)
In #917, we accidentally changed ServeSession::new's project loading
logic so that it always returns `ServeSession::ProjectNotFound` if the
load fails for any reason. This PR fixes this so that it returns the
right error when there is an error loading the project, and moves the
`NoProjectFound` error to `project::Error`, since I think it makes more
sense there.
2024-11-08 08:40:32 +00:00
Micah
34106f470f
Remove maplit dependency and stop using a macro for hashmaps (#982) 2024-10-31 11:56:54 -07:00
Micah
d9ab0e7de8
Support $schema in JSON structures (#974) 2024-10-24 10:55:51 -07:00
Micah
5ca1573e2e
Correct mistake in build command docs (#977) 2024-10-18 14:08:58 -07:00
Micah
c9ce996626
Update workflow and tooling versions (#910) 2024-09-03 15:36:36 -07:00
Micah
5e1cab2e75
Actually include attribute-defined properties in patch computation (#944) 2024-08-19 15:41:02 -07:00
Micah
3ca975d81d
Correct issue with default.project.json files with no name being named default after change (#917)
Co-authored-by: Kenneth Loeffler <kenloef@gmail.com>
2024-07-15 09:24:51 -07:00
Micah
7e2bab921a
Support setting referent properties via attributes (#843)
Co-authored-by: Kenneth Loeffler <kenloef@gmail.com>
2024-06-20 23:48:52 +01:00
boatbomber
3d4e387d35
Redesign settings UI in plugin (#886) 2024-05-13 10:36:03 -07:00
Micah
48bb760739
Make the name field in projects optional (#870)
Closes #858.

If a project is named `default.project.json`, it acts as an `init` file
and gains the name of the folder it's inside of. If it is named
something other than `default.project.json`, it gains the name of the
file with `.project.json` trimmed off. So e.g. `foo.project.json`
becomes `foo`.
2024-02-20 17:25:57 -08:00