What's Changed
Other Changes
- Ensure final EOF in LLProcess test by @marchcat in #4877
- #4841 #4860 Update APR library and remove hotfix patch in APR cmake by @Hecklezz in #4878
- #4876 Fix material not applying by @akleshchev in #4880
- #4652 Improve switching of webrtc devices by @akleshchev in #4875
- p#494 Add search by agent ID to resident chooser by @akleshchev in #4883
- #4884 Crash at resetRegionCrossingTimer by @akleshchev in #4885
- #4887 Fix access violation in LLInventoryModelBackgroundFetch::bulkFetchViaAis by @marchcat in #4888
- Revert "Improve switching of webrtc devices" by @akleshchev in #4898
- #4879 An Emoji in a display name can affect text in chat by @akleshchev in #4902
- #3649 Incorrect camera aspec ratio by @akleshchev in #4910
- #3670 Add a sortable status column to the list of gestures by @akleshchev in #4912
- #1112 Add 1024x1024 size to Snapshot to Inventory by @akleshchev in #4914
- Restore Legacy Search by @maxim-productengine in #4900
- SL-3609 Fix camera POV jump when avatar crosses a region boundary by @akleshchev in #4925
- #4411 fix occurrences of fake BOOL by @maxim-productengine in #4928
- #4931 Fix name cache callbacks not having connections by @akleshchev in #4933
- #4946 Crash at setShaders by @akleshchev in #4947
- #4932 fix @mention being displayed twice if the name has a TM symbol by @maxim-productengine in #4953
- #4955 Crash on itemChanged by @akleshchev in #4956
- Check what state LLProcess is in for a failed test (#4877) by @akleshchev in #4952
- #4932 fix @mention being displayed twice if the name has a TM symbol by @maxim-productengine in #4957
- Remove cpuid feature bits verification in llprocessor.cpp by @Geenz in #4959
- #4907 use shortcut to pan camera down by @maxim-productengine in #4962
- [#4983] Fix crash in updateImagesCreateTextures accessing freed pointer by @Hecklezz in #4984
- Restore support for wavy avatar cloth by @RyeMutt in #4981
- #4671 Fix impractically long am/pm labels by @akleshchev in #4973
- [#4987] Fix crash in updateDistance updating LOD on null mVObjp by @Hecklezz in #4988
- [#4985] Fix crash in handleHover accessing null parent for attachments by @Hecklezz in #4986
- [#4987] Follow-up null checks on mVObjp to prevent crashes by @Hecklezz in #4996
- #4980 Crashes when uploading a glTF model by @akleshchev in #5001
- Fix error when adding a widget filename to the mFileNames stack by @fmartian in #5004
- [#5002] Fix the cache from being cleared every launch if NewCacheLocation is invalid by @Hecklezz in #5003
- #4948 Crash at webrtc's initializeConnection by @akleshchev in #5006
- #4939 Bugsplat update by @akleshchev in #4998
- Bump actions/stale from 6 to 10 by @dependabot[bot] in #4863
- #5000 clear duplicate shortcut used to activate Sunrise by @maxim-productengine in #5009
- p#505 GLTF model upload fails to pick textures by @akleshchev in #5010
- #4735 Remove the word "Viewer" from application shortcut by @maxim-productengine in #5011
- #4991 Cant set cut off mask by @akleshchev in #5016
- #4651 Improve session shutdown detection by @akleshchev in #5024
- SL-9502 p#476 Fix visible hidden column by @akleshchev in #5025
- #4951 Update bugsplat symbol upload by @akleshchev in #5013
- #5026 Upload To Folder feature not working by @akleshchev in #5029
- MacOS build fix by @akleshchev in #5040
- #5035 Fix missed am/pm switch by @akleshchev in #5041
- [#5038] Fixed LLWindowMacOSX::setCursorPosition scaling gl_pos when it shouldn't by @Hecklezz in #5039
- Introduce menu option and key bind(alt+shift+t) to hide transparent reflection probes by @RyeMutt in #5042
- #1963 Restore pelvis rotation debug settings by @akleshchev in #5045
- #5012 Switch 'chat' from untrusted, to click only by @akleshchev in #5030
- #5046 Outfit list performance improvement by @akleshchev in #5052
- #1937 The "Don't show me in search" option is not visually updated by @akleshchev in #5066
- Fix tabs in various source files introduced as part of legacy search by @RyeMutt in #5060
- #4322 Upload>Model button is sometimes disabled on MacOS by @akleshchev in #5064
- Clean up shared_ptr allocations to use make_shared for more efficient ref counting and allocation by @RyeMutt in #5062
- Replace boost ptr_vector with std::vectorstd::unique_ptr which can also contain null pointers. by @RyeMutt in #5073
- Replace boost::hof::invocable with c++17 std::is_invocable by @RyeMutt in #5071
- Remove dead llblowfish and llmail code plus related tests by @RyeMutt in #5074
- Fix occasional build failure observed when llphysicsextensionsos fails to build before secondlife-bin on macos with havok by @RyeMutt in #5075
- Replace boost noncopyable and undefined function usage with modern c++ deleted operator and constructor by @RyeMutt in #5076
- Replace boost::function with std::function for improved debugging and reduced compiler warnings by @RyeMutt in #5080
- Replace boost::assign usage with modern c++ brace initialization by @RyeMutt in #5068
- Fix build failure introduced in boost::function cleanup from missing bind header by @RyeMutt in #5082
- Remove dead experimental atmospherics code left over from EEP development by @RyeMutt in #5070
- Fallback to OS open handler in external editor when no editor is explicitly set by @RyeMutt in #5077
- #5078 MacOS Build fix by @akleshchev in #5085
- Fix alpha debug overlay rendering in probes and breaking scene lighting by @RyeMutt in #5058
- #5084 Ressurect Watchdog by @akleshchev in #5090
- #5086 Fix 'Copy SLURL' generating obsolete http link by @akleshchev in #5091
- Release/2025.08 by @Geenz in #4853
- 2025.08 -> Develop by @Geenz in #5094
- Bump version to 2026.01.0 after promotion of 2025.08 by @akleshchev in #5095
- Switch version to 2026.01.0 after promotion of 2025.08 by @Geenz in #5096
- Build fix by @marchcat in #5099
- Develop build fixes to 2026.01 by @Geenz in #5100
- #3612 "Copy SLURL" from Favorites bar not working by @akleshchev in #5108
- #5109 LLExperienceCache crashes on a coroutine by @akleshchev in #5110
- #3612 "Copy SLURL" from Favorites bar not working #2 by @akleshchev in #5116
- #4604 Tweak LLImageBase's 'out of memory' handling by @akleshchev in #5117
- #5122 update version format by @maxim-productengine in #5136
- #5122 update version format #2 by @maxim-productengine in #5147
- #1112 Fix wrong option having size controls by @akleshchev in #5161
- #5084 Improve watchdog's feedback by @akleshchev in #5170
- #5084 Cover window's thread with watchdog by @akleshchev in #5175
- #3612 Log issues with landmarks and rethrown exceptions by @akleshchev in #5181
- #3612 Handle missing capabilities instead of blocking further downloads by @akleshchev in #5183
- #3612 Don't immediately fail download on startup, wait for the region by @akleshchev in #5184
- revert #4735 Remove the word "Viewer" from application shortcut by @maxim-productengine in #5216
- #5220 do not save 'Highlight Transparent Probes' setting between sessions by @maxim-productengine in #5230
- #4991 Fix showing incorrect alpha by @akleshchev in #5231
- #5232 Couple crash fixes by @akleshchev in #5233
- #5083 Fix external editor default open handling failing to work on mac and windows by @akleshchev in #5247
- #3612 "Copy SLURL" from Favorites bar not working #3 by @akleshchev in #5268
- #5086 Update links from settings to https by @akleshchev in #5277
- #2639 Reapplied GPU benchmark fix by @akleshchev in #5280
- #5275 Optimize hasParcelLandmark by @akleshchev in #5283
- #5084 Adjust watchdog to avoid false-positives by @akleshchev in #5286
- #5304 fix UI inconsistencies related to maturity setting in Legacy Se… by @maxim-productengine in #5308
- #5086 Restore guidebook to use http by @akleshchev in #5324
- Fix failure to reconnect after disconnect and occasional dropout issue by @roxanneskelly in #5322
- #5046 Fix a long freeze when fetching inventory by @akleshchev in #5326
- #2997 The 'Reset Skeleton' option is missing in the right-click menu by @marchcat in #5342
- #2639 Fix benchmarked render level being too high for Apple Silicon by @akleshchev in #5345
- #2997 Fix Reset Skeleton not working on animesh objects by @marchcat in #5351
- #5084 Adjust Window's watchdog to only run after login by @akleshchev in #5422
- Fix bluetooth audio dropout issue by @roxanneskelly in #5421
- #5084 Adjust watchdog for bettet tracking of logout by @akleshchev in #5445
- #3612 Fix viewer not getting 'nonexistent region' responses by @akleshchev in #5476
- #5084 Disable watchdog in 26.1 by @akleshchev in #5482
Full Changelog: Second_Life_Release#ad6008a5-2025.08...Second_Life_Release#e572093e-2026.01
Build https://github.com/secondlife/viewer/actions/runs/22641522367
Second Life Release
26.1.0.22641522367
Second Life Viewer 2026.01 — Legacy Search & Stability
The Second Life Viewer 2026.01 release focuses on stability, usability, and a few very welcome quality-of-life updates. The headline change is the return of Legacy Search, (found in the World menu) alongside improvements to camera controls, snapshots, gestures, and a wide range of crash and reliability fixes across inventory, rendering, uploads, and voice.
As usual, this release also includes a substantial amount of behind-the-scenes work aimed at making the viewer feel smoother and more resilient in everyday use.
New features
- Legacy Search has returned, It is not the default search and can be found in the World menu, restoring the classic search experience many residents rely on.
- Added the ability to hide transparent reflection probes, with a new menu option and a default shortcut: Alt + Shift + T.
- The Resident Chooser now supports searching by Agent ID, improving support and administrative workflows.
Quality-of-life improvements
- The Gestures window now includes a sortable “Status” column, making it easier to see which gestures are active at a glance.
- Snapshot to Inventory adds 1024×1024 as a selectable resolution.
- Camera controls received multiple improvements, including better aspect-ratio handling and a shortcut for panning the camera downward.
- Improved outfit list performance, especially for larger wardrobes.
- Better handling of external editors, with improved fallback to the operating system’s default app when no editor is configured.
- Restored support for avatar cloth.
Bug fixes and stability improvements
This release includes a broad set of fixes across the viewer:
Inventory and UI
- Fixed a long-standing issue that could cause the viewer to freeze while fetching inventory.
- Resolved multiple issues related to Copy SLURL, including obsolete link formats and Favorites bar behavior.
- Fixed cases where @mentions could appear twice when using certain characters.
- Corrected the “Don’t show me in search” option so its visual state updates properly.
- Fixed an issue where the cache could be cleared on every launch if the cache location was invalid.
Graphics and rendering
- Multiple crash fixes in rendering, texture handling, and LOD-related code paths.
- Fixed crashes related to shader setup and attachment edge cases.
- Improvements to GPU benchmarking, including better defaults on Apple Silicon systems.
Uploads
- Several fixes for glTF uploads, including crash fixes and issues selecting textures during upload.
Voice (WebRTC)
- Fixed crashes during WebRTC initialization.
- Improvements to voice reconnection behavior after disconnects.
- Adjustments to device-switching logic to prevent instability.
- Fixed support for Bluetooth headsets disconnecting
Watchdog
- The Watchdog system has been re-enabled and improved, with better feedback, broader thread coverage, and reduced false positives.
- Increased Watchdog timing sensitivity to avoid a start up crash.
Try it out and tell us what you think
The Second Life Viewer 2026.01 is now available to download from the official Second Life website. As always, we encourage you to try it out and let us know how it performs in your day-to-day use.
If you run into issues, please file bugs via Canny (Feedback) so they can be tracked and investigated by the team. Your reports directly help shape future releases.
Thanks for helping us make the Second Life Viewer better — and we’ll see you in the next release!