Releases: casual-simulation/casualos
Releases Β· casual-simulation/casualos
v3.1.22
π 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
π Improvements
- Improved the ab-1 bootstrapper to support Version 2 AUX Files.
π Bug Fixes
- Fixed an issue with
os.downloadBotsAsInitializationUpdate()
andos.createInitializationUpdate()
where they could not download bots that contained script syntax errors.
v3.1.20
π Improvements
- Added the ability to specify a
type
toos.addDropGrid()
andos.addBotDropGrid()
.- Possible types are
sphere
andgrid
. (Defaults togrid
) - 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).
- Possible types are
π Bug Fixes
- Fixed an issue where the gridPortal would error if a bot had
labelPosition
set tofloating
but had nolabel
. - Fixed an issue where it was possible for CasualOS to ignore udpates to a newly created bot.
v3.1.19
π 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)
, anddebug.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 andfalse
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.
- When called, it downloads the given array of bots as a
- Added a button to the "Scan QR Code" dialog that allows changing the current camera.
- Added the
spherePortal
form.- The
spherePortal
form functions like theportal
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.
- The
π 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
π Bug Fixes
- Fixed an issue where the systemPortal would not correctly open tags that were clicked by the user.
v3.1.17
π 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 havelabel
tags in the toolbar of the multi-line editor. - This is useful for writing little gadgets that are intended to assist with coding.
- When set to a dimension on the
- 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 toformAddress
tag values to prevent CasualOS from adding thecors-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 thecors-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.
- This may be needed in some scenarios where you don't need CORS to always function properly with
π Bug Fixes
- Fixed an issue where calling
debug.listCommonPauseTriggers()
on an async listener didn't work.
v3.1.16
π 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 totrue
.
π 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
π 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
π 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.
- It is controlled by the new
- 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?)
andos.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 thetestHome
dimension because of the tag name mapper.
- 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
- 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
π Bug Fixes
- Fixed an issue where Chrome would appear to randomly add and remove scrollbars when the tag/meet portals were open.