- Maintenance update. - Ensure permissions are set for "updatescript", "updatenotecard" as per "createnotecard". - Do not recreate a notecard if it already exists for the "updatenotecard" command unless "create" is set to "True". - Use invariant culture to represent time spans since SL does not have a time span datatype. - Corrections to "getregionparcellocations" and "parcelmap" commands. - Extend "tracker" notification to include "add", "remove" and "move" as possible actions. - Make Corrade respect the settings in "Nucleus.config" if it is present when "Configuration.xml" is not available. - Fix issues with the "effect" notification and pass the region as an extra parameter to distinguish beacons on adjacent simulators. - Add the optional flags, search, price and area parameters for land searches allowing better filtering for land searches using the "directorysearch" command (thanks TinaKing). - Correct issues with the timeout parameter for the "directorysearch" command. - Add additional checks when retrieving parcel map. - When searching for land, the "directorysearch" command now accounts for the official throttling and allows the user to specify the page number instead of attempting to retrieve all results. - Redesigned the teleport throttle. - The "getheartbeatdata" command is now protected with the "grooming" permission. - The "heartbeat" notification now returns a data key containing a CSV list of heartbeat parameters. - Attempt to addresses issues with indexing for the "directorysearch" command (addresses #120). - Update Nucleus to not remove start locations when no location has been selected. - Fix issues with "directorysearch" being limited to 100 results. - Allow to retrieve group member data for groups that Corrade is not a member of. - Add the "terminate" command allow Corrade to shut down as a process. - Fix issues with Nucleus heartbeat after changes to the "heartbeat" notification. - Ensure that notification doubles are not sent when multiple groups are configured (thanks Ice Dover). - All batch* commands shall now return a list of items that have been successfully processed. This change may break scripts that rely on the output of batch* commands that processed items that were rejected because the command now returns a list of items that have been successfully processed. Please revise your scripts if your scripts use batch* commands and those scripts process the callback of the commands. - Added the "attachobject" command that allows Corrade to attach an object directly rezzed on a simulator. - Added the "dropobject" command that will allow Corrade to drop an attached object onto the ground. - Added the "batchattachobject" that will allow Corrade to attach multiple objects rezzed in-world. - Added the "batchdropobject" command that will allow Corrade to drop multiple attachments onto the ground. - Correct issues with notifications not being delivered. - Add the "avataraction" notification that asynchronously sends avatar action updates. - Ensure client-initiated logout via "termination" command. - Add more Nucleus logging. - Minor cleanups concerning concurrency. - Unrestrict "terse" notification and allow the usage of all processors if so desired. - Ensure proper termination for the "terse" notification. - Harden threads and increase error reporting. - More work on the "avataraction" notification. - Code maintenance. - Further strengthening of threads. - Corrections to log error messages for Nucleus. - Correction for "wind" notification. - Further hardening of threads. - Ensure proper reload on Nucleus configuration commit. - Handle HTTP and Nucleus server termination properly. - Fix issues with location updates and only send the update if Corrade has moved more than 1m - as per the "tracker" notification. - Do not attempt group membership sweep if the network is not connected. - Restore termination when start locations have been exhausted. - More improvements to logouts when start locations have been exhausted. - Make group members sweeps more efficient. - Update third party libraries. - Overall optimizations to appearance, asset handling (ie: texture downloads) as well as speed ups to event processing and notifications. - Possibly noticeable resource utilization decrease for both CPU and RAM. - Fix UTC time representation (thanks Riddle). - Overhaul of all concurrency primitives. - Fix issues with time zones under Unix. - Make outgoing and incoming packet handling more efficient. - Add macOS / OSX plist in contrib. - Ensure proper logout, termination and relog. - Fix issues with the timestamp not being updated (addresses issue #126). - Log everything in UTC for LSL compatibility. - Ensure that the "wear" and "unwear" commands cannot be used to attach, respectively detach objects. - Attempt to resolve issues with broken alpha textures (please make sure to remove the Cache/ folder when upgrading). - Translate service already installed / service not installed strings. - Performance enhancements. - Ensure proper file handling for file accesses. - Fix issues concerning the communication servers. - Introduces a websockets server - an optional communication means with Corrade implementing RFC6455 web sockets. This change brings the addition of a web sockets server section in the configuration file Configuration.xml. Upon update, please check Configuration.xml.default for the "WebSocketsServer" section under "Servers" and perhaps merge it with your Configuration.xml file. - Correct issues with mute list entries and ensure messages from muted objects get discarded. - Enforce decoding of messages for the MQTT and TCP server. - Do not place BOM markers when writing to files or communicating via built-in servers. - Address the general error occurring for the "give" command (thanks Duck). - Third party package updates. - Fix for "getteleportlures" command (thanks steph). - Make configuration elements mandatory during validation to ease debugging and updating the configuration structure. - Include "map" as a valid file to serve javascript source maps. - Prevent notifications of the same type to be bound (thank you JT), - Ensure proper termination as a windows service (thank you JT), - Make sure Corrade communication services restart properly when applying a configuration. - Wait for logout when logging off (fix). - Allow triggering built-in animations using the "animate" command. - Correct the "disable" action for the "animate" command. - Set and unset the agent status along with the animation for the "typing" command. - Ensure proper typing status is set for other viewers to see when issuing the "typing" command. - Ensure that the "avatars" notification sends "vanish" actions. - Rework service termination and revise functionality for "logout" and "terminate" commands. - Ensure MQTT server starts without a certificate. - Third party library updates. - Fix MQTT port being ignored. Nucleus updates: fix start location selection when editing region names, ensure validation is performed for all fields, add the ability to pause logs and select the number of lines being displayed, add the ability to configure the services prefixes, ports and listening IP addresses Nucleus updates: fix start location selection when editing region names, ensure validation is performed for all fields, add the ability to pause logs and select the number of lines being displayed, add the ability to configure the services prefixes, ports and listening IP addresses - Fix "replytoinventoryoffer" to properly accept and decline inventory items (thanks JT). - Fix issues related to finding primitives and objects by name for all commands searching for primitives and objects. - Ensure multiple bindings for the same notification type do not occur. - Pass the group as part of the membership notification when a group member leaves the group (addresses ticket CRD-128). - Slow down group membership checking to avoid overwhelming the server with requests. - Fix issues with retrieving avatar groups (thanks Derik). - Small regression in notification bindings. - Add the ability to retrieve a list of RLV behaviours and commands via a Nucleus blessed path "/corrade/behaviours" respectively "/corrade/commands". - Add the ability to configure RLV using Nucleus, including switching RLV on or off and managing the blacklist. - Remove stackable filters in favor of external communication servers. - Implement separate queues for all external communication servers. - Derive the working configuration from both the default configuration file and the user configuration file to avoid issues when upgrading Corrade. - Fix MQTT notification delivery. - Cleanups. - Notification delivery rework. - Notification system cleanup. - German translation fix: MQTT-Cache -> Cache - Fix an issue preventing from the service from starting under Windows when no Configuration.xml file is available. - Eliminate a bug pertaining to reloading the Corrade configuration dynamically from Nucleus. - Notifications rework. - Relax file locks. - Make TCP, MQTT and WebSockets more verbose. - Add a new "getestatebanlist" command that returns extended data on the banned agents such as: the agent that added the ban, the date the ban was added and the last online status. - Fix issues with "getestatebanlist". - Tentative: only process notifications if they are enabled for at least one group. - Fix issues with the "setprimitivelightdata" command. - Allow setting SL colors using "<0..1, 0..1, 0..1, 0..1>" notation. - Simplify fetching data for the *data commands. - Change the meaning of the "getparcelinfodata" such that it retrieves parcel info for parcels by UUID in order to be compatible with the "directorysearch" command. - Resolve an issue with a crash due to the RLV blacklist not being initialized. - Simplify event handling for all events. - Remove old configuration primitives. - Fix error message for "no target found" status. - Various cleanups and third party package updates. - Fortifications and check for teleporting from really laggy simulators to prevent disconnects when removing avatars and primitives from the scene. - Attempt to fix globalization issues with culture specific number types. - Second attempt to fix globalization issues in script serializer. - Set the proper position and rotation for the "rez" command. - Update the permission system for commands dealing with creating primitives or land parcels. - Allow setting the primitive scale for the "rez" command. - Add limits checking for the "scale" parameter of the "rez" command. - Check permissions for the "scale" parameter of the "rez" command and some refactorings. - Fix globalization issues and allow the user to force the usage of a specific language via the configuration. - Fix issues with event assemblies not re-loading when the configuration file changes. - Resolve an issue pertaining to retrieving RLV inventory assets. - Fix issues with the "playsound" command. - Fix issues with "getavatargroupdata" not returning proper values all the time. - Make "getavatargroupsdata" return proper failure message when the groups could not be retrieved. - Add "simulatorpause" and "simulatorresume" command that allows pausing respectively resuming a simulator. - Networking optimizations. - Minor cleanups. - Update ticket system URL in documentation. - Make HTTP calls more efficient. - Fixes for mono for latest optimizations. - Maintenance release. - Set Cody's panties to 0% opacity and make the "execute" command use "execute" permission. - Fix issuing commands over MQTT subscription (thanks Direwolf). - Add a new sift "random" that extracts a random CSV cell based on a user-provided seed. - Fix issues with notifications not being delivered when one group has multiple URLs bound. - Ensure notifications are sent after a change to the group using Nucleus. - Warn when Corrade enters debug mode. - Fix an issue with the random sift failing on empty CSV. - Add back JSON path to sifts. - Pluralize JSONPath sift selector. - Allow passing KVP through "objectim", "ownersay" and "regionsayto" notifications by checking explicitly if the KVP data is a Corrade command. - Remove "agent", "firstname" and "lastname" parameters from the "objectim" notification in favor of the "name" parameter. - Remove "agent", "firstname" and "lastname" from the "local" notification in favor of the "name" parameter. - Add "region" parameter to "local", "ownersay" and "regionsayto" notifications. - Small rename of variables. - Add the ability to configure the Corrade draw distance using Nucleus. - Minor cleanups. - Fix issues with MQTT notification not being properly set by the MQTT command when "action" is set to "subscribe" (this affects the SIML chatter templates). - Bump to 10.3 for release.