Skip to content

Releases: casual-simulation/casualos

v3.1.22

15 Feb 17:07
Compare
Choose a tag to compare

πŸš€ Improvements

  • Added a log to help debug an initialization issue.

πŸ› Bug Fixes

  • Fixed an issue where custom apps may sometimes ignore JSX updates when using app hooks.

v3.1.21

30 Jan 19:38
Compare
Choose a tag to compare

πŸš€ Improvements

  • Improved the ab-1 bootstrapper to support Version 2 AUX Files.

πŸ› Bug Fixes

  • Fixed an issue with os.downloadBotsAsInitializationUpdate() and os.createInitializationUpdate() where they could not download bots that contained script syntax errors.

v3.1.20

19 Jan 01:43
Compare
Choose a tag to compare

πŸš€ Improvements

  • Added the ability to specify a type to os.addDropGrid() and os.addBotDropGrid().
    • Possible types are sphere and grid. (Defaults to grid)
    • When combined with portalBot, you can use this to place bots in a sphere portal.
    • Alternatively, it can be used to place bots on the surface of a sphere (without rotation for now).

πŸ› Bug Fixes

  • Fixed an issue where the gridPortal would error if a bot had labelPosition set to floating but had no label.
  • Fixed an issue where it was possible for CasualOS to ignore udpates to a newly created bot.

v3.1.19

17 Jan 22:15
Compare
Choose a tag to compare

πŸš€ Improvements

  • Improved the diff multi-line code editor to support codeButton form bots.
  • Improved os.focusOn() to be able to navigate to systemPortal tags when the diff pane is open in the systemPortal.
  • Added the debug.onScriptActionEnqueued(handler), debug.onAfterScriptUpdatedTag(handler), debug.onAfterScriptUpdatedTagMask(handler), debug.onBeforeUserAction(handler), debug.performUserAction(...actions), and debug.getCallStack() functions for debuggers.
    • See the documentation for more information and examples.
  • Added the os.showConfirm(options) function.
    • When called, it displays a confirmation dialog that gives the user the ability to indicate whether they want something confirmed or canceled.
    • Returns a promise that resolves with true if the user clicked the "Confirm" button and false if they closed the dialog or clicked the "Cancel" button.
    • options should be an object with the following properties:
      • title - The title that should be shown on the dialog.
      • content - The descriptive content that should be shown in the dialog.
      • confirmText - The text that should be shown for the "Confirm" button. (Optional)
      • cancelText - The text that should be shown for the "Cancel" button. (Optional)
  • Improved the systemPortal to always focus and select the search box when using Ctrl+Shift+F/Cmd+Shift+F.
    • It will also grab the currently selected text and auto-fill that into the search box.
  • Improved the systemPortal to preserve the last selected location in a tag when using os.focusOn() without line/index information or when using the quick access panel (Ctrl+P).
  • Improved the systemPortal to be able to show the quick access panel (Ctrl+P) even if the multi-line editor is not focused.
  • Added the os.downloadBotsAsInitialzationUpdate(bots, filename) function.
    • When called, it downloads the given array of bots as a .aux or .pdf file stored in the Version 2 AUX File Format.
    • The Version 2 AUX Format is similar to the Version 1 AUX Format, except instead of storing the bot data as a snapshot, it stores bot data as a conflict-free update. This means that the Version 2 format is more suited towards scenarios where multiple different machines want to load the aux file at the same time (like when initializing shared instances), or when you want to share changes to an inst offline.
    • Note that the Version 2 AUX Format is not a replacement for the Version 1 AUX Format. They are both in active use and each is slightly more optimal for different use-cases.
  • Added a button to the "Scan QR Code" dialog that allows changing the current camera.
  • Added the spherePortal form.
    • The spherePortal form functions like the portal form except that it displays bots in the portal on the surface of an invisible sphere and treats the dimension X and Y tags as latitude and longitude coordinates.

πŸ› Bug Fixes

  • Fixed an issue where os.applyUpdatesToInst() would not sync updates to the server.
  • Fixed an issue where strings that can be converted to primitive values search box would not appear if systemPortalSearch was set via a script.
  • Fixed an issue where it was impossible to use os.importAUX() with URLs that didn't end with ".aux".

v3.1.18

28 Dec 17:57
Compare
Choose a tag to compare

πŸ› Bug Fixes

  • Fixed an issue where the systemPortal would not correctly open tags that were clicked by the user.

v3.1.17

28 Dec 04:59
Compare
Choose a tag to compare

πŸš€ Improvements

  • Improved os.focusOn() to support specifying a rotation in the map portals.
  • Improved custom apps to have better performance when working with apps that utilize a large number of HTML elements.
  • Added the codeHint form for bots.
    • Useful for highlighting some code or inserting inline markers.
    • This form functions similarly to cursor.
    • Differences are that strokeColor is supported for setting a border on the highlighted code, label is supported for inserting inline markers, and @onClick is supported for clicking the label of a hint.
  • Added the codeToolsPortal portal.
    • When set to a dimension on the configBot, it will display bots that are in that dimension and have label tags in the toolbar of the multi-line editor.
    • This is useful for writing little gadgets that are intended to assist with coding.
  • Improved the systemPortal to support bots from attached debuggers.
  • Added the ability to use Ctrl+P/Cmd+P while the the multi-line code editor is focused to show a quick access menu that lets you quickly search for and jump to different tags.
  • Added the ability to use Ctrl+Shift+F/Cmd+Shift+F in the system portal to quickly jump to the "Search" panel.
  • Improved expiriment.beginRecording(options) to be able to record audio from both the microphone and screen.
  • Added the ability to add the casualos-no-cors-cache=true query param to formAddress tag values to prevent CasualOS from adding the cors-cache= query param to requests that it makes.
    • This may be needed in some scenarios where you don't need CORS to always function properly with formAddress tags, but you do need to prevent the cors-cache query param from being included in the address URL.
    • Note that the casualos-no-cors-cache=true param will also be removed from the URL, so it doesn't affect the request either.

πŸ› Bug Fixes

  • Fixed an issue where calling debug.listCommonPauseTriggers() on an async listener didn't work.

v3.1.16

13 Dec 01:25
Compare
Choose a tag to compare

πŸš€ Improvements

  • Added the os.listBuiltinTags() function.
  • Improved codeButton form bots to be able to be displayed in the multi-line editor's context menu when their #true tag is set to true.

πŸ› Bug Fixes

  • Fixed an issue where os.showHtml() would use a dark background when the dark theme was enabled.
  • Fixed an issue where calling os.getData() with null values would cause the server to crash.

v3.1.15

12 Dec 15:53
Compare
Choose a tag to compare

πŸ› Bug Fixes

  • Fixed an issue where custom apps would incorrectly display white text on a white background by default when using the dark theme.
  • Fixed an issue where it was impossible to edit tags using the single-line editors in the systemPortal.

v3.1.14

12 Dec 03:00
Compare
Choose a tag to compare

πŸš€ Improvements

  • Added dark mode to CasualOS!
    • It is controlled by the new theme tag on the configBot.
    • Possible values are:
      • auto - Use the system dark mode setting. (Default)
      • light - Use the light theme.
      • dark - Use the dark theme.
  • Added the @onMeetRecordingLinkAvailable shout.
    • It is triggered when recording is enabled in the meetPortal and contains the link that the recording will be available at.
    • that is an object with the following properties:
      • link - The link that the recording is available at.
      • timeToLive - The number of seconds that the link will be available for.
  • Added the os.attachDebugger(debug, options?) and os.detachDebugger(debug) functions.
    • These functions are useful for attaching the bots in a debugger to the CasualOS frontend as if it was a separate inst.
    • Additionally, debuggers can be attached using a tag name mapper that can remap tag names so the frontend sees a different set of tags than what are actually on the debugger bots.
      • This is useful for testing. For example, you can create a debugger that contains a copy of all the bots in the inst but instead of being displayed in the home dimension would be displayed in the testHome dimension because of the tag name mapper.
    • See the documentation for more information.

πŸ› Bug Fixes

  • Fixed an issue where the grids on the wrist portals would become really large when the user enters VR for the second time during a session.

v3.1.13

05 Dec 17:39
Compare
Choose a tag to compare

πŸ› Bug Fixes

  • Fixed an issue where Chrome would appear to randomly add and remove scrollbars when the tag/meet portals were open.