backupRoswaal has moved to roswaal.app. These pages are a backup copy.Go to roswaal.app

0.186.x✎

Code is checked for arguments of the wrong type, and an import knows more types.

0.186.xSecurity fixes2026-10-15

SecurityFeatureChangeBugfixEditorDocs

Code is checked for arguments of the wrong type, and an import knows more types.

Releases

  1. 0.186.8The release workflow builds without the right to write to the repository.SecurityNew2026-10-15
  2. 0.186.7Long chains are reported instead of failing, import keeps pace with long files, and any name gets a colour.SecurityNew2026-10-15
  3. 0.186.6The specification's pages carry the site's security policy.SecurityNew2026-10-15
  4. 0.186.5The daemon answers its API only as written, and Import as graph keeps a graph it cannot read.SecurityNew2026-10-15
  5. 0.186.4Values, comments, casts and names in a graph are checked before they are written as Luau.SecurityNew2026-10-15
  6. 0.186.3The packaged app answers the demos question instead of failing it.New2026-10-15
  7. 0.186.2A value no longer offers its datatype's constants.New2026-10-15
  8. 0.186.1The code editor offers the members of what a call gives back.New2026-10-15
  9. 0.186.0Code is checked for arguments of the wrong type, and an import knows more types.New2026-10-15

Added

  • 0.186.0Argument types are checked. A method called on something whose type is known, given a value of a type it does not take, is underlined in the code editor and in a file opened to read, and listed in Problems against the node.
  • 0.186.0Imports type more values. A handler's parameters take the event's types, a property its class's type, and Instance.new and FindFirstChildOfClass the class they name, so more method calls become nodes.
  • 0.186.0A service named otherwise is declared. local RS = game:GetService("ReplicatedStorage") becomes a declared service that keeps the name RS, shown as RS in Services.

Changed

  • 0.186.0A method given an argument its pin does not take stays as code. The check then says why.

Fixed

  • 0.186.8Builds read; one job attaches. The macOS and Windows binaries are built by jobs that can only read the repository, and handed to a separate job that attaches them to the release.
  • 0.186.7Long chains, read. A chain of calls, fields or operators longer than 500 is reported as nested too deeply, and a graph nested past 200 is one error at the node where it does, rather than a compile, hover or import that fails.
  • 0.186.7Import in step with the file. Import as graph no longer slows down sharply on long files, and takes a file of up to 2 MiB.
  • 0.186.7Any name, a colour. A pack category or pin type named constructor or toString is drawn in the colour any unknown name gets.
  • 0.186.6The specification's pages carry the site's security policy. Every page at spec.roswaal.app, archived drafts included, now runs under the same Content-Security-Policy as roswaal.app.
  • 0.186.6Dependencies updated. Four packages move up a patch version each.
  • 0.186.5API paths as written. The daemon answers its API only at paths spelled in lower case, as the editor sends them, and checks where a request came from however its path is spelled.
  • 0.186.5Import as graph keeps a graph it cannot read. A graph file at the import's path that does not read as a graph, such as one from a newer Roswaal, is no longer replaced; the import says so and leaves it as it was.
  • 0.186.4Comments and values are written as what they are. A doc comment whose text holds ]=] is written at a level that keeps all of it a comment, and a typed-in value saved as a number or a true/false that is not one is reported on its pin.
  • 0.186.4Casts, field types and module function names are checked before they are written. A call's result cast and each Declare Type field type must be one Luau type, and a module's function must be called by a name; anything else is reported on the node.
  • 0.186.3No demos, not an error. The macOS and Windows downloads have no demo projects beside them, and asking for the list failed with an error the editor quietly ignored. It now answers that there are none, and taking a demo says this copy has none to give.
  • 0.186.2Constants after a name only. A dot after a Vector3 or a CFrame value no longer offers zero, one, xAxis or identity; Vector3. and CFrame. still do.
  • 0.186.1Members after a call. A dot or colon after a call or a bracket, as in hull.CFrame:PointToObjectSpace(p).X, offers the members of what the call gives back when its type is known. It offered only globals.
  • 0.186.0A window left off a smaller screen comes back. A floating panel placed outside the window, such as the Code panel, moves back inside it.
  • 0.186.0Hover in a Luau Expression. It describes members read off a property, such as PointToObjectSpace in hull.CFrame:PointToObjectSpace, and reads a value written as an if expression.