Commit Graph
69151 Commits
Author SHA1 Message Date
vighnesh-sawant 7e713fa44e Bluetooth: Adds isochronous usb endpoint to bluetooth h2generic driver
This changes the driver to scan all usb interfaces.

Change-Id: Ieebbabe549ff126e4c3df1e33f2993c2da66bb1d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11025
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-06-01 08:31:21 +00:00
Pascal Abresch 30a47b2406 WebPositive: remove INTEGRATE_MENU_INTO_TAB_BAR
This was ifdefed in 2010, and was never promoted to a setting.

Change-Id: Ia172b9aec54ed475de1384ba1850a5d53cf206a5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11022
Haiku-Format: Haiku-format Bot <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-06-01 08:25:20 +00:00
PulkoMandy 96037d5af2 Move USB CDC Ethernet descriptor to shared header
Use the same structure in usb_ecm and listusb

Change-Id: I8d33b434560bb18bb2f6247090d1580c267adab2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11046
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-06-01 08:00:34 +00:00
PulkoMandy 30cb44085c If B_SET_CURSOR_BITMAP hook fails, try B_SET_CURSOR_SHAPE
This provides more intuitive behavior when writing drivers: a hook that
does nothing and returns an error should be the same as not setting the
hook at all.

Also, it allows the hook to fail only on some cursors (for example if
there are size or colorspace limitations in what the driver/hardware
can handle).

Change-Id: Ia7b8c7f61c1a5af3214653bb05d9568b1bba1147
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11030
Tested-by: Commit checker robot <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-06-01 07:59:41 +00:00
nipos 7a8abde99b ActivityMonitor: Calculate and use correct window size limits
Fixes #17915

Change-Id: I88f3bd55e926e1cbd30c188aa885f9e23f8f09c1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11003
Reviewed-by: nephele nephele <[email protected]>
2026-05-31 13:59:51 +00:00
nipos 0ed78609b2 ShowImage: Fix displaying the toolbar at start
Change-Id: I9270f7adf3bb894df2f865e945207cbdcfe649dd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11045
Reviewed-by: nephele nephele <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
2026-05-31 13:46:07 +00:00
Humdinger 3804ca7ce8 TextSearch: truncate long History item labels at fixed width
If you've searched for some very long string, the menu item label
in the "History" may get so long, it stretches wider than the
screen width. Happened to me accidentally…

Truncating labels at a fixed width with middle truncation.

Change-Id: I10d457044ad67563efd59960af5093d2c8717b85
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11028
Reviewed-by: Adrien Destugues <[email protected]>
Reviewed-by: humdinger humdinger <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: nephele nephele <[email protected]>
2026-05-31 12:49:41 +00:00
Pascal Abresch 18ba9f76e7 registrar, WebPositive: minor warning fix
Change-Id: Ibb3bce29aafa517e043e46e63cf548dfb96b2127
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10455
Tested-by: Commit checker robot <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-05-31 10:40:18 +00:00
cafeina 49d1c362d3 Haiku Book: added NetworkAddress, NetworkDevice, NetworkNotifications, NetworkRoster and NetworkRoute
Change-Id: If2123eabeb30e9d09e2de0a603a77f30c8324f7f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10225
Haiku-Format: Haiku-format Bot <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-05-31 08:43:32 +00:00
cafeina d1c493cc67 Haiku Book: added USBKit and minor change in Joystick
Change-Id: Iced405b7497e5178211da1dd99290e7a9493e60c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10972
Tested-by: Commit checker robot <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
2026-05-31 08:14:30 +00:00
PulkoMandy 1ffe2291a5 listusb: decode CDC-NCM and CDC Ethernet descriptors
Change-Id: I2f7200613397d002cd90023e3186463d1fd86305
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11032
Reviewed-by: Adrien Destugues <[email protected]>
2026-05-31 07:22:28 +00:00
PulkoMandy 8a152bcf44 Update usb.ids with the latest version from http://www.linux-usb.org/usb.ids
Change-Id: Id1771a760e7d8aa860ee81edd7de39c470183f56
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11031
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-05-31 07:22:28 +00:00
Humdinger fdce1a3521 StyledEdit: Split menu "Font" in "Font" and "Style"
When you have many fonts installed, the "Font" menu in the menu bar
gets very tall. If you just want to set the style (italic, bold etc…)
or the colour of the selected text, you always have to scroll to the
very top.

Putting all fonts into a "Font" top-menu leaves the the styling actions
always accessible in the renamed "Style" menu.

Also, put the "In/Decrease size" items under "Size", similar to e.g.
Tracker's "Icon view".

Fixes #20098

Change-Id: Idadcf902b1b97fe439a4958e995722e9d76f804f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10986
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: nephele nephele <[email protected]>
2026-05-30 09:21:59 +00:00
Autocomitter 797a2feba5 Update translations from Pootle 2026-05-30 08:12:57 +00:00
Autocomitter cd19411712 HaikuDepot: pkg list tab + keyboard fixes
This commit will tidy up the package list views'
tab handling so that the model is always a
correct representation of the chosen list view.

The commit also sorts out a problem where the
BView focus can be stuck on the wrong view when
the tab changes.

Fixes #20109

Change-Id: I1f2769481cf3d89d160002e12092ff50df997077
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11014
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Andrew Lindesay <[email protected]>
2026-05-30 04:06:39 +00:00
Kevin Adams c21dc49cbb printers: remove "Save as PDF" printer queue
Haiku current has a "Save as PDF" printer queue, but that does not make
sense becuase the PDF Writer driver does not ship with Haiku (it's in
haikuports). This causes confusion for the users.

I will update the haikuports PDFWriter package to create the queue on install.

Fixes #20110.

Change-Id: I19edc41e5481f2de6f19fad1b63a2f9e3f0a03de
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11029
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-05-29 16:24:21 +00:00
Pascal Abresch 4ae1fb4ffa Webpositive: Improve appearence of some buttons
This makes the New Tab and tab buttons hidpi supporting
and fixes the close menu for the search bar

All of these controls now properly support the dark mode

Change-Id: Ibd2b86b9c1c1e1f812ea946627cbff007b32b452
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11023
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: nephele nephele <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
2026-05-29 14:32:41 +00:00
Sam Roberts ce692ecc03 intel_extreme: Clear all framebuffer tile mode bits
Some newer architecture added Y tiling

Maybe fixes #17688

Change-Id: I048c2523b8a804e53752f12cfed436616a6a6964
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11027
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-05-28 12:20:19 +00:00
Augustin Cavalier 0088ac13b0 app_server: Refactors to screen configuration management.
* Drop screen_configuration::is_current. This just caused significant
   confusion and problems, because values could get out of sync between
   the Stored and Current screen configuration storage.

 * Try to match by monitor_info always, not just ID.

 * Add the current vs. stored Configurations distinction to VirtualScreen.
   This will populate the CurrentScreenConfiguration object during
   initial configuration of screens.

Fixes app_server not properly reverting to the original resolution after
apps that change the resolution quitting, which was seen in #20042.

Change-Id: I61c9ee4c5b7e755cbb207170d2eddb1d31fd0ea8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11024
Reviewed-by: waddlesplash <[email protected]>
2026-05-28 01:22:15 +00:00
Sam Roberts 588830e92d acpi: Always read EC_DATA after burst enable command
It's possible for the EC to disable burst mode (maybe because
we're taking too long and it's impatient) before we check 
the status register to see if burst mode is enabled. If that
happens, we consider the burst enable command to have failed,
even though it succeeded and put EC_BURST_ACK in the data register.
So, the next time we read the data register for a subsequent
command, we'll read that EC_BURST_ACK.

This fixes ACPI battery & shutdown on 2015 MacBook Pro

Change-Id: I49711b224fee027e28825674d9c845bf6a6a6964
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11019
Reviewed-by: Fredrik Holmqvist <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-05-27 16:48:18 +00:00
Máximo Castañeda f13844fed1 DriverSettingsMessageAdapter: escape strings
They may contain separators or other syntactic elements that would be
interpreted when unquoted.

Reported by @PolloBlu in the forums as the reason for their not
automatically connecting to an SSID with spaces in its name.

Change-Id: I19e88121a8d6dab9a722807971bcc7872578037d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11026
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-05-27 16:47:49 +00:00
Pascal Abresch 9afa3f0e86 WebPositive remove gopher from supported protols
This was already 1) broken in webkit 2) removed in registrar

This will now also cause WebPositive to hand off gopher urls to a more
apropriate app instead of giving it to webkit and getting an error back
because it is unsupported

Change-Id: I5253eaf8f8bfe3c0971895c6df6fa03b9fc4e237
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11021
Reviewed-by: waddlesplash <[email protected]>
2026-05-26 21:31:58 +00:00
Pascal Abresch 16c62a59bf WebPositive: update duckduckgo & google url to noai variant
Change-Id: I7aece349c7289365f7c923dde7a2e5a95ffcfb5e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11020
Reviewed-by: waddlesplash <[email protected]>
2026-05-26 21:31:58 +00:00
John Scipione 58e64b2b93 Revert "Tracker: Remove drag fade, fixes a complaint from #19429."
Restore drag fade, fixes CPU spikes reported in #20102. Make fade
rect 256x256 instead of 256x192.

This reverts commit 5660b231ec.

Change-Id: Ia0f6c2389ea915ecc1a9691615264cf192560ac3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11009
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-05-26 11:38:45 +00:00
Sam Roberts f6d3a6f6c7 intel_extreme: Disable framebuffer tiling
On some Intel MacBooks, system firmware configures the framebuffer
as X-tiled and uses the "Graphics Memory Fence Table Register"s to
transparently convert linear framebuffer accesses by the CPU to tiled
accesses. If you change the framebuffer base address or stride, you get
a garbled display since the "fence" configuration no longer matches
the framebuffer.

Might fix #17688

Change-Id: Iaf9ea7641f7809acb9b8fbf14b88ed656a6a6964
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11016
Reviewed-by: Adrien Destugues <[email protected]>
2026-05-25 18:01:29 +00:00
Autocomitter ddf7ab43b5 Update translations from Pootle 2026-05-23 08:13:43 +00:00
Augustin Cavalier 914768faa8 kernel/timer: Reinstate lazy timer resetting.
This reverts dbc6b2061e.

Hopefully after the various fixes to APIC timer setup, the
problems that this was causing will be gone. (The users who
reported issues with it did so only on the forums and never
opened tickets, it seems.)
2026-05-21 15:12:00 -04:00
Augustin Cavalier 5dfc0663d5 kernel/x86: Avoid using any initial values in APIC timer registers.
We should just be zeroing any unknown bits, not trying to preserve them.
If the BIOS or other mechanisms left the timer in some other mode
besides "one-shot" like we need, then we might incorrectly preserve
those bits.

This also has the advantage of avoiding config reads in set_hardware_timer.
2026-05-21 15:01:17 -04:00
Augustin Cavalier faa27a36dd kernel/thread: Print pinned_to_cpu when dumping thread information.
May help with diagnosing #20100.
2026-05-21 14:06:12 -04:00
Augustin Cavalier 51bbd3778c kernel/smp: Drop the "last caller" spinlock debug system.
Even on a single-core software-emulation QEMU VM, we acquire more
than 10k spinlocks per second (sometimes even over 100k.) That makes
sense, as every syscall entry, mutex acquisition (even uncontended,
for KDEBUG kernels), etc. acquires a spinlock. So, reasonably, this
list will always be too small to detect much of anything at this point.

If we need a similar debugging facility, we should store addresses
or thread IDs in the lock structure. That will require a more significant
refactor to locking code, however, and it doesn't seem necessary at this
time, so I haven't implemented that (yet).
2026-05-21 13:41:52 -04:00
Augustin Cavalier 282c6a34f6 Package Kit: Fix memory leak in BRequest. 2026-05-21 12:58:53 -04:00
Augustin Cavalier 8c25999955 BTabView: Allow SetEnabled to work even if there is no view.
Amends 0a2766d6b0.
2026-05-21 12:58:35 -04:00
Augustin Cavalier f5842905e3 kernel/UserTimer: Major overhaul of the locking design.
* Get rid of the global sUserTimerLock. This was added in 2013
   to prepare for the removal of the global scheduler lock, which
   is what all these routines previously used. The locking design
   was never redesigned since then to accomodate for the changes,
   it appears.

 * Make CPU timers always locked by time_lock, and the system-time
   timers locked by a local lock.

 * Make fScheduled load-bearing as to whether the timer is presently
   in the team/thread lists or not.

 * Don't re-fetch the team/thread every wait cycle. This allows us
   to avoid a lock/unlock dance that would otherwise complicate
   the scheduling logic significantly.

Tested using the old version of the Open POSIX Testsuite (which
indeed caught some bugs in earlier versions of this patch.) All
12 timer_create tests still pass, including the ones that depend on
timers firing within the right timeframe.

Fixes #20090.

Change-Id: I54dd9a49e72f51711baa0fbf18e5c35a7fafec8f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11007
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-05-21 16:54:52 +00:00
Augustin Cavalier 6eec6769f2 kernel: Update comments and add some asserts around the user timers.
Change-Id: I8c5e8faaf9c9a3eb86c1faed29beee4ab2958b3c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11006
Reviewed-by: waddlesplash <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-05-21 16:54:52 +00:00
John Scipione a950196770 Tracker: Set draw mode to alpha composite when drawing outlines: fixes #20095
Change-Id: Ic5715e9e8ed8af740337dd097f009d44cb2c1b19
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10982
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-05-20 01:41:15 +00:00
Augustin Cavalier 57a5a0ff6c kernel/debug: Enter KDL even if some CPUs can't be trapped in it.
Otherwise the system just hangs, which isn't good.

Turns #20090 from a hang into a KDL, as one CPU is stuck in a loop
with interrupts disabled.
2026-05-19 15:25:02 -04:00
Augustin Cavalier ced8a80543 kernel/vm: vm_page_requeue() must be called with the page in ACCESS state.
Should hopefully fix #20103.
2026-05-19 14:55:14 -04:00
Augustin Cavalier 41b45506fc kernel: Add missing NULL check in LegacyDevice::Control.
Fixes #20091.
2026-05-19 13:32:10 -04:00
Augustin Cavalier ff1c6abba8 build_cross_tools (GCC2): Use -std=gnu89 for GCC 13 also.
It shouldn't hurt, and may fix the build in more environments.
2026-05-19 13:15:41 -04:00
Augustin Cavalier c6024e1bff kernel/thread: Assert that thread->pinned_to_cpu does not become negative.
May help with diagnosing #20100.
2026-05-18 11:45:33 -04:00
Sam Roberts 1ca6acfaf9 arm64: SMP & CPU startup improvements
- Add more secondary CPU startup methods:
  PSCI using EL3 secure monitor calls (used on most ARM64 CPUs)
  Spin tables (used on Apple CPUs, which lack EL3)
- Secondary startup code was rewritten to pass all needed info
  to secondaries using static variables, since we can't
  pass any info to secondaries when using spin tables
- Setup MMU state to known good values as early as possible
  instead of relying on the values set by the bootloader.

  This also requires generating new page tables, since we're
  (potentially) changing MAIR as well as the address space sizes
  (which determine the number of page table levels we need)

Change-Id: I3b90aab04090fa0c6a8ad82a01df7fee6a6a6964
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10984
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-05-18 15:36:55 +00:00
Sam Roberts f76d1033cc arm64: GICv2 fixes for booting on Pi 5
- GICv2 _PerCpuInit and _EnableInterrupt were called twice,
  before and within the call_all_cpus_sync
- GICv2 addresses were truncated to 32-bits
- Add "arm,gic-400" compatible

Change-Id: I34d62cb77f7ac002459c931ac750c8306a6a6964
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10983
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-05-18 15:36:55 +00:00
Autocomitter 723e5042bf Update translations from Pootle 2026-05-16 08:09:00 +00:00
SED4906 03743ca2b4 Fix build when HOST_CC is GCC 16
The default C++ standard in GCC 16 is C++20 (from C++17),
which introduced "requires" as a keyword. This caused the
build of libsolv (and libpackage) to break.

fs_shell now sets -std=c++11 as in bfs_shell. Both define
__STRICT_ANSI__ to avoid using certain headers, which now
causes conflicts related to __int128 when the standard is
not actually strict ANSI.

Change-Id: Ie142fb87eb79a20fe0c1b5f3fdd3b94899eaff48
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10980
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-05-15 20:05:51 +00:00
Humdinger 25c654834f StyledEdit: Improved color choices.
* Tweak colors to be better distinguishable in light and dark themes.
* Added more gray shades.
* Add a border around the color squares so that they're clearly
  distinguishable from the background.
* Add extra border around selected color and remove the check mark.
* Tweak "Default" color label position.

Fixes #20078

Change-Id: I8cb784ef30d3b2dcb8317e25f4f68f8632954b26
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10948
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: nephele nephele <[email protected]>
Reviewed-by: humdinger humdinger <[email protected]>
Reviewed-by: John Scipione <[email protected]>
2026-05-15 18:02:48 +00:00
nipos 73bbb6644e ShowImage: Avoid cutting off the toolbar in fullscreen mode
Fixes #20013

Change-Id: Iab55f9315473b8c010a9853ea9c9fa75b37d66df
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10617
Reviewed-by: waddlesplash <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-05-15 06:34:09 +00:00
PulkoMandy 36aa36d060 Increase PTHREAD_KEYS_MAX from 256 to 512
Current values from other systems:

- Linux/glibc: 1024
- OpenBSD: 512
- FreeBSD and NetBSD: 256

256 keys causes a problem with the Rust compiler running out of TLS keys
See: https://github.com/haikuports/haikuports/issues/14042
See: https://github.com/rust-lang/rust/issues/155758

Change-Id: I932a7fc8508c4ab7d93d2ef610d9746134df779b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10976
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-05-15 06:31:05 +00:00
Nathan Patrizi 600d6fe7fc realtekwifi8187: Add BSD urtw driver
Add urtw network driver from FreeBSD 15.
Supports RTL8187B/L USB IEEE 802.11b/g devices.
Adds support for the following USB wifi devices (from urtw man page):

Belkin F5D7050E
Linksys WUSB54GCv2
Netgear WG111v2
Netgear WG111v3
Safehome WLG-1500SMA5
Shuttle XPC Accessory PN20
Sitecom WL168v1
Sitecom WL168v4
SureCom EP-9001-g(2A)
TRENDnet TEW-424UB

This has been successfully tested with a WG111v2 54 Mbps Wireless [RealTek RTL8187L] usb dongle.

Change-Id: I90717292a03b1a92c4346ecd6c9b8f3e1470e0cd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10977
Reviewed-by: waddlesplash <[email protected]>
2026-05-14 19:52:21 +00:00
Nathan Patrizi 44db3b4909 freebsd_network: Add usbd_xfer_get_frame_buffer function
Required by certain drivers such as urtw.

Change-Id: Ifc36461844d4e149ce3355f0260449a6f2310628
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10978
Reviewed-by: waddlesplash <[email protected]>
2026-05-14 19:29:56 +00:00
John Scipione 7b8f09dc61 Tracker: Make selected pose text semi-transparent on drag.
- cut items 75% opaque
- dragged items 50% opaque
- cut dragged items 25% opaque

Fixes #19429.

Change-Id: I0278d5aa57d06e11907dd17810feb539cd5b22ab
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10887
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: John Scipione <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-05-13 16:17:08 +00:00