Seleziona una pagina

There are 4 files, weighing 393,2 MiB in total.

Displaying 1 to 4 of 4 files.

Windows 64bit

  Mudlet 4.20.1 (Windows)
» 94,6 MiB - Febbraio 10, 2026
sha256: ba22a37cdbe13df58c80cea65135d093de39351e6d8cba1405351e618b67e520

macOS Intel

  Mudlet 4.20.1 (macOS - x86_64)
» 82,4 MiB - Febbraio 10, 2026
sha256: 9c2ff0c48aac437716f07a3ed0aa25753954361c794cbc9874b933302cf0e6b9

macOS Apple Silicon

  Mudlet 4.20.1 (macOS - arm64)
» 81,9 MiB - Febbraio 10, 2026
sha256: c230c66f7b31f59b975e32ebe4a2aeaf33c30ba6fe776cb125e9e5c34f675ea4

Linux

  Mudlet 4.20.1 (Linux)
» 134,2 MiB - Febbraio 10, 2026
sha256: 7c07ed62def0bb545b6508e3a62594e21f017005bcb5a410c98cc28aabcb3948

   

Scarica per altre piattaforme

  Mudlet 4.20.1 (Windows) (94,6 MiB)

Send this link via E-mail?
Send the download link to yourself or a friend:

  Mudlet 4.20.1 (macOS - x86_64) (82,4 MiB)

Send this link via E-mail?
Send the download link to yourself or a friend:

Please use the AppImage below on Ubuntu.

Note: the Mudlet version in Ubuntu/Debian repositories is out of date – if you’re a Debian maintainer, we’d love your help!

  Mudlet 4.20.1 (macOS - arm64) (81,9 MiB)

Send this link via E-mail?
Send the download link to yourself or a friend:

This is a portable version of Mudlet – after downloading, extract the launcher somewhere permanent and use it to launch Mudlet.

Note: the Mudlet version in Debian repositories is out of date – if you’re a Debian maintainer, we’d love your help!

  Mudlet 4.20.1 (macOS - arm64) (81,9 MiB)

Send this link via E-mail?
Send the download link to yourself or a friend:

Interested in installing Mudlet on ChromeOS? Beta instructions are available here!

  Mudlet 4.20.1 (Linux) (134,2 MiB)

Send this link via E-mail?
Send the download link to yourself or a friend:

You can compile Mudlet yourself!

Mudlet wiki has detailed information for different operating systems.

Review the source code directly!

You can browse the latest Mudlet code online via Github – it is also available via git:

git clone –recursive –branch main https://github.com/Mudlet/Mudlet.git

 Want to test new developments?

Here you can find our Public Test Build version (PTB) – Let us know how you like it! :-)

Interested in older Mudlet versions?

Here you can find all previous installers for Mudlet.

 

Mudlet News

Public Test Build

Changes since last PTB (Mudlet-4.20.1-ptb-2026-04-23-e81826d5)
Added:
– lpeg parsing library #9212
Fixed:
– prevent use-after-free in TRoom::setArea dirty-area tracking #9217

Full changelog since last release (Mudlet-4.20.1)

##### Added:
– lpeg parsing library [#9212](https://github.com/Mudlet/Mudlet/pull/9212)

– Pkuxkx as a predefined default MUD [#9161](https://github.com/Mudlet/Mudlet/pull/9161)

– Mudlet.ini option to control high DPI scale factor rounding policy [#9164](https://github.com/Mudlet/Mudlet/pull/9164)

– right-click option to hide default profiles in connection dialog [#9123](https://github.com/Mudlet/Mudlet/pull/9123)

– selectAll function with optional window support [#9166](https://github.com/Mudlet/Mudlet/pull/9166)

– telnets:// link support for secure TLS connections [#9153](https://github.com/Mudlet/Mudlet/pull/9153)

– getKeyCode function to return key code and any modifiers of a key-binding [#8435](https://github.com/Mudlet/Mudlet/pull/8435)

– `telnet://` URI scheme support for one-click MUD connections [#8601](https://github.com/Mudlet/Mudlet/pull/8601)

– separate border size control and player room marker improvements [#8975](https://github.com/Mudlet/Mudlet/pull/8975)

– OSC 8 context menu title support [#8910](https://github.com/Mudlet/Mudlet/pull/8910)

– DragonfireMUD and VoidMUD [#8783](https://github.com/Mudlet/Mudlet/pull/8783)

– 3rd party definition files for Lua [#8966](https://github.com/Mudlet/Mudlet/pull/8966)

– Starmourn and update IRE game profiles [#9076](https://github.com/Mudlet/Mudlet/pull/9076)

– embeddable TextEdit widget (Geyser.TextEdit) [#8986](https://github.com/Mudlet/Mudlet/pull/8986)

– MudMaster Chat Protocol (MMCP) [#7765](https://github.com/Mudlet/Mudlet/pull/7765)

– blinking/flashing text support [#8983](https://github.com/Mudlet/Mudlet/pull/8983)

– timeout for (Linux) Build xcb-util-cursor [#8978](https://github.com/Mudlet/Mudlet/pull/8978)

– timeout for macos (Install Dependencies) [#8977](https://github.com/Mudlet/Mudlet/pull/8977)

– data loss guard on constraint migration [#8850](https://github.com/Mudlet/Mudlet/pull/8850)

– GNOME Software-style navigation in Package Manager [#8846](https://github.com/Mudlet/Mudlet/pull/8846)

– room description matching to generic mapper [#8649](https://github.com/Mudlet/Mudlet/pull/8649)

– hidden rooms [#8443](https://github.com/Mudlet/Mudlet/pull/8443)

– Multi-file selection in import dialogs [#8796](https://github.com/Mudlet/Mudlet/pull/8796)

– Map label support in 3D mapper [#8793](https://github.com/Mudlet/Mudlet/pull/8793)

– multiple note tabs to the notepad [#8757](https://github.com/Mudlet/Mudlet/pull/8757)

– multiple map views support [#8743](https://github.com/Mudlet/Mudlet/pull/8743)

– muteMediaScript and muteMediaGame options to [getConfig](https://wiki.mudlet.org/w/Manual:Lua_Functions#getConfig)/[setConfig](https://wiki.mudlet.org/w/Manual:Lua_Functions#setConfig) [#8764](https://github.com/Mudlet/Mudlet/pull/8764)

– “Whole word” search option in the script editor [#8722](https://github.com/Mudlet/Mudlet/pull/8722)

– per-room border color and thickness [#8758](https://github.com/Mudlet/Mudlet/pull/8758)

– more safeguards against profile settings being lost [#8742](https://github.com/Mudlet/Mudlet/pull/8742)

– permExactMatchTrigger Lua API function [#8745](https://github.com/Mudlet/Mudlet/pull/8745)

– per-room border color and thickness

– NAWS protocol toggle setting [#8700](https://github.com/Mudlet/Mudlet/pull/8700)

– getBorderColor() Lua API function [#8688](https://github.com/Mudlet/Mudlet/pull/8688)

– MXP FRAME and DEST tag support for multi-window layouts [#8577](https://github.com/Mudlet/Mudlet/pull/8577)

– Optional static analysis during build [#8708](https://github.com/Mudlet/Mudlet/pull/8708)

– OSC 8 hyperlink visibility, selection, and compact syntax enhancements [#8677](https://github.com/Mudlet/Mudlet/pull/8677)

– Sentry license to about dialog [#8660](https://github.com/Mudlet/Mudlet/pull/8660)

– undo/redo for Mudlet editor [#8469](https://github.com/Mudlet/Mudlet/pull/8469)

– [getRoomsByPosition1](https://wiki.mudlet.org/w/Manual:Lua_Functions#getRoomsByPosition1)() function [#8619](https://github.com/Mudlet/Mudlet/pull/8619)

– functional GUI tests using QTest [#8572](https://github.com/Mudlet/Mudlet/pull/8572)

– Enable spellcheck in the composer window [#8447](https://github.com/Mudlet/Mudlet/pull/8447)

– setExitWeightFilter function to alter room/exits weights/locks [#8487](https://github.com/Mudlet/Mudlet/pull/8487)

##### Improved:
– 2D mapper rendering speed on single-Z-level areas [#9209](https://github.com/Mudlet/Mudlet/pull/9209)

– simplify long tooltips [#8416](https://github.com/Mudlet/Mudlet/pull/8416)

– Make spacing between widgets in the connection dialog more consistent [#9198](https://github.com/Mudlet/Mudlet/pull/9198)

– Auto-switch code editor theme with app appearance [#9167](https://github.com/Mudlet/Mudlet/pull/9167)

– handling of rooms having their hidden property changed [#8947](https://github.com/Mudlet/Mudlet/pull/8947)

– guard mudlet::self() in cTelnet destructor [#9020](https://github.com/Mudlet/Mudlet/pull/9020)

– use raw IP address if provided with one [#9066](https://github.com/Mudlet/Mudlet/pull/9066)

– Give players full control over Discord Rich Presence [#9116](https://github.com/Mudlet/Mudlet/pull/9116)

– show version scope in PTB release changelogs [#9148](https://github.com/Mudlet/Mudlet/pull/9148)

– hidden rooms – allow storage in map versions < 22 and other things [#8930](https://github.com/Mudlet/Mudlet/pull/8930)

– change label highlight from overlay to outline [#9132](https://github.com/Mudlet/Mudlet/pull/9132)

– internal code in regards to memory use [#9015](https://github.com/Mudlet/Mudlet/pull/9015)

– saving a key with no binding set shows an error [#9114](https://github.com/Mudlet/Mudlet/pull/9114)

– Add smooth pulsing effect for blinking text [#9104](https://github.com/Mudlet/Mudlet/pull/9104)

– remove AI/llamafile integration [#9108](https://github.com/Mudlet/Mudlet/pull/9108)

– error message when saving MMP-downloaded map [#9107](https://github.com/Mudlet/Mudlet/pull/9107)

– Automatic audio device switching support [#9026](https://github.com/Mudlet/Mudlet/pull/9026)

– only mark map as dirty if room hidden status is changed [#8946](https://github.com/Mudlet/Mudlet/pull/8946)

– Reduce memory usage for text decorations [#9052](https://github.com/Mudlet/Mudlet/pull/9052)

– Remove debug [print](https://wiki.mudlet.org/w/Manual:Lua_Functions#print) from deleteAll function [#9061](https://github.com/Mudlet/Mudlet/pull/9061)

– add defensive coding to internal code related to the TMediaPlayer [#9017](https://github.com/Mudlet/Mudlet/pull/9017)

– Script Editor search code quality and maintainability [#9028](https://github.com/Mudlet/Mudlet/pull/9028)

– Code quality in TBuffer.cpp [#9029](https://github.com/Mudlet/Mudlet/pull/9029)

– show feedback when manually checking for updates fails [#9004](https://github.com/Mudlet/Mudlet/pull/9004)

– add better error reporting to GMCP merge handler [#9018](https://github.com/Mudlet/Mudlet/pull/9018)

– adjust [getTime](https://wiki.mudlet.org/w/Manual:Lua_Functions#getTime)() table size hint to match 7 entries [#9019](https://github.com/Mudlet/Mudlet/pull/9019)

– Don't [echo](https://wiki.mudlet.org/w/Manual:Lua_Functions#echo) OSC 8 [send](https://wiki.mudlet.org/w/Manual:Lua_Functions#send): hyperlink commands by default [#8957](https://github.com/Mudlet/Mudlet/pull/8957)

– Detection of character-at-a-time mode in server connections [#8825](https://github.com/Mudlet/Mudlet/pull/8825)

– Add more context to media playback events [#8953](https://github.com/Mudlet/Mudlet/pull/8953)

– luarocks busted install instructions version flag [#8950](https://github.com/Mudlet/Mudlet/pull/8950)

– Add macOS clang-format path to AI instructions [#8926](https://github.com/Mudlet/Mudlet/pull/8926)

– Make MNES and NEW-ENVIRON mutually exclusive in UI [#8893](https://github.com/Mudlet/Mudlet/pull/8893)

– update Astaria banner [#8900](https://github.com/Mudlet/Mudlet/pull/8900)

– New Crowdin updates [#8253](https://github.com/Mudlet/Mudlet/pull/8253)

– macOS build instructions use absolute path [#8860](https://github.com/Mudlet/Mudlet/pull/8860)

– nixed rex_prce2 check in lua [#8848](https://github.com/Mudlet/Mudlet/pull/8848)

– Faster map rendering when zoomed in by skipping off-screen rooms [#8797](https://github.com/Mudlet/Mudlet/pull/8797)

– Allow nil to clear label callbacks [#8799](https://github.com/Mudlet/Mudlet/pull/8799)

– keep small map areas fully visible in viewport [#8766](https://github.com/Mudlet/Mudlet/pull/8766)

– Enable PCRE2 JIT compilation for triggers and aliases [#8762](https://github.com/Mudlet/Mudlet/pull/8762)

– open IRC with Lua functions not via UI anymore [#8123](https://github.com/Mudlet/Mudlet/pull/8123)

– Auto-link Lua function names in changelog [#8744](https://github.com/Mudlet/Mudlet/pull/8744)

– add error handling with clear error messages [#8736](https://github.com/Mudlet/Mudlet/pull/8736)

– error message visibility in module creation dialog [#8738](https://github.com/Mudlet/Mudlet/pull/8738)

– Memory management for console hyperlinks [#8725](https://github.com/Mudlet/Mudlet/pull/8725)

– AI assistant guidance for modern C++ loops [#8741](https://github.com/Mudlet/Mudlet/pull/8741)

– error messages for easier troubleshooting [#8721](https://github.com/Mudlet/Mudlet/pull/8721)

– highlight search terms in editor when using global search [#8687](https://github.com/Mudlet/Mudlet/pull/8687)

– Show a warning icon when map autosave fails [#8689](https://github.com/Mudlet/Mudlet/pull/8689)

– Simplify internal tree widget code [#8706](https://github.com/Mudlet/Mudlet/pull/8706)

– remove outdated comment for special exits MMP import [#8707](https://github.com/Mudlet/Mudlet/pull/8707)

– Enable OSC 8 hyperlink visibility by default [#8699](https://github.com/Mudlet/Mudlet/pull/8699)

– Fix compiler warnings about potential data loss in type conversions [#8715](https://github.com/Mudlet/Mudlet/pull/8715)

– Remove outdated FIXME comment from msleep call [#8695](https://github.com/Mudlet/Mudlet/pull/8695)

– Modernize color trigger dialog button handling [#8693](https://github.com/Mudlet/Mudlet/pull/8693)

– Reduce Windows install size by ~135MB [#8685](https://github.com/Mudlet/Mudlet/pull/8685)

– show error message when variable can't be moved in the trigger editor [#8683](https://github.com/Mudlet/Mudlet/pull/8683)

– Add error handling to unexpected scenarios [#8682](https://github.com/Mudlet/Mudlet/pull/8682)

– Auto-recover from stuck password masking during login [#8628](https://github.com/Mudlet/Mudlet/pull/8628)

– OSC 8 hyperlink styling with direct JSON parsing [#8641](https://github.com/Mudlet/Mudlet/pull/8641)

– use platform-native key names in UI text [#8591](https://github.com/Mudlet/Mudlet/pull/8591)

– add a crash reporter for Linux / macOS / Windows [#8540](https://github.com/Mudlet/Mudlet/pull/8540)

– Migrate C++ regex engine from PCRE to PCRE2 [#8533](https://github.com/Mudlet/Mudlet/pull/8533)

– Limit saved Lua table variables to 10,000 items [#8581](https://github.com/Mudlet/Mudlet/pull/8581)

– Remove directional navigation buttons from mapper [#8574](https://github.com/Mudlet/Mudlet/pull/8574)

– – two seconds is longer than you think [#8570](https://github.com/Mudlet/Mudlet/pull/8570)

– Cleanup system efficiency for triggers, aliases, and keys [#8559](https://github.com/Mudlet/Mudlet/pull/8559)

– small Style Cleanup in main.cpp [#8562](https://github.com/Mudlet/Mudlet/pull/8562)

– Remove accessible description from trigger pattern editor [#8546](https://github.com/Mudlet/Mudlet/pull/8546)

– remove navigation shortcuts widget from trigger editor [#8530](https://github.com/Mudlet/Mudlet/pull/8530)

##### Fixed:
– prevent use-after-free in TRoom::setArea dirty-area tracking [#9217](https://github.com/Mudlet/Mudlet/pull/9217)

– Clazy warnings part 4 – range-loop-reference [#9207](https://github.com/Mudlet/Mudlet/pull/9207)

– correct use of forward declared type items in headers [#9208](https://github.com/Mudlet/Mudlet/pull/9208)

– Clazy warnings part 3 – qstring-arg [#9197](https://github.com/Mudlet/Mudlet/pull/9197)

– unify and translate some Map Errors [#9189](https://github.com/Mudlet/Mudlet/pull/9189)

– avoid bogus "new Toolbar" and "new Menu" items creation on profile load [#9194](https://github.com/Mudlet/Mudlet/pull/9194)

– Clazy warnings part 2 – detaching-temporary [#9196](https://github.com/Mudlet/Mudlet/pull/9196)

– Clazy warnings part 1 – range-loop-detach [#9195](https://github.com/Mudlet/Mudlet/pull/9195)

– strip whitespace formatting marks when copying trigger patterns [#9149](https://github.com/Mudlet/Mudlet/pull/9149)

– several [resetProfile](https://wiki.mudlet.org/w/Manual:Lua_Functions#resetProfile)() bugs [#9083](https://github.com/Mudlet/Mudlet/pull/9083)

– prevent update download from being canceled when checking for updates [#9185](https://github.com/Mudlet/Mudlet/pull/9185)

– changelog rendering in PTB update dialog [#9182](https://github.com/Mudlet/Mudlet/pull/9182)

– package edit warning incorrectly showing for module items [#9168](https://github.com/Mudlet/Mudlet/pull/9168)

– Cancel on trigger highlight color picker no longer changes the color [#9013](https://github.com/Mudlet/Mudlet/pull/9013)

– Respect explicit theme choice on Linux [#8897](https://github.com/Mudlet/Mudlet/pull/8897)

– memory leaks in map info contributors, deleting labels [#9141](https://github.com/Mudlet/Mudlet/pull/9141)

– increase TelnetTextDisplayedTest timeouts for CI [#9184](https://github.com/Mudlet/Mudlet/pull/9184)

– review fixes for font handling rework [#9135](https://github.com/Mudlet/Mudlet/pull/9135)

– Better handling of package-supplied fonts during unloading/reloading of packages [#9115](https://github.com/Mudlet/Mudlet/pull/9115)

– [selectCaptureGroup](https://wiki.mudlet.org/w/Manual:Lua_Functions#selectCaptureGroup)() selecting wrong capture [#9133](https://github.com/Mudlet/Mudlet/pull/9133)

– resolve CodeQL stack-address-escape warnings [#9080](https://github.com/Mudlet/Mudlet/pull/9080)

– [insertText](https://wiki.mudlet.org/w/Manual:Lua_Functions#insertText) newline regression [#9022](https://github.com/Mudlet/Mudlet/pull/9022)

– updater to work with github releases [#9125](https://github.com/Mudlet/Mudlet/pull/9125)

– memory leaks in sound player, dialogs [#9142](https://github.com/Mudlet/Mudlet/pull/9142)

– crash when importing non-Mudlet zip with XML containing element [#9146](https://github.com/Mudlet/Mudlet/pull/9146)

– handle over/underflows in (int) TLuaInterpreter::getVerifiedInt(…) [#8924](https://github.com/Mudlet/Mudlet/pull/8924)

– crash when [resetProfile](https://wiki.mudlet.org/w/Manual:Lua_Functions#resetProfile)() is called while downloads are in-progress [#9138](https://github.com/Mudlet/Mudlet/pull/9138)

– scaling map image labels showing text instead of image [#9121](https://github.com/Mudlet/Mudlet/pull/9121)

– label move in 2D map [#9131](https://github.com/Mudlet/Mudlet/pull/9131)

– correct icon names for two recently added predefined MUDs [#9129](https://github.com/Mudlet/Mudlet/pull/9129)

– handle CMake aliasing problems when PCRE2::8BIT is itself an alias [#9128](https://github.com/Mudlet/Mudlet/pull/9128)

– crash when user cancels map download [#9085](https://github.com/Mudlet/Mudlet/pull/9085)

– small memory leaks in package/object management [#9111](https://github.com/Mudlet/Mudlet/pull/9111)

– small memory leaks when closing/reopening profiles [#9110](https://github.com/Mudlet/Mudlet/pull/9110)

– small leak in [resetProfile](https://wiki.mudlet.org/w/Manual:Lua_Functions#resetProfile)() for the Lua state, label, and scrollbox [#9109](https://github.com/Mudlet/Mudlet/pull/9109)

– stale characters during horizontal scrolling with wide fonts [#9099](https://github.com/Mudlet/Mudlet/pull/9099)

– Ctrl+End in caret mode hides the cursor [#9101](https://github.com/Mudlet/Mudlet/pull/9101)

– Toolbar visibility not persisted when toggled via right-click menu [#9053](https://github.com/Mudlet/Mudlet/pull/9053)

– typo in mPlayerRoomColorGradentStops member name [#9112](https://github.com/Mudlet/Mudlet/pull/9112)

– OSC 8 hyperlinks strip config/preset only when features are advertised [#9106](https://github.com/Mudlet/Mudlet/pull/9106)

– Miniconsole text cutoff after switching profiles [#8853](https://github.com/Mudlet/Mudlet/pull/8853)

– Refactor and fix logic handling chat name change from GUI preferences dialog [#9025](https://github.com/Mudlet/Mudlet/pull/9025)

– use correct variable for Discord starttime string parsing [#9100](https://github.com/Mudlet/Mudlet/pull/9100)

– Copy Map to inactive profiles losing player room position [#9091](https://github.com/Mudlet/Mudlet/pull/9091)

– use right format type for errors in playSoundFileAsOrderedArguments [#9086](https://github.com/Mudlet/Mudlet/pull/9086)

– Tabs not respecting dark mode [#8996](https://github.com/Mudlet/Mudlet/pull/8996) [#8999](https://github.com/Mudlet/Mudlet/pull/8999)

– map info "Short" always re-added on profile load [#8963](https://github.com/Mudlet/Mudlet/pull/8963)

– Module Manager shortcut uses wrong key sequence when menu bar hidden [#9097](https://github.com/Mudlet/Mudlet/pull/9097)

– setSaveCommandHistory inverting the boolean when a command line name is given [#9098](https://github.com/Mudlet/Mudlet/pull/9098)

– Fix QFutureWatcher memory leaks across the codebase [#9095](https://github.com/Mudlet/Mudlet/pull/9095)

– Color swatch buttons washed out on macOS and not showing at all in Light mode [#8970](https://github.com/Mudlet/Mudlet/pull/8970)

– Text with < characters disappearing on games with MXP enabled [#8918](https://github.com/Mudlet/Mudlet/pull/8918)

– [saveWindowLayout](https://wiki.mudlet.org/w/Manual:Lua_Functions#saveWindowLayout)/[loadWindowLayout](https://wiki.mudlet.org/w/Manual:Lua_Functions#loadWindowLayout) now retains user window positions [#9056](https://github.com/Mudlet/Mudlet/pull/9056)

– memory leak when deleting areas in a map [#9092](https://github.com/Mudlet/Mudlet/pull/9092)

– clickable links losing their URL query parameters [#9073](https://github.com/Mudlet/Mudlet/pull/9073)

– Garbled error messages when passing wrong argument types to popup functions [#9090](https://github.com/Mudlet/Mudlet/pull/9090)

– map exits corrupted when loading maps with invalid room IDs [#9089](https://github.com/Mudlet/Mudlet/pull/9089)

– Correct call() return value so timer error handling reads correctly [#9088](https://github.com/Mudlet/Mudlet/pull/9088)

– Show SSL error messages when secure connection fails [#9055](https://github.com/Mudlet/Mudlet/pull/9055)

– ansi_color table loading order [#9084](https://github.com/Mudlet/Mudlet/pull/9084)

– crash when keychain operation times out [#9072](https://github.com/Mudlet/Mudlet/pull/9072)

– Updater crash on Windows when download URL is unavailable [#9067](https://github.com/Mudlet/Mudlet/pull/9067)

– Changing one profile's password no longer affects others [#9049](https://github.com/Mudlet/Mudlet/pull/9049)

– custom map events not firing when placed in submenus [#8998](https://github.com/Mudlet/Mudlet/pull/8998)

– [timeframe](https://wiki.mudlet.org/w/Manual:Lua_Functions#timeframe) failing if third arg is nil [#8964](https://github.com/Mudlet/Mudlet/pull/8964)

– PasswordMigrationTest to build [#9032](https://github.com/Mudlet/Mudlet/pull/9032)

– Separate user and MXP borders so [reconnect](https://wiki.mudlet.org/w/Manual:Lua_Functions#reconnect) doesn't reset user borders [#9016](https://github.com/Mudlet/Mudlet/pull/9016)

– Restore password loading from portable file in connection dialog [#8993](https://github.com/Mudlet/Mudlet/pull/8993)

– Clear package list before repopulating in Package Exporter [#8892](https://github.com/Mudlet/Mudlet/pull/8892)

– Input bar height changes unexpectedly when switching profiles [#8958](https://github.com/Mudlet/Mudlet/pull/8958)

– Room symbols not rescaling when map is resized [#8974](https://github.com/Mudlet/Mudlet/pull/8974)

– Prevent crash when closing detached windows [#8934](https://github.com/Mudlet/Mudlet/pull/8934)

– Restore sound playback on macOS [#8949](https://github.com/Mudlet/Mudlet/pull/8949)

– Update ssh IP for Geyser upload workflow [#8995](https://github.com/Mudlet/Mudlet/pull/8995)

– Correct TestMask to exclude internal flags [#8954](https://github.com/Mudlet/Mudlet/pull/8954)

– mudlet does not close after running lua tests [#8979](https://github.com/Mudlet/Mudlet/pull/8979)

– Clang-format hash in .git-blame-ignore-revs [#8882](https://github.com/Mudlet/Mudlet/pull/8882)

– [#6964] [spairs](https://wiki.mudlet.org/w/Manual:Lua_Functions#spairs) chokes on mixed keys [#8868](https://github.com/Mudlet/Mudlet/pull/8868)

– align MSDP negotiation to specs [#8905](https://github.com/Mudlet/Mudlet/pull/8905)

– Crash when removing default MUD profiles from welcome window [#8916](https://github.com/Mudlet/Mudlet/pull/8916)

– MXP not working on some MUDs [#8915](https://github.com/Mudlet/Mudlet/pull/8915)

– clean up comments and related translation things [#8914](https://github.com/Mudlet/Mudlet/pull/8914)

– Command history not working when password masking is disabled [#8902](https://github.com/Mudlet/Mudlet/pull/8902)

– Revert default map format to 20 in PTB / `development` [#8891](https://github.com/Mudlet/Mudlet/pull/8891)

– Make main console default to opaque text background, allow user to customize [#8887](https://github.com/Mudlet/Mudlet/pull/8887)

– Delay MXP TEMP_SECURE mode reset to allow tag handling [#8889](https://github.com/Mudlet/Mudlet/pull/8889)

– PTB crash on some Linux systems due to libxcb-cursor bug [#8866](https://github.com/Mudlet/Mudlet/pull/8866)

– Player shown on far side of map when mapper window is wide [#8869](https://github.com/Mudlet/Mudlet/pull/8869)

– db:_coerce_sheet backwards compatibility [#8861](https://github.com/Mudlet/Mudlet/pull/8861)

– Map labels appearing bold after profile reload [#8865](https://github.com/Mudlet/Mudlet/pull/8865)

– macOS color buttons not showing colors in settings [#8847](https://github.com/Mudlet/Mudlet/pull/8847)

– Make update dialog release notes keyboard accessible [#8849](https://github.com/Mudlet/Mudlet/pull/8849)

– Restore desktop shortcut creation on Windows install [#8841](https://github.com/Mudlet/Mudlet/pull/8841)

– Crash when drawing map labels at small zoom levels [#8836](https://github.com/Mudlet/Mudlet/pull/8836)

– Disable AddressSanitizer for release builds [#8826](https://github.com/Mudlet/Mudlet/pull/8826)

– Remember scroll position and cursor position in script editor [#8410](https://github.com/Mudlet/Mudlet/pull/8410)

– Use custom dark theme on all Windows versions [#8819](https://github.com/Mudlet/Mudlet/pull/8819)

– Map area centering displaying areas off-screen [#8814](https://github.com/Mudlet/Mudlet/pull/8814)

– Crash when nested alias/trigger processing runs cleanup prematurely [#8818](https://github.com/Mudlet/Mudlet/pull/8818)

– table.update no longer errors when replacing non-table with table [#8694](https://github.com/Mudlet/Mudlet/pull/8694) [#8751](https://github.com/Mudlet/Mudlet/pull/8751)

– Editor actions not working on initial open [#7482](https://github.com/Mudlet/Mudlet/pull/7482) [#8753](https://github.com/Mudlet/Mudlet/pull/8753)

– Revert map rendering optimization causing issues [#8809](https://github.com/Mudlet/Mudlet/pull/8809)

– Medievia encoding showing error in preferences dropdown [#8811](https://github.com/Mudlet/Mudlet/pull/8811)

– MXP FRAME close tags appearing as literal text [#8808](https://github.com/Mudlet/Mudlet/pull/8808)

– Timer groups [display](https://wiki.mudlet.org/w/Manual:Lua_Functions#display) correct icons when drag-dropped [#8802](https://github.com/Mudlet/Mudlet/pull/8802)

– Map labels appear crisp at all zoom levels [#8795](https://github.com/Mudlet/Mudlet/pull/8795)

– honor 'disable automatic updates' setting when installer is already downloaded [#8409](https://github.com/Mudlet/Mudlet/pull/8409)

– OSC sequences with BEL terminator no longer swallow output [#3912](https://github.com/Mudlet/Mudlet/pull/3912) [#8750](https://github.com/Mudlet/Mudlet/pull/8750)

– Windows crash when saving profile config [#8427](https://github.com/Mudlet/Mudlet/pull/8427) [#8428](https://github.com/Mudlet/Mudlet/pull/8428)

– Big5 and East Asian text encodings not working on Linux [#8787](https://github.com/Mudlet/Mudlet/pull/8787)

– compile in latest development due to map update changes [#8800](https://github.com/Mudlet/Mudlet/pull/8800)

– Improve error handling in [setLabelStyleSheet](https://wiki.mudlet.org/w/Manual:Lua_Functions#setLabelStyleSheet)() [#8446](https://github.com/Mudlet/Mudlet/pull/8446)

– Add outline to area exit arrows for visibility on matching backgrounds [#8794](https://github.com/Mudlet/Mudlet/pull/8794)

– mapper not reopenable after closing via X button [#8401](https://github.com/Mudlet/Mudlet/pull/8401)

– Disable 'Activate' button in Variables view [#8441](https://github.com/Mudlet/Mudlet/pull/8441)

– Prevent crash in MXP watchdog callback [#8785](https://github.com/Mudlet/Mudlet/pull/8785)

– Memory leaks in ScriptUnit and ActionUnit (8,856 bytes) when opening/closing profile [#8781](https://github.com/Mudlet/Mudlet/pull/8781)

– Potential crash during automatic update download [#8776](https://github.com/Mudlet/Mudlet/pull/8776)

– Include full version in Sentry crash reports for PTB builds [#8779](https://github.com/Mudlet/Mudlet/pull/8779)

– Improve build documentation clarity for terminal execution [#8774](https://github.com/Mudlet/Mudlet/pull/8774)

– Regex triggers now respect 'keep' background color setting [#8402](https://github.com/Mudlet/Mudlet/pull/8402)

– Remove unnecessary allocation in filter trigger matching [#8763](https://github.com/Mudlet/Mudlet/pull/8763)

– default new profiles to UTF-8 encoding instead of ASCII [#8759](https://github.com/Mudlet/Mudlet/pull/8759)

– Accessibility crash with out-of-range offset [#8310](https://github.com/Mudlet/Mudlet/pull/8310) [#8752](https://github.com/Mudlet/Mudlet/pull/8752)

– named captures indexed incorrectly in multimatches with special line types [#8748](https://github.com/Mudlet/Mudlet/pull/8748)

– Update trigger icons immediately when dragging in editor [#8746](https://github.com/Mudlet/Mudlet/pull/8746)

– connections to MMapper [#8730](https://github.com/Mudlet/Mudlet/pull/8730)

– prevent module autosave from overwriting failed-to-load modules [#8696](https://github.com/Mudlet/Mudlet/pull/8696)

– GMCP media finish parameter not working [#8740](https://github.com/Mudlet/Mudlet/pull/8740)

– Modules not loading when reopening a profile [#8739](https://github.com/Mudlet/Mudlet/pull/8739)

– Package Exporter unable to export packages [#8629](https://github.com/Mudlet/Mudlet/pull/8629) [#8630](https://github.com/Mudlet/Mudlet/pull/8630)

– Memory leaks in core components [#8716](https://github.com/Mudlet/Mudlet/pull/8716)

– Windows installer failing after update [#8710](https://github.com/Mudlet/Mudlet/pull/8710)

– Down arrow saves typed text before clearing [#8705](https://github.com/Mudlet/Mudlet/pull/8705)

– Restore Windows application icon [#8703](https://github.com/Mudlet/Mudlet/pull/8703)

– set enableMXP when MXP is autodetected [#8701](https://github.com/Mudlet/Mudlet/pull/8701)

– 8 CodeQL 'comparison result is always the same' warnings [#8691](https://github.com/Mudlet/Mudlet/pull/8691)

– CodeQL inconsistent nullness check errors in temp trigger functions [#8690](https://github.com/Mudlet/Mudlet/pull/8690)

– restrict MXP auto-detection to ESC sequences only [#8692](https://github.com/Mudlet/Mudlet/pull/8692)

– Windows Start Menu shortcut missing after install [#8686](https://github.com/Mudlet/Mudlet/pull/8686)

– Use fixed delay instead of waiting for crashpad [#8679](https://github.com/Mudlet/Mudlet/pull/8679)

– Windows updates failing due to locked folder [#8678](https://github.com/Mudlet/Mudlet/pull/8678)

– Wait for crashpad_handler.exe to exit before running installer [#8676](https://github.com/Mudlet/Mudlet/pull/8676)

– [copy](https://wiki.mudlet.org/w/Manual:Lua_Functions#copy) downloaded installer instead of moving file on Windows [#8675](https://github.com/Mudlet/Mudlet/pull/8675)

– Create shortcuts when handling Squirrel install events [#8672](https://github.com/Mudlet/Mudlet/pull/8672)

– Wait for Mudlet to exit before running installer on Windows [#8673](https://github.com/Mudlet/Mudlet/pull/8673)

– Handle Squirrel installer startup commands on Windows to prevent Mudlet getting closed [#8666](https://github.com/Mudlet/Mudlet/pull/8666)

– Prevent crashpad_handler from getting a Windows Start Menu entry [#8659](https://github.com/Mudlet/Mudlet/pull/8659)

– Windows updater file lock issue in dblsqd (prevented updates) [#8661](https://github.com/Mudlet/Mudlet/pull/8661)

– Windows updater launch using batch file to avoid quoting issues when updating PTBs [#8663](https://github.com/Mudlet/Mudlet/pull/8663)

– Mudlet freeze when receiving large amounts of data [#8644](https://github.com/Mudlet/Mudlet/pull/8644)

– Container overflow crash when processing text [#8647](https://github.com/Mudlet/Mudlet/pull/8647)

– Build failures after dependency updates [#8645](https://github.com/Mudlet/Mudlet/pull/8645)

– package manager loses title on uninstall [#8625](https://github.com/Mudlet/Mudlet/pull/8625)

– Windows updater deleting itself during update [#8622](https://github.com/Mudlet/Mudlet/pull/8622)

– crash in bi-daily update check [#8620](https://github.com/Mudlet/Mudlet/pull/8620)

– crash in bi-daily update check

– clicking on stacked rooms selects all of them [#8616](https://github.com/Mudlet/Mudlet/pull/8616)

– use-after-free crash when calling [registerMapInfo](https://wiki.mudlet.org/w/Manual:Lua_Functions#registerMapInfo) [#8609](https://github.com/Mudlet/Mudlet/pull/8609)

– Prevent crash during Mudlet shutdown when closing profiles [#8606](https://github.com/Mudlet/Mudlet/pull/8606)

– Forward secrets.SENTRY_DSN to CMake on Windows [#8615](https://github.com/Mudlet/Mudlet/pull/8615)

– Static fonts configured in 4.19.1 continue working after upgrade [#8545](https://github.com/Mudlet/Mudlet/pull/8545)

– convert raw Qt pointers to QPointer to prevent use-after-free [#8610](https://github.com/Mudlet/Mudlet/pull/8610)

– maintain backwards compatibility when loading rex_pcre2 [#8599](https://github.com/Mudlet/Mudlet/pull/8599)

– missing encodings in dropdown for Qt6 [#8605](https://github.com/Mudlet/Mudlet/pull/8605)

– Medievia encoding error in preferences dropdown [#8608](https://github.com/Mudlet/Mudlet/pull/8608)

– load PCRE2 in LuaGlobal [#8598](https://github.com/Mudlet/Mudlet/pull/8598)

– fix inconsistent nullness checks [#8586](https://github.com/Mudlet/Mudlet/pull/8586)

– Test builds now use keychain for password storage [#8589](https://github.com/Mudlet/Mudlet/pull/8589)

– Heap-use-after-free crash when closing profiles with active triggers [#8567](https://github.com/Mudlet/Mudlet/pull/8567)

– heap-use-after-free when cleanup runs during alias/trigger/key processing [#8571](https://github.com/Mudlet/Mudlet/pull/8571)

– potential issue in area image export [#8585](https://github.com/Mudlet/Mudlet/pull/8585)

– Restore Qt5 Core5Compat for third-party dependencies [#8578](https://github.com/Mudlet/Mudlet/pull/8578)

– Reduce redundant UTF-8 conversions in trigger processing [#8560](https://github.com/Mudlet/Mudlet/pull/8560)

– Improve performance of hyperlink style parsing [#8558](https://github.com/Mudlet/Mudlet/pull/8558)

– Remove duplicate context menu on AdjustableContainer title bar [#8569](https://github.com/Mudlet/Mudlet/pull/8569)

– Copy from console now works when command line has focus [#8551](https://github.com/Mudlet/Mudlet/pull/8551)

– Remove deprecated Qt5 Core5Compat dependency [#8550](https://github.com/Mudlet/Mudlet/pull/8550)

– crash when rapidly reloading plugins due to thread-safety issue in XML export [#8542](https://github.com/Mudlet/Mudlet/pull/8542)

– switch to FFMPEG audio backend on Windows to allow playback of .ogg and .opus audio files [#8329](https://github.com/Mudlet/Mudlet/pull/8329)

– Debug console crash when host is deleted [#8549](https://github.com/Mudlet/Mudlet/pull/8549)

– Special exit text unreadable when editing [#8543](https://github.com/Mudlet/Mudlet/pull/8543)

– Comprehensive package installation crash prevention [#8541](https://github.com/Mudlet/Mudlet/pull/8541)

– Auto-activate new triggers/aliases/scripts/keys on save [#8529](https://github.com/Mudlet/Mudlet/pull/8529)

– Unicode characters [display](https://wiki.mudlet.org/w/Manual:Lua_Functions#display) correctly in unhandled MXP tags [#8532](https://github.com/Mudlet/Mudlet/pull/8532)

##### Infrastructure:
– apply clang-format style to tests too [#9201](https://github.com/Mudlet/Mudlet/pull/9201)

– Bump 3rdparty/sentry-native from `93c4e32` to `848fd4c` [#9202](https://github.com/Mudlet/Mudlet/pull/9202)

– Bump carlosperate/download-file-action from 2.0.2 to 2.0.3 [#9203](https://github.com/Mudlet/Mudlet/pull/9203)

– fix flaky TelnetTextDisplayedTest in CI [#9193](https://github.com/Mudlet/Mudlet/pull/9193)

– fix partial PTB releases not triggering when push build [exists](https://wiki.mudlet.org/w/Manual:Lua_Functions#exists) at same SHA [#9192](https://github.com/Mudlet/Mudlet/pull/9192)

– fix Windows SHA256 missing from PTB releases [#9191](https://github.com/Mudlet/Mudlet/pull/9191)

– allow partial PTB releases when not all platforms succeed [#9163](https://github.com/Mudlet/Mudlet/pull/9163)

– migrate undo/redo tests to QTest framework [#8867](https://github.com/Mudlet/Mudlet/pull/8867)

– stop deleting and recreating GitHub releases on every build [#9176](https://github.com/Mudlet/Mudlet/pull/9176)

– skip duplicate PTB builds when no new commits exist [#9175](https://github.com/Mudlet/Mudlet/pull/9175)

– sync edbee-lib submodule to fork master [#9183](https://github.com/Mudlet/Mudlet/pull/9183)

– Bump actions/download-artifact from 4 to 8 [#9179](https://github.com/Mudlet/Mudlet/pull/9179)

– Bump actions/github-script from 7 to 9 [#9181](https://github.com/Mudlet/Mudlet/pull/9181)

– Bump 3rdparty/sentry-native from `6ebd29b` to `93c4e32` [#9178](https://github.com/Mudlet/Mudlet/pull/9178)

– fix Windows and macOS nightly build failures [#9173](https://github.com/Mudlet/Mudlet/pull/9173)

– add missing statuses:write permission to DangerJS workflow [#9172](https://github.com/Mudlet/Mudlet/pull/9172)

– fix DangerJS workflow vulnerability to malicious PRs [#9143](https://github.com/Mudlet/Mudlet/pull/9143)

– add non-compileable files to CMake project file [#8780](https://github.com/Mudlet/Mudlet/pull/8780)

– update sentry-native to 0.13.5 [#9158](https://github.com/Mudlet/Mudlet/pull/9158)

– update edbee-lib submodule & use system oniguruma if present [#9156](https://github.com/Mudlet/Mudlet/pull/9156)

– fix PTB registration by reverting installer filename convention [#9155](https://github.com/Mudlet/Mudlet/pull/9155)

– show changelogs both from last release and last PTB [#9151](https://github.com/Mudlet/Mudlet/pull/9151)

– fix CI bugs in PTB registration, macOS updater linking, and portable ZIP upload [#9154](https://github.com/Mudlet/Mudlet/pull/9154)

– fix Windows release asset upload and appcast SCP paths [#9152](https://github.com/Mudlet/Mudlet/pull/9152)

– fix Windows PTB registration failing after installer rename [#9150](https://github.com/Mudlet/Mudlet/pull/9150)

– release workflow failing due to PR build triggers and checkout wiping assets [#9145](https://github.com/Mudlet/Mudlet/pull/9145)

– add CI workflow to create GitHub Releases for updater [#9127](https://github.com/Mudlet/Mudlet/pull/9127)

– Update text for translation in Crowdin [#9136](https://github.com/Mudlet/Mudlet/pull/9136)

– Bump lukka/get-cmake from 4.3.0 to 4.3.1 [#9139](https://github.com/Mudlet/Mudlet/pull/9139)

– Add comprehensive variable editor tests [#9103](https://github.com/Mudlet/Mudlet/pull/9103)

– add comprehensive [resetProfile](https://wiki.mudlet.org/w/Manual:Lua_Functions#resetProfile)() test suite [#9082](https://github.com/Mudlet/Mudlet/pull/9082)

– add cross-reference comments to duplicate build workflows [#9069](https://github.com/Mudlet/Mudlet/pull/9069)

– remove disabled clang-tidy workflows [#9113](https://github.com/Mudlet/Mudlet/pull/9113)

– Bump 3rdparty/qtkeychain from `6e90eda` to `53a8e6a` [#9126](https://github.com/Mudlet/Mudlet/pull/9126)

– Update text for translation in Crowdin [#9124](https://github.com/Mudlet/Mudlet/pull/9124)

– speed up OSC tests with data-driven approach [#9120](https://github.com/Mudlet/Mudlet/pull/9120)

– Add Copilot skill for opening pull requests [#9105](https://github.com/Mudlet/Mudlet/pull/9105)

– Bump 3rdparty/qtkeychain from `844beb4` to `6e90eda` [#8973](https://github.com/Mudlet/Mudlet/pull/8973)

– Update text for translation in Crowdin [#9077](https://github.com/Mudlet/Mudlet/pull/9077)

– disable CodeQL poorly-documented-function query [#9079](https://github.com/Mudlet/Mudlet/pull/9079)

– Bump webfactory/ssh-agent from 0.9.1 to 0.10.0 [#9047](https://github.com/Mudlet/Mudlet/pull/9047)

– restore xcb-util-cursor resiliency changes [#9074](https://github.com/Mudlet/Mudlet/pull/9074)

– Bump lukka/get-cmake from 4.2.3 to 4.3.0 [#9087](https://github.com/Mudlet/Mudlet/pull/9087)

– Fix macOS CI: use AppleClang instead of Homebrew LLVM [#9078](https://github.com/Mudlet/Mudlet/pull/9078)

– remove leftover qgridlayout ordering script [#9075](https://github.com/Mudlet/Mudlet/pull/9075)

– enable set -e in Linux CI deploy script to catch failures [#9059](https://github.com/Mudlet/Mudlet/pull/9059)

– install `libspeechd-dev` for Linux CI to fix AppImage creation [#9058](https://github.com/Mudlet/Mudlet/pull/9058)

– Migrate to clang64 msys2 environment for Windows builds [#9064](https://github.com/Mudlet/Mudlet/pull/9064)

– remove ccache mutex locks [#9043](https://github.com/Mudlet/Mudlet/pull/9043)

– add retries to brew install to handle hangs [#9045](https://github.com/Mudlet/Mudlet/pull/9045)

– remove CodeQL CI's concurrency [#9044](https://github.com/Mudlet/Mudlet/pull/9044)

– Fix windows builds in `development` [#9042](https://github.com/Mudlet/Mudlet/pull/9042)

– Bump development version to 4.20.1 [#9050](https://github.com/Mudlet/Mudlet/pull/9050)

– Update text for translation in Crowdin [#9040](https://github.com/Mudlet/Mudlet/pull/9040)

– remove qgridlayout ordering workflow [#9038](https://github.com/Mudlet/Mudlet/pull/9038)

– Update autocompletion data in Mudlet [#9041](https://github.com/Mudlet/Mudlet/pull/9041)

– update target path for file upload in geyser-docs workflow [#9030](https://github.com/Mudlet/Mudlet/pull/9030)

– Change SCP target host for file uploads [#9003](https://github.com/Mudlet/Mudlet/pull/9003)

– Dedicated workflow for prs [#9033](https://github.com/Mudlet/Mudlet/pull/9033)

– Remove unnecessary null checks after new [#9014](https://github.com/Mudlet/Mudlet/pull/9014)

– speed up compilation of Mudlet by 25% [#9021](https://github.com/Mudlet/Mudlet/pull/9021)

– Enable TTS in macOS builds [#8921](https://github.com/Mudlet/Mudlet/pull/8921)

– make xcb-util-cursor download more resilient [#9012](https://github.com/Mudlet/Mudlet/pull/9012)

– re-introduce path stripping in geyser-docs.yaml [#9023](https://github.com/Mudlet/Mudlet/pull/9023)

– ccache key should be per pr/branch [#9010](https://github.com/Mudlet/Mudlet/pull/9010)

– use release-signing for releases, test-signing for PTBs [#9007](https://github.com/Mudlet/Mudlet/pull/9007)

– always run build ci in core branches [#9008](https://github.com/Mudlet/Mudlet/pull/9008)

– Update text for translation in Crowdin [#9009](https://github.com/Mudlet/Mudlet/pull/9009)

– increase SignPath signing timeout to 1 hour [#9002](https://github.com/Mudlet/Mudlet/pull/9002)

– Refactor geyser doc upload workflow [#9001](https://github.com/Mudlet/Mudlet/pull/9001)

– run undo/redo tests in test mode [#8992](https://github.com/Mudlet/Mudlet/pull/8992)

– fix unintended ccache collisions [#8991](https://github.com/Mudlet/Mudlet/pull/8991)

– Bump actions/upload-artifact from 6 to 7 [#8989](https://github.com/Mudlet/Mudlet/pull/8989)

– CI concurrency logic [#8990](https://github.com/Mudlet/Mudlet/pull/8990)

– Bump ZedThree/clang-tidy-review from 0.23.0 to 0.23.1 [#8988](https://github.com/Mudlet/Mudlet/pull/8988)

– Update text for translation in Crowdin [#8940](https://github.com/Mudlet/Mudlet/pull/8940)

– [ImgBot] Optimize images [#8925](https://github.com/Mudlet/Mudlet/pull/8925)

– Bump development version to 4.20.0 [#8919](https://github.com/Mudlet/Mudlet/pull/8919)

– Bump 3rdparty/sentry-native from `c80e793` to `383ccad` [#8913](https://github.com/Mudlet/Mudlet/pull/8913)

– Add SignPath Foundation attribution to README [#8895](https://github.com/Mudlet/Mudlet/pull/8895)

– Update autocompletion data in Mudlet [#8903](https://github.com/Mudlet/Mudlet/pull/8903)

– Update text for translation in Crowdin [#8901](https://github.com/Mudlet/Mudlet/pull/8901)

– use pcre2grep in CI validation [#8878](https://github.com/Mudlet/Mudlet/pull/8878)

– set next-next release to be 4.21.0 [#8883](https://github.com/Mudlet/Mudlet/pull/8883)

– disable signing MudletCrashReporter.exe temporarily [#8880](https://github.com/Mudlet/Mudlet/pull/8880)

– add qtkeychain-qt6-dev to Linux workflows [#8876](https://github.com/Mudlet/Mudlet/pull/8876)

– switch qtkeychain submodule to upstream [#8870](https://github.com/Mudlet/Mudlet/pull/8870)

– detect Lua test failures on macOS CI [#8852](https://github.com/Mudlet/Mudlet/pull/8852)

– Remove x64 from Windows PTB desktop shortcut name [#8845](https://github.com/Mudlet/Mudlet/pull/8845)

– Bump lukka/get-cmake from 4.2.2 to 4.2.3 [#8844](https://github.com/Mudlet/Mudlet/pull/8844)

– Bump 3rdparty/sentry-native from `08b1374` to `c80e793` [#8843](https://github.com/Mudlet/Mudlet/pull/8843)

– Update text for translation in Crowdin [#8839](https://github.com/Mudlet/Mudlet/pull/8839)

– Fix SignPath code signing policy configuration [#8834](https://github.com/Mudlet/Mudlet/pull/8834)

– Revert uploading debug symbols to Sentry for PR builds [#8832](https://github.com/Mudlet/Mudlet/pull/8832)

– Fix Windows code signing by adding SignPath v2 policy file [#8831](https://github.com/Mudlet/Mudlet/pull/8831)

– Upload debug symbols to Sentry for PR builds [#8830](https://github.com/Mudlet/Mudlet/pull/8830)

– Remove unused QKeychain forward declarations from CredentialManager.h [#8829](https://github.com/Mudlet/Mudlet/pull/8829)

– Remove dead CMake code in Sentry configuration [#8828](https://github.com/Mudlet/Mudlet/pull/8828)

– Bump lukka/get-cmake from 3.30.3 to 4.2.2 [#8822](https://github.com/Mudlet/Mudlet/pull/8822)

– Bump actions/upload-artifact from 4 to 6 [#8823](https://github.com/Mudlet/Mudlet/pull/8823)

– Bump actions/cache from 4 to 5 [#8821](https://github.com/Mudlet/Mudlet/pull/8821)

– Bump 3rdparty/sentry-native from `bbccfad` to `08b1374` [#8820](https://github.com/Mudlet/Mudlet/pull/8820)

– Cache sentry-native builds in CI [#8807](https://github.com/Mudlet/Mudlet/pull/8807)

– Add .git-blame-ignore-revs for formatting commits [#8805](https://github.com/Mudlet/Mudlet/pull/8805)

– Update text for translation in Crowdin [#8816](https://github.com/Mudlet/Mudlet/pull/8816)

– update plural american english translations [#8478](https://github.com/Mudlet/Mudlet/pull/8478)

– add clang-format instructions to AI guidelines [#8806](https://github.com/Mudlet/Mudlet/pull/8806)

– Apply clang-format to all CPP files [#8804](https://github.com/Mudlet/Mudlet/pull/8804)

– Add SignPath code signing for Windows builds [#8786](https://github.com/Mudlet/Mudlet/pull/8786)

– update clang-format style to match Mudlets as much as possible [#8380](https://github.com/Mudlet/Mudlet/pull/8380)

– Enable Qt breadcrumbs in Sentry crash reports [#8791](https://github.com/Mudlet/Mudlet/pull/8791)

– Fix Windows nightly build failure when no new commits [#8790](https://github.com/Mudlet/Mudlet/pull/8790)

– Bump 3rdparty/sentry-native from `11832e4` to `bbccfad` [#8792](https://github.com/Mudlet/Mudlet/pull/8792)

– upload Qt module debug symbols to Sentry using cv2pdb [#8782](https://github.com/Mudlet/Mudlet/pull/8782)

– Update autocompletion data in Mudlet [#8789](https://github.com/Mudlet/Mudlet/pull/8789)

– Update text for translation in Crowdin [#8788](https://github.com/Mudlet/Mudlet/pull/8788)

– Upload Qt debug symbols to Sentry for better crash reports [#8777](https://github.com/Mudlet/Mudlet/pull/8777)

– Remove Azure trusted signing from Windows builds [#8778](https://github.com/Mudlet/Mudlet/pull/8778)

– Bump 3rdparty/edbee-lib from `cf7f0ba` to `7e7c0f6` [#8770](https://github.com/Mudlet/Mudlet/pull/8770)

– Bump 3rdparty/sentry-native from `4f983bb` to `11832e4` [#8771](https://github.com/Mudlet/Mudlet/pull/8771)

– remove `travis.` [prefix](https://wiki.mudlet.org/w/Manual:Lua_Functions#prefix) from CI files [#8375](https://github.com/Mudlet/Mudlet/pull/8375)

– Update autocompletion data in Mudlet [#8769](https://github.com/Mudlet/Mudlet/pull/8769)

– Update text for translation in Crowdin [#8767](https://github.com/Mudlet/Mudlet/pull/8767)

– Update bundled mpkg.mpackage to latest upstream [#8768](https://github.com/Mudlet/Mudlet/pull/8768)

– reduce Mudlet build times by 30s [#8403](https://github.com/Mudlet/Mudlet/pull/8403)

– Add Claude Code slash command for creating PRs [#8761](https://github.com/Mudlet/Mudlet/pull/8761)

– Guard undo/redo debug messages behind compile flag [#8760](https://github.com/Mudlet/Mudlet/pull/8760)

– Simplify profile loading code [#8756](https://github.com/Mudlet/Mudlet/pull/8756)

– Improve code readability with cleaner empty checks [#8755](https://github.com/Mudlet/Mudlet/pull/8755)

– Reduce noise in automated code review comments [#8754](https://github.com/Mudlet/Mudlet/pull/8754)

– simplify CI 3rd party update workflow [#8737](https://github.com/Mudlet/Mudlet/pull/8737)

– improve safety of internal text handling [#8724](https://github.com/Mudlet/Mudlet/pull/8724)

– uppercase settings key in config [#8246](https://github.com/Mudlet/Mudlet/pull/8246)

– Simplify build system by removing unused QMake files [#8731](https://github.com/Mudlet/Mudlet/pull/8731)

– modernize loop syntax across codebase [#8733](https://github.com/Mudlet/Mudlet/pull/8733)

– simplify cmake build configuration [#8732](https://github.com/Mudlet/Mudlet/pull/8732)

– simplify network connection handling [#8735](https://github.com/Mudlet/Mudlet/pull/8735)

– Add a security policy for reporting vulnerabilities [#8723](https://github.com/Mudlet/Mudlet/pull/8723)

– Update text for translation in Crowdin [#8728](https://github.com/Mudlet/Mudlet/pull/8728)

– Update autocompletion data in Mudlet [#8729](https://github.com/Mudlet/Mudlet/pull/8729)

– revise displayed Copyright year to 2026 [#8727](https://github.com/Mudlet/Mudlet/pull/8727)

– eliminate remains of qt-ordered-map from Mudlet [#8720](https://github.com/Mudlet/Mudlet/pull/8720)

– Clarify CI build option label [#8714](https://github.com/Mudlet/Mudlet/pull/8714)

– allow CMake `initGitSubmodule.cmake` to act recursively [#8717](https://github.com/Mudlet/Mudlet/pull/8717)

– run memory leak checks as part of CI pipeline [#8316](https://github.com/Mudlet/Mudlet/pull/8316)

– remove debug logging from undo/redo feature [#8713](https://github.com/Mudlet/Mudlet/pull/8713)

– Update text for translation in Crowdin [#8698](https://github.com/Mudlet/Mudlet/pull/8698)

– check for sentry-native submodule when Sentry enabled [#8669](https://github.com/Mudlet/Mudlet/pull/8669)

– address feedback in event handling from no-op operations [#8667](https://github.com/Mudlet/Mudlet/pull/8667)

– Add telnet processing speed benchmark [#8658](https://github.com/Mudlet/Mudlet/pull/8658)

– Replace foreach with C++17 structured bindings [#8664](https://github.com/Mudlet/Mudlet/pull/8664)

– Add ccache stats to Windows build workflow [#8671](https://github.com/Mudlet/Mudlet/pull/8671)

– Fix Windows PTB rebuild versioning for Squirrel [#8670](https://github.com/Mudlet/Mudlet/pull/8670)

– allow Windows PTB builds to be re-done on the same day [#8668](https://github.com/Mudlet/Mudlet/pull/8668)

– fix crashes in undo/redo tests [#8665](https://github.com/Mudlet/Mudlet/pull/8665)

– add proper Qt event propagation in all events [#8444](https://github.com/Mudlet/Mudlet/pull/8444)

– Bump actions/upload-artifact from 5 to 6 [#8657](https://github.com/Mudlet/Mudlet/pull/8657)

– Ignore lcf submodule in Dependabot, remove vcpkg [#8654](https://github.com/Mudlet/Mudlet/pull/8654)

– Bump ZedThree/clang-tidy-review from 0.22.2 to 0.22.3 [#8656](https://github.com/Mudlet/Mudlet/pull/8656)

– Update Lua code formatter to latest upstream branch [#8653](https://github.com/Mudlet/Mudlet/pull/8653)

– Bump 3rdparty/sentry-native from `67a9f8e` to `4f983bb` [#8637](https://github.com/Mudlet/Mudlet/pull/8637)

– Bump peter-evans/create-pull-request from 7 to 8 [#8638](https://github.com/Mudlet/Mudlet/pull/8638)

– Bump 3rdparty/lcf from `4aa2502` to `55aaf85` [#8639](https://github.com/Mudlet/Mudlet/pull/8639)

– Bump actions/cache from 4 to 5 [#8636](https://github.com/Mudlet/Mudlet/pull/8636)

– Update autocompletion data in Mudlet [#8634](https://github.com/Mudlet/Mudlet/pull/8634)

– Update text for translation in Crowdin [#8633](https://github.com/Mudlet/Mudlet/pull/8633)

– SENTRY_AUTH_TOKEN diagnostic checks environment variable [#8618](https://github.com/Mudlet/Mudlet/pull/8618)

– Bump 3rdparty/sentry-native from `c5416e6` to `67a9f8e` [#8617](https://github.com/Mudlet/Mudlet/pull/8617)

– Update text for translation in Crowdin [#8613](https://github.com/Mudlet/Mudlet/pull/8613)

– add workaround clang-tidy-review directory bug [#8597](https://github.com/Mudlet/Mudlet/pull/8597)

– update communi to qt6 [#8584](https://github.com/Mudlet/Mudlet/pull/8584)

– more fixes to clang-tidy workflow [#8596](https://github.com/Mudlet/Mudlet/pull/8596)

– fix clang-tidy workflow [#8595](https://github.com/Mudlet/Mudlet/pull/8595)

– update Qtkeychain submodule from master to main branch [#8579](https://github.com/Mudlet/Mudlet/pull/8579)

– Bump ZedThree/clang-tidy-review from 0.22.1 to 0.22.2 [#8594](https://github.com/Mudlet/Mudlet/pull/8594)

– ignore macOS keychain for telnet functional test [#8592](https://github.com/Mudlet/Mudlet/pull/8592)

– complete devcontainer setup [#8587](https://github.com/Mudlet/Mudlet/pull/8587)

– Update text for translation in Crowdin [#8590](https://github.com/Mudlet/Mudlet/pull/8590)

– remove item check in saveSelectedItem [#8583](https://github.com/Mudlet/Mudlet/pull/8583)

– Remove else-after-return anti-pattern [#8575](https://github.com/Mudlet/Mudlet/pull/8575)

– update devcontainer to work [#8321](https://github.com/Mudlet/Mudlet/pull/8321)

– Bump ZedThree/clang-tidy-review from 0.22.0 to 0.22.1 [#8564](https://github.com/Mudlet/Mudlet/pull/8564)

– Bump actions/checkout from 5 to 6 [#8565](https://github.com/Mudlet/Mudlet/pull/8565)

– Bump 3rdparty/edbee-lib from `165edc0` to `cf7f0ba` [#8563](https://github.com/Mudlet/Mudlet/pull/8563)

– Update text for translation in Crowdin [#8561](https://github.com/Mudlet/Mudlet/pull/8561)

– Update AI instructions with comments and git guidelines [#8531](https://github.com/Mudlet/Mudlet/pull/8531)

– Fix CMake CMP0167 warning for Boost [#8538](https://github.com/Mudlet/Mudlet/pull/8538)

– Add NINJA_STATUS to Windows build [#8539](https://github.com/Mudlet/Mudlet/pull/8539)

– update Noto Color Emoji font to Unicode 17.0 v2.051 [#8535](https://github.com/Mudlet/Mudlet/pull/8535)

– Add regex busted tests for PCRE library [#8537](https://github.com/Mudlet/Mudlet/pull/8537)

##### Other:
– Revert "Add per-room border color and thickness"

– Revert "Fix crash in bi-daily update check"

leggi tutto

Public Test Build

Changes since last PTB (Mudlet-4.20.1-ptb-2026-04-22-ea57a6dc)
Improved:
– 2D mapper rendering speed on single-Z-level areas #9209

Full changelog since last release (Mudlet-4.20.1)

##### Added:
– Pkuxkx as a predefined default MUD [#9161](https://github.com/Mudlet/Mudlet/pull/9161)

– Mudlet.ini option to control high DPI scale factor rounding policy [#9164](https://github.com/Mudlet/Mudlet/pull/9164)

– right-click option to hide default profiles in connection dialog [#9123](https://github.com/Mudlet/Mudlet/pull/9123)

– selectAll function with optional window support [#9166](https://github.com/Mudlet/Mudlet/pull/9166)

– telnets:// link support for secure TLS connections [#9153](https://github.com/Mudlet/Mudlet/pull/9153)

– getKeyCode function to return key code and any modifiers of a key-binding [#8435](https://github.com/Mudlet/Mudlet/pull/8435)

– `telnet://` URI scheme support for one-click MUD connections [#8601](https://github.com/Mudlet/Mudlet/pull/8601)

– separate border size control and player room marker improvements [#8975](https://github.com/Mudlet/Mudlet/pull/8975)

– OSC 8 context menu title support [#8910](https://github.com/Mudlet/Mudlet/pull/8910)

– DragonfireMUD and VoidMUD [#8783](https://github.com/Mudlet/Mudlet/pull/8783)

– 3rd party definition files for Lua [#8966](https://github.com/Mudlet/Mudlet/pull/8966)

– Starmourn and update IRE game profiles [#9076](https://github.com/Mudlet/Mudlet/pull/9076)

– embeddable TextEdit widget (Geyser.TextEdit) [#8986](https://github.com/Mudlet/Mudlet/pull/8986)

– MudMaster Chat Protocol (MMCP) [#7765](https://github.com/Mudlet/Mudlet/pull/7765)

– blinking/flashing text support [#8983](https://github.com/Mudlet/Mudlet/pull/8983)

– timeout for (Linux) Build xcb-util-cursor [#8978](https://github.com/Mudlet/Mudlet/pull/8978)

– timeout for macos (Install Dependencies) [#8977](https://github.com/Mudlet/Mudlet/pull/8977)

– data loss guard on constraint migration [#8850](https://github.com/Mudlet/Mudlet/pull/8850)

– GNOME Software-style navigation in Package Manager [#8846](https://github.com/Mudlet/Mudlet/pull/8846)

– room description matching to generic mapper [#8649](https://github.com/Mudlet/Mudlet/pull/8649)

– hidden rooms [#8443](https://github.com/Mudlet/Mudlet/pull/8443)

– Multi-file selection in import dialogs [#8796](https://github.com/Mudlet/Mudlet/pull/8796)

– Map label support in 3D mapper [#8793](https://github.com/Mudlet/Mudlet/pull/8793)

– multiple note tabs to the notepad [#8757](https://github.com/Mudlet/Mudlet/pull/8757)

– multiple map views support [#8743](https://github.com/Mudlet/Mudlet/pull/8743)

– muteMediaScript and muteMediaGame options to [getConfig](https://wiki.mudlet.org/w/Manual:Lua_Functions#getConfig)/[setConfig](https://wiki.mudlet.org/w/Manual:Lua_Functions#setConfig) [#8764](https://github.com/Mudlet/Mudlet/pull/8764)

– “Whole word” search option in the script editor [#8722](https://github.com/Mudlet/Mudlet/pull/8722)

– per-room border color and thickness [#8758](https://github.com/Mudlet/Mudlet/pull/8758)

– more safeguards against profile settings being lost [#8742](https://github.com/Mudlet/Mudlet/pull/8742)

– permExactMatchTrigger Lua API function [#8745](https://github.com/Mudlet/Mudlet/pull/8745)

– per-room border color and thickness

– NAWS protocol toggle setting [#8700](https://github.com/Mudlet/Mudlet/pull/8700)

– getBorderColor() Lua API function [#8688](https://github.com/Mudlet/Mudlet/pull/8688)

– MXP FRAME and DEST tag support for multi-window layouts [#8577](https://github.com/Mudlet/Mudlet/pull/8577)

– Optional static analysis during build [#8708](https://github.com/Mudlet/Mudlet/pull/8708)

– OSC 8 hyperlink visibility, selection, and compact syntax enhancements [#8677](https://github.com/Mudlet/Mudlet/pull/8677)

– Sentry license to about dialog [#8660](https://github.com/Mudlet/Mudlet/pull/8660)

– undo/redo for Mudlet editor [#8469](https://github.com/Mudlet/Mudlet/pull/8469)

– [getRoomsByPosition1](https://wiki.mudlet.org/w/Manual:Lua_Functions#getRoomsByPosition1)() function [#8619](https://github.com/Mudlet/Mudlet/pull/8619)

– functional GUI tests using QTest [#8572](https://github.com/Mudlet/Mudlet/pull/8572)

– Enable spellcheck in the composer window [#8447](https://github.com/Mudlet/Mudlet/pull/8447)

– setExitWeightFilter function to alter room/exits weights/locks [#8487](https://github.com/Mudlet/Mudlet/pull/8487)

##### Improved:
– 2D mapper rendering speed on single-Z-level areas [#9209](https://github.com/Mudlet/Mudlet/pull/9209)

– simplify long tooltips [#8416](https://github.com/Mudlet/Mudlet/pull/8416)

– Make spacing between widgets in the connection dialog more consistent [#9198](https://github.com/Mudlet/Mudlet/pull/9198)

– Auto-switch code editor theme with app appearance [#9167](https://github.com/Mudlet/Mudlet/pull/9167)

– handling of rooms having their hidden property changed [#8947](https://github.com/Mudlet/Mudlet/pull/8947)

– guard mudlet::self() in cTelnet destructor [#9020](https://github.com/Mudlet/Mudlet/pull/9020)

– use raw IP address if provided with one [#9066](https://github.com/Mudlet/Mudlet/pull/9066)

– Give players full control over Discord Rich Presence [#9116](https://github.com/Mudlet/Mudlet/pull/9116)

– show version scope in PTB release changelogs [#9148](https://github.com/Mudlet/Mudlet/pull/9148)

– hidden rooms – allow storage in map versions < 22 and other things [#8930](https://github.com/Mudlet/Mudlet/pull/8930)

– change label highlight from overlay to outline [#9132](https://github.com/Mudlet/Mudlet/pull/9132)

– internal code in regards to memory use [#9015](https://github.com/Mudlet/Mudlet/pull/9015)

– saving a key with no binding set shows an error [#9114](https://github.com/Mudlet/Mudlet/pull/9114)

– Add smooth pulsing effect for blinking text [#9104](https://github.com/Mudlet/Mudlet/pull/9104)

– remove AI/llamafile integration [#9108](https://github.com/Mudlet/Mudlet/pull/9108)

– error message when saving MMP-downloaded map [#9107](https://github.com/Mudlet/Mudlet/pull/9107)

– Automatic audio device switching support [#9026](https://github.com/Mudlet/Mudlet/pull/9026)

– only mark map as dirty if room hidden status is changed [#8946](https://github.com/Mudlet/Mudlet/pull/8946)

– Reduce memory usage for text decorations [#9052](https://github.com/Mudlet/Mudlet/pull/9052)

– Remove debug [print](https://wiki.mudlet.org/w/Manual:Lua_Functions#print) from deleteAll function [#9061](https://github.com/Mudlet/Mudlet/pull/9061)

– add defensive coding to internal code related to the TMediaPlayer [#9017](https://github.com/Mudlet/Mudlet/pull/9017)

– Script Editor search code quality and maintainability [#9028](https://github.com/Mudlet/Mudlet/pull/9028)

– Code quality in TBuffer.cpp [#9029](https://github.com/Mudlet/Mudlet/pull/9029)

– show feedback when manually checking for updates fails [#9004](https://github.com/Mudlet/Mudlet/pull/9004)

– add better error reporting to GMCP merge handler [#9018](https://github.com/Mudlet/Mudlet/pull/9018)

– adjust [getTime](https://wiki.mudlet.org/w/Manual:Lua_Functions#getTime)() table size hint to match 7 entries [#9019](https://github.com/Mudlet/Mudlet/pull/9019)

– Don't [echo](https://wiki.mudlet.org/w/Manual:Lua_Functions#echo) OSC 8 [send](https://wiki.mudlet.org/w/Manual:Lua_Functions#send): hyperlink commands by default [#8957](https://github.com/Mudlet/Mudlet/pull/8957)

– Detection of character-at-a-time mode in server connections [#8825](https://github.com/Mudlet/Mudlet/pull/8825)

– Add more context to media playback events [#8953](https://github.com/Mudlet/Mudlet/pull/8953)

– luarocks busted install instructions version flag [#8950](https://github.com/Mudlet/Mudlet/pull/8950)

– Add macOS clang-format path to AI instructions [#8926](https://github.com/Mudlet/Mudlet/pull/8926)

– Make MNES and NEW-ENVIRON mutually exclusive in UI [#8893](https://github.com/Mudlet/Mudlet/pull/8893)

– update Astaria banner [#8900](https://github.com/Mudlet/Mudlet/pull/8900)

– New Crowdin updates [#8253](https://github.com/Mudlet/Mudlet/pull/8253)

– macOS build instructions use absolute path [#8860](https://github.com/Mudlet/Mudlet/pull/8860)

– nixed rex_prce2 check in lua [#8848](https://github.com/Mudlet/Mudlet/pull/8848)

– Faster map rendering when zoomed in by skipping off-screen rooms [#8797](https://github.com/Mudlet/Mudlet/pull/8797)

– Allow nil to clear label callbacks [#8799](https://github.com/Mudlet/Mudlet/pull/8799)

– keep small map areas fully visible in viewport [#8766](https://github.com/Mudlet/Mudlet/pull/8766)

– Enable PCRE2 JIT compilation for triggers and aliases [#8762](https://github.com/Mudlet/Mudlet/pull/8762)

– open IRC with Lua functions not via UI anymore [#8123](https://github.com/Mudlet/Mudlet/pull/8123)

– Auto-link Lua function names in changelog [#8744](https://github.com/Mudlet/Mudlet/pull/8744)

– add error handling with clear error messages [#8736](https://github.com/Mudlet/Mudlet/pull/8736)

– error message visibility in module creation dialog [#8738](https://github.com/Mudlet/Mudlet/pull/8738)

– Memory management for console hyperlinks [#8725](https://github.com/Mudlet/Mudlet/pull/8725)

– AI assistant guidance for modern C++ loops [#8741](https://github.com/Mudlet/Mudlet/pull/8741)

– error messages for easier troubleshooting [#8721](https://github.com/Mudlet/Mudlet/pull/8721)

– highlight search terms in editor when using global search [#8687](https://github.com/Mudlet/Mudlet/pull/8687)

– Show a warning icon when map autosave fails [#8689](https://github.com/Mudlet/Mudlet/pull/8689)

– Simplify internal tree widget code [#8706](https://github.com/Mudlet/Mudlet/pull/8706)

– remove outdated comment for special exits MMP import [#8707](https://github.com/Mudlet/Mudlet/pull/8707)

– Enable OSC 8 hyperlink visibility by default [#8699](https://github.com/Mudlet/Mudlet/pull/8699)

– Fix compiler warnings about potential data loss in type conversions [#8715](https://github.com/Mudlet/Mudlet/pull/8715)

– Remove outdated FIXME comment from msleep call [#8695](https://github.com/Mudlet/Mudlet/pull/8695)

– Modernize color trigger dialog button handling [#8693](https://github.com/Mudlet/Mudlet/pull/8693)

– Reduce Windows install size by ~135MB [#8685](https://github.com/Mudlet/Mudlet/pull/8685)

– show error message when variable can't be moved in the trigger editor [#8683](https://github.com/Mudlet/Mudlet/pull/8683)

– Add error handling to unexpected scenarios [#8682](https://github.com/Mudlet/Mudlet/pull/8682)

– Auto-recover from stuck password masking during login [#8628](https://github.com/Mudlet/Mudlet/pull/8628)

– OSC 8 hyperlink styling with direct JSON parsing [#8641](https://github.com/Mudlet/Mudlet/pull/8641)

– use platform-native key names in UI text [#8591](https://github.com/Mudlet/Mudlet/pull/8591)

– add a crash reporter for Linux / macOS / Windows [#8540](https://github.com/Mudlet/Mudlet/pull/8540)

– Migrate C++ regex engine from PCRE to PCRE2 [#8533](https://github.com/Mudlet/Mudlet/pull/8533)

– Limit saved Lua table variables to 10,000 items [#8581](https://github.com/Mudlet/Mudlet/pull/8581)

– Remove directional navigation buttons from mapper [#8574](https://github.com/Mudlet/Mudlet/pull/8574)

– – two seconds is longer than you think [#8570](https://github.com/Mudlet/Mudlet/pull/8570)

– Cleanup system efficiency for triggers, aliases, and keys [#8559](https://github.com/Mudlet/Mudlet/pull/8559)

– small Style Cleanup in main.cpp [#8562](https://github.com/Mudlet/Mudlet/pull/8562)

– Remove accessible description from trigger pattern editor [#8546](https://github.com/Mudlet/Mudlet/pull/8546)

– remove navigation shortcuts widget from trigger editor [#8530](https://github.com/Mudlet/Mudlet/pull/8530)

##### Fixed:
– Clazy warnings part 4 – range-loop-reference [#9207](https://github.com/Mudlet/Mudlet/pull/9207)

– correct use of forward declared type items in headers [#9208](https://github.com/Mudlet/Mudlet/pull/9208)

– Clazy warnings part 3 – qstring-arg [#9197](https://github.com/Mudlet/Mudlet/pull/9197)

– unify and translate some Map Errors [#9189](https://github.com/Mudlet/Mudlet/pull/9189)

– avoid bogus "new Toolbar" and "new Menu" items creation on profile load [#9194](https://github.com/Mudlet/Mudlet/pull/9194)

– Clazy warnings part 2 – detaching-temporary [#9196](https://github.com/Mudlet/Mudlet/pull/9196)

– Clazy warnings part 1 – range-loop-detach [#9195](https://github.com/Mudlet/Mudlet/pull/9195)

– strip whitespace formatting marks when copying trigger patterns [#9149](https://github.com/Mudlet/Mudlet/pull/9149)

– several [resetProfile](https://wiki.mudlet.org/w/Manual:Lua_Functions#resetProfile)() bugs [#9083](https://github.com/Mudlet/Mudlet/pull/9083)

– prevent update download from being canceled when checking for updates [#9185](https://github.com/Mudlet/Mudlet/pull/9185)

– changelog rendering in PTB update dialog [#9182](https://github.com/Mudlet/Mudlet/pull/9182)

– package edit warning incorrectly showing for module items [#9168](https://github.com/Mudlet/Mudlet/pull/9168)

– Cancel on trigger highlight color picker no longer changes the color [#9013](https://github.com/Mudlet/Mudlet/pull/9013)

– Respect explicit theme choice on Linux [#8897](https://github.com/Mudlet/Mudlet/pull/8897)

– memory leaks in map info contributors, deleting labels [#9141](https://github.com/Mudlet/Mudlet/pull/9141)

– increase TelnetTextDisplayedTest timeouts for CI [#9184](https://github.com/Mudlet/Mudlet/pull/9184)

– review fixes for font handling rework [#9135](https://github.com/Mudlet/Mudlet/pull/9135)

– Better handling of package-supplied fonts during unloading/reloading of packages [#9115](https://github.com/Mudlet/Mudlet/pull/9115)

– [selectCaptureGroup](https://wiki.mudlet.org/w/Manual:Lua_Functions#selectCaptureGroup)() selecting wrong capture [#9133](https://github.com/Mudlet/Mudlet/pull/9133)

– resolve CodeQL stack-address-escape warnings [#9080](https://github.com/Mudlet/Mudlet/pull/9080)

– [insertText](https://wiki.mudlet.org/w/Manual:Lua_Functions#insertText) newline regression [#9022](https://github.com/Mudlet/Mudlet/pull/9022)

– updater to work with github releases [#9125](https://github.com/Mudlet/Mudlet/pull/9125)

– memory leaks in sound player, dialogs [#9142](https://github.com/Mudlet/Mudlet/pull/9142)

– crash when importing non-Mudlet zip with XML containing element [#9146](https://github.com/Mudlet/Mudlet/pull/9146)

– handle over/underflows in (int) TLuaInterpreter::getVerifiedInt(…) [#8924](https://github.com/Mudlet/Mudlet/pull/8924)

– crash when [resetProfile](https://wiki.mudlet.org/w/Manual:Lua_Functions#resetProfile)() is called while downloads are in-progress [#9138](https://github.com/Mudlet/Mudlet/pull/9138)

– scaling map image labels showing text instead of image [#9121](https://github.com/Mudlet/Mudlet/pull/9121)

– label move in 2D map [#9131](https://github.com/Mudlet/Mudlet/pull/9131)

– correct icon names for two recently added predefined MUDs [#9129](https://github.com/Mudlet/Mudlet/pull/9129)

– handle CMake aliasing problems when PCRE2::8BIT is itself an alias [#9128](https://github.com/Mudlet/Mudlet/pull/9128)

– crash when user cancels map download [#9085](https://github.com/Mudlet/Mudlet/pull/9085)

– small memory leaks in package/object management [#9111](https://github.com/Mudlet/Mudlet/pull/9111)

– small memory leaks when closing/reopening profiles [#9110](https://github.com/Mudlet/Mudlet/pull/9110)

– small leak in [resetProfile](https://wiki.mudlet.org/w/Manual:Lua_Functions#resetProfile)() for the Lua state, label, and scrollbox [#9109](https://github.com/Mudlet/Mudlet/pull/9109)

– stale characters during horizontal scrolling with wide fonts [#9099](https://github.com/Mudlet/Mudlet/pull/9099)

– Ctrl+End in caret mode hides the cursor [#9101](https://github.com/Mudlet/Mudlet/pull/9101)

– Toolbar visibility not persisted when toggled via right-click menu [#9053](https://github.com/Mudlet/Mudlet/pull/9053)

– typo in mPlayerRoomColorGradentStops member name [#9112](https://github.com/Mudlet/Mudlet/pull/9112)

– OSC 8 hyperlinks strip config/preset only when features are advertised [#9106](https://github.com/Mudlet/Mudlet/pull/9106)

– Miniconsole text cutoff after switching profiles [#8853](https://github.com/Mudlet/Mudlet/pull/8853)

– Refactor and fix logic handling chat name change from GUI preferences dialog [#9025](https://github.com/Mudlet/Mudlet/pull/9025)

– use correct variable for Discord starttime string parsing [#9100](https://github.com/Mudlet/Mudlet/pull/9100)

– Copy Map to inactive profiles losing player room position [#9091](https://github.com/Mudlet/Mudlet/pull/9091)

– use right format type for errors in playSoundFileAsOrderedArguments [#9086](https://github.com/Mudlet/Mudlet/pull/9086)

– Tabs not respecting dark mode [#8996](https://github.com/Mudlet/Mudlet/pull/8996) [#8999](https://github.com/Mudlet/Mudlet/pull/8999)

– map info "Short" always re-added on profile load [#8963](https://github.com/Mudlet/Mudlet/pull/8963)

– Module Manager shortcut uses wrong key sequence when menu bar hidden [#9097](https://github.com/Mudlet/Mudlet/pull/9097)

– setSaveCommandHistory inverting the boolean when a command line name is given [#9098](https://github.com/Mudlet/Mudlet/pull/9098)

– Fix QFutureWatcher memory leaks across the codebase [#9095](https://github.com/Mudlet/Mudlet/pull/9095)

– Color swatch buttons washed out on macOS and not showing at all in Light mode [#8970](https://github.com/Mudlet/Mudlet/pull/8970)

– Text with < characters disappearing on games with MXP enabled [#8918](https://github.com/Mudlet/Mudlet/pull/8918)

– [saveWindowLayout](https://wiki.mudlet.org/w/Manual:Lua_Functions#saveWindowLayout)/[loadWindowLayout](https://wiki.mudlet.org/w/Manual:Lua_Functions#loadWindowLayout) now retains user window positions [#9056](https://github.com/Mudlet/Mudlet/pull/9056)

– memory leak when deleting areas in a map [#9092](https://github.com/Mudlet/Mudlet/pull/9092)

– clickable links losing their URL query parameters [#9073](https://github.com/Mudlet/Mudlet/pull/9073)

– Garbled error messages when passing wrong argument types to popup functions [#9090](https://github.com/Mudlet/Mudlet/pull/9090)

– map exits corrupted when loading maps with invalid room IDs [#9089](https://github.com/Mudlet/Mudlet/pull/9089)

– Correct call() return value so timer error handling reads correctly [#9088](https://github.com/Mudlet/Mudlet/pull/9088)

– Show SSL error messages when secure connection fails [#9055](https://github.com/Mudlet/Mudlet/pull/9055)

– ansi_color table loading order [#9084](https://github.com/Mudlet/Mudlet/pull/9084)

– crash when keychain operation times out [#9072](https://github.com/Mudlet/Mudlet/pull/9072)

– Updater crash on Windows when download URL is unavailable [#9067](https://github.com/Mudlet/Mudlet/pull/9067)

– Changing one profile's password no longer affects others [#9049](https://github.com/Mudlet/Mudlet/pull/9049)

– custom map events not firing when placed in submenus [#8998](https://github.com/Mudlet/Mudlet/pull/8998)

– [timeframe](https://wiki.mudlet.org/w/Manual:Lua_Functions#timeframe) failing if third arg is nil [#8964](https://github.com/Mudlet/Mudlet/pull/8964)

– PasswordMigrationTest to build [#9032](https://github.com/Mudlet/Mudlet/pull/9032)

– Separate user and MXP borders so [reconnect](https://wiki.mudlet.org/w/Manual:Lua_Functions#reconnect) doesn't reset user borders [#9016](https://github.com/Mudlet/Mudlet/pull/9016)

– Restore password loading from portable file in connection dialog [#8993](https://github.com/Mudlet/Mudlet/pull/8993)

– Clear package list before repopulating in Package Exporter [#8892](https://github.com/Mudlet/Mudlet/pull/8892)

– Input bar height changes unexpectedly when switching profiles [#8958](https://github.com/Mudlet/Mudlet/pull/8958)

– Room symbols not rescaling when map is resized [#8974](https://github.com/Mudlet/Mudlet/pull/8974)

– Prevent crash when closing detached windows [#8934](https://github.com/Mudlet/Mudlet/pull/8934)

– Restore sound playback on macOS [#8949](https://github.com/Mudlet/Mudlet/pull/8949)

– Update ssh IP for Geyser upload workflow [#8995](https://github.com/Mudlet/Mudlet/pull/8995)

– Correct TestMask to exclude internal flags [#8954](https://github.com/Mudlet/Mudlet/pull/8954)

– mudlet does not close after running lua tests [#8979](https://github.com/Mudlet/Mudlet/pull/8979)

– Clang-format hash in .git-blame-ignore-revs [#8882](https://github.com/Mudlet/Mudlet/pull/8882)

– [#6964] [spairs](https://wiki.mudlet.org/w/Manual:Lua_Functions#spairs) chokes on mixed keys [#8868](https://github.com/Mudlet/Mudlet/pull/8868)

– align MSDP negotiation to specs [#8905](https://github.com/Mudlet/Mudlet/pull/8905)

– Crash when removing default MUD profiles from welcome window [#8916](https://github.com/Mudlet/Mudlet/pull/8916)

– MXP not working on some MUDs [#8915](https://github.com/Mudlet/Mudlet/pull/8915)

– clean up comments and related translation things [#8914](https://github.com/Mudlet/Mudlet/pull/8914)

– Command history not working when password masking is disabled [#8902](https://github.com/Mudlet/Mudlet/pull/8902)

– Revert default map format to 20 in PTB / `development` [#8891](https://github.com/Mudlet/Mudlet/pull/8891)

– Make main console default to opaque text background, allow user to customize [#8887](https://github.com/Mudlet/Mudlet/pull/8887)

– Delay MXP TEMP_SECURE mode reset to allow tag handling [#8889](https://github.com/Mudlet/Mudlet/pull/8889)

– PTB crash on some Linux systems due to libxcb-cursor bug [#8866](https://github.com/Mudlet/Mudlet/pull/8866)

– Player shown on far side of map when mapper window is wide [#8869](https://github.com/Mudlet/Mudlet/pull/8869)

– db:_coerce_sheet backwards compatibility [#8861](https://github.com/Mudlet/Mudlet/pull/8861)

– Map labels appearing bold after profile reload [#8865](https://github.com/Mudlet/Mudlet/pull/8865)

– macOS color buttons not showing colors in settings [#8847](https://github.com/Mudlet/Mudlet/pull/8847)

– Make update dialog release notes keyboard accessible [#8849](https://github.com/Mudlet/Mudlet/pull/8849)

– Restore desktop shortcut creation on Windows install [#8841](https://github.com/Mudlet/Mudlet/pull/8841)

– Crash when drawing map labels at small zoom levels [#8836](https://github.com/Mudlet/Mudlet/pull/8836)

– Disable AddressSanitizer for release builds [#8826](https://github.com/Mudlet/Mudlet/pull/8826)

– Remember scroll position and cursor position in script editor [#8410](https://github.com/Mudlet/Mudlet/pull/8410)

– Use custom dark theme on all Windows versions [#8819](https://github.com/Mudlet/Mudlet/pull/8819)

– Map area centering displaying areas off-screen [#8814](https://github.com/Mudlet/Mudlet/pull/8814)

– Crash when nested alias/trigger processing runs cleanup prematurely [#8818](https://github.com/Mudlet/Mudlet/pull/8818)

– table.update no longer errors when replacing non-table with table [#8694](https://github.com/Mudlet/Mudlet/pull/8694) [#8751](https://github.com/Mudlet/Mudlet/pull/8751)

– Editor actions not working on initial open [#7482](https://github.com/Mudlet/Mudlet/pull/7482) [#8753](https://github.com/Mudlet/Mudlet/pull/8753)

– Revert map rendering optimization causing issues [#8809](https://github.com/Mudlet/Mudlet/pull/8809)

– Medievia encoding showing error in preferences dropdown [#8811](https://github.com/Mudlet/Mudlet/pull/8811)

– MXP FRAME close tags appearing as literal text [#8808](https://github.com/Mudlet/Mudlet/pull/8808)

– Timer groups [display](https://wiki.mudlet.org/w/Manual:Lua_Functions#display) correct icons when drag-dropped [#8802](https://github.com/Mudlet/Mudlet/pull/8802)

– Map labels appear crisp at all zoom levels [#8795](https://github.com/Mudlet/Mudlet/pull/8795)

– honor 'disable automatic updates' setting when installer is already downloaded [#8409](https://github.com/Mudlet/Mudlet/pull/8409)

– OSC sequences with BEL terminator no longer swallow output [#3912](https://github.com/Mudlet/Mudlet/pull/3912) [#8750](https://github.com/Mudlet/Mudlet/pull/8750)

– Windows crash when saving profile config [#8427](https://github.com/Mudlet/Mudlet/pull/8427) [#8428](https://github.com/Mudlet/Mudlet/pull/8428)

– Big5 and East Asian text encodings not working on Linux [#8787](https://github.com/Mudlet/Mudlet/pull/8787)

– compile in latest development due to map update changes [#8800](https://github.com/Mudlet/Mudlet/pull/8800)

– Improve error handling in [setLabelStyleSheet](https://wiki.mudlet.org/w/Manual:Lua_Functions#setLabelStyleSheet)() [#8446](https://github.com/Mudlet/Mudlet/pull/8446)

– Add outline to area exit arrows for visibility on matching backgrounds [#8794](https://github.com/Mudlet/Mudlet/pull/8794)

– mapper not reopenable after closing via X button [#8401](https://github.com/Mudlet/Mudlet/pull/8401)

– Disable 'Activate' button in Variables view [#8441](https://github.com/Mudlet/Mudlet/pull/8441)

– Prevent crash in MXP watchdog callback [#8785](https://github.com/Mudlet/Mudlet/pull/8785)

– Memory leaks in ScriptUnit and ActionUnit (8,856 bytes) when opening/closing profile [#8781](https://github.com/Mudlet/Mudlet/pull/8781)

– Potential crash during automatic update download [#8776](https://github.com/Mudlet/Mudlet/pull/8776)

– Include full version in Sentry crash reports for PTB builds [#8779](https://github.com/Mudlet/Mudlet/pull/8779)

– Improve build documentation clarity for terminal execution [#8774](https://github.com/Mudlet/Mudlet/pull/8774)

– Regex triggers now respect 'keep' background color setting [#8402](https://github.com/Mudlet/Mudlet/pull/8402)

– Remove unnecessary allocation in filter trigger matching [#8763](https://github.com/Mudlet/Mudlet/pull/8763)

– default new profiles to UTF-8 encoding instead of ASCII [#8759](https://github.com/Mudlet/Mudlet/pull/8759)

– Accessibility crash with out-of-range offset [#8310](https://github.com/Mudlet/Mudlet/pull/8310) [#8752](https://github.com/Mudlet/Mudlet/pull/8752)

– named captures indexed incorrectly in multimatches with special line types [#8748](https://github.com/Mudlet/Mudlet/pull/8748)

– Update trigger icons immediately when dragging in editor [#8746](https://github.com/Mudlet/Mudlet/pull/8746)

– connections to MMapper [#8730](https://github.com/Mudlet/Mudlet/pull/8730)

– prevent module autosave from overwriting failed-to-load modules [#8696](https://github.com/Mudlet/Mudlet/pull/8696)

– GMCP media finish parameter not working [#8740](https://github.com/Mudlet/Mudlet/pull/8740)

– Modules not loading when reopening a profile [#8739](https://github.com/Mudlet/Mudlet/pull/8739)

– Package Exporter unable to export packages [#8629](https://github.com/Mudlet/Mudlet/pull/8629) [#8630](https://github.com/Mudlet/Mudlet/pull/8630)

– Memory leaks in core components [#8716](https://github.com/Mudlet/Mudlet/pull/8716)

– Windows installer failing after update [#8710](https://github.com/Mudlet/Mudlet/pull/8710)

– Down arrow saves typed text before clearing [#8705](https://github.com/Mudlet/Mudlet/pull/8705)

– Restore Windows application icon [#8703](https://github.com/Mudlet/Mudlet/pull/8703)

– set enableMXP when MXP is autodetected [#8701](https://github.com/Mudlet/Mudlet/pull/8701)

– 8 CodeQL 'comparison result is always the same' warnings [#8691](https://github.com/Mudlet/Mudlet/pull/8691)

– CodeQL inconsistent nullness check errors in temp trigger functions [#8690](https://github.com/Mudlet/Mudlet/pull/8690)

– restrict MXP auto-detection to ESC sequences only [#8692](https://github.com/Mudlet/Mudlet/pull/8692)

– Windows Start Menu shortcut missing after install [#8686](https://github.com/Mudlet/Mudlet/pull/8686)

– Use fixed delay instead of waiting for crashpad [#8679](https://github.com/Mudlet/Mudlet/pull/8679)

– Windows updates failing due to locked folder [#8678](https://github.com/Mudlet/Mudlet/pull/8678)

– Wait for crashpad_handler.exe to exit before running installer [#8676](https://github.com/Mudlet/Mudlet/pull/8676)

– [copy](https://wiki.mudlet.org/w/Manual:Lua_Functions#copy) downloaded installer instead of moving file on Windows [#8675](https://github.com/Mudlet/Mudlet/pull/8675)

– Create shortcuts when handling Squirrel install events [#8672](https://github.com/Mudlet/Mudlet/pull/8672)

– Wait for Mudlet to exit before running installer on Windows [#8673](https://github.com/Mudlet/Mudlet/pull/8673)

– Handle Squirrel installer startup commands on Windows to prevent Mudlet getting closed [#8666](https://github.com/Mudlet/Mudlet/pull/8666)

– Prevent crashpad_handler from getting a Windows Start Menu entry [#8659](https://github.com/Mudlet/Mudlet/pull/8659)

– Windows updater file lock issue in dblsqd (prevented updates) [#8661](https://github.com/Mudlet/Mudlet/pull/8661)

– Windows updater launch using batch file to avoid quoting issues when updating PTBs [#8663](https://github.com/Mudlet/Mudlet/pull/8663)

– Mudlet freeze when receiving large amounts of data [#8644](https://github.com/Mudlet/Mudlet/pull/8644)

– Container overflow crash when processing text [#8647](https://github.com/Mudlet/Mudlet/pull/8647)

– Build failures after dependency updates [#8645](https://github.com/Mudlet/Mudlet/pull/8645)

– package manager loses title on uninstall [#8625](https://github.com/Mudlet/Mudlet/pull/8625)

– Windows updater deleting itself during update [#8622](https://github.com/Mudlet/Mudlet/pull/8622)

– crash in bi-daily update check [#8620](https://github.com/Mudlet/Mudlet/pull/8620)

– crash in bi-daily update check

– clicking on stacked rooms selects all of them [#8616](https://github.com/Mudlet/Mudlet/pull/8616)

– use-after-free crash when calling [registerMapInfo](https://wiki.mudlet.org/w/Manual:Lua_Functions#registerMapInfo) [#8609](https://github.com/Mudlet/Mudlet/pull/8609)

– Prevent crash during Mudlet shutdown when closing profiles [#8606](https://github.com/Mudlet/Mudlet/pull/8606)

– Forward secrets.SENTRY_DSN to CMake on Windows [#8615](https://github.com/Mudlet/Mudlet/pull/8615)

– Static fonts configured in 4.19.1 continue working after upgrade [#8545](https://github.com/Mudlet/Mudlet/pull/8545)

– convert raw Qt pointers to QPointer to prevent use-after-free [#8610](https://github.com/Mudlet/Mudlet/pull/8610)

– maintain backwards compatibility when loading rex_pcre2 [#8599](https://github.com/Mudlet/Mudlet/pull/8599)

– missing encodings in dropdown for Qt6 [#8605](https://github.com/Mudlet/Mudlet/pull/8605)

– Medievia encoding error in preferences dropdown [#8608](https://github.com/Mudlet/Mudlet/pull/8608)

– load PCRE2 in LuaGlobal [#8598](https://github.com/Mudlet/Mudlet/pull/8598)

– fix inconsistent nullness checks [#8586](https://github.com/Mudlet/Mudlet/pull/8586)

– Test builds now use keychain for password storage [#8589](https://github.com/Mudlet/Mudlet/pull/8589)

– Heap-use-after-free crash when closing profiles with active triggers [#8567](https://github.com/Mudlet/Mudlet/pull/8567)

– heap-use-after-free when cleanup runs during alias/trigger/key processing [#8571](https://github.com/Mudlet/Mudlet/pull/8571)

– potential issue in area image export [#8585](https://github.com/Mudlet/Mudlet/pull/8585)

– Restore Qt5 Core5Compat for third-party dependencies [#8578](https://github.com/Mudlet/Mudlet/pull/8578)

– Reduce redundant UTF-8 conversions in trigger processing [#8560](https://github.com/Mudlet/Mudlet/pull/8560)

– Improve performance of hyperlink style parsing [#8558](https://github.com/Mudlet/Mudlet/pull/8558)

– Remove duplicate context menu on AdjustableContainer title bar [#8569](https://github.com/Mudlet/Mudlet/pull/8569)

– Copy from console now works when command line has focus [#8551](https://github.com/Mudlet/Mudlet/pull/8551)

– Remove deprecated Qt5 Core5Compat dependency [#8550](https://github.com/Mudlet/Mudlet/pull/8550)

– crash when rapidly reloading plugins due to thread-safety issue in XML export [#8542](https://github.com/Mudlet/Mudlet/pull/8542)

– switch to FFMPEG audio backend on Windows to allow playback of .ogg and .opus audio files [#8329](https://github.com/Mudlet/Mudlet/pull/8329)

– Debug console crash when host is deleted [#8549](https://github.com/Mudlet/Mudlet/pull/8549)

– Special exit text unreadable when editing [#8543](https://github.com/Mudlet/Mudlet/pull/8543)

– Comprehensive package installation crash prevention [#8541](https://github.com/Mudlet/Mudlet/pull/8541)

– Auto-activate new triggers/aliases/scripts/keys on save [#8529](https://github.com/Mudlet/Mudlet/pull/8529)

– Unicode characters [display](https://wiki.mudlet.org/w/Manual:Lua_Functions#display) correctly in unhandled MXP tags [#8532](https://github.com/Mudlet/Mudlet/pull/8532)

##### Infrastructure:
– apply clang-format style to tests too [#9201](https://github.com/Mudlet/Mudlet/pull/9201)

– Bump 3rdparty/sentry-native from `93c4e32` to `848fd4c` [#9202](https://github.com/Mudlet/Mudlet/pull/9202)

– Bump carlosperate/download-file-action from 2.0.2 to 2.0.3 [#9203](https://github.com/Mudlet/Mudlet/pull/9203)

– fix flaky TelnetTextDisplayedTest in CI [#9193](https://github.com/Mudlet/Mudlet/pull/9193)

– fix partial PTB releases not triggering when push build [exists](https://wiki.mudlet.org/w/Manual:Lua_Functions#exists) at same SHA [#9192](https://github.com/Mudlet/Mudlet/pull/9192)

– fix Windows SHA256 missing from PTB releases [#9191](https://github.com/Mudlet/Mudlet/pull/9191)

– allow partial PTB releases when not all platforms succeed [#9163](https://github.com/Mudlet/Mudlet/pull/9163)

– migrate undo/redo tests to QTest framework [#8867](https://github.com/Mudlet/Mudlet/pull/8867)

– stop deleting and recreating GitHub releases on every build [#9176](https://github.com/Mudlet/Mudlet/pull/9176)

– skip duplicate PTB builds when no new commits exist [#9175](https://github.com/Mudlet/Mudlet/pull/9175)

– sync edbee-lib submodule to fork master [#9183](https://github.com/Mudlet/Mudlet/pull/9183)

– Bump actions/download-artifact from 4 to 8 [#9179](https://github.com/Mudlet/Mudlet/pull/9179)

– Bump actions/github-script from 7 to 9 [#9181](https://github.com/Mudlet/Mudlet/pull/9181)

– Bump 3rdparty/sentry-native from `6ebd29b` to `93c4e32` [#9178](https://github.com/Mudlet/Mudlet/pull/9178)

– fix Windows and macOS nightly build failures [#9173](https://github.com/Mudlet/Mudlet/pull/9173)

– add missing statuses:write permission to DangerJS workflow [#9172](https://github.com/Mudlet/Mudlet/pull/9172)

– fix DangerJS workflow vulnerability to malicious PRs [#9143](https://github.com/Mudlet/Mudlet/pull/9143)

– add non-compileable files to CMake project file [#8780](https://github.com/Mudlet/Mudlet/pull/8780)

– update sentry-native to 0.13.5 [#9158](https://github.com/Mudlet/Mudlet/pull/9158)

– update edbee-lib submodule & use system oniguruma if present [#9156](https://github.com/Mudlet/Mudlet/pull/9156)

– fix PTB registration by reverting installer filename convention [#9155](https://github.com/Mudlet/Mudlet/pull/9155)

– show changelogs both from last release and last PTB [#9151](https://github.com/Mudlet/Mudlet/pull/9151)

– fix CI bugs in PTB registration, macOS updater linking, and portable ZIP upload [#9154](https://github.com/Mudlet/Mudlet/pull/9154)

– fix Windows release asset upload and appcast SCP paths [#9152](https://github.com/Mudlet/Mudlet/pull/9152)

– fix Windows PTB registration failing after installer rename [#9150](https://github.com/Mudlet/Mudlet/pull/9150)

– release workflow failing due to PR build triggers and checkout wiping assets [#9145](https://github.com/Mudlet/Mudlet/pull/9145)

– add CI workflow to create GitHub Releases for updater [#9127](https://github.com/Mudlet/Mudlet/pull/9127)

– Update text for translation in Crowdin [#9136](https://github.com/Mudlet/Mudlet/pull/9136)

– Bump lukka/get-cmake from 4.3.0 to 4.3.1 [#9139](https://github.com/Mudlet/Mudlet/pull/9139)

– Add comprehensive variable editor tests [#9103](https://github.com/Mudlet/Mudlet/pull/9103)

– add comprehensive [resetProfile](https://wiki.mudlet.org/w/Manual:Lua_Functions#resetProfile)() test suite [#9082](https://github.com/Mudlet/Mudlet/pull/9082)

– add cross-reference comments to duplicate build workflows [#9069](https://github.com/Mudlet/Mudlet/pull/9069)

– remove disabled clang-tidy workflows [#9113](https://github.com/Mudlet/Mudlet/pull/9113)

– Bump 3rdparty/qtkeychain from `6e90eda` to `53a8e6a` [#9126](https://github.com/Mudlet/Mudlet/pull/9126)

– Update text for translation in Crowdin [#9124](https://github.com/Mudlet/Mudlet/pull/9124)

– speed up OSC tests with data-driven approach [#9120](https://github.com/Mudlet/Mudlet/pull/9120)

– Add Copilot skill for opening pull requests [#9105](https://github.com/Mudlet/Mudlet/pull/9105)

– Bump 3rdparty/qtkeychain from `844beb4` to `6e90eda` [#8973](https://github.com/Mudlet/Mudlet/pull/8973)

– Update text for translation in Crowdin [#9077](https://github.com/Mudlet/Mudlet/pull/9077)

– disable CodeQL poorly-documented-function query [#9079](https://github.com/Mudlet/Mudlet/pull/9079)

– Bump webfactory/ssh-agent from 0.9.1 to 0.10.0 [#9047](https://github.com/Mudlet/Mudlet/pull/9047)

– restore xcb-util-cursor resiliency changes [#9074](https://github.com/Mudlet/Mudlet/pull/9074)

– Bump lukka/get-cmake from 4.2.3 to 4.3.0 [#9087](https://github.com/Mudlet/Mudlet/pull/9087)

– Fix macOS CI: use AppleClang instead of Homebrew LLVM [#9078](https://github.com/Mudlet/Mudlet/pull/9078)

– remove leftover qgridlayout ordering script [#9075](https://github.com/Mudlet/Mudlet/pull/9075)

– enable set -e in Linux CI deploy script to catch failures [#9059](https://github.com/Mudlet/Mudlet/pull/9059)

– install `libspeechd-dev` for Linux CI to fix AppImage creation [#9058](https://github.com/Mudlet/Mudlet/pull/9058)

– Migrate to clang64 msys2 environment for Windows builds [#9064](https://github.com/Mudlet/Mudlet/pull/9064)

– remove ccache mutex locks [#9043](https://github.com/Mudlet/Mudlet/pull/9043)

– add retries to brew install to handle hangs [#9045](https://github.com/Mudlet/Mudlet/pull/9045)

– remove CodeQL CI's concurrency [#9044](https://github.com/Mudlet/Mudlet/pull/9044)

– Fix windows builds in `development` [#9042](https://github.com/Mudlet/Mudlet/pull/9042)

– Bump development version to 4.20.1 [#9050](https://github.com/Mudlet/Mudlet/pull/9050)

– Update text for translation in Crowdin [#9040](https://github.com/Mudlet/Mudlet/pull/9040)

– remove qgridlayout ordering workflow [#9038](https://github.com/Mudlet/Mudlet/pull/9038)

– Update autocompletion data in Mudlet [#9041](https://github.com/Mudlet/Mudlet/pull/9041)

– update target path for file upload in geyser-docs workflow [#9030](https://github.com/Mudlet/Mudlet/pull/9030)

– Change SCP target host for file uploads [#9003](https://github.com/Mudlet/Mudlet/pull/9003)

– Dedicated workflow for prs [#9033](https://github.com/Mudlet/Mudlet/pull/9033)

– Remove unnecessary null checks after new [#9014](https://github.com/Mudlet/Mudlet/pull/9014)

– speed up compilation of Mudlet by 25% [#9021](https://github.com/Mudlet/Mudlet/pull/9021)

– Enable TTS in macOS builds [#8921](https://github.com/Mudlet/Mudlet/pull/8921)

– make xcb-util-cursor download more resilient [#9012](https://github.com/Mudlet/Mudlet/pull/9012)

– re-introduce path stripping in geyser-docs.yaml [#9023](https://github.com/Mudlet/Mudlet/pull/9023)

– ccache key should be per pr/branch [#9010](https://github.com/Mudlet/Mudlet/pull/9010)

– use release-signing for releases, test-signing for PTBs [#9007](https://github.com/Mudlet/Mudlet/pull/9007)

– always run build ci in core branches [#9008](https://github.com/Mudlet/Mudlet/pull/9008)

– Update text for translation in Crowdin [#9009](https://github.com/Mudlet/Mudlet/pull/9009)

– increase SignPath signing timeout to 1 hour [#9002](https://github.com/Mudlet/Mudlet/pull/9002)

– Refactor geyser doc upload workflow [#9001](https://github.com/Mudlet/Mudlet/pull/9001)

– run undo/redo tests in test mode [#8992](https://github.com/Mudlet/Mudlet/pull/8992)

– fix unintended ccache collisions [#8991](https://github.com/Mudlet/Mudlet/pull/8991)

– Bump actions/upload-artifact from 6 to 7 [#8989](https://github.com/Mudlet/Mudlet/pull/8989)

– CI concurrency logic [#8990](https://github.com/Mudlet/Mudlet/pull/8990)

– Bump ZedThree/clang-tidy-review from 0.23.0 to 0.23.1 [#8988](https://github.com/Mudlet/Mudlet/pull/8988)

– Update text for translation in Crowdin [#8940](https://github.com/Mudlet/Mudlet/pull/8940)

– [ImgBot] Optimize images [#8925](https://github.com/Mudlet/Mudlet/pull/8925)

– Bump development version to 4.20.0 [#8919](https://github.com/Mudlet/Mudlet/pull/8919)

– Bump 3rdparty/sentry-native from `c80e793` to `383ccad` [#8913](https://github.com/Mudlet/Mudlet/pull/8913)

– Add SignPath Foundation attribution to README [#8895](https://github.com/Mudlet/Mudlet/pull/8895)

– Update autocompletion data in Mudlet [#8903](https://github.com/Mudlet/Mudlet/pull/8903)

– Update text for translation in Crowdin [#8901](https://github.com/Mudlet/Mudlet/pull/8901)

– use pcre2grep in CI validation [#8878](https://github.com/Mudlet/Mudlet/pull/8878)

– set next-next release to be 4.21.0 [#8883](https://github.com/Mudlet/Mudlet/pull/8883)

– disable signing MudletCrashReporter.exe temporarily [#8880](https://github.com/Mudlet/Mudlet/pull/8880)

– add qtkeychain-qt6-dev to Linux workflows [#8876](https://github.com/Mudlet/Mudlet/pull/8876)

– switch qtkeychain submodule to upstream [#8870](https://github.com/Mudlet/Mudlet/pull/8870)

– detect Lua test failures on macOS CI [#8852](https://github.com/Mudlet/Mudlet/pull/8852)

– Remove x64 from Windows PTB desktop shortcut name [#8845](https://github.com/Mudlet/Mudlet/pull/8845)

– Bump lukka/get-cmake from 4.2.2 to 4.2.3 [#8844](https://github.com/Mudlet/Mudlet/pull/8844)

– Bump 3rdparty/sentry-native from `08b1374` to `c80e793` [#8843](https://github.com/Mudlet/Mudlet/pull/8843)

– Update text for translation in Crowdin [#8839](https://github.com/Mudlet/Mudlet/pull/8839)

– Fix SignPath code signing policy configuration [#8834](https://github.com/Mudlet/Mudlet/pull/8834)

– Revert uploading debug symbols to Sentry for PR builds [#8832](https://github.com/Mudlet/Mudlet/pull/8832)

– Fix Windows code signing by adding SignPath v2 policy file [#8831](https://github.com/Mudlet/Mudlet/pull/8831)

– Upload debug symbols to Sentry for PR builds [#8830](https://github.com/Mudlet/Mudlet/pull/8830)

– Remove unused QKeychain forward declarations from CredentialManager.h [#8829](https://github.com/Mudlet/Mudlet/pull/8829)

– Remove dead CMake code in Sentry configuration [#8828](https://github.com/Mudlet/Mudlet/pull/8828)

– Bump lukka/get-cmake from 3.30.3 to 4.2.2 [#8822](https://github.com/Mudlet/Mudlet/pull/8822)

– Bump actions/upload-artifact from 4 to 6 [#8823](https://github.com/Mudlet/Mudlet/pull/8823)

– Bump actions/cache from 4 to 5 [#8821](https://github.com/Mudlet/Mudlet/pull/8821)

– Bump 3rdparty/sentry-native from `bbccfad` to `08b1374` [#8820](https://github.com/Mudlet/Mudlet/pull/8820)

– Cache sentry-native builds in CI [#8807](https://github.com/Mudlet/Mudlet/pull/8807)

– Add .git-blame-ignore-revs for formatting commits [#8805](https://github.com/Mudlet/Mudlet/pull/8805)

– Update text for translation in Crowdin [#8816](https://github.com/Mudlet/Mudlet/pull/8816)

– update plural american english translations [#8478](https://github.com/Mudlet/Mudlet/pull/8478)

– add clang-format instructions to AI guidelines [#8806](https://github.com/Mudlet/Mudlet/pull/8806)

– Apply clang-format to all CPP files [#8804](https://github.com/Mudlet/Mudlet/pull/8804)

– Add SignPath code signing for Windows builds [#8786](https://github.com/Mudlet/Mudlet/pull/8786)

– update clang-format style to match Mudlets as much as possible [#8380](https://github.com/Mudlet/Mudlet/pull/8380)

– Enable Qt breadcrumbs in Sentry crash reports [#8791](https://github.com/Mudlet/Mudlet/pull/8791)

– Fix Windows nightly build failure when no new commits [#8790](https://github.com/Mudlet/Mudlet/pull/8790)

– Bump 3rdparty/sentry-native from `11832e4` to `bbccfad` [#8792](https://github.com/Mudlet/Mudlet/pull/8792)

– upload Qt module debug symbols to Sentry using cv2pdb [#8782](https://github.com/Mudlet/Mudlet/pull/8782)

– Update autocompletion data in Mudlet [#8789](https://github.com/Mudlet/Mudlet/pull/8789)

– Update text for translation in Crowdin [#8788](https://github.com/Mudlet/Mudlet/pull/8788)

– Upload Qt debug symbols to Sentry for better crash reports [#8777](https://github.com/Mudlet/Mudlet/pull/8777)

– Remove Azure trusted signing from Windows builds [#8778](https://github.com/Mudlet/Mudlet/pull/8778)

– Bump 3rdparty/edbee-lib from `cf7f0ba` to `7e7c0f6` [#8770](https://github.com/Mudlet/Mudlet/pull/8770)

– Bump 3rdparty/sentry-native from `4f983bb` to `11832e4` [#8771](https://github.com/Mudlet/Mudlet/pull/8771)

– remove `travis.` [prefix](https://wiki.mudlet.org/w/Manual:Lua_Functions#prefix) from CI files [#8375](https://github.com/Mudlet/Mudlet/pull/8375)

– Update autocompletion data in Mudlet [#8769](https://github.com/Mudlet/Mudlet/pull/8769)

– Update text for translation in Crowdin [#8767](https://github.com/Mudlet/Mudlet/pull/8767)

– Update bundled mpkg.mpackage to latest upstream [#8768](https://github.com/Mudlet/Mudlet/pull/8768)

– reduce Mudlet build times by 30s [#8403](https://github.com/Mudlet/Mudlet/pull/8403)

– Add Claude Code slash command for creating PRs [#8761](https://github.com/Mudlet/Mudlet/pull/8761)

– Guard undo/redo debug messages behind compile flag [#8760](https://github.com/Mudlet/Mudlet/pull/8760)

– Simplify profile loading code [#8756](https://github.com/Mudlet/Mudlet/pull/8756)

– Improve code readability with cleaner empty checks [#8755](https://github.com/Mudlet/Mudlet/pull/8755)

– Reduce noise in automated code review comments [#8754](https://github.com/Mudlet/Mudlet/pull/8754)

– simplify CI 3rd party update workflow [#8737](https://github.com/Mudlet/Mudlet/pull/8737)

– improve safety of internal text handling [#8724](https://github.com/Mudlet/Mudlet/pull/8724)

– uppercase settings key in config [#8246](https://github.com/Mudlet/Mudlet/pull/8246)

– Simplify build system by removing unused QMake files [#8731](https://github.com/Mudlet/Mudlet/pull/8731)

– modernize loop syntax across codebase [#8733](https://github.com/Mudlet/Mudlet/pull/8733)

– simplify cmake build configuration [#8732](https://github.com/Mudlet/Mudlet/pull/8732)

– simplify network connection handling [#8735](https://github.com/Mudlet/Mudlet/pull/8735)

– Add a security policy for reporting vulnerabilities [#8723](https://github.com/Mudlet/Mudlet/pull/8723)

– Update text for translation in Crowdin [#8728](https://github.com/Mudlet/Mudlet/pull/8728)

– Update autocompletion data in Mudlet [#8729](https://github.com/Mudlet/Mudlet/pull/8729)

– revise displayed Copyright year to 2026 [#8727](https://github.com/Mudlet/Mudlet/pull/8727)

– eliminate remains of qt-ordered-map from Mudlet [#8720](https://github.com/Mudlet/Mudlet/pull/8720)

– Clarify CI build option label [#8714](https://github.com/Mudlet/Mudlet/pull/8714)

– allow CMake `initGitSubmodule.cmake` to act recursively [#8717](https://github.com/Mudlet/Mudlet/pull/8717)

– run memory leak checks as part of CI pipeline [#8316](https://github.com/Mudlet/Mudlet/pull/8316)

– remove debug logging from undo/redo feature [#8713](https://github.com/Mudlet/Mudlet/pull/8713)

– Update text for translation in Crowdin [#8698](https://github.com/Mudlet/Mudlet/pull/8698)

– check for sentry-native submodule when Sentry enabled [#8669](https://github.com/Mudlet/Mudlet/pull/8669)

– address feedback in event handling from no-op operations [#8667](https://github.com/Mudlet/Mudlet/pull/8667)

– Add telnet processing speed benchmark [#8658](https://github.com/Mudlet/Mudlet/pull/8658)

– Replace foreach with C++17 structured bindings [#8664](https://github.com/Mudlet/Mudlet/pull/8664)

– Add ccache stats to Windows build workflow [#8671](https://github.com/Mudlet/Mudlet/pull/8671)

– Fix Windows PTB rebuild versioning for Squirrel [#8670](https://github.com/Mudlet/Mudlet/pull/8670)

– allow Windows PTB builds to be re-done on the same day [#8668](https://github.com/Mudlet/Mudlet/pull/8668)

– fix crashes in undo/redo tests [#8665](https://github.com/Mudlet/Mudlet/pull/8665)

– add proper Qt event propagation in all events [#8444](https://github.com/Mudlet/Mudlet/pull/8444)

– Bump actions/upload-artifact from 5 to 6 [#8657](https://github.com/Mudlet/Mudlet/pull/8657)

– Ignore lcf submodule in Dependabot, remove vcpkg [#8654](https://github.com/Mudlet/Mudlet/pull/8654)

– Bump ZedThree/clang-tidy-review from 0.22.2 to 0.22.3 [#8656](https://github.com/Mudlet/Mudlet/pull/8656)

– Update Lua code formatter to latest upstream branch [#8653](https://github.com/Mudlet/Mudlet/pull/8653)

– Bump 3rdparty/sentry-native from `67a9f8e` to `4f983bb` [#8637](https://github.com/Mudlet/Mudlet/pull/8637)

– Bump peter-evans/create-pull-request from 7 to 8 [#8638](https://github.com/Mudlet/Mudlet/pull/8638)

– Bump 3rdparty/lcf from `4aa2502` to `55aaf85` [#8639](https://github.com/Mudlet/Mudlet/pull/8639)

– Bump actions/cache from 4 to 5 [#8636](https://github.com/Mudlet/Mudlet/pull/8636)

– Update autocompletion data in Mudlet [#8634](https://github.com/Mudlet/Mudlet/pull/8634)

– Update text for translation in Crowdin [#8633](https://github.com/Mudlet/Mudlet/pull/8633)

– SENTRY_AUTH_TOKEN diagnostic checks environment variable [#8618](https://github.com/Mudlet/Mudlet/pull/8618)

– Bump 3rdparty/sentry-native from `c5416e6` to `67a9f8e` [#8617](https://github.com/Mudlet/Mudlet/pull/8617)

– Update text for translation in Crowdin [#8613](https://github.com/Mudlet/Mudlet/pull/8613)

– add workaround clang-tidy-review directory bug [#8597](https://github.com/Mudlet/Mudlet/pull/8597)

– update communi to qt6 [#8584](https://github.com/Mudlet/Mudlet/pull/8584)

– more fixes to clang-tidy workflow [#8596](https://github.com/Mudlet/Mudlet/pull/8596)

– fix clang-tidy workflow [#8595](https://github.com/Mudlet/Mudlet/pull/8595)

– update Qtkeychain submodule from master to main branch [#8579](https://github.com/Mudlet/Mudlet/pull/8579)

– Bump ZedThree/clang-tidy-review from 0.22.1 to 0.22.2 [#8594](https://github.com/Mudlet/Mudlet/pull/8594)

– ignore macOS keychain for telnet functional test [#8592](https://github.com/Mudlet/Mudlet/pull/8592)

– complete devcontainer setup [#8587](https://github.com/Mudlet/Mudlet/pull/8587)

– Update text for translation in Crowdin [#8590](https://github.com/Mudlet/Mudlet/pull/8590)

– remove item check in saveSelectedItem [#8583](https://github.com/Mudlet/Mudlet/pull/8583)

– Remove else-after-return anti-pattern [#8575](https://github.com/Mudlet/Mudlet/pull/8575)

– update devcontainer to work [#8321](https://github.com/Mudlet/Mudlet/pull/8321)

– Bump ZedThree/clang-tidy-review from 0.22.0 to 0.22.1 [#8564](https://github.com/Mudlet/Mudlet/pull/8564)

– Bump actions/checkout from 5 to 6 [#8565](https://github.com/Mudlet/Mudlet/pull/8565)

– Bump 3rdparty/edbee-lib from `165edc0` to `cf7f0ba` [#8563](https://github.com/Mudlet/Mudlet/pull/8563)

– Update text for translation in Crowdin [#8561](https://github.com/Mudlet/Mudlet/pull/8561)

– Update AI instructions with comments and git guidelines [#8531](https://github.com/Mudlet/Mudlet/pull/8531)

– Fix CMake CMP0167 warning for Boost [#8538](https://github.com/Mudlet/Mudlet/pull/8538)

– Add NINJA_STATUS to Windows build [#8539](https://github.com/Mudlet/Mudlet/pull/8539)

– update Noto Color Emoji font to Unicode 17.0 v2.051 [#8535](https://github.com/Mudlet/Mudlet/pull/8535)

– Add regex busted tests for PCRE library [#8537](https://github.com/Mudlet/Mudlet/pull/8537)

##### Other:
– Revert "Add per-room border color and thickness"

– Revert "Fix crash in bi-daily update check"

leggi tutto

Public Test Build

Changes since last PTB (Mudlet-4.20.1-ptb-2026-04-20-14305cf6)
Fixed:
– Clazy warnings part 4 – range-loop-reference #9207
– correct use of forward declared type items in headers #9208
Infrastructure:
– apply clang-format style to tests too #9201

Full changelog since last release (Mudlet-4.20.1)

##### Added:
– Pkuxkx as a predefined default MUD [#9161](https://github.com/Mudlet/Mudlet/pull/9161)

– Mudlet.ini option to control high DPI scale factor rounding policy [#9164](https://github.com/Mudlet/Mudlet/pull/9164)

– right-click option to hide default profiles in connection dialog [#9123](https://github.com/Mudlet/Mudlet/pull/9123)

– selectAll function with optional window support [#9166](https://github.com/Mudlet/Mudlet/pull/9166)

– telnets:// link support for secure TLS connections [#9153](https://github.com/Mudlet/Mudlet/pull/9153)

– getKeyCode function to return key code and any modifiers of a key-binding [#8435](https://github.com/Mudlet/Mudlet/pull/8435)

– `telnet://` URI scheme support for one-click MUD connections [#8601](https://github.com/Mudlet/Mudlet/pull/8601)

– separate border size control and player room marker improvements [#8975](https://github.com/Mudlet/Mudlet/pull/8975)

– OSC 8 context menu title support [#8910](https://github.com/Mudlet/Mudlet/pull/8910)

– DragonfireMUD and VoidMUD [#8783](https://github.com/Mudlet/Mudlet/pull/8783)

– 3rd party definition files for Lua [#8966](https://github.com/Mudlet/Mudlet/pull/8966)

– Starmourn and update IRE game profiles [#9076](https://github.com/Mudlet/Mudlet/pull/9076)

– embeddable TextEdit widget (Geyser.TextEdit) [#8986](https://github.com/Mudlet/Mudlet/pull/8986)

– MudMaster Chat Protocol (MMCP) [#7765](https://github.com/Mudlet/Mudlet/pull/7765)

– blinking/flashing text support [#8983](https://github.com/Mudlet/Mudlet/pull/8983)

– timeout for (Linux) Build xcb-util-cursor [#8978](https://github.com/Mudlet/Mudlet/pull/8978)

– timeout for macos (Install Dependencies) [#8977](https://github.com/Mudlet/Mudlet/pull/8977)

– data loss guard on constraint migration [#8850](https://github.com/Mudlet/Mudlet/pull/8850)

– GNOME Software-style navigation in Package Manager [#8846](https://github.com/Mudlet/Mudlet/pull/8846)

– room description matching to generic mapper [#8649](https://github.com/Mudlet/Mudlet/pull/8649)

– hidden rooms [#8443](https://github.com/Mudlet/Mudlet/pull/8443)

– Multi-file selection in import dialogs [#8796](https://github.com/Mudlet/Mudlet/pull/8796)

– Map label support in 3D mapper [#8793](https://github.com/Mudlet/Mudlet/pull/8793)

– multiple note tabs to the notepad [#8757](https://github.com/Mudlet/Mudlet/pull/8757)

– multiple map views support [#8743](https://github.com/Mudlet/Mudlet/pull/8743)

– muteMediaScript and muteMediaGame options to [getConfig](https://wiki.mudlet.org/w/Manual:Lua_Functions#getConfig)/[setConfig](https://wiki.mudlet.org/w/Manual:Lua_Functions#setConfig) [#8764](https://github.com/Mudlet/Mudlet/pull/8764)

– “Whole word” search option in the script editor [#8722](https://github.com/Mudlet/Mudlet/pull/8722)

– per-room border color and thickness [#8758](https://github.com/Mudlet/Mudlet/pull/8758)

– more safeguards against profile settings being lost [#8742](https://github.com/Mudlet/Mudlet/pull/8742)

– permExactMatchTrigger Lua API function [#8745](https://github.com/Mudlet/Mudlet/pull/8745)

– per-room border color and thickness

– NAWS protocol toggle setting [#8700](https://github.com/Mudlet/Mudlet/pull/8700)

– getBorderColor() Lua API function [#8688](https://github.com/Mudlet/Mudlet/pull/8688)

– MXP FRAME and DEST tag support for multi-window layouts [#8577](https://github.com/Mudlet/Mudlet/pull/8577)

– Optional static analysis during build [#8708](https://github.com/Mudlet/Mudlet/pull/8708)

– OSC 8 hyperlink visibility, selection, and compact syntax enhancements [#8677](https://github.com/Mudlet/Mudlet/pull/8677)

– Sentry license to about dialog [#8660](https://github.com/Mudlet/Mudlet/pull/8660)

– undo/redo for Mudlet editor [#8469](https://github.com/Mudlet/Mudlet/pull/8469)

– [getRoomsByPosition1](https://wiki.mudlet.org/w/Manual:Lua_Functions#getRoomsByPosition1)() function [#8619](https://github.com/Mudlet/Mudlet/pull/8619)

– functional GUI tests using QTest [#8572](https://github.com/Mudlet/Mudlet/pull/8572)

– Enable spellcheck in the composer window [#8447](https://github.com/Mudlet/Mudlet/pull/8447)

– setExitWeightFilter function to alter room/exits weights/locks [#8487](https://github.com/Mudlet/Mudlet/pull/8487)

##### Improved:
– simplify long tooltips [#8416](https://github.com/Mudlet/Mudlet/pull/8416)

– Make spacing between widgets in the connection dialog more consistent [#9198](https://github.com/Mudlet/Mudlet/pull/9198)

– Auto-switch code editor theme with app appearance [#9167](https://github.com/Mudlet/Mudlet/pull/9167)

– handling of rooms having their hidden property changed [#8947](https://github.com/Mudlet/Mudlet/pull/8947)

– guard mudlet::self() in cTelnet destructor [#9020](https://github.com/Mudlet/Mudlet/pull/9020)

– use raw IP address if provided with one [#9066](https://github.com/Mudlet/Mudlet/pull/9066)

– Give players full control over Discord Rich Presence [#9116](https://github.com/Mudlet/Mudlet/pull/9116)

– show version scope in PTB release changelogs [#9148](https://github.com/Mudlet/Mudlet/pull/9148)

– hidden rooms – allow storage in map versions < 22 and other things [#8930](https://github.com/Mudlet/Mudlet/pull/8930)

– change label highlight from overlay to outline [#9132](https://github.com/Mudlet/Mudlet/pull/9132)

– internal code in regards to memory use [#9015](https://github.com/Mudlet/Mudlet/pull/9015)

– saving a key with no binding set shows an error [#9114](https://github.com/Mudlet/Mudlet/pull/9114)

– Add smooth pulsing effect for blinking text [#9104](https://github.com/Mudlet/Mudlet/pull/9104)

– remove AI/llamafile integration [#9108](https://github.com/Mudlet/Mudlet/pull/9108)

– error message when saving MMP-downloaded map [#9107](https://github.com/Mudlet/Mudlet/pull/9107)

– Automatic audio device switching support [#9026](https://github.com/Mudlet/Mudlet/pull/9026)

– only mark map as dirty if room hidden status is changed [#8946](https://github.com/Mudlet/Mudlet/pull/8946)

– Reduce memory usage for text decorations [#9052](https://github.com/Mudlet/Mudlet/pull/9052)

– Remove debug [print](https://wiki.mudlet.org/w/Manual:Lua_Functions#print) from deleteAll function [#9061](https://github.com/Mudlet/Mudlet/pull/9061)

– add defensive coding to internal code related to the TMediaPlayer [#9017](https://github.com/Mudlet/Mudlet/pull/9017)

– Script Editor search code quality and maintainability [#9028](https://github.com/Mudlet/Mudlet/pull/9028)

– Code quality in TBuffer.cpp [#9029](https://github.com/Mudlet/Mudlet/pull/9029)

– show feedback when manually checking for updates fails [#9004](https://github.com/Mudlet/Mudlet/pull/9004)

– add better error reporting to GMCP merge handler [#9018](https://github.com/Mudlet/Mudlet/pull/9018)

– adjust [getTime](https://wiki.mudlet.org/w/Manual:Lua_Functions#getTime)() table size hint to match 7 entries [#9019](https://github.com/Mudlet/Mudlet/pull/9019)

– Don't [echo](https://wiki.mudlet.org/w/Manual:Lua_Functions#echo) OSC 8 [send](https://wiki.mudlet.org/w/Manual:Lua_Functions#send): hyperlink commands by default [#8957](https://github.com/Mudlet/Mudlet/pull/8957)

– Detection of character-at-a-time mode in server connections [#8825](https://github.com/Mudlet/Mudlet/pull/8825)

– Add more context to media playback events [#8953](https://github.com/Mudlet/Mudlet/pull/8953)

– luarocks busted install instructions version flag [#8950](https://github.com/Mudlet/Mudlet/pull/8950)

– Add macOS clang-format path to AI instructions [#8926](https://github.com/Mudlet/Mudlet/pull/8926)

– Make MNES and NEW-ENVIRON mutually exclusive in UI [#8893](https://github.com/Mudlet/Mudlet/pull/8893)

– update Astaria banner [#8900](https://github.com/Mudlet/Mudlet/pull/8900)

– New Crowdin updates [#8253](https://github.com/Mudlet/Mudlet/pull/8253)

– macOS build instructions use absolute path [#8860](https://github.com/Mudlet/Mudlet/pull/8860)

– nixed rex_prce2 check in lua [#8848](https://github.com/Mudlet/Mudlet/pull/8848)

– Faster map rendering when zoomed in by skipping off-screen rooms [#8797](https://github.com/Mudlet/Mudlet/pull/8797)

– Allow nil to clear label callbacks [#8799](https://github.com/Mudlet/Mudlet/pull/8799)

– keep small map areas fully visible in viewport [#8766](https://github.com/Mudlet/Mudlet/pull/8766)

– Enable PCRE2 JIT compilation for triggers and aliases [#8762](https://github.com/Mudlet/Mudlet/pull/8762)

– open IRC with Lua functions not via UI anymore [#8123](https://github.com/Mudlet/Mudlet/pull/8123)

– Auto-link Lua function names in changelog [#8744](https://github.com/Mudlet/Mudlet/pull/8744)

– add error handling with clear error messages [#8736](https://github.com/Mudlet/Mudlet/pull/8736)

– error message visibility in module creation dialog [#8738](https://github.com/Mudlet/Mudlet/pull/8738)

– Memory management for console hyperlinks [#8725](https://github.com/Mudlet/Mudlet/pull/8725)

– AI assistant guidance for modern C++ loops [#8741](https://github.com/Mudlet/Mudlet/pull/8741)

– error messages for easier troubleshooting [#8721](https://github.com/Mudlet/Mudlet/pull/8721)

– highlight search terms in editor when using global search [#8687](https://github.com/Mudlet/Mudlet/pull/8687)

– Show a warning icon when map autosave fails [#8689](https://github.com/Mudlet/Mudlet/pull/8689)

– Simplify internal tree widget code [#8706](https://github.com/Mudlet/Mudlet/pull/8706)

– remove outdated comment for special exits MMP import [#8707](https://github.com/Mudlet/Mudlet/pull/8707)

– Enable OSC 8 hyperlink visibility by default [#8699](https://github.com/Mudlet/Mudlet/pull/8699)

– Fix compiler warnings about potential data loss in type conversions [#8715](https://github.com/Mudlet/Mudlet/pull/8715)

– Remove outdated FIXME comment from msleep call [#8695](https://github.com/Mudlet/Mudlet/pull/8695)

– Modernize color trigger dialog button handling [#8693](https://github.com/Mudlet/Mudlet/pull/8693)

– Reduce Windows install size by ~135MB [#8685](https://github.com/Mudlet/Mudlet/pull/8685)

– show error message when variable can't be moved in the trigger editor [#8683](https://github.com/Mudlet/Mudlet/pull/8683)

– Add error handling to unexpected scenarios [#8682](https://github.com/Mudlet/Mudlet/pull/8682)

– Auto-recover from stuck password masking during login [#8628](https://github.com/Mudlet/Mudlet/pull/8628)

– OSC 8 hyperlink styling with direct JSON parsing [#8641](https://github.com/Mudlet/Mudlet/pull/8641)

– use platform-native key names in UI text [#8591](https://github.com/Mudlet/Mudlet/pull/8591)

– add a crash reporter for Linux / macOS / Windows [#8540](https://github.com/Mudlet/Mudlet/pull/8540)

– Migrate C++ regex engine from PCRE to PCRE2 [#8533](https://github.com/Mudlet/Mudlet/pull/8533)

– Limit saved Lua table variables to 10,000 items [#8581](https://github.com/Mudlet/Mudlet/pull/8581)

– Remove directional navigation buttons from mapper [#8574](https://github.com/Mudlet/Mudlet/pull/8574)

– – two seconds is longer than you think [#8570](https://github.com/Mudlet/Mudlet/pull/8570)

– Cleanup system efficiency for triggers, aliases, and keys [#8559](https://github.com/Mudlet/Mudlet/pull/8559)

– small Style Cleanup in main.cpp [#8562](https://github.com/Mudlet/Mudlet/pull/8562)

– Remove accessible description from trigger pattern editor [#8546](https://github.com/Mudlet/Mudlet/pull/8546)

– remove navigation shortcuts widget from trigger editor [#8530](https://github.com/Mudlet/Mudlet/pull/8530)

##### Fixed:
– Clazy warnings part 4 – range-loop-reference [#9207](https://github.com/Mudlet/Mudlet/pull/9207)

– correct use of forward declared type items in headers [#9208](https://github.com/Mudlet/Mudlet/pull/9208)

– Clazy warnings part 3 – qstring-arg [#9197](https://github.com/Mudlet/Mudlet/pull/9197)

– unify and translate some Map Errors [#9189](https://github.com/Mudlet/Mudlet/pull/9189)

– avoid bogus "new Toolbar" and "new Menu" items creation on profile load [#9194](https://github.com/Mudlet/Mudlet/pull/9194)

– Clazy warnings part 2 – detaching-temporary [#9196](https://github.com/Mudlet/Mudlet/pull/9196)

– Clazy warnings part 1 – range-loop-detach [#9195](https://github.com/Mudlet/Mudlet/pull/9195)

– strip whitespace formatting marks when copying trigger patterns [#9149](https://github.com/Mudlet/Mudlet/pull/9149)

– several [resetProfile](https://wiki.mudlet.org/w/Manual:Lua_Functions#resetProfile)() bugs [#9083](https://github.com/Mudlet/Mudlet/pull/9083)

– prevent update download from being canceled when checking for updates [#9185](https://github.com/Mudlet/Mudlet/pull/9185)

– changelog rendering in PTB update dialog [#9182](https://github.com/Mudlet/Mudlet/pull/9182)

– package edit warning incorrectly showing for module items [#9168](https://github.com/Mudlet/Mudlet/pull/9168)

– Cancel on trigger highlight color picker no longer changes the color [#9013](https://github.com/Mudlet/Mudlet/pull/9013)

– Respect explicit theme choice on Linux [#8897](https://github.com/Mudlet/Mudlet/pull/8897)

– memory leaks in map info contributors, deleting labels [#9141](https://github.com/Mudlet/Mudlet/pull/9141)

– increase TelnetTextDisplayedTest timeouts for CI [#9184](https://github.com/Mudlet/Mudlet/pull/9184)

– review fixes for font handling rework [#9135](https://github.com/Mudlet/Mudlet/pull/9135)

– Better handling of package-supplied fonts during unloading/reloading of packages [#9115](https://github.com/Mudlet/Mudlet/pull/9115)

– [selectCaptureGroup](https://wiki.mudlet.org/w/Manual:Lua_Functions#selectCaptureGroup)() selecting wrong capture [#9133](https://github.com/Mudlet/Mudlet/pull/9133)

– resolve CodeQL stack-address-escape warnings [#9080](https://github.com/Mudlet/Mudlet/pull/9080)

– [insertText](https://wiki.mudlet.org/w/Manual:Lua_Functions#insertText) newline regression [#9022](https://github.com/Mudlet/Mudlet/pull/9022)

– updater to work with github releases [#9125](https://github.com/Mudlet/Mudlet/pull/9125)

– memory leaks in sound player, dialogs [#9142](https://github.com/Mudlet/Mudlet/pull/9142)

– crash when importing non-Mudlet zip with XML containing element [#9146](https://github.com/Mudlet/Mudlet/pull/9146)

– handle over/underflows in (int) TLuaInterpreter::getVerifiedInt(…) [#8924](https://github.com/Mudlet/Mudlet/pull/8924)

– crash when [resetProfile](https://wiki.mudlet.org/w/Manual:Lua_Functions#resetProfile)() is called while downloads are in-progress [#9138](https://github.com/Mudlet/Mudlet/pull/9138)

– scaling map image labels showing text instead of image [#9121](https://github.com/Mudlet/Mudlet/pull/9121)

– label move in 2D map [#9131](https://github.com/Mudlet/Mudlet/pull/9131)

– correct icon names for two recently added predefined MUDs [#9129](https://github.com/Mudlet/Mudlet/pull/9129)

– handle CMake aliasing problems when PCRE2::8BIT is itself an alias [#9128](https://github.com/Mudlet/Mudlet/pull/9128)

– crash when user cancels map download [#9085](https://github.com/Mudlet/Mudlet/pull/9085)

– small memory leaks in package/object management [#9111](https://github.com/Mudlet/Mudlet/pull/9111)

– small memory leaks when closing/reopening profiles [#9110](https://github.com/Mudlet/Mudlet/pull/9110)

– small leak in [resetProfile](https://wiki.mudlet.org/w/Manual:Lua_Functions#resetProfile)() for the Lua state, label, and scrollbox [#9109](https://github.com/Mudlet/Mudlet/pull/9109)

– stale characters during horizontal scrolling with wide fonts [#9099](https://github.com/Mudlet/Mudlet/pull/9099)

– Ctrl+End in caret mode hides the cursor [#9101](https://github.com/Mudlet/Mudlet/pull/9101)

– Toolbar visibility not persisted when toggled via right-click menu [#9053](https://github.com/Mudlet/Mudlet/pull/9053)

– typo in mPlayerRoomColorGradentStops member name [#9112](https://github.com/Mudlet/Mudlet/pull/9112)

– OSC 8 hyperlinks strip config/preset only when features are advertised [#9106](https://github.com/Mudlet/Mudlet/pull/9106)

– Miniconsole text cutoff after switching profiles [#8853](https://github.com/Mudlet/Mudlet/pull/8853)

– Refactor and fix logic handling chat name change from GUI preferences dialog [#9025](https://github.com/Mudlet/Mudlet/pull/9025)

– use correct variable for Discord starttime string parsing [#9100](https://github.com/Mudlet/Mudlet/pull/9100)

– Copy Map to inactive profiles losing player room position [#9091](https://github.com/Mudlet/Mudlet/pull/9091)

– use right format type for errors in playSoundFileAsOrderedArguments [#9086](https://github.com/Mudlet/Mudlet/pull/9086)

– Tabs not respecting dark mode [#8996](https://github.com/Mudlet/Mudlet/pull/8996) [#8999](https://github.com/Mudlet/Mudlet/pull/8999)

– map info "Short" always re-added on profile load [#8963](https://github.com/Mudlet/Mudlet/pull/8963)

– Module Manager shortcut uses wrong key sequence when menu bar hidden [#9097](https://github.com/Mudlet/Mudlet/pull/9097)

– setSaveCommandHistory inverting the boolean when a command line name is given [#9098](https://github.com/Mudlet/Mudlet/pull/9098)

– Fix QFutureWatcher memory leaks across the codebase [#9095](https://github.com/Mudlet/Mudlet/pull/9095)

– Color swatch buttons washed out on macOS and not showing at all in Light mode [#8970](https://github.com/Mudlet/Mudlet/pull/8970)

– Text with < characters disappearing on games with MXP enabled [#8918](https://github.com/Mudlet/Mudlet/pull/8918)

– [saveWindowLayout](https://wiki.mudlet.org/w/Manual:Lua_Functions#saveWindowLayout)/[loadWindowLayout](https://wiki.mudlet.org/w/Manual:Lua_Functions#loadWindowLayout) now retains user window positions [#9056](https://github.com/Mudlet/Mudlet/pull/9056)

– memory leak when deleting areas in a map [#9092](https://github.com/Mudlet/Mudlet/pull/9092)

– clickable links losing their URL query parameters [#9073](https://github.com/Mudlet/Mudlet/pull/9073)

– Garbled error messages when passing wrong argument types to popup functions [#9090](https://github.com/Mudlet/Mudlet/pull/9090)

– map exits corrupted when loading maps with invalid room IDs [#9089](https://github.com/Mudlet/Mudlet/pull/9089)

– Correct call() return value so timer error handling reads correctly [#9088](https://github.com/Mudlet/Mudlet/pull/9088)

– Show SSL error messages when secure connection fails [#9055](https://github.com/Mudlet/Mudlet/pull/9055)

– ansi_color table loading order [#9084](https://github.com/Mudlet/Mudlet/pull/9084)

– crash when keychain operation times out [#9072](https://github.com/Mudlet/Mudlet/pull/9072)

– Updater crash on Windows when download URL is unavailable [#9067](https://github.com/Mudlet/Mudlet/pull/9067)

– Changing one profile's password no longer affects others [#9049](https://github.com/Mudlet/Mudlet/pull/9049)

– custom map events not firing when placed in submenus [#8998](https://github.com/Mudlet/Mudlet/pull/8998)

– [timeframe](https://wiki.mudlet.org/w/Manual:Lua_Functions#timeframe) failing if third arg is nil [#8964](https://github.com/Mudlet/Mudlet/pull/8964)

– PasswordMigrationTest to build [#9032](https://github.com/Mudlet/Mudlet/pull/9032)

– Separate user and MXP borders so [reconnect](https://wiki.mudlet.org/w/Manual:Lua_Functions#reconnect) doesn't reset user borders [#9016](https://github.com/Mudlet/Mudlet/pull/9016)

– Restore password loading from portable file in connection dialog [#8993](https://github.com/Mudlet/Mudlet/pull/8993)

– Clear package list before repopulating in Package Exporter [#8892](https://github.com/Mudlet/Mudlet/pull/8892)

– Input bar height changes unexpectedly when switching profiles [#8958](https://github.com/Mudlet/Mudlet/pull/8958)

– Room symbols not rescaling when map is resized [#8974](https://github.com/Mudlet/Mudlet/pull/8974)

– Prevent crash when closing detached windows [#8934](https://github.com/Mudlet/Mudlet/pull/8934)

– Restore sound playback on macOS [#8949](https://github.com/Mudlet/Mudlet/pull/8949)

– Update ssh IP for Geyser upload workflow [#8995](https://github.com/Mudlet/Mudlet/pull/8995)

– Correct TestMask to exclude internal flags [#8954](https://github.com/Mudlet/Mudlet/pull/8954)

– mudlet does not close after running lua tests [#8979](https://github.com/Mudlet/Mudlet/pull/8979)

– Clang-format hash in .git-blame-ignore-revs [#8882](https://github.com/Mudlet/Mudlet/pull/8882)

– [#6964] [spairs](https://wiki.mudlet.org/w/Manual:Lua_Functions#spairs) chokes on mixed keys [#8868](https://github.com/Mudlet/Mudlet/pull/8868)

– align MSDP negotiation to specs [#8905](https://github.com/Mudlet/Mudlet/pull/8905)

– Crash when removing default MUD profiles from welcome window [#8916](https://github.com/Mudlet/Mudlet/pull/8916)

– MXP not working on some MUDs [#8915](https://github.com/Mudlet/Mudlet/pull/8915)

– clean up comments and related translation things [#8914](https://github.com/Mudlet/Mudlet/pull/8914)

– Command history not working when password masking is disabled [#8902](https://github.com/Mudlet/Mudlet/pull/8902)

– Revert default map format to 20 in PTB / `development` [#8891](https://github.com/Mudlet/Mudlet/pull/8891)

– Make main console default to opaque text background, allow user to customize [#8887](https://github.com/Mudlet/Mudlet/pull/8887)

– Delay MXP TEMP_SECURE mode reset to allow tag handling [#8889](https://github.com/Mudlet/Mudlet/pull/8889)

– PTB crash on some Linux systems due to libxcb-cursor bug [#8866](https://github.com/Mudlet/Mudlet/pull/8866)

– Player shown on far side of map when mapper window is wide [#8869](https://github.com/Mudlet/Mudlet/pull/8869)

– db:_coerce_sheet backwards compatibility [#8861](https://github.com/Mudlet/Mudlet/pull/8861)

– Map labels appearing bold after profile reload [#8865](https://github.com/Mudlet/Mudlet/pull/8865)

– macOS color buttons not showing colors in settings [#8847](https://github.com/Mudlet/Mudlet/pull/8847)

– Make update dialog release notes keyboard accessible [#8849](https://github.com/Mudlet/Mudlet/pull/8849)

– Restore desktop shortcut creation on Windows install [#8841](https://github.com/Mudlet/Mudlet/pull/8841)

– Crash when drawing map labels at small zoom levels [#8836](https://github.com/Mudlet/Mudlet/pull/8836)

– Disable AddressSanitizer for release builds [#8826](https://github.com/Mudlet/Mudlet/pull/8826)

– Remember scroll position and cursor position in script editor [#8410](https://github.com/Mudlet/Mudlet/pull/8410)

– Use custom dark theme on all Windows versions [#8819](https://github.com/Mudlet/Mudlet/pull/8819)

– Map area centering displaying areas off-screen [#8814](https://github.com/Mudlet/Mudlet/pull/8814)

– Crash when nested alias/trigger processing runs cleanup prematurely [#8818](https://github.com/Mudlet/Mudlet/pull/8818)

– table.update no longer errors when replacing non-table with table [#8694](https://github.com/Mudlet/Mudlet/pull/8694) [#8751](https://github.com/Mudlet/Mudlet/pull/8751)

– Editor actions not working on initial open [#7482](https://github.com/Mudlet/Mudlet/pull/7482) [#8753](https://github.com/Mudlet/Mudlet/pull/8753)

– Revert map rendering optimization causing issues [#8809](https://github.com/Mudlet/Mudlet/pull/8809)

– Medievia encoding showing error in preferences dropdown [#8811](https://github.com/Mudlet/Mudlet/pull/8811)

– MXP FRAME close tags appearing as literal text [#8808](https://github.com/Mudlet/Mudlet/pull/8808)

– Timer groups [display](https://wiki.mudlet.org/w/Manual:Lua_Functions#display) correct icons when drag-dropped [#8802](https://github.com/Mudlet/Mudlet/pull/8802)

– Map labels appear crisp at all zoom levels [#8795](https://github.com/Mudlet/Mudlet/pull/8795)

– honor 'disable automatic updates' setting when installer is already downloaded [#8409](https://github.com/Mudlet/Mudlet/pull/8409)

– OSC sequences with BEL terminator no longer swallow output [#3912](https://github.com/Mudlet/Mudlet/pull/3912) [#8750](https://github.com/Mudlet/Mudlet/pull/8750)

– Windows crash when saving profile config [#8427](https://github.com/Mudlet/Mudlet/pull/8427) [#8428](https://github.com/Mudlet/Mudlet/pull/8428)

– Big5 and East Asian text encodings not working on Linux [#8787](https://github.com/Mudlet/Mudlet/pull/8787)

– compile in latest development due to map update changes [#8800](https://github.com/Mudlet/Mudlet/pull/8800)

– Improve error handling in [setLabelStyleSheet](https://wiki.mudlet.org/w/Manual:Lua_Functions#setLabelStyleSheet)() [#8446](https://github.com/Mudlet/Mudlet/pull/8446)

– Add outline to area exit arrows for visibility on matching backgrounds [#8794](https://github.com/Mudlet/Mudlet/pull/8794)

– mapper not reopenable after closing via X button [#8401](https://github.com/Mudlet/Mudlet/pull/8401)

– Disable 'Activate' button in Variables view [#8441](https://github.com/Mudlet/Mudlet/pull/8441)

– Prevent crash in MXP watchdog callback [#8785](https://github.com/Mudlet/Mudlet/pull/8785)

– Memory leaks in ScriptUnit and ActionUnit (8,856 bytes) when opening/closing profile [#8781](https://github.com/Mudlet/Mudlet/pull/8781)

– Potential crash during automatic update download [#8776](https://github.com/Mudlet/Mudlet/pull/8776)

– Include full version in Sentry crash reports for PTB builds [#8779](https://github.com/Mudlet/Mudlet/pull/8779)

– Improve build documentation clarity for terminal execution [#8774](https://github.com/Mudlet/Mudlet/pull/8774)

– Regex triggers now respect 'keep' background color setting [#8402](https://github.com/Mudlet/Mudlet/pull/8402)

– Remove unnecessary allocation in filter trigger matching [#8763](https://github.com/Mudlet/Mudlet/pull/8763)

– default new profiles to UTF-8 encoding instead of ASCII [#8759](https://github.com/Mudlet/Mudlet/pull/8759)

– Accessibility crash with out-of-range offset [#8310](https://github.com/Mudlet/Mudlet/pull/8310) [#8752](https://github.com/Mudlet/Mudlet/pull/8752)

– named captures indexed incorrectly in multimatches with special line types [#8748](https://github.com/Mudlet/Mudlet/pull/8748)

– Update trigger icons immediately when dragging in editor [#8746](https://github.com/Mudlet/Mudlet/pull/8746)

– connections to MMapper [#8730](https://github.com/Mudlet/Mudlet/pull/8730)

– prevent module autosave from overwriting failed-to-load modules [#8696](https://github.com/Mudlet/Mudlet/pull/8696)

– GMCP media finish parameter not working [#8740](https://github.com/Mudlet/Mudlet/pull/8740)

– Modules not loading when reopening a profile [#8739](https://github.com/Mudlet/Mudlet/pull/8739)

– Package Exporter unable to export packages [#8629](https://github.com/Mudlet/Mudlet/pull/8629) [#8630](https://github.com/Mudlet/Mudlet/pull/8630)

– Memory leaks in core components [#8716](https://github.com/Mudlet/Mudlet/pull/8716)

– Windows installer failing after update [#8710](https://github.com/Mudlet/Mudlet/pull/8710)

– Down arrow saves typed text before clearing [#8705](https://github.com/Mudlet/Mudlet/pull/8705)

– Restore Windows application icon [#8703](https://github.com/Mudlet/Mudlet/pull/8703)

– set enableMXP when MXP is autodetected [#8701](https://github.com/Mudlet/Mudlet/pull/8701)

– 8 CodeQL 'comparison result is always the same' warnings [#8691](https://github.com/Mudlet/Mudlet/pull/8691)

– CodeQL inconsistent nullness check errors in temp trigger functions [#8690](https://github.com/Mudlet/Mudlet/pull/8690)

– restrict MXP auto-detection to ESC sequences only [#8692](https://github.com/Mudlet/Mudlet/pull/8692)

– Windows Start Menu shortcut missing after install [#8686](https://github.com/Mudlet/Mudlet/pull/8686)

– Use fixed delay instead of waiting for crashpad [#8679](https://github.com/Mudlet/Mudlet/pull/8679)

– Windows updates failing due to locked folder [#8678](https://github.com/Mudlet/Mudlet/pull/8678)

– Wait for crashpad_handler.exe to exit before running installer [#8676](https://github.com/Mudlet/Mudlet/pull/8676)

– [copy](https://wiki.mudlet.org/w/Manual:Lua_Functions#copy) downloaded installer instead of moving file on Windows [#8675](https://github.com/Mudlet/Mudlet/pull/8675)

– Create shortcuts when handling Squirrel install events [#8672](https://github.com/Mudlet/Mudlet/pull/8672)

– Wait for Mudlet to exit before running installer on Windows [#8673](https://github.com/Mudlet/Mudlet/pull/8673)

– Handle Squirrel installer startup commands on Windows to prevent Mudlet getting closed [#8666](https://github.com/Mudlet/Mudlet/pull/8666)

– Prevent crashpad_handler from getting a Windows Start Menu entry [#8659](https://github.com/Mudlet/Mudlet/pull/8659)

– Windows updater file lock issue in dblsqd (prevented updates) [#8661](https://github.com/Mudlet/Mudlet/pull/8661)

– Windows updater launch using batch file to avoid quoting issues when updating PTBs [#8663](https://github.com/Mudlet/Mudlet/pull/8663)

– Mudlet freeze when receiving large amounts of data [#8644](https://github.com/Mudlet/Mudlet/pull/8644)

– Container overflow crash when processing text [#8647](https://github.com/Mudlet/Mudlet/pull/8647)

– Build failures after dependency updates [#8645](https://github.com/Mudlet/Mudlet/pull/8645)

– package manager loses title on uninstall [#8625](https://github.com/Mudlet/Mudlet/pull/8625)

– Windows updater deleting itself during update [#8622](https://github.com/Mudlet/Mudlet/pull/8622)

– crash in bi-daily update check [#8620](https://github.com/Mudlet/Mudlet/pull/8620)

– crash in bi-daily update check

– clicking on stacked rooms selects all of them [#8616](https://github.com/Mudlet/Mudlet/pull/8616)

– use-after-free crash when calling [registerMapInfo](https://wiki.mudlet.org/w/Manual:Lua_Functions#registerMapInfo) [#8609](https://github.com/Mudlet/Mudlet/pull/8609)

– Prevent crash during Mudlet shutdown when closing profiles [#8606](https://github.com/Mudlet/Mudlet/pull/8606)

– Forward secrets.SENTRY_DSN to CMake on Windows [#8615](https://github.com/Mudlet/Mudlet/pull/8615)

– Static fonts configured in 4.19.1 continue working after upgrade [#8545](https://github.com/Mudlet/Mudlet/pull/8545)

– convert raw Qt pointers to QPointer to prevent use-after-free [#8610](https://github.com/Mudlet/Mudlet/pull/8610)

– maintain backwards compatibility when loading rex_pcre2 [#8599](https://github.com/Mudlet/Mudlet/pull/8599)

– missing encodings in dropdown for Qt6 [#8605](https://github.com/Mudlet/Mudlet/pull/8605)

– Medievia encoding error in preferences dropdown [#8608](https://github.com/Mudlet/Mudlet/pull/8608)

– load PCRE2 in LuaGlobal [#8598](https://github.com/Mudlet/Mudlet/pull/8598)

– fix inconsistent nullness checks [#8586](https://github.com/Mudlet/Mudlet/pull/8586)

– Test builds now use keychain for password storage [#8589](https://github.com/Mudlet/Mudlet/pull/8589)

– Heap-use-after-free crash when closing profiles with active triggers [#8567](https://github.com/Mudlet/Mudlet/pull/8567)

– heap-use-after-free when cleanup runs during alias/trigger/key processing [#8571](https://github.com/Mudlet/Mudlet/pull/8571)

– potential issue in area image export [#8585](https://github.com/Mudlet/Mudlet/pull/8585)

– Restore Qt5 Core5Compat for third-party dependencies [#8578](https://github.com/Mudlet/Mudlet/pull/8578)

– Reduce redundant UTF-8 conversions in trigger processing [#8560](https://github.com/Mudlet/Mudlet/pull/8560)

– Improve performance of hyperlink style parsing [#8558](https://github.com/Mudlet/Mudlet/pull/8558)

– Remove duplicate context menu on AdjustableContainer title bar [#8569](https://github.com/Mudlet/Mudlet/pull/8569)

– Copy from console now works when command line has focus [#8551](https://github.com/Mudlet/Mudlet/pull/8551)

– Remove deprecated Qt5 Core5Compat dependency [#8550](https://github.com/Mudlet/Mudlet/pull/8550)

– crash when rapidly reloading plugins due to thread-safety issue in XML export [#8542](https://github.com/Mudlet/Mudlet/pull/8542)

– switch to FFMPEG audio backend on Windows to allow playback of .ogg and .opus audio files [#8329](https://github.com/Mudlet/Mudlet/pull/8329)

– Debug console crash when host is deleted [#8549](https://github.com/Mudlet/Mudlet/pull/8549)

– Special exit text unreadable when editing [#8543](https://github.com/Mudlet/Mudlet/pull/8543)

– Comprehensive package installation crash prevention [#8541](https://github.com/Mudlet/Mudlet/pull/8541)

– Auto-activate new triggers/aliases/scripts/keys on save [#8529](https://github.com/Mudlet/Mudlet/pull/8529)

– Unicode characters [display](https://wiki.mudlet.org/w/Manual:Lua_Functions#display) correctly in unhandled MXP tags [#8532](https://github.com/Mudlet/Mudlet/pull/8532)

##### Infrastructure:
– apply clang-format style to tests too [#9201](https://github.com/Mudlet/Mudlet/pull/9201)

– Bump 3rdparty/sentry-native from `93c4e32` to `848fd4c` [#9202](https://github.com/Mudlet/Mudlet/pull/9202)

– Bump carlosperate/download-file-action from 2.0.2 to 2.0.3 [#9203](https://github.com/Mudlet/Mudlet/pull/9203)

– fix flaky TelnetTextDisplayedTest in CI [#9193](https://github.com/Mudlet/Mudlet/pull/9193)

– fix partial PTB releases not triggering when push build [exists](https://wiki.mudlet.org/w/Manual:Lua_Functions#exists) at same SHA [#9192](https://github.com/Mudlet/Mudlet/pull/9192)

– fix Windows SHA256 missing from PTB releases [#9191](https://github.com/Mudlet/Mudlet/pull/9191)

– allow partial PTB releases when not all platforms succeed [#9163](https://github.com/Mudlet/Mudlet/pull/9163)

– migrate undo/redo tests to QTest framework [#8867](https://github.com/Mudlet/Mudlet/pull/8867)

– stop deleting and recreating GitHub releases on every build [#9176](https://github.com/Mudlet/Mudlet/pull/9176)

– skip duplicate PTB builds when no new commits exist [#9175](https://github.com/Mudlet/Mudlet/pull/9175)

– sync edbee-lib submodule to fork master [#9183](https://github.com/Mudlet/Mudlet/pull/9183)

– Bump actions/download-artifact from 4 to 8 [#9179](https://github.com/Mudlet/Mudlet/pull/9179)

– Bump actions/github-script from 7 to 9 [#9181](https://github.com/Mudlet/Mudlet/pull/9181)

– Bump 3rdparty/sentry-native from `6ebd29b` to `93c4e32` [#9178](https://github.com/Mudlet/Mudlet/pull/9178)

– fix Windows and macOS nightly build failures [#9173](https://github.com/Mudlet/Mudlet/pull/9173)

– add missing statuses:write permission to DangerJS workflow [#9172](https://github.com/Mudlet/Mudlet/pull/9172)

– fix DangerJS workflow vulnerability to malicious PRs [#9143](https://github.com/Mudlet/Mudlet/pull/9143)

– add non-compileable files to CMake project file [#8780](https://github.com/Mudlet/Mudlet/pull/8780)

– update sentry-native to 0.13.5 [#9158](https://github.com/Mudlet/Mudlet/pull/9158)

– update edbee-lib submodule & use system oniguruma if present [#9156](https://github.com/Mudlet/Mudlet/pull/9156)

– fix PTB registration by reverting installer filename convention [#9155](https://github.com/Mudlet/Mudlet/pull/9155)

– show changelogs both from last release and last PTB [#9151](https://github.com/Mudlet/Mudlet/pull/9151)

– fix CI bugs in PTB registration, macOS updater linking, and portable ZIP upload [#9154](https://github.com/Mudlet/Mudlet/pull/9154)

– fix Windows release asset upload and appcast SCP paths [#9152](https://github.com/Mudlet/Mudlet/pull/9152)

– fix Windows PTB registration failing after installer rename [#9150](https://github.com/Mudlet/Mudlet/pull/9150)

– release workflow failing due to PR build triggers and checkout wiping assets [#9145](https://github.com/Mudlet/Mudlet/pull/9145)

– add CI workflow to create GitHub Releases for updater [#9127](https://github.com/Mudlet/Mudlet/pull/9127)

– Update text for translation in Crowdin [#9136](https://github.com/Mudlet/Mudlet/pull/9136)

– Bump lukka/get-cmake from 4.3.0 to 4.3.1 [#9139](https://github.com/Mudlet/Mudlet/pull/9139)

– Add comprehensive variable editor tests [#9103](https://github.com/Mudlet/Mudlet/pull/9103)

– add comprehensive [resetProfile](https://wiki.mudlet.org/w/Manual:Lua_Functions#resetProfile)() test suite [#9082](https://github.com/Mudlet/Mudlet/pull/9082)

– add cross-reference comments to duplicate build workflows [#9069](https://github.com/Mudlet/Mudlet/pull/9069)

– remove disabled clang-tidy workflows [#9113](https://github.com/Mudlet/Mudlet/pull/9113)

– Bump 3rdparty/qtkeychain from `6e90eda` to `53a8e6a` [#9126](https://github.com/Mudlet/Mudlet/pull/9126)

– Update text for translation in Crowdin [#9124](https://github.com/Mudlet/Mudlet/pull/9124)

– speed up OSC tests with data-driven approach [#9120](https://github.com/Mudlet/Mudlet/pull/9120)

– Add Copilot skill for opening pull requests [#9105](https://github.com/Mudlet/Mudlet/pull/9105)

– Bump 3rdparty/qtkeychain from `844beb4` to `6e90eda` [#8973](https://github.com/Mudlet/Mudlet/pull/8973)

– Update text for translation in Crowdin [#9077](https://github.com/Mudlet/Mudlet/pull/9077)

– disable CodeQL poorly-documented-function query [#9079](https://github.com/Mudlet/Mudlet/pull/9079)

– Bump webfactory/ssh-agent from 0.9.1 to 0.10.0 [#9047](https://github.com/Mudlet/Mudlet/pull/9047)

– restore xcb-util-cursor resiliency changes [#9074](https://github.com/Mudlet/Mudlet/pull/9074)

– Bump lukka/get-cmake from 4.2.3 to 4.3.0 [#9087](https://github.com/Mudlet/Mudlet/pull/9087)

– Fix macOS CI: use AppleClang instead of Homebrew LLVM [#9078](https://github.com/Mudlet/Mudlet/pull/9078)

– remove leftover qgridlayout ordering script [#9075](https://github.com/Mudlet/Mudlet/pull/9075)

– enable set -e in Linux CI deploy script to catch failures [#9059](https://github.com/Mudlet/Mudlet/pull/9059)

– install `libspeechd-dev` for Linux CI to fix AppImage creation [#9058](https://github.com/Mudlet/Mudlet/pull/9058)

– Migrate to clang64 msys2 environment for Windows builds [#9064](https://github.com/Mudlet/Mudlet/pull/9064)

– remove ccache mutex locks [#9043](https://github.com/Mudlet/Mudlet/pull/9043)

– add retries to brew install to handle hangs [#9045](https://github.com/Mudlet/Mudlet/pull/9045)

– remove CodeQL CI's concurrency [#9044](https://github.com/Mudlet/Mudlet/pull/9044)

– Fix windows builds in `development` [#9042](https://github.com/Mudlet/Mudlet/pull/9042)

– Bump development version to 4.20.1 [#9050](https://github.com/Mudlet/Mudlet/pull/9050)

– Update text for translation in Crowdin [#9040](https://github.com/Mudlet/Mudlet/pull/9040)

– remove qgridlayout ordering workflow [#9038](https://github.com/Mudlet/Mudlet/pull/9038)

– Update autocompletion data in Mudlet [#9041](https://github.com/Mudlet/Mudlet/pull/9041)

– update target path for file upload in geyser-docs workflow [#9030](https://github.com/Mudlet/Mudlet/pull/9030)

– Change SCP target host for file uploads [#9003](https://github.com/Mudlet/Mudlet/pull/9003)

– Dedicated workflow for prs [#9033](https://github.com/Mudlet/Mudlet/pull/9033)

– Remove unnecessary null checks after new [#9014](https://github.com/Mudlet/Mudlet/pull/9014)

– speed up compilation of Mudlet by 25% [#9021](https://github.com/Mudlet/Mudlet/pull/9021)

– Enable TTS in macOS builds [#8921](https://github.com/Mudlet/Mudlet/pull/8921)

– make xcb-util-cursor download more resilient [#9012](https://github.com/Mudlet/Mudlet/pull/9012)

– re-introduce path stripping in geyser-docs.yaml [#9023](https://github.com/Mudlet/Mudlet/pull/9023)

– ccache key should be per pr/branch [#9010](https://github.com/Mudlet/Mudlet/pull/9010)

– use release-signing for releases, test-signing for PTBs [#9007](https://github.com/Mudlet/Mudlet/pull/9007)

– always run build ci in core branches [#9008](https://github.com/Mudlet/Mudlet/pull/9008)

– Update text for translation in Crowdin [#9009](https://github.com/Mudlet/Mudlet/pull/9009)

– increase SignPath signing timeout to 1 hour [#9002](https://github.com/Mudlet/Mudlet/pull/9002)

– Refactor geyser doc upload workflow [#9001](https://github.com/Mudlet/Mudlet/pull/9001)

– run undo/redo tests in test mode [#8992](https://github.com/Mudlet/Mudlet/pull/8992)

– fix unintended ccache collisions [#8991](https://github.com/Mudlet/Mudlet/pull/8991)

– Bump actions/upload-artifact from 6 to 7 [#8989](https://github.com/Mudlet/Mudlet/pull/8989)

– CI concurrency logic [#8990](https://github.com/Mudlet/Mudlet/pull/8990)

– Bump ZedThree/clang-tidy-review from 0.23.0 to 0.23.1 [#8988](https://github.com/Mudlet/Mudlet/pull/8988)

– Update text for translation in Crowdin [#8940](https://github.com/Mudlet/Mudlet/pull/8940)

– [ImgBot] Optimize images [#8925](https://github.com/Mudlet/Mudlet/pull/8925)

– Bump development version to 4.20.0 [#8919](https://github.com/Mudlet/Mudlet/pull/8919)

– Bump 3rdparty/sentry-native from `c80e793` to `383ccad` [#8913](https://github.com/Mudlet/Mudlet/pull/8913)

– Add SignPath Foundation attribution to README [#8895](https://github.com/Mudlet/Mudlet/pull/8895)

– Update autocompletion data in Mudlet [#8903](https://github.com/Mudlet/Mudlet/pull/8903)

– Update text for translation in Crowdin [#8901](https://github.com/Mudlet/Mudlet/pull/8901)

– use pcre2grep in CI validation [#8878](https://github.com/Mudlet/Mudlet/pull/8878)

– set next-next release to be 4.21.0 [#8883](https://github.com/Mudlet/Mudlet/pull/8883)

– disable signing MudletCrashReporter.exe temporarily [#8880](https://github.com/Mudlet/Mudlet/pull/8880)

– add qtkeychain-qt6-dev to Linux workflows [#8876](https://github.com/Mudlet/Mudlet/pull/8876)

– switch qtkeychain submodule to upstream [#8870](https://github.com/Mudlet/Mudlet/pull/8870)

– detect Lua test failures on macOS CI [#8852](https://github.com/Mudlet/Mudlet/pull/8852)

– Remove x64 from Windows PTB desktop shortcut name [#8845](https://github.com/Mudlet/Mudlet/pull/8845)

– Bump lukka/get-cmake from 4.2.2 to 4.2.3 [#8844](https://github.com/Mudlet/Mudlet/pull/8844)

– Bump 3rdparty/sentry-native from `08b1374` to `c80e793` [#8843](https://github.com/Mudlet/Mudlet/pull/8843)

– Update text for translation in Crowdin [#8839](https://github.com/Mudlet/Mudlet/pull/8839)

– Fix SignPath code signing policy configuration [#8834](https://github.com/Mudlet/Mudlet/pull/8834)

– Revert uploading debug symbols to Sentry for PR builds [#8832](https://github.com/Mudlet/Mudlet/pull/8832)

– Fix Windows code signing by adding SignPath v2 policy file [#8831](https://github.com/Mudlet/Mudlet/pull/8831)

– Upload debug symbols to Sentry for PR builds [#8830](https://github.com/Mudlet/Mudlet/pull/8830)

– Remove unused QKeychain forward declarations from CredentialManager.h [#8829](https://github.com/Mudlet/Mudlet/pull/8829)

– Remove dead CMake code in Sentry configuration [#8828](https://github.com/Mudlet/Mudlet/pull/8828)

– Bump lukka/get-cmake from 3.30.3 to 4.2.2 [#8822](https://github.com/Mudlet/Mudlet/pull/8822)

– Bump actions/upload-artifact from 4 to 6 [#8823](https://github.com/Mudlet/Mudlet/pull/8823)

– Bump actions/cache from 4 to 5 [#8821](https://github.com/Mudlet/Mudlet/pull/8821)

– Bump 3rdparty/sentry-native from `bbccfad` to `08b1374` [#8820](https://github.com/Mudlet/Mudlet/pull/8820)

– Cache sentry-native builds in CI [#8807](https://github.com/Mudlet/Mudlet/pull/8807)

– Add .git-blame-ignore-revs for formatting commits [#8805](https://github.com/Mudlet/Mudlet/pull/8805)

– Update text for translation in Crowdin [#8816](https://github.com/Mudlet/Mudlet/pull/8816)

– update plural american english translations [#8478](https://github.com/Mudlet/Mudlet/pull/8478)

– add clang-format instructions to AI guidelines [#8806](https://github.com/Mudlet/Mudlet/pull/8806)

– Apply clang-format to all CPP files [#8804](https://github.com/Mudlet/Mudlet/pull/8804)

– Add SignPath code signing for Windows builds [#8786](https://github.com/Mudlet/Mudlet/pull/8786)

– update clang-format style to match Mudlets as much as possible [#8380](https://github.com/Mudlet/Mudlet/pull/8380)

– Enable Qt breadcrumbs in Sentry crash reports [#8791](https://github.com/Mudlet/Mudlet/pull/8791)

– Fix Windows nightly build failure when no new commits [#8790](https://github.com/Mudlet/Mudlet/pull/8790)

– Bump 3rdparty/sentry-native from `11832e4` to `bbccfad` [#8792](https://github.com/Mudlet/Mudlet/pull/8792)

– upload Qt module debug symbols to Sentry using cv2pdb [#8782](https://github.com/Mudlet/Mudlet/pull/8782)

– Update autocompletion data in Mudlet [#8789](https://github.com/Mudlet/Mudlet/pull/8789)

– Update text for translation in Crowdin [#8788](https://github.com/Mudlet/Mudlet/pull/8788)

– Upload Qt debug symbols to Sentry for better crash reports [#8777](https://github.com/Mudlet/Mudlet/pull/8777)

– Remove Azure trusted signing from Windows builds [#8778](https://github.com/Mudlet/Mudlet/pull/8778)

– Bump 3rdparty/edbee-lib from `cf7f0ba` to `7e7c0f6` [#8770](https://github.com/Mudlet/Mudlet/pull/8770)

– Bump 3rdparty/sentry-native from `4f983bb` to `11832e4` [#8771](https://github.com/Mudlet/Mudlet/pull/8771)

– remove `travis.` [prefix](https://wiki.mudlet.org/w/Manual:Lua_Functions#prefix) from CI files [#8375](https://github.com/Mudlet/Mudlet/pull/8375)

– Update autocompletion data in Mudlet [#8769](https://github.com/Mudlet/Mudlet/pull/8769)

– Update text for translation in Crowdin [#8767](https://github.com/Mudlet/Mudlet/pull/8767)

– Update bundled mpkg.mpackage to latest upstream [#8768](https://github.com/Mudlet/Mudlet/pull/8768)

– reduce Mudlet build times by 30s [#8403](https://github.com/Mudlet/Mudlet/pull/8403)

– Add Claude Code slash command for creating PRs [#8761](https://github.com/Mudlet/Mudlet/pull/8761)

– Guard undo/redo debug messages behind compile flag [#8760](https://github.com/Mudlet/Mudlet/pull/8760)

– Simplify profile loading code [#8756](https://github.com/Mudlet/Mudlet/pull/8756)

– Improve code readability with cleaner empty checks [#8755](https://github.com/Mudlet/Mudlet/pull/8755)

– Reduce noise in automated code review comments [#8754](https://github.com/Mudlet/Mudlet/pull/8754)

– simplify CI 3rd party update workflow [#8737](https://github.com/Mudlet/Mudlet/pull/8737)

– improve safety of internal text handling [#8724](https://github.com/Mudlet/Mudlet/pull/8724)

– uppercase settings key in config [#8246](https://github.com/Mudlet/Mudlet/pull/8246)

– Simplify build system by removing unused QMake files [#8731](https://github.com/Mudlet/Mudlet/pull/8731)

– modernize loop syntax across codebase [#8733](https://github.com/Mudlet/Mudlet/pull/8733)

– simplify cmake build configuration [#8732](https://github.com/Mudlet/Mudlet/pull/8732)

– simplify network connection handling [#8735](https://github.com/Mudlet/Mudlet/pull/8735)

– Add a security policy for reporting vulnerabilities [#8723](https://github.com/Mudlet/Mudlet/pull/8723)

– Update text for translation in Crowdin [#8728](https://github.com/Mudlet/Mudlet/pull/8728)

– Update autocompletion data in Mudlet [#8729](https://github.com/Mudlet/Mudlet/pull/8729)

– revise displayed Copyright year to 2026 [#8727](https://github.com/Mudlet/Mudlet/pull/8727)

– eliminate remains of qt-ordered-map from Mudlet [#8720](https://github.com/Mudlet/Mudlet/pull/8720)

– Clarify CI build option label [#8714](https://github.com/Mudlet/Mudlet/pull/8714)

– allow CMake `initGitSubmodule.cmake` to act recursively [#8717](https://github.com/Mudlet/Mudlet/pull/8717)

– run memory leak checks as part of CI pipeline [#8316](https://github.com/Mudlet/Mudlet/pull/8316)

– remove debug logging from undo/redo feature [#8713](https://github.com/Mudlet/Mudlet/pull/8713)

– Update text for translation in Crowdin [#8698](https://github.com/Mudlet/Mudlet/pull/8698)

– check for sentry-native submodule when Sentry enabled [#8669](https://github.com/Mudlet/Mudlet/pull/8669)

– address feedback in event handling from no-op operations [#8667](https://github.com/Mudlet/Mudlet/pull/8667)

– Add telnet processing speed benchmark [#8658](https://github.com/Mudlet/Mudlet/pull/8658)

– Replace foreach with C++17 structured bindings [#8664](https://github.com/Mudlet/Mudlet/pull/8664)

– Add ccache stats to Windows build workflow [#8671](https://github.com/Mudlet/Mudlet/pull/8671)

– Fix Windows PTB rebuild versioning for Squirrel [#8670](https://github.com/Mudlet/Mudlet/pull/8670)

– allow Windows PTB builds to be re-done on the same day [#8668](https://github.com/Mudlet/Mudlet/pull/8668)

– fix crashes in undo/redo tests [#8665](https://github.com/Mudlet/Mudlet/pull/8665)

– add proper Qt event propagation in all events [#8444](https://github.com/Mudlet/Mudlet/pull/8444)

– Bump actions/upload-artifact from 5 to 6 [#8657](https://github.com/Mudlet/Mudlet/pull/8657)

– Ignore lcf submodule in Dependabot, remove vcpkg [#8654](https://github.com/Mudlet/Mudlet/pull/8654)

– Bump ZedThree/clang-tidy-review from 0.22.2 to 0.22.3 [#8656](https://github.com/Mudlet/Mudlet/pull/8656)

– Update Lua code formatter to latest upstream branch [#8653](https://github.com/Mudlet/Mudlet/pull/8653)

– Bump 3rdparty/sentry-native from `67a9f8e` to `4f983bb` [#8637](https://github.com/Mudlet/Mudlet/pull/8637)

– Bump peter-evans/create-pull-request from 7 to 8 [#8638](https://github.com/Mudlet/Mudlet/pull/8638)

– Bump 3rdparty/lcf from `4aa2502` to `55aaf85` [#8639](https://github.com/Mudlet/Mudlet/pull/8639)

– Bump actions/cache from 4 to 5 [#8636](https://github.com/Mudlet/Mudlet/pull/8636)

– Update autocompletion data in Mudlet [#8634](https://github.com/Mudlet/Mudlet/pull/8634)

– Update text for translation in Crowdin [#8633](https://github.com/Mudlet/Mudlet/pull/8633)

– SENTRY_AUTH_TOKEN diagnostic checks environment variable [#8618](https://github.com/Mudlet/Mudlet/pull/8618)

– Bump 3rdparty/sentry-native from `c5416e6` to `67a9f8e` [#8617](https://github.com/Mudlet/Mudlet/pull/8617)

– Update text for translation in Crowdin [#8613](https://github.com/Mudlet/Mudlet/pull/8613)

– add workaround clang-tidy-review directory bug [#8597](https://github.com/Mudlet/Mudlet/pull/8597)

– update communi to qt6 [#8584](https://github.com/Mudlet/Mudlet/pull/8584)

– more fixes to clang-tidy workflow [#8596](https://github.com/Mudlet/Mudlet/pull/8596)

– fix clang-tidy workflow [#8595](https://github.com/Mudlet/Mudlet/pull/8595)

– update Qtkeychain submodule from master to main branch [#8579](https://github.com/Mudlet/Mudlet/pull/8579)

– Bump ZedThree/clang-tidy-review from 0.22.1 to 0.22.2 [#8594](https://github.com/Mudlet/Mudlet/pull/8594)

– ignore macOS keychain for telnet functional test [#8592](https://github.com/Mudlet/Mudlet/pull/8592)

– complete devcontainer setup [#8587](https://github.com/Mudlet/Mudlet/pull/8587)

– Update text for translation in Crowdin [#8590](https://github.com/Mudlet/Mudlet/pull/8590)

– remove item check in saveSelectedItem [#8583](https://github.com/Mudlet/Mudlet/pull/8583)

– Remove else-after-return anti-pattern [#8575](https://github.com/Mudlet/Mudlet/pull/8575)

– update devcontainer to work [#8321](https://github.com/Mudlet/Mudlet/pull/8321)

– Bump ZedThree/clang-tidy-review from 0.22.0 to 0.22.1 [#8564](https://github.com/Mudlet/Mudlet/pull/8564)

– Bump actions/checkout from 5 to 6 [#8565](https://github.com/Mudlet/Mudlet/pull/8565)

– Bump 3rdparty/edbee-lib from `165edc0` to `cf7f0ba` [#8563](https://github.com/Mudlet/Mudlet/pull/8563)

– Update text for translation in Crowdin [#8561](https://github.com/Mudlet/Mudlet/pull/8561)

– Update AI instructions with comments and git guidelines [#8531](https://github.com/Mudlet/Mudlet/pull/8531)

– Fix CMake CMP0167 warning for Boost [#8538](https://github.com/Mudlet/Mudlet/pull/8538)

– Add NINJA_STATUS to Windows build [#8539](https://github.com/Mudlet/Mudlet/pull/8539)

– update Noto Color Emoji font to Unicode 17.0 v2.051 [#8535](https://github.com/Mudlet/Mudlet/pull/8535)

– Add regex busted tests for PCRE library [#8537](https://github.com/Mudlet/Mudlet/pull/8537)

##### Other:
– Revert "Add per-room border color and thickness"

– Revert "Fix crash in bi-daily update check"

leggi tutto