ADVANCED RESEARCH ENCAPSULATION SYSTEM (ARES) RELEASE 0.5.8 (BETA 3) Since ARES version 0.5.7.2 was released just over two months ago, numerous improvements and fixes have been completed. It was our intention to hold off on making a new release until WARRIOR support was ready to ship, but with evolving priorities bringing other projects to the forefront, and an ever-growing list of changes already implemented but not yet in users' hands, it made no sense to withhold them. Highlights include: - Resilience of PATH when changing regions should now be maximized. - Several binaries with a history of stack-heap collisions have been run through LSL-PyOptimizer to cut down on these problems. - Text-based Setup is now available as an alternative for users with small screens, visual impairments, translation requirements, et cetera. - New functionality in _path and xset for improved extensibility and creativity - New SIGNAL_SYNOPSIS message allows programs to be queried for their vital metadata like version, free memory, etc. (This is part of the program template; if you are a developer, recompile with the latest SDK) - _policy refuses to lock the unit without a password (common sharp edge for newbies) and setting a password has been added to the menus. - Daemons now receive color updates in a more efficient, scalable way (major source of _hardware crashes) - Multi-word triggers are now possible, making it possible to configure a unit for full order-following in local chat on a command-by-command basis (shamelessly inspired by K-Edge Collective) - Fixed an old longstanding bug where persona actions (.hi, .yes, etc) were erroneously treated by output chain evaluation as requiring the mind subsystem to work This update does NOT contain: - _libchassis (the new signal integrator for blocked subsystem masks, required for the VL8 SuperCortex and diagnostic bed updates) - anything new related to system extensions (Warrior, Sexuality, Diag, etc.) We know it is disappointing that these things still aren't done. The NS development cycle has always been a balancing act between dealing with technical debt, aspirational projects, keeping the lights on, and maintaining a routine. This is often too ambitious, and has many times resulted in the perception that we over-promise and under-deliver. However, we also know that silence is worse; our brand and community depend deeply on customer enthusiasm, and if we don't share our plans for the future, it quickly leads to the perception that there is no future to plan for. It is better that we all maintain hope instead of being smothered by hesitation. Installation instructions: See http://support.nanite-systems.com/?id=2978 All changes in this version: - Improved behavior of `@service storage read` when no length is specified - Added LSD:fs.mounted, an array of storage names that are currently accessible (LSD:fs.source only lists the standards) - `@fs refresh ` now works as expected - Moved instructor.info into online help manual - Updated xset to allow %keys and %values with = - Implemented text-based setup, a collection of shell scripts that reproduce the Setup Wizard in the local chat window. Type '@do text-setup.as' while connected to the normal Setup source to switch to it. - _path: preliminary support for webfs callbacks - _storage: if a storage device vanishes, wait 10 seconds and check again - _storage: if a storage device returns 404, keep checking it - _baseband: if the battery vanishes during charging, don't send progress messages to the charger (causes a division by zero) - _proc: removed version info from `@proc tasks detail` (the `@ps` alias) because of a high likelihood of crashing - Shipping LPO-processed binaries of _proc, db, and _power to reduce crashes - New kernel message SIGNAL_SYNOPSIS, which tells the recipient program to output key diagnostic information to a target output pipe; this is implemented inside the footer and includes version numbers, compilation date, and memory conditions - All ring 3 binaries have been recompiled to support SIGNAL_SYNOPSIS, resulting version number bumps for all packages. This does not affect backward compatibility. - salvage 1.2.0: will now query synopsis information when `@salvage fileinfo` is used on a script asset - xset 1.4.0: can now query synopsis information with `@xset -s `, allowing shell scripts to actually inspect installed versions and verify the correctness of LSD:pkg.version - _effector restriction rules meant to control animations may now specify 'a:' at the start of the rule value instead of the rule name; this does not apply to the special 'a:shutdown' rule - (SDK) Updated light bus protocol.md to include several missing commands that were previously added for device compatibility: teleport, animate, damage, restrict, release, and rlv - In the interest of ecumenism, _baseband now refers to public and public-alt as public-ns and public-ns-alt in CAPS responses; see current service name list as Appendix B of https://github.com/rhetorica/ARES-SDK/blob/main/protocols/caps%20protocol.txt - libmenu and menu are now precompiled with LPO also; this should eliminate menu crashes when listing chimes - New event EVENT_COLOR, triggered by invoking `id recolor` followed by an optional UUID callback tag; replaces previous messy system of expecting daemons to parse LSD:id, which is very large now - `input speak`: same as `input say` but ignores commands - New default local chat trigger, 'say', maps to `input speak` - Single-word local chat triggers can now accept parameters: "unit, say hello" => `@input speak hello` - Multi-word triggers still work and will override single-word triggers: e.g. `@db set trigger.say_your_name exec input speak This unit's name is $me.` USER: unit, say your name UNIT: This unit's name is NS Unit. USER: unit, say hi UNIT: hi - policy now refuses to lock the unit if the password is blank or unset. - 'run command' in the settings menu now routes through exec instead of a raw system command. - Added 'set password' to policy menu. - The following scripts were switched to use new methods of detecting when an object ceases to exist: nav, restraint, spy, _display, _menu, _path, ax, software, _device, _display, _storage, and _hardware. This probably won't introduce bugs (it may even remove some), but there's always a chance a ! got flipped. - '@help' with no arguments will once again fetch main.info under most circumstances, only displaying the graphical menu when requested directly by the unit locally (outs == user && user == avatar) - Applications may now register services with baseband to display in HW-CAPS responses by setting an entry in LSD:baseband.mapped to their channel number, e.g. setting baseband.mapped.rlvrs to -1812221819 advertises that an RLV relay is present - Corrected obsolete parc documentation - Added `parc upload ` as a generic wrapper for llGiveInventory(); this is useful for automating update deployment, including uploading cortex law files - Tentative fix for persona actions being eaten by the output filter chain when mind is disabled - Fixed slang filter eating punctuation after one-word sentences - The animation s_shutdown is no longer replaced during OS upgrades. - The ARES purchase box no longer contains changelogs and the ARES-0.5.0.sparc file; these have been placed in a sub-box called the ARES Changelog Binder.