)]}'
{
  "log": [
    {
      "commit": "9111f16fd1a88c4222dc825da4e8d5a25a97b232",
      "tree": "9854cf2e7cf308e56b86f30405cbd943427cf667",
      "parents": [
        "d3b7828977c63a5b197158d6cbbdaf1846b579fb",
        "85e26fb4d3da77196e6a0dfc7a70cadcf851912a"
      ],
      "author": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Sep 10 21:14:43 2026 -0700"
      },
      "committer": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Sep 10 21:14:43 2026 -0700"
      },
      "message": "Merge changes from patch branch back to main.\n"
    },
    {
      "commit": "85e26fb4d3da77196e6a0dfc7a70cadcf851912a",
      "tree": "db3d816d1699a3f5501f6ecc624fe339140d07fc",
      "parents": [
        "0dff6c154899c02214dcd9daeb8ca2b5e8d04ec8",
        "6fb604f9b27b2ae64a479db7bad5af3c6bf8d53e"
      ],
      "author": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Sep 10 21:14:43 2026 -0700"
      },
      "committer": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Sep 10 21:14:43 2026 -0700"
      },
      "message": "Merge 1.6.1 changes back to patch.\n"
    },
    {
      "commit": "6fb604f9b27b2ae64a479db7bad5af3c6bf8d53e",
      "tree": "e447b21da2146a18675f8b7c7a3d57b491bf14a4",
      "parents": [
        "06a094d01943a0f342612001ae8c8edd92ccff6d",
        "ab36756b596520ae2a94cd4d25e406e0b5aa820b"
      ],
      "author": {
        "name": "Mike Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Sep 10 09:41:09 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 10 09:41:09 2026 -0700"
      },
      "message": "GUACAMOLE-2328: Merge migration to initializing FreeRDP GDI within PostConnect."
    },
    {
      "commit": "ab36756b596520ae2a94cd4d25e406e0b5aa820b",
      "tree": "e447b21da2146a18675f8b7c7a3d57b491bf14a4",
      "parents": [
        "06a094d01943a0f342612001ae8c8edd92ccff6d"
      ],
      "author": {
        "name": "Stu Dixon",
        "email": "sdixon@wesdx.com",
        "time": "Thu Sep 10 10:42:29 2026 +0100"
      },
      "committer": {
        "name": "Stu Dixon",
        "email": "sdixon@wesdx.com",
        "time": "Thu Sep 10 10:46:53 2026 +0100"
      },
      "message": "GUACAMOLE-2328: Initialize the FreeRDP GDI within PostConnect, not PreConnect.\n\ngdi_init() requires that the rdpContext cache already exist. That cache is not\ncreated until the connection sequence reaches Confirm Active, which occurs after\nthe PreConnect callback has returned. Calling gdi_init() from PreConnect\ntherefore dereferences a NULL cache within gdi_init_ex(), aborting or crashing\nthe connection before any session can be established.\n\nThis is only observable with FreeRDP 3.31.0 and later. Earlier versions created\nthe cache within gdi_init_ex() itself, so the call ordering went unnoticed.\nPostConnect is where FreeRDP\u0027s own reference clients call gdi_init(), and is\nalso where the GDI is sized using the display geometry the server actually\nnegotiated rather than the geometry initially requested.\n\nThe pointer registration and update handler assignments move along with\ngdi_init(). They must follow it: gdi_init() installs FreeRDP\u0027s own BeginPaint,\nEndPaint, and DesktopResize handlers, silently replacing anything registered\nbeforehand.\n\nVerified against both FreeRDP 3.30.0 and 3.31.0, connecting to an RDP server\nthat authenticates successfully and confirming that drawing instructions\ncontinue to be produced in both cases.\n"
    },
    {
      "commit": "d3b7828977c63a5b197158d6cbbdaf1846b579fb",
      "tree": "5d41cc0ee285bd7be49afa65bf87d4a56842c5ad",
      "parents": [
        "be83001bda2e60f1356604c91144628e8150afeb",
        "0dff6c154899c02214dcd9daeb8ca2b5e8d04ec8"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Fri Aug 28 19:42:47 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Fri Aug 28 19:42:47 2026 -0400"
      },
      "message": "Merge patch branch changes to main.\n"
    },
    {
      "commit": "0dff6c154899c02214dcd9daeb8ca2b5e8d04ec8",
      "tree": "9e5569029dba8f04560c8feee12566d545b2075e",
      "parents": [
        "b3ca154bc1ad4f093803c2efb569c2d5da12d331",
        "06a094d01943a0f342612001ae8c8edd92ccff6d"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Fri Aug 28 19:41:44 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Fri Aug 28 19:41:44 2026 -0400"
      },
      "message": "Merge 1.6.1 changes to patch.\n"
    },
    {
      "commit": "06a094d01943a0f342612001ae8c8edd92ccff6d",
      "tree": "0e9baf66bc9162718458a3e65be516c3ffda562a",
      "parents": [
        "f22a2df129d9ecf279466e9bcf44cd026e23e6bd",
        "3feb20c0f5ae8476957d3a45f51addd7ea3de698"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "necouchman@users.noreply.github.com",
        "time": "Mon Aug 24 19:25:54 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 24 19:25:54 2026 -0400"
      },
      "message": "GUACAMOLE-2319: Merge fix SFTP symlink dirs shown as files when root is not system root."
    },
    {
      "commit": "3feb20c0f5ae8476957d3a45f51addd7ea3de698",
      "tree": "0e9baf66bc9162718458a3e65be516c3ffda562a",
      "parents": [
        "f22a2df129d9ecf279466e9bcf44cd026e23e6bd"
      ],
      "author": {
        "name": "eugen-keeper",
        "email": "ehartmann@keepersecurity.com",
        "time": "Tue Aug 18 13:59:31 2026 -0400"
      },
      "committer": {
        "name": "eugen-keeper",
        "email": "ehartmann@keepersecurity.com",
        "time": "Mon Aug 24 21:44:03 2026 +0000"
      },
      "message": "GUACAMOLE-2319: Fix SFTP symlink dirs shown as files when root is not system root.\n"
    },
    {
      "commit": "be83001bda2e60f1356604c91144628e8150afeb",
      "tree": "2862223e787c3e5194e86f14c9c3f05a21c883ac",
      "parents": [
        "be607c1fc6d6d378d2f902258806b7eb6cba607a",
        "b3ca154bc1ad4f093803c2efb569c2d5da12d331"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Thu Aug 06 21:24:17 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Thu Aug 06 21:24:17 2026 -0400"
      },
      "message": "Merge patch branch changes to main.\n"
    },
    {
      "commit": "b3ca154bc1ad4f093803c2efb569c2d5da12d331",
      "tree": "a82e22b60f4449fb6d423eb92f5c8b11d5217094",
      "parents": [
        "d75c8284643cb8bb7b822e5296d49228e77e60fa",
        "f22a2df129d9ecf279466e9bcf44cd026e23e6bd"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Thu Aug 06 21:23:32 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Thu Aug 06 21:23:32 2026 -0400"
      },
      "message": "Merge 1.6.1 changes to patch.\n"
    },
    {
      "commit": "f22a2df129d9ecf279466e9bcf44cd026e23e6bd",
      "tree": "ed3e626151e86f2c8cadefc6e939aea4a0f35153",
      "parents": [
        "f8a5f734e818cb15c65bc0ffc0147036941ddca0",
        "801c24a43548692d3c0bd38c276dad6e2c95dd38"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "necouchman@users.noreply.github.com",
        "time": "Thu Aug 06 21:13:33 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 21:13:33 2026 -0400"
      },
      "message": "GUACAMOLE-2314: Merge allow guacd to start when /etc/guacamole/guacd.conf doesn\u0027t exist."
    },
    {
      "commit": "be607c1fc6d6d378d2f902258806b7eb6cba607a",
      "tree": "2d84adc5b7c463516e5d76bf8bf310c1d9ba54cd",
      "parents": [
        "8a4fbe65a00016bd2469b0153179c9d21398b8a0",
        "d75c8284643cb8bb7b822e5296d49228e77e60fa"
      ],
      "author": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Aug 06 16:29:42 2026 -0700"
      },
      "committer": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Aug 06 16:29:42 2026 -0700"
      },
      "message": "Merge changes from patch branch back to main.\n"
    },
    {
      "commit": "d75c8284643cb8bb7b822e5296d49228e77e60fa",
      "tree": "a58aad3c4bf2c1e8fef1c0d312b9ae9f8717ec17",
      "parents": [
        "325a6dfe82dd2b9711b29f21719d0aebd23a33c7",
        "f8a5f734e818cb15c65bc0ffc0147036941ddca0"
      ],
      "author": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Aug 06 16:29:41 2026 -0700"
      },
      "committer": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Aug 06 16:29:41 2026 -0700"
      },
      "message": "Merge 1.6.1 changes back to patch.\n"
    },
    {
      "commit": "f8a5f734e818cb15c65bc0ffc0147036941ddca0",
      "tree": "42382a902a9779233e9b5ed1552a03f7f135ab62",
      "parents": [
        "f691de490cb26f030116492869176b7abc2b08c2",
        "bfc05dc4ee90792e67a646d965d45790bab1f6f0"
      ],
      "author": {
        "name": "Mike Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Aug 06 16:27:25 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 16:27:25 2026 -0700"
      },
      "message": "GUACAMOLE-2118: Merge automatic shutdown of user input socket at connection end."
    },
    {
      "commit": "f691de490cb26f030116492869176b7abc2b08c2",
      "tree": "60cbe05c538ec5346edb4e9c44137627c5b3912f",
      "parents": [
        "863ac868e64316edbd6898f3e481fdee72c8abfb",
        "83af0f45c3b2099297e85734d1eb4901f6d3e050"
      ],
      "author": {
        "name": "Mike Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Aug 06 16:24:52 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 16:24:52 2026 -0700"
      },
      "message": "GUACAMOLE-1625: Merge automatic closure of file descriptors inherited by connection processes."
    },
    {
      "commit": "8a4fbe65a00016bd2469b0153179c9d21398b8a0",
      "tree": "bad00892378b29074c75b7a25dabff0e74ddb6ff",
      "parents": [
        "0e55d4141f5c3895bfb8368432d46ab173482564",
        "325a6dfe82dd2b9711b29f21719d0aebd23a33c7"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Thu Aug 06 14:49:37 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Thu Aug 06 14:49:37 2026 -0400"
      },
      "message": "Merge patch branch changes to main.\n"
    },
    {
      "commit": "325a6dfe82dd2b9711b29f21719d0aebd23a33c7",
      "tree": "d61257655e1cf50ad10b7530075477afbc6e06a4",
      "parents": [
        "e83a0af2149dc7b39af75e4e10f75856ea1a7475",
        "863ac868e64316edbd6898f3e481fdee72c8abfb"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Thu Aug 06 14:48:41 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Thu Aug 06 14:48:41 2026 -0400"
      },
      "message": "Merge 1.6.1 changes to patch branch.\n"
    },
    {
      "commit": "863ac868e64316edbd6898f3e481fdee72c8abfb",
      "tree": "91f14e64b0a3cab17f14426c75028f3d774f09fb",
      "parents": [
        "a462f18722ce31c449f31b2f04bfa531825e2624",
        "4bdca4c7639e0ccc97dfbe2fe2cfc40b9ba1ced5"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "necouchman@users.noreply.github.com",
        "time": "Thu Aug 06 14:44:49 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 14:44:49 2026 -0400"
      },
      "message": "GUACAMOLE-2313: Merge disambiguate handling of lock modifiers and Mac-specific keys."
    },
    {
      "commit": "801c24a43548692d3c0bd38c276dad6e2c95dd38",
      "tree": "75d837bee2a7476a37c223c36c2cecb11bde5802",
      "parents": [
        "a462f18722ce31c449f31b2f04bfa531825e2624"
      ],
      "author": {
        "name": "KCM Build",
        "email": "dev@keepersecurity.com",
        "time": "Wed Aug 05 13:12:07 2026 -0400"
      },
      "committer": {
        "name": "KCM Build",
        "email": "dev@keepersecurity.com",
        "time": "Thu Aug 06 11:20:10 2026 -0400"
      },
      "message": "GUACAMOLE-2314: guacd fails to start when /etc/guacamole/guacd.conf doesn\u0027t exist.\n"
    },
    {
      "commit": "bfc05dc4ee90792e67a646d965d45790bab1f6f0",
      "tree": "45d63d032d4f0810f613c6db74147261c9afb730",
      "parents": [
        "a462f18722ce31c449f31b2f04bfa531825e2624"
      ],
      "author": {
        "name": "Heyzi",
        "email": "aaplatonov@sberdevices.ru",
        "time": "Tue Aug 04 21:19:45 2026 +0300"
      },
      "committer": {
        "name": "Heyzi",
        "email": "aaplatonov@sberdevices.ru",
        "time": "Thu Aug 06 10:48:44 2026 +0300"
      },
      "message": "GUACAMOLE-2118: Signal end of user input to connection processes.\n\nOnce no further data can be read from a user, the thread forwarding that\nuser\u0027s input simply returns, leaving its end of the socketpair shared with the\nconnection process open. A user which vanishes without sending \"disconnect\"\ntherefore leaves that process blocked awaiting input indefinitely: nothing\nfurther informs it that its last user has left, so it never stops itself and\nnever exits.\n\nThe thread reading from that process cannot detect this either, as it remains\nblocked on a socket which an idle process will never write to again, and so\nnever reaches the point at which it would close its end.\n\nShut down the write side of the socketpair when no further user input is\npossible, such that the connection process observes end of input.\n"
    },
    {
      "commit": "83af0f45c3b2099297e85734d1eb4901f6d3e050",
      "tree": "29c289e420622f8b19a370f46dd4647f1e946ce9",
      "parents": [
        "bba760afbecf59adc1bb723b4fb93bd6245aa213"
      ],
      "author": {
        "name": "Heyzi",
        "email": "aaplatonov@sberdevices.ru",
        "time": "Wed Aug 05 13:12:02 2026 +0300"
      },
      "committer": {
        "name": "Heyzi",
        "email": "aaplatonov@sberdevices.ru",
        "time": "Thu Aug 06 10:48:44 2026 +0300"
      },
      "message": "GUACAMOLE-1625: Prefer close_range() when closing inherited descriptors.\n\nTesting each descriptor individually costs a syscall per descriptor, which\nclose_range() avoids entirely. Where it is unavailable, the cost is bounded by\nclosing only those descriptors which are actually open, as the limit on the\nnumber of descriptors may be orders of magnitude greater than the number in\nuse.\n\nA C library may lack a wrapper for close_range() while the kernel still\nprovides the system call, in which case it is invoked directly. That is the\ncase for musl, and thus for the guacd Docker image.\n\nDescriptors are no longer tested to determine whether they refer to sockets.\nEvery descriptor inherited here is a socket, and neither libuuid nor OpenSSL\nretains one across the fork, both obtaining randomness through getrandom().\n"
    },
    {
      "commit": "bba760afbecf59adc1bb723b4fb93bd6245aa213",
      "tree": "37c1fbfa48eac05b347b66ae2cd9da9998da7e3a",
      "parents": [
        "a462f18722ce31c449f31b2f04bfa531825e2624"
      ],
      "author": {
        "name": "Heyzi",
        "email": "aaplatonov@sberdevices.ru",
        "time": "Tue Aug 04 21:19:31 2026 +0300"
      },
      "committer": {
        "name": "Heyzi",
        "email": "aaplatonov@sberdevices.ru",
        "time": "Thu Aug 06 10:48:44 2026 +0300"
      },
      "message": "GUACAMOLE-1625: Close sockets inherited by connection processes.\n\nConnection processes inherit every descriptor open in the parent, as\nguacd_create_proc() closes only its own end of the socketpair it shares with\nthe new child. For a busy parent, this means the parent\u0027s end of every other\nconnection\u0027s user socketpair, the parent\u0027s end of every other connection\nprocess\u0027 socketpair, and the socket guacd listens on. FD_CLOEXEC cannot help,\nas connection processes are forked but never exec\u0027d.\n\nThose inherited descriptors keep unrelated sockets referenced after the parent\nhas closed them, so their peers never observe EOF. A write which should fail\nwith EPIPE instead blocks forever, and that blocked write is performed while\nholding a read lock on the client\u0027s list of users, so guac_client_remove_user()\ncan never acquire the corresponding write lock. The count of connected users\ntherefore never reaches zero, guacd_proc_stop() is never called, and the\nprocess never exits.\n\nThe effect compounds, as the more connections are open, the more descriptors\neach new process inherits. A parent with 469 such processes was observed\nholding tens of gigabytes, with descriptor counts rising from 98 in the oldest\nprocess to 756 in the youngest, and a single socket held by 40 of 40 sampled\nprocesses.\n\nClose inherited sockets within the newly-forked process. Only sockets are\nclosed, as descriptors for anything else may be held by libraries unaware that\nthey are being closed, and reusing such a number for a later socket would\nsilently redirect their reads and writes.\n"
    },
    {
      "commit": "4bdca4c7639e0ccc97dfbe2fe2cfc40b9ba1ced5",
      "tree": "91f14e64b0a3cab17f14426c75028f3d774f09fb",
      "parents": [
        "738ebcf8a84e2d88bc874d38690ffeb7bbb5b688"
      ],
      "author": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Mon Aug 03 17:30:22 2026 -0700"
      },
      "committer": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Aug 06 00:19:42 2026 -0700"
      },
      "message": "GUACAMOLE-2313: Do not scroll the terminal to the bottom for modifier keys.\n"
    },
    {
      "commit": "738ebcf8a84e2d88bc874d38690ffeb7bbb5b688",
      "tree": "4f4ed9b3cde16aa83370b93d51a0964168a25db7",
      "parents": [
        "dd2038a7cc4d461e4009d0d90463407ab6045f37"
      ],
      "author": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Mon Aug 03 01:48:47 2026 -0700"
      },
      "committer": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Aug 06 00:19:41 2026 -0700"
      },
      "message": "GUACAMOLE-2313: Synchronize VNC lock key state when supported.\n"
    },
    {
      "commit": "dd2038a7cc4d461e4009d0d90463407ab6045f37",
      "tree": "42c2880b00f22be2a1279678c80e88a279909d60",
      "parents": [
        "c220d9ddaf2369f5159ae8aabbe943eb0d92a738"
      ],
      "author": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Mon Aug 03 01:41:35 2026 -0700"
      },
      "committer": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Aug 06 00:19:41 2026 -0700"
      },
      "message": "GUACAMOLE-2313: Translate Command/Option keys in VNC connections to general VNC keysym conventions.\n"
    },
    {
      "commit": "c220d9ddaf2369f5159ae8aabbe943eb0d92a738",
      "tree": "282b0fc0cd2d8775f626cf4bd2a0d280d8c8e961",
      "parents": [
        "a462f18722ce31c449f31b2f04bfa531825e2624"
      ],
      "author": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Mon Aug 03 01:38:13 2026 -0700"
      },
      "committer": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Aug 06 00:19:41 2026 -0700"
      },
      "message": "GUACAMOLE-2313: Handle macOS Option keypresses in RDP as equivalent to AltGr.\n"
    },
    {
      "commit": "0e55d4141f5c3895bfb8368432d46ab173482564",
      "tree": "1fd99380dcc66ee57e507fc2a0c897e95f069486",
      "parents": [
        "de97609007c088b5e6afd827eff5e9076013a247",
        "e83a0af2149dc7b39af75e4e10f75856ea1a7475"
      ],
      "author": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Aug 06 00:19:25 2026 -0700"
      },
      "committer": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Aug 06 00:19:25 2026 -0700"
      },
      "message": "Merge changes from patch branch back to main.\n"
    },
    {
      "commit": "e83a0af2149dc7b39af75e4e10f75856ea1a7475",
      "tree": "1ed718087600d2e22b8a267f2ba4c5c0e1f6343c",
      "parents": [
        "01734a39fc013910b937a738a0a92846a53c005d",
        "a462f18722ce31c449f31b2f04bfa531825e2624"
      ],
      "author": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Aug 06 00:19:24 2026 -0700"
      },
      "committer": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Aug 06 00:19:24 2026 -0700"
      },
      "message": "Merge 1.6.1 changes back to patch.\n"
    },
    {
      "commit": "a462f18722ce31c449f31b2f04bfa531825e2624",
      "tree": "25d542bee3d6d1fec8db49a257286260f5efca6f",
      "parents": [
        "336d5e80219159958dfa3e1e6662aac8fdc6a7cc",
        "894cb2ec159f734a71795888e1c225759efe9ae8"
      ],
      "author": {
        "name": "Mike Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Aug 06 00:18:53 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 00:18:53 2026 -0700"
      },
      "message": "GUACAMOLE-2315: Merge fix for Docker libwebsockets build (disable HTTP/3)."
    },
    {
      "commit": "894cb2ec159f734a71795888e1c225759efe9ae8",
      "tree": "25d542bee3d6d1fec8db49a257286260f5efca6f",
      "parents": [
        "336d5e80219159958dfa3e1e6662aac8fdc6a7cc"
      ],
      "author": {
        "name": "Heyzi",
        "email": "aaplatonov@sberdevices.ru",
        "time": "Thu Aug 06 09:57:23 2026 +0300"
      },
      "committer": {
        "name": "Heyzi",
        "email": "aaplatonov@sberdevices.ru",
        "time": "Thu Aug 06 09:57:23 2026 +0300"
      },
      "message": "GUACAMOLE-2315: Disable HTTP/3 support when building libwebsockets.\n\nlibwebsockets 5.0.0 enables HTTP/3 by default, and HTTP/3 in turn forces\nLWS_WITH_GNUTLS on, for which the builder stage installs no packages. As the\nversion pattern for libwebsockets is unpinned, that release is selected\nautomatically and the build fails.\n\nNothing within guacd requires HTTP/3, libwebsockets being used only for\nKubernetes support. Disabling it leaves libwebsockets building against the\nOpenSSL already present in the image, and avoids pinning the version.\n"
    },
    {
      "commit": "de97609007c088b5e6afd827eff5e9076013a247",
      "tree": "c264ff36d885c301fbf7492a21223fe0de98afc0",
      "parents": [
        "6719b20d09b767d30915c5e1c626a7a72fc75a59",
        "01734a39fc013910b937a738a0a92846a53c005d"
      ],
      "author": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Tue Jul 28 01:57:17 2026 -0700"
      },
      "committer": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Tue Jul 28 01:57:17 2026 -0700"
      },
      "message": "Merge changes from patch branch back to main.\n"
    },
    {
      "commit": "01734a39fc013910b937a738a0a92846a53c005d",
      "tree": "c308dbcad618f25e9cb1654e544bb82c82c51340",
      "parents": [
        "d69b3dc05673b153e7fdb51c15930210697fe7d0",
        "336d5e80219159958dfa3e1e6662aac8fdc6a7cc"
      ],
      "author": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Tue Jul 28 01:57:16 2026 -0700"
      },
      "committer": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Tue Jul 28 01:57:16 2026 -0700"
      },
      "message": "Merge 1.6.1 changes back to patch.\n"
    },
    {
      "commit": "336d5e80219159958dfa3e1e6662aac8fdc6a7cc",
      "tree": "924416017fae246e051b21152862e88eccda2fc7",
      "parents": [
        "c942b8b71979e03598ac82369af82eaa1d3f0234",
        "0f11550c58d7cbdc44226ba0d5b2c1be6c8deea6"
      ],
      "author": {
        "name": "Mike Jumper",
        "email": "mjumper@apache.org",
        "time": "Tue Jul 28 01:56:47 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 28 01:56:47 2026 -0700"
      },
      "message": "GUACAMOLE-2273: Merge support for FreeRDP AuthenticateEx callback."
    },
    {
      "commit": "0f11550c58d7cbdc44226ba0d5b2c1be6c8deea6",
      "tree": "81110a71b8a838dc0e8046d5e106bb472566e7d8",
      "parents": [
        "b855cbc2c19d7b8fa4e47b3c50cb6e2d9b28643d"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Mon Jul 20 19:57:45 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Mon Jul 27 11:09:50 2026 -0400"
      },
      "message": "GUACAMOLE-2273: Handle FreeRDP version support for authentication reasons; support requesting gateway authentication.\n"
    },
    {
      "commit": "b855cbc2c19d7b8fa4e47b3c50cb6e2d9b28643d",
      "tree": "52688764ada3d0262aed395ef5a6a5bb0bf247e6",
      "parents": [
        "95fe75ca517bddedfe67e603dca973e532d4ea12"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Wed Jul 15 13:05:10 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Mon Jul 20 17:10:43 2026 -0400"
      },
      "message": "GUACAMOLE-2273: De-duplicate RDP authentication code.\n"
    },
    {
      "commit": "95fe75ca517bddedfe67e603dca973e532d4ea12",
      "tree": "070fabfaff7af059497bada8247a18b454830e06",
      "parents": [
        "09a52b64a98992a9bee9d7287d960344d9ef6b16"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Sun May 03 21:34:17 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Wed Jul 15 21:20:04 2026 -0400"
      },
      "message": "GUACAMOLE-2273: Implement FreeRDP AuthenticateEx callback and handle deprecation of Authenticate callback.\n"
    },
    {
      "commit": "c942b8b71979e03598ac82369af82eaa1d3f0234",
      "tree": "f150a0e7e5c0b5b7ca3cfa694a706000cb336056",
      "parents": [
        "09a52b64a98992a9bee9d7287d960344d9ef6b16",
        "5ca9f80f53705a03000f10beb88921f6cc209a23"
      ],
      "author": {
        "name": "Mike Jumper",
        "email": "mjumper@apache.org",
        "time": "Wed Jul 15 17:05:21 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 15 17:05:21 2026 -0700"
      },
      "message": "GUACAMOLE-2294: Merge fixes for minor, non-accumulating resource leaks in guacd/terminal/telnet."
    },
    {
      "commit": "6719b20d09b767d30915c5e1c626a7a72fc75a59",
      "tree": "0cee6e862d848dbbb2c315c1d0da5c04cd6df0c2",
      "parents": [
        "6ea0433907a499de5acff379649690255f7aa29f",
        "d69b3dc05673b153e7fdb51c15930210697fe7d0"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Mon Jul 13 14:46:38 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Mon Jul 13 14:46:38 2026 -0400"
      },
      "message": "Merge patch branch changes to main.\n"
    },
    {
      "commit": "d69b3dc05673b153e7fdb51c15930210697fe7d0",
      "tree": "957d9ac5be6893f8198c2413fc0ed606d6200a0c",
      "parents": [
        "969b66f87a6be5fd9787d240e0d8b1bcf70f3865",
        "09a52b64a98992a9bee9d7287d960344d9ef6b16"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Mon Jul 13 14:46:04 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Mon Jul 13 14:46:04 2026 -0400"
      },
      "message": "Merge 1.6.1 changes to patch branch.\n"
    },
    {
      "commit": "5ca9f80f53705a03000f10beb88921f6cc209a23",
      "tree": "3e39ec0741eef803788d1586ae51df148b1b9884",
      "parents": [
        "55f55caffb31a9bf88823c13d070c628ac29c68a"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Sun Jul 05 15:21:49 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Mon Jul 13 14:30:57 2026 -0400"
      },
      "message": "GUACAMOLE-2294: Handle telnet regex settings leaks.\n"
    },
    {
      "commit": "55f55caffb31a9bf88823c13d070c628ac29c68a",
      "tree": "142653adc01f6912c37a4b1a9559a3f841987567",
      "parents": [
        "257d9cdb2f6894acf19e9b850c3931ff48238d3e"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Sun Jul 05 15:10:24 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Mon Jul 13 14:30:57 2026 -0400"
      },
      "message": "GUACAMOLE-2294: Reorganize config file reading to avoid resource leak.\n"
    },
    {
      "commit": "257d9cdb2f6894acf19e9b850c3931ff48238d3e",
      "tree": "b120ce5f46cf97f3b5e5c746957769f8530d727d",
      "parents": [
        "4860abef318959fd5f05041d646980699f2cc842"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Sun Jul 05 14:47:31 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Mon Jul 13 14:30:49 2026 -0400"
      },
      "message": "GUACAMOLE-2294: Address multiple minor resource leaks.\n"
    },
    {
      "commit": "09a52b64a98992a9bee9d7287d960344d9ef6b16",
      "tree": "ba504a94aad851a210b00e76f6f2cf63aa4bac3f",
      "parents": [
        "ca3472b23c29d516ff331d34420f3d6f0437b8b5",
        "955d2a398e81a37b0afad14e5903ec39e8eb5a39"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "necouchman@users.noreply.github.com",
        "time": "Mon Jul 13 14:13:44 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 14:13:44 2026 -0400"
      },
      "message": "GUACAMOLE-2118: Merge correct non-deterministic hanging behavior encountered in guac_display."
    },
    {
      "commit": "955d2a398e81a37b0afad14e5903ec39e8eb5a39",
      "tree": "ba504a94aad851a210b00e76f6f2cf63aa4bac3f",
      "parents": [
        "5a20d3e781b0756be4d3b634cbd80147783d07fc"
      ],
      "author": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Sun Jul 12 00:27:43 2026 -0700"
      },
      "committer": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Sun Jul 12 21:15:09 2026 -0700"
      },
      "message": "GUACAMOLE-2118: Resize the cell tracking array when close_raw resizes an external buffer.\n"
    },
    {
      "commit": "5a20d3e781b0756be4d3b634cbd80147783d07fc",
      "tree": "5589d072881ac172e048fa25dbaaf66859fdac3c",
      "parents": [
        "1221b59fd12f28b1d2a5db49bd51b626d340568f"
      ],
      "author": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Sat Jul 11 23:45:39 2026 -0700"
      },
      "committer": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Sun Jul 12 21:15:09 2026 -0700"
      },
      "message": "GUACAMOLE-2118: Automatically detach external layer buffers when freeing layers.\n"
    },
    {
      "commit": "1221b59fd12f28b1d2a5db49bd51b626d340568f",
      "tree": "9ccd3f55881adf00179994f34f9d371eafadf9fd",
      "parents": [
        "704fdc487581195cc5bfccad1b816527c24153b2"
      ],
      "author": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Sat Jul 11 17:36:09 2026 -0700"
      },
      "committer": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Sun Jul 12 21:15:09 2026 -0700"
      },
      "message": "GUACAMOLE-2118: Defer destruction of removed layers until no operations reference them.\n"
    },
    {
      "commit": "704fdc487581195cc5bfccad1b816527c24153b2",
      "tree": "3b78fcb288c444d6c206cb6712f2ac4383214161",
      "parents": [
        "ca3472b23c29d516ff331d34420f3d6f0437b8b5"
      ],
      "author": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Sat Jul 11 16:08:24 2026 -0700"
      },
      "committer": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Sun Jul 12 21:15:08 2026 -0700"
      },
      "message": "GUACAMOLE-2118: Correct potential infinite loop in guac_display_frame_complete().\n"
    },
    {
      "commit": "6ea0433907a499de5acff379649690255f7aa29f",
      "tree": "436b6fc82d7595b4e0adfad2975812e78f85b4e9",
      "parents": [
        "8925e510dc2c442a3c1ca33cc5cc13c61b66210f",
        "969b66f87a6be5fd9787d240e0d8b1bcf70f3865"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Sun Jul 12 22:48:04 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Sun Jul 12 22:48:04 2026 -0400"
      },
      "message": "Merge patch branch changes to main.\n"
    },
    {
      "commit": "969b66f87a6be5fd9787d240e0d8b1bcf70f3865",
      "tree": "c7a589c5793e984180eb7e1666a837b7bf9d9100",
      "parents": [
        "7da3d87b3bb416c139f21deb6b92c60fe5392d09",
        "ca3472b23c29d516ff331d34420f3d6f0437b8b5"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Sun Jul 12 22:46:14 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Sun Jul 12 22:46:14 2026 -0400"
      },
      "message": "Merge 1.6.1 changes to patch branch.\n"
    },
    {
      "commit": "ca3472b23c29d516ff331d34420f3d6f0437b8b5",
      "tree": "5fa6965da7dc7b407ab20592239609f05e42db2b",
      "parents": [
        "a53f4cc5ff38bca698418197f6c968c23403d061",
        "6f4b4516350605f7a3135ef7db18b367d4188ae9"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "necouchman@users.noreply.github.com",
        "time": "Sun Jul 12 22:43:11 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 12 22:43:11 2026 -0400"
      },
      "message": "GUACAMOLE-2270: Merge Avoid ABBA deadlock between guac_display_dup() and frame flush."
    },
    {
      "commit": "7da3d87b3bb416c139f21deb6b92c60fe5392d09",
      "tree": "1e313361aaf3e8c8d87ca9064209cca5c7bfce79",
      "parents": [
        "0dfd36f4cb3e237523c261235b52a715f8247b4f",
        "c3c4685be6bc528870f2c2fe55e071df339280f3"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "necouchman@users.noreply.github.com",
        "time": "Sun Jul 12 22:41:54 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 12 22:41:54 2026 -0400"
      },
      "message": "GUACAMOLE-2136: Merge correct constness of results per GCC warnings."
    },
    {
      "commit": "a53f4cc5ff38bca698418197f6c968c23403d061",
      "tree": "b4c69fd3a653d85690f9eccfff2de9cf7de68074",
      "parents": [
        "2a4e793f6e3c3489df0ecccc435050b762fa155b",
        "9fe71ed8711e4e65e4448ab549c027d0ba86b801"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "necouchman@users.noreply.github.com",
        "time": "Sun Jul 12 22:36:43 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 12 22:36:43 2026 -0400"
      },
      "message": "GUACAMOLE-2182: Merge automatically include config.h in every relevant .c file."
    },
    {
      "commit": "9fe71ed8711e4e65e4448ab549c027d0ba86b801",
      "tree": "b4c69fd3a653d85690f9eccfff2de9cf7de68074",
      "parents": [
        "2a4e793f6e3c3489df0ecccc435050b762fa155b"
      ],
      "author": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Sat Jul 11 16:48:57 2026 -0700"
      },
      "committer": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Sun Jul 12 17:15:30 2026 -0700"
      },
      "message": "GUACAMOLE-2182: Automatically include config.h in every relevant .c file.\n"
    },
    {
      "commit": "c3c4685be6bc528870f2c2fe55e071df339280f3",
      "tree": "1e313361aaf3e8c8d87ca9064209cca5c7bfce79",
      "parents": [
        "0dfd36f4cb3e237523c261235b52a715f8247b4f"
      ],
      "author": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Sat Jul 11 16:47:30 2026 -0700"
      },
      "committer": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Sun Jul 12 17:13:36 2026 -0700"
      },
      "message": "GUACAMOLE-2136: Correct constness of results per GCC warnings.\n"
    },
    {
      "commit": "6f4b4516350605f7a3135ef7db18b367d4188ae9",
      "tree": "410a1b36adc7e8e3ed39e425c368adaec3fb2e7a",
      "parents": [
        "2a4e793f6e3c3489df0ecccc435050b762fa155b"
      ],
      "author": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Sat Jul 11 21:15:11 2026 -0700"
      },
      "committer": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Sun Jul 12 17:03:48 2026 -0700"
      },
      "message": "GUACAMOLE-2270: Avoid ABBA deadlock between guac_display_dup() and frame flush.\n"
    },
    {
      "commit": "8925e510dc2c442a3c1ca33cc5cc13c61b66210f",
      "tree": "2659c43636d9a2041ce3740e3e5ff43cca920375",
      "parents": [
        "d790c1a1cfb08903f5169e6a8389be0cab0cbe15",
        "0dfd36f4cb3e237523c261235b52a715f8247b4f"
      ],
      "author": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Jul 09 00:32:41 2026 -0700"
      },
      "committer": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Jul 09 00:32:41 2026 -0700"
      },
      "message": "Merge changes from patch branch back to main.\n"
    },
    {
      "commit": "0dfd36f4cb3e237523c261235b52a715f8247b4f",
      "tree": "3f44079f9d3f02d9432dfe516c814bcf8aadd064",
      "parents": [
        "889ad1cddc6b58b99b3cf5895609419ff6530797",
        "2a4e793f6e3c3489df0ecccc435050b762fa155b"
      ],
      "author": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Jul 09 00:32:41 2026 -0700"
      },
      "committer": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Jul 09 00:32:41 2026 -0700"
      },
      "message": "Merge 1.6.1 changes back to patch.\n"
    },
    {
      "commit": "2a4e793f6e3c3489df0ecccc435050b762fa155b",
      "tree": "a3e9987de7f5a3b0081d640b20dd759c4907f048",
      "parents": [
        "4860abef318959fd5f05041d646980699f2cc842",
        "9e1ee380601611101e5980eb0f7dc859fab98ab8"
      ],
      "author": {
        "name": "Mike Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Jul 09 00:30:37 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 09 00:30:37 2026 -0700"
      },
      "message": "GUACAMOLE-2295: Merge proper checking of setsockopt() and lseek() return values."
    },
    {
      "commit": "d790c1a1cfb08903f5169e6a8389be0cab0cbe15",
      "tree": "17951084fb5b37675c3b3c110d3a069af869f09f",
      "parents": [
        "805ffcfd9c4477c4fb982052b9d25b5cb3acd167",
        "820dd05a7d1277e3ea2abbe7ec35c57e3ca4e54f"
      ],
      "author": {
        "name": "Mike Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Jul 09 00:28:47 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 09 00:28:47 2026 -0700"
      },
      "message": "GUACAMOLE-2220: Merge fix for terminal issues caused by patch branch merge."
    },
    {
      "commit": "9e1ee380601611101e5980eb0f7dc859fab98ab8",
      "tree": "a3e9987de7f5a3b0081d640b20dd759c4907f048",
      "parents": [
        "4860abef318959fd5f05041d646980699f2cc842"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Sun Jul 05 15:01:01 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Wed Jul 08 17:15:44 2026 -0400"
      },
      "message": "GUACAMOLE-2295: Check setsockopt and lseek return values.\n"
    },
    {
      "commit": "820dd05a7d1277e3ea2abbe7ec35c57e3ca4e54f",
      "tree": "17951084fb5b37675c3b3c110d3a069af869f09f",
      "parents": [
        "805ffcfd9c4477c4fb982052b9d25b5cb3acd167"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Mon Jun 29 17:26:50 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Mon Jun 29 17:26:50 2026 -0400"
      },
      "message": "GUACAMOLE-2220: Fix terminal source issues caused by patch branch merge.\n"
    },
    {
      "commit": "805ffcfd9c4477c4fb982052b9d25b5cb3acd167",
      "tree": "c9a4dc9f91ae26d2e0ac6996c57fa9e9a0eb98bf",
      "parents": [
        "e775052aac8d32b84fb065018ae7f43cf1341023",
        "889ad1cddc6b58b99b3cf5895609419ff6530797"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Thu Jun 18 15:47:58 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Thu Jun 18 15:47:58 2026 -0400"
      },
      "message": "Merge patch branch changes to main.\n"
    },
    {
      "commit": "889ad1cddc6b58b99b3cf5895609419ff6530797",
      "tree": "a83e3c4ac9014aec7e64acde167f5730788fca80",
      "parents": [
        "3cba41e6ebc37ae0f5269025bf64f95bcaed2c98",
        "4860abef318959fd5f05041d646980699f2cc842"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Thu Jun 18 15:34:39 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Thu Jun 18 15:34:39 2026 -0400"
      },
      "message": "Merge 1.6.1 changes to patch branch.\n"
    },
    {
      "commit": "4860abef318959fd5f05041d646980699f2cc842",
      "tree": "7f9e252049ab009c0aa6e7f0dc3ee26e47ec253a",
      "parents": [
        "da898839f0926f1f1f0aac8d097a0f31dfc7765f",
        "57d287ff0513e51c7d6074dba7e3766f8b36a6e1"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "necouchman@users.noreply.github.com",
        "time": "Thu Jun 18 15:33:38 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 18 15:33:38 2026 -0400"
      },
      "message": "GUACAMOLE-2283: Merge add guacd process \u0026 thread naming."
    },
    {
      "commit": "57d287ff0513e51c7d6074dba7e3766f8b36a6e1",
      "tree": "7f9e252049ab009c0aa6e7f0dc3ee26e47ec253a",
      "parents": [
        "da898839f0926f1f1f0aac8d097a0f31dfc7765f"
      ],
      "author": {
        "name": "Bradley Bennett",
        "email": "bbennett@keepersecurity.com",
        "time": "Thu May 28 22:32:57 2026 -0400"
      },
      "committer": {
        "name": "KCM Build",
        "email": "dev@keepersecurity.com",
        "time": "Tue Jun 16 20:18:50 2026 -0400"
      },
      "message": "GUACAMOLE-2283: Runtime observability: add guacd process \u0026 thread naming.\n"
    },
    {
      "commit": "da898839f0926f1f1f0aac8d097a0f31dfc7765f",
      "tree": "f084b9a03faed4f9f2733ccaf711a8a9d0ef8e45",
      "parents": [
        "8e16cf2c062895a77f0fe9ed56f66c4d4b099d4e",
        "d98cddaa0ee8ca0a64594dec977cd48dba3205c3"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "necouchman@users.noreply.github.com",
        "time": "Wed May 20 09:14:26 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 09:14:26 2026 -0400"
      },
      "message": "GUACAMOLE-2220: Merge support Shift/Alt/Ctrl/Meta sequences for terminal navigation and function keys."
    },
    {
      "commit": "d98cddaa0ee8ca0a64594dec977cd48dba3205c3",
      "tree": "ccafcd6d04b9cd138744943a4fe834b3924fc913",
      "parents": [
        "8f8b8dffcca80887d8c077f4c593a65622c95d5d"
      ],
      "author": {
        "name": "Bradley Bennett",
        "email": "bbennett@keepersecurity.com",
        "time": "Wed May 06 12:11:07 2026 -0400"
      },
      "committer": {
        "name": "Bradley Bennett",
        "email": "bbennett@keepersecurity.com",
        "time": "Tue May 19 09:41:49 2026 -0400"
      },
      "message": "GUACAMOLE-2220: Kubernetes: add support for terminal-type.\n"
    },
    {
      "commit": "e775052aac8d32b84fb065018ae7f43cf1341023",
      "tree": "4bfaa8d2f74bc6c0b0de0cfd510570fd5170c049",
      "parents": [
        "b706199e8690b8f7c6ea5e67d7ba67bca61d076f",
        "4410b7615ddf58a432f8dc7edaf943c0b04ebe65"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "necouchman@users.noreply.github.com",
        "time": "Thu May 14 16:47:42 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 16:47:42 2026 -0400"
      },
      "message": "GUACAMOLE-1969: Merge report Clipboard History in recordings."
    },
    {
      "commit": "b706199e8690b8f7c6ea5e67d7ba67bca61d076f",
      "tree": "db3bb566db80e4cd5f5ceb466830cb79178ec8f6",
      "parents": [
        "66478d5d1cacc7a4434b772d884e79176ba3998c",
        "4767e1898574918ee91723ee5dd3674f978c12b3"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "necouchman@users.noreply.github.com",
        "time": "Thu May 14 16:25:49 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 16:25:49 2026 -0400"
      },
      "message": "GUACAMOLE-522: Merge protocol-level support for USB Device Redirection."
    },
    {
      "commit": "66478d5d1cacc7a4434b772d884e79176ba3998c",
      "tree": "6a09d4853963ca3b13bcccd74c11e4994a93cf14",
      "parents": [
        "c802cdce5627b4e0df77987878824cb167a1f9ba",
        "3cba41e6ebc37ae0f5269025bf64f95bcaed2c98"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Thu May 07 21:42:25 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Thu May 07 21:42:25 2026 -0400"
      },
      "message": "Merge patch branch changes to main.\n"
    },
    {
      "commit": "3cba41e6ebc37ae0f5269025bf64f95bcaed2c98",
      "tree": "e08064d21b804700c5e503e6b292cc8872bc9eee",
      "parents": [
        "d35ed8f76c64357b4cda9e898cfaa96be4de9487",
        "8e16cf2c062895a77f0fe9ed56f66c4d4b099d4e"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Thu May 07 21:41:49 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Thu May 07 21:41:49 2026 -0400"
      },
      "message": "Merge 1.6.1 changes to patch branch.\n"
    },
    {
      "commit": "8e16cf2c062895a77f0fe9ed56f66c4d4b099d4e",
      "tree": "72bcaa6c1c017bbe68f251c84709212c47063c5f",
      "parents": [
        "7ca6234a4b921e4f0b191fcb2fcea83218a1b6c5",
        "17c9908cc195ae7e0532257eb34f21ab59065a6f"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "necouchman@users.noreply.github.com",
        "time": "Thu May 07 21:40:45 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 07 21:40:45 2026 -0400"
      },
      "message": "GUACAMOLE-2268: Merge gate VNC UTF-8 (Extended Clipboard) support behind config check."
    },
    {
      "commit": "17c9908cc195ae7e0532257eb34f21ab59065a6f",
      "tree": "f59195bf324a0166934ae6488ee1372c03a3c6c4",
      "parents": [
        "4163ead8be54baa35ef5f7ad8897a57497649112"
      ],
      "author": {
        "name": "Bradley Bennett",
        "email": "bbennett@keepersecurity.com",
        "time": "Thu May 07 10:08:08 2026 -0400"
      },
      "committer": {
        "name": "Bradley Bennett",
        "email": "bbennett@keepersecurity.com",
        "time": "Thu May 07 10:08:08 2026 -0400"
      },
      "message": "GUACAMOLE-2268: Gate VNC UTF-8 (Extended Clipboard) support behind configure check.\n"
    },
    {
      "commit": "4767e1898574918ee91723ee5dd3674f978c12b3",
      "tree": "34e87d75710bde1df97d1d361c5aa6453ae70ac4",
      "parents": [
        "d79f201f2572f5a0b563c7af804575db2055fc77"
      ],
      "author": {
        "name": "Alexander Leitner",
        "email": "aleitner@keepersecurity.com",
        "time": "Thu Aug 21 13:10:40 2025 -0400"
      },
      "committer": {
        "name": "Alexander Leitner",
        "email": "aleitner@keepersecurity.com",
        "time": "Wed May 06 22:07:49 2026 -0400"
      },
      "message": "GUACAMOLE-522: USB Device Redirection.\n"
    },
    {
      "commit": "4410b7615ddf58a432f8dc7edaf943c0b04ebe65",
      "tree": "4bdecebcfaca3f222303a8ce69ca5a86a8700e87",
      "parents": [
        "290ca0ec6f0b632ca175db0065817afb05c3efbf"
      ],
      "author": {
        "name": "Alexander Leitner",
        "email": "aleitner@keepersecurity.com",
        "time": "Mon Dec 15 14:19:54 2025 -0500"
      },
      "committer": {
        "name": "Alexander Leitner",
        "email": "aleitner@keepersecurity.com",
        "time": "Wed May 06 21:59:00 2026 -0400"
      },
      "message": "GUACAMOLE-1969: Record remote clipboard changes.\n"
    },
    {
      "commit": "290ca0ec6f0b632ca175db0065817afb05c3efbf",
      "tree": "e0e36544c045c2edb84a36d35d6889d778590cbc",
      "parents": [
        "c802cdce5627b4e0df77987878824cb167a1f9ba"
      ],
      "author": {
        "name": "Lukas Raska",
        "email": "lukas@raska.me",
        "time": "Fri Jul 19 14:11:26 2024 +0200"
      },
      "committer": {
        "name": "Alexander Leitner",
        "email": "aleitner@keepersecurity.com",
        "time": "Wed May 06 21:59:00 2026 -0400"
      },
      "message": "GUACAMOLE-1969: Implement recording-include-clipboard connection parameter\n"
    },
    {
      "commit": "c802cdce5627b4e0df77987878824cb167a1f9ba",
      "tree": "0c4d71e1b1208778ce721d7ef4bfcc405fa8c4ed",
      "parents": [
        "f076a54b37eccd03a5dec639e1105f0e9d8bbd13",
        "d35ed8f76c64357b4cda9e898cfaa96be4de9487"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Tue May 05 13:49:34 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Tue May 05 13:49:34 2026 -0400"
      },
      "message": "Merge patch branch changes to main.\n"
    },
    {
      "commit": "d35ed8f76c64357b4cda9e898cfaa96be4de9487",
      "tree": "2132f7c10ac8198c4d2b35ff02d4862ec12f6b67",
      "parents": [
        "1154900deb9d39798b275d1eb347bbb3245b49c8",
        "7ca6234a4b921e4f0b191fcb2fcea83218a1b6c5"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Tue May 05 13:42:20 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Tue May 05 13:42:20 2026 -0400"
      },
      "message": "Merge 1.6.1 changes to patch branch.\n"
    },
    {
      "commit": "8f8b8dffcca80887d8c077f4c593a65622c95d5d",
      "tree": "5766c043322492bd07868cf578a502930f2d2499",
      "parents": [
        "4163ead8be54baa35ef5f7ad8897a57497649112"
      ],
      "author": {
        "name": "Bradley Bennett",
        "email": "bbennett@keepersecurity.com",
        "time": "Tue Feb 17 09:02:16 2026 -0500"
      },
      "committer": {
        "name": "Bradley Bennett",
        "email": "bbennett@keepersecurity.com",
        "time": "Tue May 05 11:48:37 2026 -0400"
      },
      "message": "GUACAMOLE-2220: Terminal modifier keys.\n"
    },
    {
      "commit": "7ca6234a4b921e4f0b191fcb2fcea83218a1b6c5",
      "tree": "9de407db0c43111fe98bfc0dc4ba3207d69ab459",
      "parents": [
        "4163ead8be54baa35ef5f7ad8897a57497649112",
        "d9b72b33944e6e9b247fe0302a1112ad9cc81fd7"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "necouchman@users.noreply.github.com",
        "time": "Tue May 05 11:17:23 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 05 11:17:23 2026 -0400"
      },
      "message": "GUACAMOLE-2272: Merge add MacRoman clipboard encoding (server) support for VNC protocol."
    },
    {
      "commit": "d9b72b33944e6e9b247fe0302a1112ad9cc81fd7",
      "tree": "9de407db0c43111fe98bfc0dc4ba3207d69ab459",
      "parents": [
        "4163ead8be54baa35ef5f7ad8897a57497649112"
      ],
      "author": {
        "name": "Bradley Bennett",
        "email": "bbennett@keepersecurity.com",
        "time": "Thu Apr 30 20:11:44 2026 -0400"
      },
      "committer": {
        "name": "Bradley Bennett",
        "email": "bbennett@keepersecurity.com",
        "time": "Mon May 04 13:50:59 2026 -0400"
      },
      "message": "GUACAMOLE-2272: VNC: add MacRoman clipboard encoding support.\n"
    },
    {
      "commit": "4163ead8be54baa35ef5f7ad8897a57497649112",
      "tree": "3c3c6f262d9370d8a5078d248fe539d3da68a09e",
      "parents": [
        "871006bd4149380522e9f7aa101462090340b653",
        "da9773fd2ce07ac2290c74052ac2a4023a45802b"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "necouchman@users.noreply.github.com",
        "time": "Sun May 03 07:37:41 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 03 07:37:41 2026 -0400"
      },
      "message": "GUACAMOLE-2035: Merge add start-up period to guacd health check in Dockerfile."
    },
    {
      "commit": "da9773fd2ce07ac2290c74052ac2a4023a45802b",
      "tree": "3c3c6f262d9370d8a5078d248fe539d3da68a09e",
      "parents": [
        "871006bd4149380522e9f7aa101462090340b653"
      ],
      "author": {
        "name": "jeloneal",
        "email": "48490942+jeloneal@users.noreply.github.com",
        "time": "Mon Feb 24 10:51:44 2025 +0100"
      },
      "committer": {
        "name": "jeloneal",
        "email": "48490942+jeloneal@users.noreply.github.com",
        "time": "Sun May 03 10:08:04 2026 +0000"
      },
      "message": "GUACAMOLE-2035: Add start-up period to guacd health check in Dockerfile\n\nAdded start-period to docker healthcheck. Should fix containers being stuck in `starting` state for a long time causing issues with certain docker compose setups\n"
    },
    {
      "commit": "f076a54b37eccd03a5dec639e1105f0e9d8bbd13",
      "tree": "5b007059e19c99cce5e63f4a1906cdd55f0937b5",
      "parents": [
        "81c6066f1235b8689481b05a98a1ab257174b98e",
        "1154900deb9d39798b275d1eb347bbb3245b49c8"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Fri May 01 21:08:36 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Fri May 01 21:08:36 2026 -0400"
      },
      "message": "Merge patch branch changes to main.\n"
    },
    {
      "commit": "1154900deb9d39798b275d1eb347bbb3245b49c8",
      "tree": "dd6d0039994e258aeba0319c8826c9d53d33b99f",
      "parents": [
        "4e776b7387fe60b21114ccfe8b13c3b3ad0c5c05",
        "871006bd4149380522e9f7aa101462090340b653"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Fri May 01 21:08:02 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Fri May 01 21:08:02 2026 -0400"
      },
      "message": "Merge 1.6.1 changes to patch branch.\n"
    },
    {
      "commit": "871006bd4149380522e9f7aa101462090340b653",
      "tree": "1e25a93249c1a9d411001ca0560bc4d1b490df1a",
      "parents": [
        "aeecc68649b840363025427895475d435f7b9a8c",
        "8334bddf9e3a0ffbc2be9a60d80a68f3b8d94d31"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "necouchman@users.noreply.github.com",
        "time": "Fri May 01 19:43:33 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 19:43:33 2026 -0400"
      },
      "message": "GUACAMOLE-2264: Merge set CMAKE_BUILD_TYPE\u003dRelease for FreeRDP production builds."
    },
    {
      "commit": "81c6066f1235b8689481b05a98a1ab257174b98e",
      "tree": "ef8d22072088966ba1d69e427048aa4612e02899",
      "parents": [
        "2b0107384d8aabcd597a80ffe3d284aed16aae62",
        "4e776b7387fe60b21114ccfe8b13c3b3ad0c5c05"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Fri May 01 13:54:08 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Fri May 01 13:54:08 2026 -0400"
      },
      "message": "Merge patch branch changes to main.\n"
    },
    {
      "commit": "4e776b7387fe60b21114ccfe8b13c3b3ad0c5c05",
      "tree": "80c6cb5be24387dcb60ec56e6da5dca973ba0b43",
      "parents": [
        "0acfa2f5dc5af69cebbf78eacfe64df051cae8d9",
        "aeecc68649b840363025427895475d435f7b9a8c"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Fri May 01 13:50:13 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Fri May 01 13:50:13 2026 -0400"
      },
      "message": "Merge 1.6.1 changes to patch branch.\n"
    },
    {
      "commit": "aeecc68649b840363025427895475d435f7b9a8c",
      "tree": "b0a78310f0323fc8933ff0a2f166fb81efb15f4c",
      "parents": [
        "8d6cc31c778d3d83a041a28380efcddd01acff73",
        "a3681bde975a1c4e9644a8ed0aad4f3093b5241c"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "necouchman@users.noreply.github.com",
        "time": "Fri May 01 13:49:08 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 13:49:08 2026 -0400"
      },
      "message": "GUACAMOLE-2268: Merge add UTF-8 (Unicode) clipboard support in VNC."
    },
    {
      "commit": "a3681bde975a1c4e9644a8ed0aad4f3093b5241c",
      "tree": "1d4e562a4c76ea14254faff3be208345c93b15b5",
      "parents": [
        "ec22297461c14d15244ac190791ee5e85488acd2"
      ],
      "author": {
        "name": "Bradley Bennett",
        "email": "bbennett@keepersecurity.com",
        "time": "Wed Apr 29 16:04:49 2026 -0400"
      },
      "committer": {
        "name": "Bradley Bennett",
        "email": "bbennett@keepersecurity.com",
        "time": "Fri May 01 09:55:06 2026 -0400"
      },
      "message": "GUACAMOLE-2268: VNC: add UTF-8 (Unicode) support.\n"
    },
    {
      "commit": "8d6cc31c778d3d83a041a28380efcddd01acff73",
      "tree": "c187a4c717439eb69e920694aa40bf4ceda1a976",
      "parents": [
        "ec22297461c14d15244ac190791ee5e85488acd2",
        "696fd8fb29d03fdf1fec3482b48aeaddd2ecfffd"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "necouchman@users.noreply.github.com",
        "time": "Thu Apr 30 11:17:23 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 11:17:23 2026 -0400"
      },
      "message": "GUACAMOLE-2271: Merge implement VNC FinishedFrameBufferUpdate callback to optimize frame flushing"
    },
    {
      "commit": "696fd8fb29d03fdf1fec3482b48aeaddd2ecfffd",
      "tree": "c187a4c717439eb69e920694aa40bf4ceda1a976",
      "parents": [
        "ec22297461c14d15244ac190791ee5e85488acd2"
      ],
      "author": {
        "name": "Bradley Bennett",
        "email": "bbennett@keepersecurity.com",
        "time": "Wed Apr 29 16:45:39 2026 -0400"
      },
      "committer": {
        "name": "Bradley Bennett",
        "email": "bbennett@keepersecurity.com",
        "time": "Thu Apr 30 10:12:40 2026 -0400"
      },
      "message": "GUACAMOLE-2271: VNC: implement FinishedFrameBufferUpdate callback to optimize frame flushing.\n"
    },
    {
      "commit": "2b0107384d8aabcd597a80ffe3d284aed16aae62",
      "tree": "df181c92e48c6721e9ba584ddd5954b51c6c905c",
      "parents": [
        "de6698b18a18fcbe5593d93952ba321807b792bb",
        "7b0f1615412a8d2f4f6bd088ee7ca2f178d1b58d"
      ],
      "author": {
        "name": "Stephen Schiffli",
        "email": "sschiffli@keepersecurity.com",
        "time": "Thu Apr 23 09:41:56 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 09:41:56 2026 -0700"
      },
      "message": "GUACAMOLE-2120: Merge ensure guac_terminal_options is zero-initialized."
    },
    {
      "commit": "de6698b18a18fcbe5593d93952ba321807b792bb",
      "tree": "8415281fe89b804ee952f78ed638c53a50f8286b",
      "parents": [
        "e2e73a8e5ffec8dfd7055495a9d098cb4c1d0ea0",
        "0acfa2f5dc5af69cebbf78eacfe64df051cae8d9"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Thu Apr 23 06:49:32 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Thu Apr 23 06:49:32 2026 -0400"
      },
      "message": "Merge patch branch changes to main.\n"
    },
    {
      "commit": "0acfa2f5dc5af69cebbf78eacfe64df051cae8d9",
      "tree": "4e137f1863088cb1c8e45e3da5d2c2079d8049a4",
      "parents": [
        "8e219475e10a8432b732cd0cb5085a99483fdd81",
        "ec22297461c14d15244ac190791ee5e85488acd2"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Thu Apr 23 06:48:55 2026 -0400"
      },
      "committer": {
        "name": "Virtually Nick",
        "email": "vnick@apache.org",
        "time": "Thu Apr 23 06:48:55 2026 -0400"
      },
      "message": "Merge 1.6.1 changes to patch branch.\n"
    },
    {
      "commit": "ec22297461c14d15244ac190791ee5e85488acd2",
      "tree": "52e5432082319faebc504bac351ea2a74762e4d9",
      "parents": [
        "0e34b9a0c1634b11e9bc6af3397ef54865619681",
        "9dfed9f6785f39fbf7e225ff4daf340920673fa1"
      ],
      "author": {
        "name": "Virtually Nick",
        "email": "necouchman@users.noreply.github.com",
        "time": "Thu Apr 23 06:47:47 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 06:47:47 2026 -0400"
      },
      "message": "GUACAMOLE-2259: Merge Skip cursor sync in guac_display_dup when no cursor has been set."
    },
    {
      "commit": "9dfed9f6785f39fbf7e225ff4daf340920673fa1",
      "tree": "52e5432082319faebc504bac351ea2a74762e4d9",
      "parents": [
        "3d69c6c329ca3f1c56dba5df0c89725b42091ca9"
      ],
      "author": {
        "name": "Stephen Schiffli",
        "email": "sschiffli@keepersecurity.com",
        "time": "Tue Apr 21 19:25:28 2026 -0700"
      },
      "committer": {
        "name": "Stephen Schiffli",
        "email": "sschiffli@keepersecurity.com",
        "time": "Tue Apr 21 19:25:28 2026 -0700"
      },
      "message": "GUACAMOLE-2259: Skip cursor sync in guac_display_dup when no cursor has been set.\n"
    },
    {
      "commit": "7b0f1615412a8d2f4f6bd088ee7ca2f178d1b58d",
      "tree": "8463154671c4a4a14fcca27a14bd27504e978e66",
      "parents": [
        "e2e73a8e5ffec8dfd7055495a9d098cb4c1d0ea0"
      ],
      "author": {
        "name": "eugen-keeper",
        "email": "ehartmann@keepersecurity.com",
        "time": "Wed Apr 22 02:17:46 2026 +0000"
      },
      "committer": {
        "name": "eugen-keeper",
        "email": "ehartmann@keepersecurity.com",
        "time": "Wed Apr 22 02:17:46 2026 +0000"
      },
      "message": "GUACAMOLE-2120: Ensure guac_terminal_options is zero-initialized.\n"
    },
    {
      "commit": "e2e73a8e5ffec8dfd7055495a9d098cb4c1d0ea0",
      "tree": "d30ad2d8f7764b6938f5a7e9c78617ad91a226bd",
      "parents": [
        "d304ad3790579d73935dd43af30d20b948b9ef9a",
        "8e219475e10a8432b732cd0cb5085a99483fdd81"
      ],
      "author": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Apr 16 10:11:38 2026 -0700"
      },
      "committer": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Apr 16 10:11:38 2026 -0700"
      },
      "message": "Merge changes from patch branch back to main.\n"
    },
    {
      "commit": "8e219475e10a8432b732cd0cb5085a99483fdd81",
      "tree": "4c8f83db896061c2b239f04dc954c685a1d8eebe",
      "parents": [
        "8141f38d9c7dec3aefc69687707d9ee7bbff6c81",
        "0e34b9a0c1634b11e9bc6af3397ef54865619681"
      ],
      "author": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Apr 16 10:11:37 2026 -0700"
      },
      "committer": {
        "name": "Michael Jumper",
        "email": "mjumper@apache.org",
        "time": "Thu Apr 16 10:11:37 2026 -0700"
      },
      "message": "Merge 1.6.1 changes back to patch.\n"
    }
  ],
  "next": "0e34b9a0c1634b11e9bc6af3397ef54865619681"
}
