release/26.4
Pre-releaseWhat's Changed
Other Changes
- Lua editor: initial PR to start the project viewer by @marchcat in #3535
- Lua editor: mac build fix by @marchcat in #3560
- Lua editor: syntax highlighting improvements by @marchcat in #3609
- Lua editor: script editor in the inventory by @marchcat in #3662
- Lua editor: WIP updates by @marchcat in #3701
- #3731 Temporary viewer-side workaround to create SLua scripts by default by @marchcat in #3752
- Lua editor: #3731 follow-ups by @marchcat in #3756
- Lua editor: Keywords update by @marchcat in #3781
- Use Google Inter by @akleshchev in #3568
- SLua editor: multi-line strings and comments by @marchcat in #3807
- SLua editor: Better strings and logs for external editors by @marchcat in #3860
- SLua editor: WIP by @marchcat in #3935
- SLua editor: Post-release merge by @marchcat in #4181
- Rider/release to luaedit by @Rider-Linden in #4602
- viewer#2023 Google Inter #3 by @akleshchev in #4711
- Merge 2025.07 into lua editor by @Geenz in #4779
- Websockets Server implementation for script editor integration with VSCode or other external editors. by @Rider-Linden in #4599
- Update Lua editor with latest 2025.07 by @Geenz in #4810
- Linux Support Part 1 by @RyeMutt in #4827
- Linux64 Part 2 by @RyeMutt in #4915
- Add GL constants needed for compatibility with physicsextensions_source package by @RyeMutt in #4934
- Improve fix for line width crashes under certain Mesa GL drivers by @RyeMutt in #4935
- Linux bug touch ups by @RyeMutt in #4954
- Update SLua editor with latest 2025.08 by @marchcat in #4997
- Updated lua types. by @Rider-Linden in #5008
- #4926 Replace tabs with spaces in script messages by @marchcat in #5014
- Move 'DetectedEvent' in the lua types xml to classes by @WolfGangS in #5015
- Missing vector function. by @Rider-Linden in #5021
- Add missing eventName parameter in default lua types xml by @WolfGangS in #5022
- Change the default script for SLua by @HaroldCindy in #5028
- Minimal fix for ctd in lua_editor viewer #5031 by @WolfGangS in #5033
- Update websocketpp package to allow compiling on Linux with C++20 by @HaroldCindy in #5034
- Add missing LLEvents:once to lua_types xml by @WolfGangS in #5036
- Prevent the creation of temporary objects that will be discarded. by @AiraYumi in #5037
- Update fonts update with develop by @Geenz in #5032
- Andreyk/fontsupdate by @akleshchev in #5051
- Replace llcorehttp dependency on boost thread with std by @RyeMutt in #5065
- Fix failure to generate build config information correctly under some cmake generators by @RyeMutt in #5061
- Remove leftover boost aligned_allocator as this is now handled by c++ aligned allocations by @RyeMutt in #5069
- Optimize post process rendering for gltf material preview by @RyeMutt in #5057
- Fix invalid symbol in gstreamer 1.0 plugin dlopen load crashing by @RyeMutt in #5059
- Merge 26.01 into develop-linux by @marchcat in #5101
- Remove cpuid feature bits verification in llprocessor.cpp (#4959) by @marchcat in #5102
- Revert kdu cmake change by @marchcat in #5103
- Proper Windows build fix by @marchcat in #5105
- develop-linux → SLua PV merge by @marchcat in #5020
- #4628 New land access permission by @akleshchev in #5113
- Add alternate LLEvents style for slua types xml by @WolfGangS in #5115
- Add sldecode and slencode Lua JSON helpers by @mikelittman in #5114
- #5123 A bunch of small performance optimizations by @akleshchev in #5124
- #5125 Negative pixel area in object's info by @akleshchev in #5127
- Add missing static declaration for LLCachedControl by @Ansariel in #5131
- #5129 Hide moderator options for participants who are not connected to the same voice space by @maxim-productengine in #5130
- #2639 Reapplied GPU benchmark fix by @akleshchev in #5133
- #5122 update version format by @maxim-productengine in #5135
- Add more functionality to LLFile and cleanup LLAPRFile by @fmartian in #4899
- p#512 Block ability to accidentaly purge Inventory items outside of trash by @akleshchev in #5137
- #5138 Added test case for multiple columns in a combo box by @akleshchev in #5139
- fix multi column comboboxes not honoring width parameter by @zi-ree in #5134
- Revert "Add more functionality to LLFile and cleanup LLAPRFile" by @akleshchev in #5142
- Fix failure to reconnect after disconnect and occasional dropout issue by @roxanneskelly in #5126
- #5122 update version format #2 by @maxim-productengine in #5146
- Remove dead llkeyframemotionparam and llstatemachine from llcharacter by @RyeMutt in #5145
- Rework legacy lltest executable into individual integration tests and fix various disabled/broken tests by @RyeMutt in #5144
- #5148 An option to activate group in group's panel by @akleshchev in #5149
- Restore multiple disabled tests in llcharacter and newview by @RyeMutt in #5153
- [#5155] Cleaned up unnecessary fake bool usage where appropriate by @Hecklezz in #5156
- Clean up dead code and dead tests by @RyeMutt in #5160
- #4945 Crash at renderMorphMasks by @akleshchev in #5162
- Prune files from macOS GHA runner to fix build failure from disk space exhaustion by @RyeMutt in #5154
- #5159 Fix Animated textures freeze by @akleshchev in #5163
- Split Viewer and Test builds into separate jobs in GHA to reduce potential for disk space exhaustion by @RyeMutt in #5168
- #5121 crash at getShowFolderState by @maxim-productengine in #5167
- #5164 Adjust the 12 hour Time Format by @akleshchev in #5169
- #5111 change notification type from modal to alert by @maxim-productengine in #5173
- Update the luau defs. Should be complete API by @Rider-Linden in #5179
- Update SLua editor with recent Linux branch changes by @marchcat in #5185
- #5171 restore correct selection after clicking Cancel in Preferences by @maxim-productengine in #5176
- fixes for linux build by @AndrewMeadows in #5192
- Update LLScriptEditor and friends to index line numbers from 1 when editing in Lua by @DarlCat in #5190
- Lua UUID typings by @tapple in #5188
- Fix types for vector multiplication in lua type definitions by @WolfGangS in #5191
- No confirmation is shown when gifting all your money by @RyeMutt in #5207
- Fix alpha debug overlay blend and mask conflicting and debug overlay rendering twice by @RyeMutt in #5203
- Optimize away repeated map finds for getParameterEntry* functions by @RyeMutt in #5206
- Bump actions/checkout from 5 to 6 by @dependabot[bot] in #5200
- LLPointer cleanup and modernizations from archive by @RyeMutt in #5204
- Optimizations to property line rendering by @RyeMutt in #5205
- Restore optimized unloading of mesh volumes by @RyeMutt in #5202
- [#5210] Use the preloaded marketplace floater for SL marketplace URLs by @Hecklezz in #5211
- Shift+Tab selects extra lines on script edit on reduce indent by @RyeMutt in #5196
- Bump actions/download-artifact from 4 to 7 by @dependabot[bot] in #5199
- Provide SL Grid Map coordinates for Official Viewer Users please by @RyeMutt in #5197
- ObjectGrab message includes invalid SurfaceInfo data when in mouselook mode by @RyeMutt in #5195
- [#5186] Fix camera from becoming stuck with DisableCameraConstraints enabled by @Hecklezz in #5187
- Bump actions/cache from 4 to 5 by @dependabot[bot] in #5198
- Migrate sky/cloud rendering to fragment shader and introduce high precision post process option by @RyeMutt in #5056
- #5217 Small cleanup and const declarations by @akleshchev in #5222
- Add more functionality to LLFile and cleanup LLAPRFile by @akleshchev in #5151
- #5217 Treat issues with control variables smarter and show a proper warning by @akleshchev in #5223
- Sync develop-linux with develop by @RyeMutt in #5227
- #4834 update object's modify flag after being granted Edit permission by @maxim-productengine in #5225
- [#5224] Corrected file permissions, only permitting execution on scripts that should have them by @Hecklezz in #5226
- Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #4921
- Simplify
--[[Lua comment syntax highlighting, speed up SLua highlighting by @HaroldCindy in #5235 - #5228 crash at updateLoginButtons by @maxim-productengine in #5236
- Add method to script editor websocket that lists scripts available for subscription by @WolfGangS in #5182
- #5238 WebRTC connection's task outlived the connection by @akleshchev in #5239
- Merge from 2026.01 into develop by @akleshchev in #5245
- #5083 Fix external editor default open handling failing to work on mac and windows by @RyeMutt in #5246
- Fix model preview floater camera affecting agent fov on simulator by @WolfGangS in #5240
- #5249 Crash at LLVolumeFace::remap() by @akleshchev in #5251
- #5249 Update mesh optimizer to v1.0.1 by @akleshchev in #5253
- #3537 Optimize LLKeywords token scanning with first-char indexes by @marchcat in #5254
- #5241 Crash at onIdleUpdateFavorites by @maxim-productengine in #5257
- #5259 Crash at LLFolderViewFolder by @akleshchev in #5260
- Permit vertically adjusting label position in inventory by @akleshchev in #5262
- #5263 Remove TRUE/FALSE keyword mapping in SLua by @marchcat in #5267
- #5271 Update zlib-ng and libraries that depend on it by @akleshchev in #5270
- #5250 use Documents as default save location by @maxim-productengine in #5272
- #5278 Async SLua parsing by @marchcat in #5279
- [#5210] Fix looping back to previous marketplace url when using the viewer navigation bar by @Hecklezz in #5264
- Work for new caution permission. by @Rider-Linden in #5093
- #5274 fix "cef_cache" subfolder not being cleared on exFAT filesystem by @maxim-productengine in #5289
- #5276 Freeze when bulk editing outfits by @akleshchev in #5287
- [#3013] Fix hollowed prims not shading correctly and appearing not smooth by @Hecklezz in #5293
- Provide modern screenshot resolution presets by @FelixWolf in #5292
- Use CMake find_package(Python3) for automatic Python support in #5255
- Type-fixes by @tapple in #5288
- #5284 Fix UV flipping by @akleshchev in #5294
- Merge develop-linux into SLua editor PV branch by @marchcat in #5303
- Add notecard name to tempfile created for editing notecard externally by @WolfGangS in #5291
- #1851 Fix PBR Opaque alpha mask hud shading mismatching in world by @RyeMutt in #5302
- p#124 Fix wrong max image size for model upload by @akleshchev in #5300
- [#5305] Fix crash in LLConvexDecompositionVHACD::executeStage accessing nullptr by @Hecklezz in #5306
- Refactor remaining SDL2 references to remove version specificity and improve clarity by @FelixWolf in #5285
- #5296 Clothes of other avatars are rendered skin tight by @akleshchev in #5309
- #5310 Resolve 'unimplented copyScalar' error by @akleshchev in #5311
- Fix avatar body mesh and system clothing conflicting with water and alpha by @RyeMutt in #5312
- Fix a few thread safety issues in VHACD convex decomp by @RyeMutt in #5313
- Startup and Login Optimization Pass by @RyeMutt in #5256
- Cherry pick watchdog adjustments into lua by @akleshchev in #5317
- #5318 Crash in profileAvatar by @akleshchev in #5319
- Merge develop into develop-linux by @RyeMutt in #5316
- Updates and improvements to keywords_lua_default.xml by @tapple in #5301
- #5157 fix crash in isHUDGroup by @maxim-productengine in #5320
- Expose floater's header font to XUI by @akleshchev in #5323
- #5314 fix WebRTC voice being muted after quickly toggling the Speak button by @maxim-productengine in #5330
- fix keywords in keywords_lua_default.xml by @tapple in #5325
- Use new suspendUntilNextFrame() to fix wait logic by @akleshchev in #5331
- Ability to set size_delta to make different fonts work together better by @akleshchev in #5336
- #5338 Provide more details from experience error by @akleshchev in #5339
- #3502 fix using non-existing "cookies_enabled" control by @maxim-productengine in #5343
- #5335 Fix silent uninstall asking about registry by @akleshchev in #5340
- #5348 Fix crash in LLViewerObject::getRenderRotation() by @marchcat in #5349
- #2975 PBR support for planar aligment by @akleshchev in #5347
- Change the keywords.xml generator from c to python by @tapple in #5332
- Keywords fixes 3 by @tapple in #5350
- #2572 fix displaying Voice dot in Conversations floater when Voice Chat was disabled by @maxim-productengine in #5354
- Show dummies correctly in Edit outfit parts in #5353
- Update version format by @maxim-productengine in #5357
- Steeltoe's XUI changes by @akleshchev in #5360
- Keywords fixes 4 by @tapple in #5355
- Add clickable notification for saved screenshots in #5361
- #2293 Mark an object in an uncertain 'for sale' state as tentaive by @akleshchev in #5364
- #1664 retain clothing order when Replacing Link with the same wearable type by @maxim-productengine in #5365
- #5358 Improve performance when processing inventory fetches in parallel by @akleshchev in #5370
- #5359 Skip SLua scripts during bulk LSL recompile by @marchcat in #5371
- More XUI adjustments for fonts work by @akleshchev in #5372
- #5228 crash at updateLoginButtons by @akleshchev in #5375
- #5377 Fix PBR being highlighted incorrectly on a face by @akleshchev in #5378
- #5380 Fix crash in LLImageGL::analyzeAlpha() by @marchcat in #5381
- #5380 Fix race condition in texture creation causing AV by @marchcat in #5382
- Adjust buttons and lists for font size being larger by @akleshchev in #5386
- Keywords Fixes 5 by @tapple in #5387
- Some notes in linux build instructions by @tapple in #5388
- UI controls adjustments and selection color update by @maxim-productengine in #5389
- Make floater tools use Dejavu with old font size #2 by @akleshchev in #5392
- #5376 fix snapshot size not being updated when clicking 'Save to disk' by @maxim-productengine in #5394
- 26.01 -> 26.02 by @Geenz in #5402
- Voice moderation -> 26.2 by @Geenz in #5401
- #5398 Add keyboard shortcuts for "Use shared environment" and "Midday (legacy)" by @maxim-productengine in #5403
- Performance optimizations to resolve long stalls by @akleshchev in #5393
- Keywords Fixes 6 by @tapple in #5399
- #5405 Stalls on LLFileSystem::getExists by @akleshchev in #5406
- #5404 Allow adding to favorites directly from the avatar by @akleshchev in #5407
- FIX - pre-jump and land animations being shortcircuited by race conditions with AGENT_CONTROL_FINISH_ANIM when chaining jumps by @trish-sl in #5409
- #4958 Fix model upload options for SDL file picker by @RyeMutt in #5379
- #5409 Post-merge fix: variable name mismatch by @marchcat in #5410
- #5417 Fix crash at LLPanelLogin::updateLoginButtons() by @marchcat in #5418
- #5414 Don't crash on unknown layer type by @akleshchev in #5415
- #1807 Fix navigation bar's search filters by @akleshchev in #5423
- #5395 Draw yellow friend dots last on the mini-map by @maxim-productengine in #5428
- #5356 Fix fast texture cache's mutex stall #2 by @akleshchev in #5412
- #5419 remove old unused floater by @maxim-productengine in #5432
- #2938 show confirmation before closing Conference chat by @maxim-productengine in #5434
- #5397 Add a setting to see own group tag without seeing others by @maxim-productengine in #5436
- #5396 Add an option to hide Recent, Worn and Favorites tabs by @maxim-productengine in #5437
- #5435 Update viewer indra_constants.h by @maxim-productengine in #5444
- #5443 fix crash in LLPreviewNotecard::canClose by @maxim-productengine in #5446
- #5431 Fix GLTF rotation corruption on upload by @marchcat in #5448
- #5449 Fix GLB textures loading regression by @marchcat in #5451
- Develop -> 2026.02 by @Geenz in #5452
- Keywords Fixes 7 by @tapple in #5440
- #5084 Fix mac's watchdog not catching test case by @akleshchev in #5455
- #5426 Fix crash in LLPointer::notNull by @marchcat in #5481
- #5084 Convert watchdog to a simpleton by @akleshchev in #5484
- #5430 Allow
.luaand.luauextensions in "Load from file" by @marchcat in #5487 - Rider/default script by @Rider-Linden in #5383
- #5486 Fix potential unpackBinaryData buffer issues by @akleshchev in #5491
- #5492 don't toggle Speak button state while voice is moderated by @maxim-productengine in #5496
- #5084 Fix watchdog's simpleton init by @akleshchev in #5501
- #5497 Handle a case of missing files in conversation view by @akleshchev in #5498
- Bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in #5474
- Bump actions/download-artifact from 7 to 8 by @dependabot[bot] in #5473
- #5506 Periodical stalls on media update by @akleshchev in #5508
- Pull in latest change from pre-release 2026.01 into develop by @akleshchev in #5510
- #3612 Fix empty 'copy' message by @akleshchev in #5511
- #5084 Improve watchdog's behavior by @akleshchev in #5502
- #5250 use Downloads as default save location by @maxim-productengine in #5517
- #5512 Crash on reset_login by @akleshchev in #5513
- #5515 restore Inventory favorite color by @maxim-productengine in #5518
- #5516 Increase default width for Inventory floater by @maxim-productengine in #5522
- #5521 Don't use the old shaded button texture by @maxim-productengine in #5523
- 2026.01 by @Geenz in #5097
- FIX - PBR materials with alpha mode BLEND and alpha value of 0 are not highlighted by @trish-sl in #5411
- Update to latest main (2026.02) by @Geenz in #5531
- #5532 Use LSL and SLua definitions files from package by @marchcat in #5533
- #1625 Blinding white screen when changing environments by @akleshchev in #5485
- 26.1 -> SLua PV merge by @marchcat in #5539
- Fix LLTextureCacheRemoteWorker::doRead malloc size error by @Hecklezz in #5538
- Appearance fixes by @KittyBarnett in #3492
- #2975 Fix scale calculation by @akleshchev in #5535
- #5541 Add safety checks for inventory save during shutdown by @marchcat in #5542
- viewer-private#540 Fix freeze when opening large profiles #1 by @akleshchev in #5546
- Fix locale thousands separator producing '?' on Linux with multibyte UTF-8 separators by @marchcat in #5550
- #5462 Login form update by @maxim-productengine in #5509
- #5454 fix not showing Friend requests during start up notification by @maxim-productengine in #5556
- #5543 PBR support for pipette by @akleshchev in #5549
- #5557 adjust buttons position when hiding grid selector by @maxim-productengine in #5559
- [#5210] Improve detection of marketplace urls for the preloaded marketplace floater by @Hecklezz in #5459
- Add 'copilot-swe-agent' to allowlist in CLA workflow by @brad-linden in #5566
- #5558 Adjust map request size dynamically by @akleshchev in #5560
- #5564 use additional common background to avoid scaling issues by @maxim-productengine in #5573
- #5569 Potential fix for frequent disconnects by @akleshchev in #5571
- #5577 Remove first login screen by @maxim-productengine in #5578
- #5575 fix incoming webRTC voice audio being disrupted after editing audio settings by @maxim-productengine in #5581
- Send metadata for textures to get correct upload cost estimate. by @Rider-Linden in #5554
- #4298 Handle various out of memory cases by @akleshchev in #5587
- #5585 fix the issue with ptt state when joining p2p call while in voice-disabled parcel by @maxim-productengine in #5591
- #5572 Fix overlapping segment ops for namespaced SLua keywords by @marchcat in #5593
- Support for metadata and script subtype. by @Rider-Linden in #5583
- #3420 CreateLandmarkForPosition floater fails to save descriptions by @akleshchev in #5594
- #5569 Complexity rework by @akleshchev in #5580
- #5373 add leap api to open Build floater and change selected tool by @maxim-productengine in #5595
- #5569 Potential fix for frequent disconnects #2 by @akleshchev in #5598
- #5367 Leap API support for combo boxes by @maxim-productengine in #5599
- Update login page url by @maxim-productengine in #5600
- Update login page url for tests by @maxim-productengine in #5601
- #5447 update Dialog buttons to correctly display emoji by @maxim-productengine in #5606
- #5602 deleteProbe optimization pass by @akleshchev in #5603
- #5612 Fix fast cache freezing main thread by @akleshchev in #5613
- #2892 Make thumbnail drop work the same way picker does by @akleshchev in #5614
- #5612 [Win] Reduce delays on resource access for main thread by @akleshchev in #5616
- #5618 fix displaying Inventory tab scroll buttons when they are not needed by @maxim-productengine in #5620
- Mute list fallback to cache if timed out by @DarlCat in #5269
- Release/26.1.1 by @Geenz in #5530
- Velopack -> 2026.02 by @Geenz in #5624
- 26.1.1 -> develop by @Geenz in #5623
- #5611 Select a discrete gpu when possible by @akleshchev in #5619
- #5607 workaround fix for the web content being black after resizing by @maxim-productengine in #5625
- #5626 LLTextBase optimization by @akleshchev in #5627
- Flat UI Alpha by @Geenz in #5475
- #2888 show underwater nametags when camera is above the water by @maxim-productengine in #5637
- #5628 Update taskbar's link to point to velopack by @akleshchev in #5630
- Initialize LLJointData support category from avatar skeleton by @gaiaclary in #5632
- Fix glTF collision volume bind reconstruction by @gaiaclary in #5633
- Bump BugSplat-Git/symbol-upload from 095d163ae9ceb006d286a731dcd35cf6a1b458c8 to 2a0d2b8cf9c54c494144048f25da863d93a02ccd by @dependabot[bot] in #5604
- #2410 Update notification text to include Combat 2.0 options by @maxim-productengine in #5642
- #5636 Fix cache size label and field by @akleshchev in #5643
- #5450 add Leap unicode input support by @maxim-productengine in #5650
- #5634: Apply version string from janus server if available. Also display the type of connection the version is applicable to. by @cosmic-linden in #5641
- #5585 fix the issue with ptt state when joining p2p call while in voice-disabled parcel by @maxim-productengine in #5653
- #2023 Load from a variable font by @akleshchev in #5645
- Update viewer copyright year in About licenses by @mayconbekkers in #5649
- #5647 fix for texture Mapping fields not being updated when selecting BP face after PBR face by @maxim-productengine in #5656
- Update SLua PV to 26.1.1 by @marchcat in #5659
- #5489 Follow up for appearance fixes by @akleshchev in #5657
- #5664 remove non-ASCII7 characters from comments by @maxim-productengine in #5668
- Add texture streaming "channels" (#5442) by @Geenz in #5667
- [#5665] Fix experiences search and new classifieds content rating labels showing incorrectly by @Hecklezz in #5666
- #5661 XUI adjustments by @akleshchev in #5670
- Revert "#1625 Blinding white screen when changing environments" by @akleshchev in #5673
- #5628 Update taskbar's link to point to velopack #2 by @akleshchev in #5669
- Update velopack with a public build by @akleshchev in #5678
- #5652 fix moderation status not being reliably shown when entering parcel voice space by @maxim-productengine in #5683
- #5655 Fix freeze on purging cef cache by @akleshchev in #5680
- Remove Guidebook entry points by @mayconbekkers in #5646
- LLMuteList use-cached response bugfix | #5269 followup by @DarlCat in #5685
- #5629 Velopack allows uninstall while the viewer is running by @akleshchev in #5662
- #1355 Permit smaller values in cloud scroll rate by @akleshchev in #5687
- p#475 Excess texture fetch shutdown logging by @akleshchev in #5694
- XUI updates and default font change by @maxim-productengine in #5688
- Revert #2674 property lines optimizations by @akleshchev in #5695
- #2965 Indicate when role members aren't loaded by @akleshchev in #5692
- #5450 add Leap non-ascii input support for keyDown by @maxim-productengine in #5700
- #5676 Expand PBR planar aligment to cover all channels by @akleshchev in #5698
- [#5707] Revert PR#426 Get rid of a duplicate notification by @Hecklezz in #5708
- #5439 fix Avatar Welcome Pack not being opened on the first session by @maxim-productengine in #5709
- Respect custom logfile during startup by @mayconbekkers in #5674
- #5690 fix viewer trying to fetch group chat history for p2p IM by @maxim-productengine in #5718
- #5702: Ensure non-visible preloaded media has PRIORITY_HIDDEN by @cosmic-linden in #5705
- Fix P2P text chat timeout on WebRTC regions and delay voice renegotiation on disconnect by @roxanneskelly in #5706
- (cherry pick) #5702: Ensure non-visible preloaded media has PRIORITY_HIDDEN by @cosmic-linden in #5720
- #5726 Crash initing in-viewer console by @akleshchev in #5727
- #5724 Crash initing a buy_currency floater by @akleshchev in #5725
- p#479 Make sure running app is the one handling urls by @akleshchev in #5703
- #5728 Update license files by @akleshchev in #5738
- #5719 Partial detection of shutdown from task manager by @akleshchev in #5729
- Bump actions/download-artifact from 4 to 8 by @dependabot[bot] in #5753
- Bump BugSplat-Git/symbol-upload from 10.3.0 to 10.3.2 by @dependabot[bot] in #5752
- #5682 add LEAP API to get info about web_browser widget by @maxim-productengine in https://github.com/secondlife/viewer/pull/5754
- #5756 Improve LLUICtrlFactory's performance by @akleshchev in https://github.com/secondlife/viewer/pull/5757
- Bold font and some typos by @akleshchev in https://github.com/secondlife/viewer/pull/5760
- #5755 fix for notifications layout by @maxim-productengine in https://github.com/secondlife/viewer/pull/5761
- Bump actions/github-script from 8 to 9 by @dependabot[bot] in https://github.com/secondlife/viewer/pull/5751
- Get pregenerated config files from the simulator cap and make them available through the websocket. by @Rider-Linden in https://github.com/secondlife/viewer/pull/5739
- #5232 Crash in handleMessage #2 by @akleshchev in https://github.com/secondlife/viewer/pull/5763
- [Documentation] List the correct syntax filenames by @tapple in https://github.com/secondlife/viewer/pull/5764
- #5742 Add LEAP API to get info about scene-level attached objects by @maxim-productengine in https://github.com/secondlife/viewer/pull/5767
- #5677 Left side of Profile's Pick's location string can be cut by @akleshchev in https://github.com/secondlife/viewer/pull/5765
- #4802 Handle KDU crashes by @akleshchev in https://github.com/secondlife/viewer/pull/5762
- #5772 'Control not found' crash by @akleshchev in https://github.com/secondlife/viewer/pull/5773
- #5777 Exception handling for an LLSD formatter by @akleshchev in https://github.com/secondlife/viewer/pull/5778
- #5774 Crash on getCurrentNavUrl by @akleshchev in https://github.com/secondlife/viewer/pull/5776
- #5768 fix llDialog text overflowing by @maxim-productengine in https://github.com/secondlife/viewer/pull/5780
- Fix picks pointing to the wrong location if the region moved by @trish-sl in https://github.com/secondlife/viewer/pull/5730
- #5784 fix crash at LLViewerRegion::killInvisibleObjects by @maxim-productengine in https://github.com/secondlife/viewer/pull/5788
- #5634: Apply version string from janus server if available by @cosmic-linden in https://github.com/secondlife/viewer/pull/5792
- FIX - Prejump regression on first jump by @trish-sl in https://github.com/secondlife/viewer/pull/5731
- fix: replace non-ASCII source comments by @santoslgl01-web in https://github.com/secondlife/viewer/pull/5736
- #5744 Prefill 'report' floater for objects' IMs by @akleshchev in https://github.com/secondlife/viewer/pull/5781
- #5775 Update copyright date in cmake by @akleshchev in https://github.com/secondlife/viewer/pull/5803
- #5801 add Mute sound menu option by @maxim-productengine in https://github.com/secondlife/viewer/pull/5807
- #5806 add option to reset environment after teleport by @maxim-productengine in https://github.com/secondlife/viewer/pull/5808
- #5810 Improve early exit's cleanup by @akleshchev in https://github.com/secondlife/viewer/pull/5811
- #5799 update message for no search results by @maxim-productengine in https://github.com/secondlife/viewer/pull/5812
- Remove Vivox-related code by @roxanneskelly in https://github.com/secondlife/viewer/pull/5800
- #5804 Prevent group chat focus steal when opening adhoc IM by @marchcat in https://github.com/secondlife/viewer/pull/5813
- Fix display of ad-hoc session type in About and display p2p instead as appropriate by @cosmic-linden in https://github.com/secondlife/viewer/pull/5816
- #5802 Open teleport history with a keystroke by @maxim-productengine in https://github.com/secondlife/viewer/pull/5817
- #5810 Differentiate startup crashes from runtime crashes by @akleshchev in https://github.com/secondlife/viewer/pull/5814
- #5820 Add 'Set UI Size to Default' to help menu on login screen by @akleshchev in https://github.com/secondlife/viewer/pull/5821
- #3430 Fix incorectly stated permissions for scripts. by @akleshchev in https://github.com/secondlife/viewer/pull/5822
- #5804 Prevent focus steal when removing unselected conversation widget by @marchcat in https://github.com/secondlife/viewer/pull/5819
- #5785 fix login and world UI overlap by @maxim-productengine in https://github.com/secondlife/viewer/pull/5827
- (develop) Fix display of ad-hoc session type in About and display p2p instead as appropriate by @cosmic-linden in https://github.com/secondlife/viewer/pull/5824
- Fix GLTF bind matrix remapping by @gaiaclary in https://github.com/secondlife/viewer/pull/5782
- #5786 Fix a case of unitialized override matrix by @akleshchev in https://github.com/secondlife/viewer/pull/5831
- Update OpenJPEG to 2.5.4 by @TommyTheTerrible in https://github.com/secondlife/viewer/pull/5826
- #5818 Fix setCursor crash by @akleshchev in https://github.com/secondlife/viewer/pull/5832
- #5756 Improve LLUICtrlFactory's performance by @akleshchev in https://github.com/secondlife/viewer/pull/5836
- Release/2026.02 by @Geenz in https://github.com/secondlife/viewer/pull/5369
- #5809 Add 'mute' based filter for conversation history by @akleshchev in https://github.com/secondlife/viewer/pull/5840
- Release/2026.03 by @Geenz in https://github.com/secondlife/viewer/pull/5842
- 26.2 to 26.3 by @Geenz in https://github.com/secondlife/viewer/pull/5843
- 26.3 to Develop by @Geenz in https://github.com/secondlife/viewer/pull/5844
- #4823 WebRTC crashes by @akleshchev in https://github.com/secondlife/viewer/pull/5838
- #5794 add Voice tab and update Sound & Media tab in Preferences by @maxim-productengine in https://github.com/secondlife/viewer/pull/5848
- #5732 fix showing incorrect 'Packets Lost' statistic by @maxim-productengine in https://github.com/secondlife/viewer/pull/5849
- #5733 reduce the tabs width on the Profile by @maxim-productengine in https://github.com/secondlife/viewer/pull/5851
- 26.2 -> SLua viewer by @marchcat in https://github.com/secondlife/viewer/pull/5852
- #5853 Fix wrong combo box being disabled in preferences by @akleshchev in https://github.com/secondlife/viewer/pull/5854
- Revert LLFileSystem changes to preserve Linux branch approach by @marchcat in https://github.com/secondlife/viewer/pull/5863
- Font crash fix by @akleshchev in https://github.com/secondlife/viewer/pull/5860
- #5845 #5846 Crash fixes by @akleshchev in https://github.com/secondlife/viewer/pull/5847
- #3430 Strip the 'inside an object' from message as it is not object specific by @akleshchev in https://github.com/secondlife/viewer/pull/5865
- Texture streaming rework by @Geenz in https://github.com/secondlife/viewer/pull/5829
- Andreyk/26 3 pick crash fixes by @akleshchev in https://github.com/secondlife/viewer/pull/5861
- Cache repeated singleton/accessor calls in LLPanel::initPanelXML by @marchcat in https://github.com/secondlife/viewer/pull/5835
- #5368 add Leap API to query statistics by @maxim-productengine in https://github.com/secondlife/viewer/pull/5870
- Log failed delivery of crucial vewer-->simulator connection UDP messages by @AndrewMeadows in https://github.com/secondlife/viewer/pull/5568
- Drop fewer packets on UDP packet flood by @AndrewMeadows in https://github.com/secondlife/viewer/pull/5565
- #5855 Added a way to check triangles for all lods by @akleshchev in https://github.com/secondlife/viewer/pull/5873
- #3729 Reduce inventory memory overhead by @akleshchev in https://github.com/secondlife/viewer/pull/5867
- #5719 Detect hybernation #2 by @akleshchev in https://github.com/secondlife/viewer/pull/5876
- #5798 fix displaying outfit Search results and update default filtering by @maxim-productengine in https://github.com/secondlife/viewer/pull/5878
- #5877 Fix truncated Favorites bar text by @akleshchev in https://github.com/secondlife/viewer/pull/5889
- #3342 Fix "Cut" and "Copy" options for objects in notecards by @akleshchev in https://github.com/secondlife/viewer/pull/5890
- #5881 Adjust llDialog width by @akleshchev in https://github.com/secondlife/viewer/pull/5891
- #5856 An option to prevent hibernation by @akleshchev in https://github.com/secondlife/viewer/pull/5879
- #5881 Adjust buttons for llDialog by @akleshchev in https://github.com/secondlife/viewer/pull/5896
- Revert "#1625 Blinding white screen when changing environments" by @akleshchev in https://github.com/secondlife/viewer/pull/5906
- p575 Unify description field by @akleshchev in https://github.com/secondlife/viewer/pull/5902
- #5900 Fix material editor lockup when saving from object to inventory by @akleshchev in https://github.com/secondlife/viewer/pull/5908
- #5611 Skip default windows' gpu drivers by @akleshchev in https://github.com/secondlife/viewer/pull/5909
- #3672 Fix shader compilation error by @akleshchev in https://github.com/secondlife/viewer/pull/5910
- #5775 Update copyright date in cmake by @akleshchev in https://github.com/secondlife/viewer/pull/5912
- Update viewer copyright year in About licenses by @akleshchev in https://github.com/secondlife/viewer/pull/5913
- Fix Win32 white flash on startup by handling WM_ERASEBKGND with black brush by @primgineer in https://github.com/secondlife/viewer/pull/5903
- Two crash fixes by @akleshchev in https://github.com/secondlife/viewer/pull/5916
- FIX - Transparent highlights omitting HUDs by @trish-sl in https://github.com/secondlife/viewer/pull/5893
- p#604 Fix draw range fluctuations by @akleshchev in https://github.com/secondlife/viewer/pull/5923
- #5924 Crash on is_water_exclusion_face by @akleshchev in https://github.com/secondlife/viewer/pull/5925
- p#604 Fix draw range fluctuations #2 by @akleshchev in https://github.com/secondlife/viewer/pull/5926
- #5856 Improve stats reliability on non-standard shutdown by @akleshchev in https://github.com/secondlife/viewer/pull/5930
- #5785 fix login and world UI overlap by @maxim-productengine in https://github.com/secondlife/viewer/pull/5933
- #5579 Ensure own avatar's complexity is up to date by @akleshchev in https://github.com/secondlife/viewer/pull/5936
- macOS 27 build fixes + transition to UTType for file pickers by @Geenz in https://github.com/secondlife/viewer/pull/5937
- #5934 Fix animeshes being ranked incorrectly by @akleshchev in https://github.com/secondlife/viewer/pull/5938
- p#587 Taskbar icon does not expand into app when opened by @akleshchev in https://github.com/secondlife/viewer/pull/5932
- Gesture auto-complete, similar to emojis/mentions by @gwigz in https://github.com/secondlife/viewer/pull/5919
- p#626 Freeze detection on gl oclusion logic by @akleshchev in https://github.com/secondlife/viewer/pull/5940
- #5837 Fix mature group search showing zero results by @akleshchev in https://github.com/secondlife/viewer/pull/5941
- Improve shader cache error catching and improve reporting by @akleshchev in https://github.com/secondlife/viewer/pull/5942
- #5837 Fix mature group search showing zero results #2 by @akleshchev in https://github.com/secondlife/viewer/pull/5943
- #5945 cacheOptimize crash handling by @akleshchev in https://github.com/secondlife/viewer/pull/5947
- #5946 Fix excessive 'allowed to terraform' warning by @akleshchev in https://github.com/secondlife/viewer/pull/5949
- Add drag-n-drop reordering for clothing layers by @gwigz in https://github.com/secondlife/viewer/pull/5918
- p#388 Improve protections and loggiong around shader cache saving by @akleshchev in https://github.com/secondlife/viewer/pull/5957
- Clean up feedback on #5918 and #5919 by @gwigz in https://github.com/secondlife/viewer/pull/5959
- #5960 Disable new inventory features popup by @akleshchev in https://github.com/secondlife/viewer/pull/5970
- #5962 Optimize writeWearablesToAvatar by @akleshchev in https://github.com/secondlife/viewer/pull/5965
- Bump actions/checkout from 6 to 7 by @dependabot[bot] in https://github.com/secondlife/viewer/pull/5975
- Bump BugSplat-Git/symbol-upload from 10.3.2 to 10.5.0 by @dependabot[bot] in https://github.com/secondlife/viewer/pull/5974
- Bump actions/cache from 5 to 6 by @dependabot[bot] in https://github.com/secondlife/viewer/pull/5973
- #4094 Handle two stage uploads more reliably by @akleshchev in https://github.com/secondlife/viewer/pull/5971
- #5968 Fix outfit tabs not showing up without a filter reset by @akleshchev in https://github.com/secondlife/viewer/pull/5977
- Some minor tweaks to the color picker after interest was expressed during a Content Creator User Group by @callumlinden in https://github.com/secondlife/viewer/pull/5895
- Geenz/texture streaming tweaks by @Geenz in https://github.com/secondlife/viewer/pull/5982
- Localize Debug Settings comments (PT-BR) with English fallback by @vedned in https://github.com/secondlife/viewer/pull/5956
- Update memory accounting by @akleshchev in https://github.com/secondlife/viewer/pull/5979
- #5892 Inventory optimizations by @akleshchev in https://github.com/secondlife/viewer/pull/5894
- Update libwebrtc to m144 and fix audio device lifecycle/processing by @roxanneskelly in https://github.com/secondlife/viewer/pull/5958
- #5981 Fix viewer scale interpolation not finishing by @akleshchev in https://github.com/secondlife/viewer/pull/5984
- Geenz/texture loading speed by @Geenz in https://github.com/secondlife/viewer/pull/5985
- #5742 Add LEAP API to get info about scene-level attached objects by @maxim-productengine in https://github.com/secondlife/viewer/pull/5986
- #5966 Fixed width font's numbers by @akleshchev in https://github.com/secondlife/viewer/pull/5987
- LLUIImage based buffer cache by @akleshchev in https://github.com/secondlife/viewer/pull/5976
- #5994 Additional llprocess unit test by @akleshchev in https://github.com/secondlife/viewer/pull/5990
- #5994 More llprocess tests by @akleshchev in https://github.com/secondlife/viewer/pull/5996
- Replace apr with boost in LLProcess by @akleshchev in https://github.com/secondlife/viewer/pull/5988
- p#662 Clarify attachment action desription in inventory settings by @akleshchev in https://github.com/secondlife/viewer/pull/6000
- Update velopack with a public build by @akleshchev in https://github.com/secondlife/viewer/pull/6004
- #5995 Fix azure translation not accepting large keys by @akleshchev in https://github.com/secondlife/viewer/pull/6005
- Update velopack with a public build by @akleshchev in https://github.com/secondlife/viewer/pull/6008
- #6002 Filter out inaudible media volume changes by @akleshchev in https://github.com/secondlife/viewer/pull/6003
- SLua PV <- 26.3 merge by @marchcat in https://github.com/secondlife/viewer/pull/6016
- Fix audio level ducking of applications when viewer webrtc is enabled. by @roxanneskelly in https://github.com/secondlife/viewer/pull/6007
- #5994 Fix llprocess waiting too long on kill by @akleshchev in https://github.com/secondlife/viewer/pull/6019
- #6014 Reduce shutdown delays on thread cleanup by @akleshchev in https://github.com/secondlife/viewer/pull/6024
- Fix undefined symbol link error in llcorehttp by @nibbbl in https://github.com/secondlife/viewer/pull/6021
- Detect OS default audio device changes by @nibbbl in https://github.com/secondlife/viewer/pull/6023
- #6014 Spread inventory caching better to not hold shutdown as much by @akleshchev in https://github.com/secondlife/viewer/pull/6026
- Defer processing AvatarAppearance until after first ObjectUpdate by @AndrewMeadows in https://github.com/secondlife/viewer/pull/6017
- #3988 Don't render malformed sculpts by @akleshchev in https://github.com/secondlife/viewer/pull/5951
- Use communications devices/scheme to get system audio processing by @roxanneskelly in https://github.com/secondlife/viewer/pull/6030
- Publish object inventories to external editor. by @Rider-Linden in https://github.com/secondlife/viewer/pull/5834
- Remove texture streaming changes from 26.3 by @Geenz in https://github.com/secondlife/viewer/pull/6029
- #5804 Select opened adhoc chat by @marchcat in https://github.com/secondlife/viewer/pull/6035
- #6040 Minor startup warnings fixes by @akleshchev in https://github.com/secondlife/viewer/pull/6041
- Fix missing CJK/Indic text on Linux with lazy font fallback by @nibbbl in https://github.com/secondlife/viewer/pull/5993
- #5796 Add CEF remote debugging port debug setting by @maxim-productengine in https://github.com/secondlife/viewer/pull/6037
- Two issues. by @Rider-Linden in https://github.com/secondlife/viewer/pull/6043
- Remove stale sOOMErrorCount declaration by @marchcat in https://github.com/secondlife/viewer/pull/6054
- #6040 Fix various runtime warnings by @akleshchev in https://github.com/secondlife/viewer/pull/6045
- Fix LLGroupMgr::removeObserver possibly failing to find and remove observers causing a crash by @Hecklezz in https://github.com/secondlife/viewer/pull/6051
- #5994 Make sure process terminates with the parent by @akleshchev in https://github.com/secondlife/viewer/pull/6048
- Move texture upload preparation off the main thread by @LisaScheers in https://github.com/secondlife/viewer/pull/6031
- #6057 Fix script's 'save as' logic not sanitizing file names by @akleshchev in https://github.com/secondlife/viewer/pull/6058
- Revert "Move texture upload preparation off the main thread" by @akleshchev in https://github.com/secondlife/viewer/pull/6060
- Fix blank disabled HiDPI value in About floater by @volksec in https://github.com/secondlife/viewer/pull/6047
- #5907 Fix flyout button using old and incorrect textures by @Ansariel in https://github.com/secondlife/viewer/pull/6059
- #6061 Fix wrapper exe having spaces by @akleshchev in https://github.com/secondlife/viewer/pull/6065
- #6062 Fix dupplicate rename AIS requests by @akleshchev in https://github.com/secondlife/viewer/pull/6067
- #5907 Fix textures for "Save" button in edit daycycle floater for flat UI appearance by @Ansariel in https://github.com/secondlife/viewer/pull/6064
- #6070 Highlight ad-hoc conversation on creating by @marchcat in https://github.com/secondlife/viewer/pull/6075
- Fix rendering on Parallels VMs with graphics set to "low" by @mcgroarty in https://github.com/secondlife/viewer/pull/6053
- Bump actions/labeler from 6 to 7 by @dependabot[bot] in https://github.com/secondlife/viewer/pull/6079
- #6081 Fix async use-after-free in editor saves by @marchcat in https://github.com/secondlife/viewer/pull/6084
- Fix model preview shutdown ordering by @marchcat in https://github.com/secondlife/viewer/pull/6085
- Fix fullscreen focus with native file dialogs by @volksec in https://github.com/secondlife/viewer/pull/6066
- Show five-digit precision for texture transforms by @volksec in https://github.com/secondlife/viewer/pull/6049
- p#682 Improve logging for system events and session by @akleshchev in https://github.com/secondlife/viewer/pull/6086
- #5869 Add LEAP API to get a full tree from root (getInfo and getPaths combined) by @maxim-productengine in https://github.com/secondlife/viewer/pull/6089
- #6042 Explain local network access for voice chat by @marchcat in https://github.com/secondlife/viewer/pull/6088
- #6055 Optimize LLImageGL::analyzeAlpha by @akleshchev in https://github.com/secondlife/viewer/pull/6073
- Bump BugSplat-Git/symbol-upload from 10.5.0 to 10.5.1 by @dependabot[bot] in https://github.com/secondlife/viewer/pull/6080
- #6071 Validity checks for LLViewerJointMesh::drawShape by @akleshchev in https://github.com/secondlife/viewer/pull/6087
- p682 Fix GetStats webrtc call being in a wrong thread by @akleshchev in https://github.com/secondlife/viewer/pull/6083
- #6040 Fix object cache logging by @akleshchev in https://github.com/secondlife/viewer/pull/6090
- p#682 Fix shutdown crash flushing peer connection stats by @roxanneskelly in https://github.com/secondlife/viewer/pull/6101
- #6071 Exra logging and guards for LLVisualParamHint by @akleshchev in https://github.com/secondlife/viewer/pull/6095
- #6040 Fix couple oversights by @akleshchev in https://github.com/secondlife/viewer/pull/6105
- #6106 Guard emoji picker navigation bounds by @marchcat in https://github.com/secondlife/viewer/pull/6108
- Bump actions/setup-python from 6 to 7 by @dependabot[bot] in https://github.com/secondlife/viewer/pull/6077
- #6071 Fix WT_SKIRT not being rendered by @akleshchev in https://github.com/secondlife/viewer/pull/6111
- #3814 Handle bad_allocs in unpackVolumeFaces by @akleshchev in https://github.com/secondlife/viewer/pull/6112
- p#648 Fix recursive folder pasting by @akleshchev in https://github.com/secondlife/viewer/pull/6116
- #6113 Crash at LLViewerMedia::updateMedia by @akleshchev in https://github.com/secondlife/viewer/pull/6114
- #6117 Guard against stale nearby chat toast handles by @marchcat in https://github.com/secondlife/viewer/pull/6120
- Fix LLViewerParcelMgr::writeHighlightSegments crashing from writing out of bounds by @Hecklezz in https://github.com/secondlife/viewer/pull/6126
- #6119 Mutex deadlock on LLGridManager singleton by @akleshchev in https://github.com/secondlife/viewer/pull/6121
- #6127 Ensure Agent command scope is global by @akleshchev in https://github.com/secondlife/viewer/pull/6128
- Rider/explore selection by @Rider-Linden in https://github.com/secondlife/viewer/pull/6104
- geenz/linux-to-develop to lua_editor by @marchcat in https://github.com/secondlife/viewer/pull/6133
- Pin xcode SDK to 26.3 by @marchcat in https://github.com/secondlife/viewer/pull/6136
- Report viewer's VRAM usage to statistics by @akleshchev in https://github.com/secondlife/viewer/pull/6134
- #5574 Add Lua and LSL-on-Luau options to Build - Scripts - Recompile Scripts. by @marchcat in https://github.com/secondlife/viewer/pull/6124
- Geenz/linux (and 26.3) to develop by @Geenz in https://github.com/secondlife/viewer/pull/6132
- #6141 #6142 Prevent morph mask cache allocation leaks by @marchcat in https://github.com/secondlife/viewer/pull/6143
- #5994 Fix path based launch for LLProcess by @akleshchev in https://github.com/secondlife/viewer/pull/6145
- #1841 Fix viewer attempting to parse joystick key string into an llsd by @akleshchev in https://github.com/secondlife/viewer/pull/6146
- Fix shutdown crash and cut WebRTC teardown time by @roxanneskelly in https://github.com/secondlife/viewer/pull/6129
- Fix error popup saying voice is incompatible with region voice by @roxanneskelly in https://github.com/secondlife/viewer/pull/6046
- #5749 Add LEAP API for Cut, Copy, Paste, and Select All by @maxim-productengine in https://github.com/secondlife/viewer/pull/6150
- #6148 Crash at LLViewerRegion::addNewObject by @akleshchev in https://github.com/secondlife/viewer/pull/6149
- Consolidate zerocode logic into util. by @AndrewMeadows in https://github.com/secondlife/viewer/pull/6152
- Bump actions/setup-dotnet from 4 to 6 by @dependabot[bot] in https://github.com/secondlife/viewer/pull/6078
- Update VIEWER_VERSION.txt by @akleshchev in https://github.com/secondlife/viewer/pull/6159
- Rider/runtime msging by @Rider-Linden in https://github.com/secondlife/viewer/pull/6156
- #6157 Crash at LLParticlePartition::getGeometry by @akleshchev in https://github.com/secondlife/viewer/pull/6161
- #6162 Preserve script keyword defaults when region omits definitions by @marchcat in https://github.com/secondlife/viewer/pull/6165
- #6163 Crash on LLImageGL::scaleDown(int) by @akleshchev in https://github.com/secondlife/viewer/pull/6164
- Bump actions/stale from 10 to 11 by @dependabot[bot] in https://github.com/secondlife/viewer/pull/6076
- #6123 Fix worker thread crash on termination by @akleshchev in https://github.com/secondlife/viewer/pull/6168
- #6130 Fix combo box in inventory settings by @akleshchev in https://github.com/secondlife/viewer/pull/6154
- #6155 Crash at delete_buffers by @akleshchev in https://github.com/secondlife/viewer/pull/6158
- #6167 fix WebRTC logging level by @maxim-productengine in https://github.com/secondlife/viewer/pull/6171
- #6172 Crash on recordResultCode by @akleshchev in https://github.com/secondlife/viewer/pull/6173
- Handle trailing line breaks when pasting text by @volksec in https://github.com/secondlife/viewer/pull/6069
- #5815 Rename Lua runtime dropdown entries by @marchcat in https://github.com/secondlife/viewer/pull/6122
- Fix doc drift between viewer and plugin. by @Rider-Linden in https://github.com/secondlife/viewer/pull/6178
- #6153 Make hardware test more robust by @akleshchev in https://github.com/secondlife/viewer/pull/6175
- p#700 Extra scale logging by @akleshchev in https://github.com/secondlife/viewer/pull/6177
- Alpha Viewer: Lua editor by @marchcat in https://github.com/secondlife/viewer/pull/3537
- #6109 StopRecording() crash by @akleshchev in https://github.com/secondlife/viewer/pull/6197
- #6109 StopRecording() crash by @akleshchev in https://github.com/secondlife/viewer/pull/6198
- #1841 Fix leap command by @akleshchev in https://github.com/secondlife/viewer/pull/6209
- #6174 Allow changing maturity preference on maturity error dialog by @maxim-productengine in https://github.com/secondlife/viewer/pull/6201
- Rider/lua beta bugfix a by @Rider-Linden in https://github.com/secondlife/viewer/pull/6214
- Fix scale startup issues on MacOS by @akleshchev in https://github.com/secondlife/viewer/pull/6215
- p#700 Fix issue with tittle bar on Windows by @akleshchev in https://github.com/secondlife/viewer/pull/6218
New Contributors
- @HaroldCindy made their first contribution in #5028
- @mikelittman made their first contribution in #5114
- @tapple made their first contribution in #5188
- @trish-sl made their first contribution in #5409
- @gaiaclary made their first contribution in #5632
- @mayconbekkers made their first contribution in #5649
- @santoslgl01-web made their first contribution in https://github.com/secondlife/viewer/pull/5736
- @primgineer made their first contribution in https://github.com/secondlife/viewer/pull/5903
- @gwigz made their first contribution in https://github.com/secondlife/viewer/pull/5919
- @vedned made their first contribution in https://github.com/secondlife/viewer/pull/5956
- @nibbbl made their first contribution in https://github.com/secondlife/viewer/pull/6021
- @LisaScheers made their first contribution in https://github.com/secondlife/viewer/pull/6031
- @volksec made their first contribution in https://github.com/secondlife/viewer/pull/6047
Full Changelog: Second_Life_Release#e572093e-2026.01...Second_Life_Release#9818c3e0-26.4
Build https://github.com/secondlife/viewer/actions/runs/33417795895
Second Life Release
26.4.0.33417795895
26.4 Lua Editor
The Lua Editor Alpha Viewer takes another important step toward a more capable scripting workflow in Second Life. This release improves communication between the Viewer and the newly published Second Life VS Code extension, restores an experimental Linux Viewer, and includes the latest WebRTC Voice and viewer-maintenance updates.
Lua Editor and VS Code Support
The Lua Editor integration now provides a smoother, more reliable workflow between Second Life and Visual Studio Code.
- Improved live exploration of objects and linksets from VS Code.
- Added better tracking when the selected object or linkset changes.
- Improved opening, reading, editing, and saving scripts and notecards stored in objects.
- Improved reconnection and subscription handling between the Viewer and external editors.
- Added structured compiler diagnostics so errors can be associated more accurately with the affected script, line, and column.
- Improved forwarding of runtime errors, debug messages, owner messages, and stack information to VS Code.
- Added clearer and more consistent error responses when an external-editor request cannot be completed.
- Added Viewer menu commands for working with the external script editor.
These improvements accompany the Second Life VS Code extension and its tighter integration with the Viewer. The related Viewer work is documented in PR #6104 and PR #6156.
The Viewer continues to support both LSL and Lua scripts, including language-specific syntax information supplied by supported regions.
For information about using Lua in Second Life, visit the Lua wiki page.
Linux Viewer Returns
An experimental Linux build of the Second Life Viewer is available again with this release.
This work brings the Linux Viewer back onto the current Viewer codebase and incorporates the 26.3 maintenance changes. As this remains an early return for official Linux builds, Linux users should expect some rough edges and are strongly encouraged to report compatibility, installation, graphics, audio, and input issues.
The integration work can be found in PR #6132.
The Linux build may be downloaded directly from GitHub https://github.com/secondlife/viewer/releases/download/Second_Life_Project_Lua_Editor%23f26e024-2026-08-20/Second_Life_Project_Lua_Editor_26_3_0_32302693173_x86_64.tar.xz
Known Issues
(Mac only) Login screen is sometimes Magnified, a viewer restart resolves it https://github.com/secondlife/viewer-private/issues/700
Contributors
Thank you to everyone who contributed code and improvements included in this Lua Editor Alpha release:
- @DarlCat
- @gaiaclary
- @Hecklezz
- @KittyBarnett
- @mayconbekkers
- @primgineer
- @santoslgl01-web
- @TommyTheTerrible
- @trish-sl
Community contributions in this release include avatar appearance fixes from Kitty Barnett, block list improvements from DarlCat, and Marketplace URL improvements from Hecklezz. Thank you for helping make the Second Life Viewer better for everyone.
Help Us Improve
This is still an Alpha Viewer, and your testing is especially valuable. Please tell us about problems with Lua or LSL editing, the VS Code integration, Linux support, Voice, or any other part of the Viewer.
Share feedback and report issues: Second Life Feedback Portal
You can review the associated source changes and technical details in the Lua Editor Alpha release on GitHub.