)]}'
{
  "log": [
    {
      "commit": "73a73c1249497f60f6ba8dd22ae31bafe8397671",
      "tree": "2d4851851331ef9fa85e87523fe1d0a03bc2e6dd",
      "parents": [
        "8972b116167a6bc169ea3da3b9080c177f822d4f"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Nov 09 19:53:26 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Nov 09 19:54:44 2026"
      },
      "message": "python: Fix catching communication thread dying\n\nChecking for _communication_thread.is_alive() is racy. We want the flag\nto be set *before* releasing the semaphore, and the application check it\n*after* getting the semaphore.\n\nFixes #1137\n"
    },
    {
      "commit": "8972b116167a6bc169ea3da3b9080c177f822d4f",
      "tree": "d22e2f38a9d694097ef648d8fffa78d85121d2e4",
      "parents": [
        "182c9d26de6bb898b956a73a16aaf62d486556bd"
      ],
      "author": {
        "name": "Patrick ZAJDA",
        "email": "patrick@zajda.fr",
        "time": "Fri Oct 30 14:01:37 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Nov 01 22:44:49 2026"
      },
      "message": "Update symbols importation documentation\n\n* Remove gettext from prerequisites\n* Update UnicodeData.txt URL\n\nSigned-off-by: Patrick ZAJDA \u003cpatrick@zajda.fr\u003e\n"
    },
    {
      "commit": "182c9d26de6bb898b956a73a16aaf62d486556bd",
      "tree": "e4ab484fd0a9fc7a8e3304695540173c67ac8bf0",
      "parents": [
        "09cb0bd197362d2b546b134a79e21ea219a827b8"
      ],
      "author": {
        "name": "Patrick ZAJDA",
        "email": "patrick@zajda.fr",
        "time": "Fri Oct 30 14:01:01 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Nov 01 22:44:49 2026"
      },
      "message": "Remove orca.polist\n\nSigned-off-by: Patrick ZAJDA \u003cpatrick@zajda.fr\u003e\n"
    },
    {
      "commit": "09cb0bd197362d2b546b134a79e21ea219a827b8",
      "tree": "a158dacb71fbe68debee4eba18402f12e8bcbd02",
      "parents": [
        "cd01e9660d8f4ca287fe87c2b3e7c008328821e0"
      ],
      "author": {
        "name": "Patrick ZAJDA",
        "email": "patrick@zajda.fr",
        "time": "Fri Oct 30 13:55:07 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Nov 01 22:44:49 2026"
      },
      "message": "Remove symbols covered by NVDA from Orca dictionaries\n\nSigned-off-by: Patrick ZAJDA \u003cpatrick@zajda.fr\u003e\n"
    },
    {
      "commit": "cd01e9660d8f4ca287fe87c2b3e7c008328821e0",
      "tree": "61f65d8780b8facb742d9527fe5598c358a8d7f0",
      "parents": [
        "1f506c96735397778fd7fdcc6c25bc859056d18f"
      ],
      "author": {
        "name": "Patrick ZAJDA",
        "email": "patrick@zajda.fr",
        "time": "Thu Oct 29 09:42:15 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Nov 01 22:44:49 2026"
      },
      "message": "Remove obsolete Orca dictionary import script\n\nSigned-off-by: Patrick ZAJDA \u003cpatrick@zajda.fr\u003e\n"
    },
    {
      "commit": "1f506c96735397778fd7fdcc6c25bc859056d18f",
      "tree": "85e9900cd7612f92fc51f8dced386087d71db577",
      "parents": [
        "0b65a46ce390a4edb2559318e9095ca1a42704c9"
      ],
      "author": {
        "name": "Patrick ZAJDA",
        "email": "patrick@zajda.fr",
        "time": "Thu Oct 29 09:31:32 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Nov 01 22:44:49 2026"
      },
      "message": "Update mathematical symbol dictionaries from Orca\n\nSigned-off-by: Patrick ZAJDA \u003cpatrick@zajda.fr\u003e\n"
    },
    {
      "commit": "0b65a46ce390a4edb2559318e9095ca1a42704c9",
      "tree": "28cf8fe45c1a85743f419650a6fcae2bfb9cc123",
      "parents": [
        "0856521a9c5e57c11a126db8ec70e798b31b3a67"
      ],
      "author": {
        "name": "Patrick ZAJDA",
        "email": "patrick@zajda.fr",
        "time": "Thu Oct 29 09:06:26 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Nov 01 22:44:49 2026"
      },
      "message": "Update character and punctuation dictionaries from Orca\n\nSigned-off-by: Patrick ZAJDA \u003cpatrick@zajda.fr\u003e\n"
    },
    {
      "commit": "0856521a9c5e57c11a126db8ec70e798b31b3a67",
      "tree": "1f222d5b7d9a342def5419799601a080d0c872b9",
      "parents": [
        "720bff746ff87c0cb038a08c2242f8272a6bb235"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Oct 29 00:01:45 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Oct 29 00:03:26 2026"
      },
      "message": "Reduce default loglevel to 2\n\nLogLevel 3 logs the utterances etc. which is problematic both for\nprivacy questions, and for filling /run/user with data progressively.\n"
    },
    {
      "commit": "720bff746ff87c0cb038a08c2242f8272a6bb235",
      "tree": "944570062d66c4b61517fee2494f287d8b9aeaab",
      "parents": [
        "5f44f0339c6ba8cbccc555f9085e70b4c262f708"
      ],
      "author": {
        "name": "Patrick ZAJDA",
        "email": "patrick@zajda.fr",
        "time": "Wed Oct 28 13:49:56 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Oct 28 13:55:05 2026"
      },
      "message": "Update CLDR to version 49 and symbols from NVDA\n\nSigned-off-by: Patrick ZAJDA \u003cpatrick@zajda.fr\u003e\n"
    },
    {
      "commit": "5f44f0339c6ba8cbccc555f9085e70b4c262f708",
      "tree": "c4701074626a92ab29162203fde77ecf2db5ed54",
      "parents": [
        "38bd2defdbf223b5c11e89a75fa2e4f1cd89a981"
      ],
      "author": {
        "name": "Данил Костенков",
        "email": "danilkostenkov38@users.noreply.hosted.weblate.org",
        "time": "Wed Oct 14 08:46:57 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Oct 15 09:45:49 2026"
      },
      "message": "Translated using Weblate (Russian)\n\nCurrently translated at 100.0% (165 of 165 strings)\n\nTranslation: speech dispatcher/po\nTranslate-URL: https://hosted.weblate.org/projects/speech-dispatcher/po/ru/\n"
    },
    {
      "commit": "38bd2defdbf223b5c11e89a75fa2e4f1cd89a981",
      "tree": "efa57547758405d19d0a9fbbd30337ceeb9171b3",
      "parents": [
        "b3ed835aa9f94325fa0f9fe7b9a628e243fb0e7d"
      ],
      "author": {
        "name": "Zhengyi Fu",
        "email": "i@fuzy.me",
        "time": "Wed Oct 14 11:41:46 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Oct 14 22:30:48 2026"
      },
      "message": "server: reap failed output modules to avoid zombies\n\nload_output_module() gave up on a module after SIGKILLing it and\nonly called waitpid(..., WNOHANG) once, right after the signal.\nThe signal is delivered asynchronously, so this non-blocking wait\nusually returned 0 and the child was never reaped, leaving a\nzombie.  The two \"bad syntax\" error paths did not even wait.\n\nAdd a kill_and_reap_module() helper which SIGKILLs the child and\nwaits for it with waitpid_with_timeout(), and call it in every\nfailure path before destroying the module.\n"
    },
    {
      "commit": "b3ed835aa9f94325fa0f9fe7b9a628e243fb0e7d",
      "tree": "4b06b31a1e4d68a3ea7838b845d03e4988c98936",
      "parents": [
        "8dbd801b524ce31b3735e78f81a4ac49abfc2085"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Oct 12 22:52:07 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Oct 12 22:53:05 2026"
      },
      "message": "server: log fd value to make sure whether it\u0027s closed or bogus\n"
    },
    {
      "commit": "8dbd801b524ce31b3735e78f81a4ac49abfc2085",
      "tree": "b87ba75b796b576de31d3d0c773ae63a28935ec7",
      "parents": [
        "8ba6075788abc4516c97d110b19d3f923d04c23e"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Oct 12 22:45:09 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Oct 12 22:52:36 2026"
      },
      "message": "server: Fix logging reporting error\n"
    },
    {
      "commit": "8ba6075788abc4516c97d110b19d3f923d04c23e",
      "tree": "5efbf9ed5b8bb1c9c4d7b65f7b5d20623a4d922e",
      "parents": [
        "2de87b248798852fb1553f39ce56d5ab1210b274"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Oct 12 22:26:34 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Oct 12 22:29:56 2026"
      },
      "message": "pipewire: fix showing early errors\n"
    },
    {
      "commit": "2de87b248798852fb1553f39ce56d5ab1210b274",
      "tree": "116c6b99cfadcf248fe31c88abf9f3fa13b37cb7",
      "parents": [
        "dfc83ae26d33208cd9cb6aaf1589150e32af98b4"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Oct 12 22:20:15 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Oct 12 22:20:40 2026"
      },
      "message": "pipewire: fix missing locking while calling pw_stream_flush\n"
    },
    {
      "commit": "dfc83ae26d33208cd9cb6aaf1589150e32af98b4",
      "tree": "28455474362972f48eabb400ae78b1a2ea749b14",
      "parents": [
        "c454b6817bec15fe30a9566c92010eb39292fb8d"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Oct 12 22:12:36 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Oct 12 22:15:38 2026"
      },
      "message": "pipewire: do not check for stream being active\n\nThe is_running flag is enough to determine whether we have asked for the\nstream to be active or not, and the actual state of the stream changes\nasynchrounously, so if pipewire_feed_sync_overlap is called immediately\nafter stop, we would miss that the stop happened, and thus miss setting\nit active again, and lose the utterance completely.\n"
    },
    {
      "commit": "c454b6817bec15fe30a9566c92010eb39292fb8d",
      "tree": "94645cab09d186f7284e1a3b041659e1ca681449",
      "parents": [
        "c3c06f5cd26fe880b8d070f1987837b8d4c2d07c"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Oct 08 22:34:32 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Oct 08 22:35:14 2026"
      },
      "message": "pipewire: Forward pipewire messages to log\n"
    },
    {
      "commit": "c3c06f5cd26fe880b8d070f1987837b8d4c2d07c",
      "tree": "3512b2d016445d47811fd7e23c45bf6a0142b756",
      "parents": [
        "781e939c48e20c9ad87db4359ff30a6abb531778"
      ],
      "author": {
        "name": "Colomban Wendling",
        "email": "cwendling@hypra.fr",
        "time": "Tue Oct 06 16:39:57 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Oct 08 00:11:38 2026"
      },
      "message": "module utils: Do not hard-code array size\n"
    },
    {
      "commit": "781e939c48e20c9ad87db4359ff30a6abb531778",
      "tree": "a32289655eb25f65a851444c1e8688feaab28a8c",
      "parents": [
        "d45212734936489b4f713481d660ded703a9eabe"
      ],
      "author": {
        "name": "Colomban Wendling",
        "email": "cwendling@hypra.fr",
        "time": "Tue Oct 06 16:36:42 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Oct 08 00:11:20 2026"
      },
      "message": "build: Fix out-of-tree builds\n\nlibspeechd_version.h is auto-generated, and as such created in the build\ndirectroy.  So, adjust the include paths to list the build directory as\nwell.\n"
    },
    {
      "commit": "d45212734936489b4f713481d660ded703a9eabe",
      "tree": "6016721c51cb33daf4498665f8653ca470eeba11",
      "parents": [
        "c7821097c6f8fcd593b8e27675f6dd3fb81667c5"
      ],
      "author": {
        "name": "Colomban Wendling",
        "email": "cwendling@hypra.fr",
        "time": "Tue Oct 06 16:15:36 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Oct 08 00:10:40 2026"
      },
      "message": "nas: Fix compiler warning\n\nFix GCC warning:\n\n\u003e nas.c:69:1: warning: no return statement in function returning non-void [-Wreturn-type]\n\nThis is actually harmless because this function never return, but GCC\nstill complains, and has some right to do so.  So just return a\ncompatible no-op value to please its analyzer.\n"
    },
    {
      "commit": "c7821097c6f8fcd593b8e27675f6dd3fb81667c5",
      "tree": "d2c72688cc679c42e499ba12aee1a188e36c0057",
      "parents": [
        "ee6f4e343dc35b944a2332a49aa02da9e6641de3"
      ],
      "author": {
        "name": "Colomban Wendling",
        "email": "cwendling@hypra.fr",
        "time": "Tue Oct 06 16:14:03 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Oct 08 00:10:20 2026"
      },
      "message": "build: Adjust PipeWire dependency\n\nWe need at least 0.3.70 for pw_stream_set_param(), possibly even newer.\n"
    },
    {
      "commit": "ee6f4e343dc35b944a2332a49aa02da9e6641de3",
      "tree": "9fd59534052c5139fb87e18272d4127e3a4ccc38",
      "parents": [
        "676a0a4bf09497221f2009cd0d7e132ae39fe399"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Oct 04 13:26:41 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Oct 04 13:28:23 2026"
      },
      "message": "pipewire: check result of pw_stream_connect\n\nIn case of different pipewire user, permissions, etc.\n"
    },
    {
      "commit": "676a0a4bf09497221f2009cd0d7e132ae39fe399",
      "tree": "7d0d231060bdbf88f842ece7b63263d02cee19ba",
      "parents": [
        "5f26f0605e883b50b2a4430384be9ffd9550aac3"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Oct 04 13:25:54 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Oct 04 13:28:23 2026"
      },
      "message": "pipewire: Add on_state_changed handler\n\nFor better debugging reporting\n"
    },
    {
      "commit": "5f26f0605e883b50b2a4430384be9ffd9550aac3",
      "tree": "6378226557d7e1009f6616763b66a254ab6260ae",
      "parents": [
        "6b49785faaa920cdd1a32a1d4ddc91018071e3f2"
      ],
      "author": {
        "name": "John",
        "email": "28509298+jsett@users.noreply.github.com",
        "time": "Wed Sep 09 17:00:38 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Sep 09 23:11:42 2026"
      },
      "message": "removed README.kitten.md\n"
    },
    {
      "commit": "6b49785faaa920cdd1a32a1d4ddc91018071e3f2",
      "tree": "a1372bc6cdb528b9e54b3b1d8ce3b0a7761560f5",
      "parents": [
        "57ec70ef30c9ac6773422f6044b60a74343710ff"
      ],
      "author": {
        "name": "John",
        "email": "28509298+jsett@users.noreply.github.com",
        "time": "Mon Sep 07 17:56:23 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Sep 09 23:11:42 2026"
      },
      "message": "added comments to the kitten.conf\nchanged the build target name to be just kitten.\n"
    },
    {
      "commit": "57ec70ef30c9ac6773422f6044b60a74343710ff",
      "tree": "ba77e13f3352cc707e951667f36b9048aaf6e714",
      "parents": [
        "fd241318554f161df9c1ce9acdb6e13523340253"
      ],
      "author": {
        "name": "John",
        "email": "28509298+jsett@users.noreply.github.com",
        "time": "Wed Sep 02 21:39:39 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Sep 09 23:11:42 2026"
      },
      "message": "- Added a debug conf option that limits the amount of output printed to the logs\n- Fixed depr warning with libxml content and use\n- Fixed potental bug that could happen if the phonemizer failed to load\n"
    },
    {
      "commit": "fd241318554f161df9c1ce9acdb6e13523340253",
      "tree": "1d110371cf081eda81e328275fe067b61be005b1",
      "parents": [
        "5b8e260875833b546e70d837eb6b5beaa732574c"
      ],
      "author": {
        "name": "John",
        "email": "28509298+jsett@users.noreply.github.com",
        "time": "Tue Sep 01 20:56:15 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Sep 09 23:11:42 2026"
      },
      "message": "removed curl from the ci\n"
    },
    {
      "commit": "5b8e260875833b546e70d837eb6b5beaa732574c",
      "tree": "af484a94603795c060f1d2dc67cb34e1e1187055",
      "parents": [
        "3ea9eaf4d23d38ddb930e37c6e210062226a0156"
      ],
      "author": {
        "name": "John",
        "email": "28509298+jsett@users.noreply.github.com",
        "time": "Tue Sep 01 20:42:27 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Sep 09 23:11:42 2026"
      },
      "message": "moved the example in the readme to be inline.\n"
    },
    {
      "commit": "3ea9eaf4d23d38ddb930e37c6e210062226a0156",
      "tree": "83db6199f2ed8e645088ae4a81707b7898c0ee27",
      "parents": [
        "441af25acb7ae4b0ef5e082aee7cb251348f0648"
      ],
      "author": {
        "name": "John",
        "email": "28509298+jsett@users.noreply.github.com",
        "time": "Tue Sep 01 20:37:25 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Sep 09 23:11:42 2026"
      },
      "message": "added example configuration file\n"
    },
    {
      "commit": "441af25acb7ae4b0ef5e082aee7cb251348f0648",
      "tree": "2db52edbfe409bcbf7c11a0a7d63d854e0715954",
      "parents": [
        "51269ca3bb1832c9844a4c91c021059c8d716b85"
      ],
      "author": {
        "name": "John",
        "email": "28509298+jsett@users.noreply.github.com",
        "time": "Tue Sep 01 20:26:49 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Sep 09 23:11:42 2026"
      },
      "message": "libcurl var should have been removed\n"
    },
    {
      "commit": "51269ca3bb1832c9844a4c91c021059c8d716b85",
      "tree": "67b648284d1b7aed08e860ade1e15d4e8438e5e3",
      "parents": [
        "bb0f3b50e095d3ebeec2f64e0683bfd86cd62f22"
      ],
      "author": {
        "name": "John",
        "email": "28509298+jsett@users.noreply.github.com",
        "time": "Tue Sep 01 20:05:51 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Sep 09 23:11:42 2026"
      },
      "message": "- Removed the downloader from the speechd module.\n- The downloaded has been moved to a seperate package, documentation has been added on how to use the downloader.\n- modules dot conf file can now set the models+voices search path.\n"
    },
    {
      "commit": "bb0f3b50e095d3ebeec2f64e0683bfd86cd62f22",
      "tree": "8cd24b36e20d1ac5bcf369cb66119a6a66043f30",
      "parents": [
        "bf6046358dae485d12fc61b482b1b95a84a0d371"
      ],
      "author": {
        "name": "John",
        "email": "28509298+jsett@users.noreply.github.com",
        "time": "Mon Aug 31 20:40:31 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Sep 09 23:11:42 2026"
      },
      "message": "placed kitten.h into EXTRA_DIST\n"
    },
    {
      "commit": "bf6046358dae485d12fc61b482b1b95a84a0d371",
      "tree": "497be48747a0c232317e1efcabfd3b3c20e530a0",
      "parents": [
        "7f39de40b339fcc834b84ae3e4581be63174577c"
      ],
      "author": {
        "name": "John",
        "email": "28509298+jsett@users.noreply.github.com",
        "time": "Wed Aug 26 15:23:55 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Sep 09 23:11:42 2026"
      },
      "message": "allow model/voice files to be configured throught the models dot conf file.\n"
    },
    {
      "commit": "7f39de40b339fcc834b84ae3e4581be63174577c",
      "tree": "2350522dd3db2dee0c502232184d73d2a5f2fadf",
      "parents": [
        "ed68b57208e2511039215e342b4d49711ef9e8f7"
      ],
      "author": {
        "name": "John",
        "email": "28509298+jsett@users.noreply.github.com",
        "time": "Sat Aug 15 16:33:21 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Sep 09 23:11:42 2026"
      },
      "message": "forgot to change this comment\n"
    },
    {
      "commit": "ed68b57208e2511039215e342b4d49711ef9e8f7",
      "tree": "b26eb4cb6ab997736201db07536e378d3557fe26",
      "parents": [
        "b1ba1654a9d5f1c83b0d98633938211d09e64f96"
      ],
      "author": {
        "name": "John",
        "email": "28509298+jsett@users.noreply.github.com",
        "time": "Sat Aug 15 16:02:09 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Sep 09 23:11:42 2026"
      },
      "message": "added checks for a distro path.\n"
    },
    {
      "commit": "b1ba1654a9d5f1c83b0d98633938211d09e64f96",
      "tree": "4b2d6d03e1f8fe2cde8035eea2f474ea75e9a122",
      "parents": [
        "792b9a986aec5c8ef269083ce6741b22e247aa62"
      ],
      "author": {
        "name": "John",
        "email": "28509298+jsett@users.noreply.github.com",
        "time": "Sat Aug 15 13:51:00 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Sep 09 23:11:42 2026"
      },
      "message": "placed in license text\n"
    },
    {
      "commit": "792b9a986aec5c8ef269083ce6741b22e247aa62",
      "tree": "4ad850fa0e7518fa7858137509b366953d8b999d",
      "parents": [
        "af9a8b2e073ecc5c7a2bc04f4020ca6efab139bd"
      ],
      "author": {
        "name": "John",
        "email": "28509298+jsett@users.noreply.github.com",
        "time": "Fri Aug 14 20:58:14 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Sep 09 23:11:42 2026"
      },
      "message": "make sure that if any of our init\u0027s fail it get reported as a failure.\n"
    },
    {
      "commit": "af9a8b2e073ecc5c7a2bc04f4020ca6efab139bd",
      "tree": "67e28475ade0ec7cfb7c2cf1950840078a24f562",
      "parents": [
        "e8255897ce19deb7378b0408663aa152cf64170d"
      ],
      "author": {
        "name": "John",
        "email": "28509298+jsett@users.noreply.github.com",
        "time": "Fri Aug 14 16:08:14 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Sep 09 23:11:42 2026"
      },
      "message": "Updated the make and configure file for optional support. Added dependencies to the CI\n"
    },
    {
      "commit": "e8255897ce19deb7378b0408663aa152cf64170d",
      "tree": "799ed712a8c7b8ce275d5e10c841946db1973e3e",
      "parents": [
        "5bc3f562ae5562dae7db0c04a9125d6c33bc4d4f"
      ],
      "author": {
        "name": "John",
        "email": "28509298+jsett@users.noreply.github.com",
        "time": "Wed Aug 12 14:23:48 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Sep 09 23:11:42 2026"
      },
      "message": "removed some old dependencies.\n"
    },
    {
      "commit": "5bc3f562ae5562dae7db0c04a9125d6c33bc4d4f",
      "tree": "d402b4e5d3d03a8700ccb7d573d74c64b845a0b9",
      "parents": [
        "eddca013563fa96f65a5d8f8f076847ac8f58a5b"
      ],
      "author": {
        "name": "John",
        "email": "28509298+jsett@users.noreply.github.com",
        "time": "Wed Aug 12 14:00:23 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Sep 09 23:11:42 2026"
      },
      "message": "updated readme\n"
    },
    {
      "commit": "eddca013563fa96f65a5d8f8f076847ac8f58a5b",
      "tree": "dca158dde64ea4126931798860ae3195942bed9a",
      "parents": [
        "97234d626f1a881049fa721729bb6a1f109fb809"
      ],
      "author": {
        "name": "John",
        "email": "28509298+jsett@users.noreply.github.com",
        "time": "Tue Aug 11 17:57:02 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Sep 09 23:11:42 2026"
      },
      "message": "updated readme.\n"
    },
    {
      "commit": "97234d626f1a881049fa721729bb6a1f109fb809",
      "tree": "bf17334e97707e53709da2df5584fe4c2ee09237",
      "parents": [
        "18bd72d69d4c7ba7a426c01d05ec575f3a1633e7"
      ],
      "author": {
        "name": "John",
        "email": "28509298+jsett@users.noreply.github.com",
        "time": "Tue Aug 11 17:38:35 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Sep 09 23:11:42 2026"
      },
      "message": "mark need to be a char*\n"
    },
    {
      "commit": "18bd72d69d4c7ba7a426c01d05ec575f3a1633e7",
      "tree": "a7250c32f56c0b9dc20288b32c42cf9b2f8f306e",
      "parents": [
        "54ef88c18350eaebfd9cff27aa6ea500539fb03f"
      ],
      "author": {
        "name": "John",
        "email": "28509298+jsett@users.noreply.github.com",
        "time": "Tue Aug 11 16:03:23 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Sep 09 23:11:42 2026"
      },
      "message": "change stuff in model_change_voice to use Gstring\u0027s instead of char*\u0027s.\n"
    },
    {
      "commit": "54ef88c18350eaebfd9cff27aa6ea500539fb03f",
      "tree": "16503fe6ea21d816ca85d0e47aa6e142f3def443",
      "parents": [
        "859fca0f9fd3d4916fc23ecad820e7425f37dab5"
      ],
      "author": {
        "name": "John",
        "email": "28509298+jsett@users.noreply.github.com",
        "time": "Mon Aug 10 19:01:10 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Sep 09 23:11:42 2026"
      },
      "message": "small bug\n"
    },
    {
      "commit": "859fca0f9fd3d4916fc23ecad820e7425f37dab5",
      "tree": "23fc156cec0cc9166b1e2918d539d1ddaf387292",
      "parents": [
        "4629f59a25f1178a00890b58b799eae936524b0a"
      ],
      "author": {
        "name": "John",
        "email": "28509298+jsett@users.noreply.github.com",
        "time": "Mon Aug 10 18:32:56 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Sep 09 23:11:42 2026"
      },
      "message": "Added instructions into the readme on building/install\n"
    },
    {
      "commit": "4629f59a25f1178a00890b58b799eae936524b0a",
      "tree": "d9d196a0cf2a22e01f9af1fc0562f1b6f2c68635",
      "parents": [
        "1065f6b02c446a27017c00c1832848cae203eb2d"
      ],
      "author": {
        "name": "John",
        "email": "28509298+jsett@users.noreply.github.com",
        "time": "Sat Aug 08 02:04:59 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Sep 09 23:11:42 2026"
      },
      "message": "Remove the buffering code. Everything runs fine without it. Fixed an issue when processing text over 400 char. Fix an issue when we get unmapped chars.\n"
    },
    {
      "commit": "1065f6b02c446a27017c00c1832848cae203eb2d",
      "tree": "ea8b596f6ea4cb798b6867569aa04956c02c479d",
      "parents": [
        "65b0fe9dab7dd2921d7416edd2ed5393fc8e9da7"
      ],
      "author": {
        "name": "John",
        "email": "28509298+jsett@users.noreply.github.com",
        "time": "Wed Aug 05 20:01:43 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Sep 09 23:11:42 2026"
      },
      "message": "kitten tts module for speechd\n"
    },
    {
      "commit": "65b0fe9dab7dd2921d7416edd2ed5393fc8e9da7",
      "tree": "7840cad9f15fa77d914059cc843565158a06e2f1",
      "parents": [
        "6d08a5cabb5552acac50a46897b065bf0a11cb05"
      ],
      "author": {
        "name": "Dylan Pulver",
        "email": "dylanpulver@users.noreply.github.com",
        "time": "Tue Sep 01 15:13:16 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Sep 01 22:01:38 2026"
      },
      "message": "fix: spd_set_notification must not always send NOTIFICATION ALL\n\nNOTIFICATION_SET tests a single bit, but SPD_ALL is 0x3f, the union of\nthe six event bits (include/speechd_types.h:76-83). So\n\"SET SELF NOTIFICATION ALL\" was emitted for any non-zero argument, and\nlast, and set_notification_self() (src/server/set.c:502-508) applies\n\"all\" to all six events.\n\nspd_set_notification_on(conn, SPD_END) therefore enabled every event,\nand spd_set_notification_off(conn, SPD_BEGIN) disabled every event,\nincluding the END and CANCEL a client may be waiting on.\n\nTest every bit of val instead of any. For the six single-bit values the\ntwo tests are equivalent, so only the SPD_ALL line changes behaviour.\n"
    },
    {
      "commit": "6d08a5cabb5552acac50a46897b065bf0a11cb05",
      "tree": "a211048d8dafe945e9404b2e40455a191ecb8feb",
      "parents": [
        "1b4492ca119024d346be8b2416a9d391d38637a4"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Sep 01 20:15:28 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Sep 01 20:15:28 2026"
      },
      "message": "Advertise support for fono\n"
    },
    {
      "commit": "1b4492ca119024d346be8b2416a9d391d38637a4",
      "tree": "2d4aa7d0569731dc98751816a8fd71c4bb60a11c",
      "parents": [
        "df6ccad0e9546ee5482c3862ce0a858acb1fdb29"
      ],
      "author": {
        "name": "Bogdan Radulescu",
        "email": "bogdan@nimblex.net",
        "time": "Tue Sep 01 17:48:03 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Sep 01 20:15:04 2026"
      },
      "message": "Add fono generic output module\n\nfono is a command-line voice stack that plays synthesized audio itself,\nso sd_generic only has to pipe text into \u0027fono speak stream\u0027. The backend\nbehind it (local ONNX, Wyoming, or a cloud vendor) is set in fono\u0027s own\nconfig and does not change this file.\n\nSigned-off-by: Bogdan Radulescu \u003cbogdan@nimblex.net\u003e\n"
    },
    {
      "commit": "df6ccad0e9546ee5482c3862ce0a858acb1fdb29",
      "tree": "b701672a1b1ecbe15a1bb53091cf3e157140d139",
      "parents": [
        "3bd4ebfd539174f23ca5c2b605d5ea6b674f3897"
      ],
      "author": {
        "name": "Jyatin Singh",
        "email": "singhjyatin@gmail.com",
        "time": "Mon Aug 31 18:04:39 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Aug 31 18:16:36 2026"
      },
      "message": "fix: use mpg123 for Edge TTS audio output\n"
    },
    {
      "commit": "3bd4ebfd539174f23ca5c2b605d5ea6b674f3897",
      "tree": "c3bfebc02746a59a2e843f491c9f7cfbd4a269f9",
      "parents": [
        "e1d5f3028318d97ba68832ebb3e27e464259cd4e"
      ],
      "author": {
        "name": "Jyatin Singh",
        "email": "singhjyatin@gmail.com",
        "time": "Wed Aug 26 18:18:02 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Aug 31 18:16:36 2026"
      },
      "message": "fix: use edge-tts directly in generic module\n"
    },
    {
      "commit": "e1d5f3028318d97ba68832ebb3e27e464259cd4e",
      "tree": "5ecc442d19dbf73d5de1608460a9575c8009710f",
      "parents": [
        "3ace700078b7a6ac14ce9b48ef707d318f12dd3c"
      ],
      "author": {
        "name": "root",
        "email": "root@LAPTOP-MS7QP3SK.localdomain",
        "time": "Tue Aug 25 08:40:27 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Aug 31 18:16:36 2026"
      },
      "message": "Add Edge TTS generic output module\n"
    },
    {
      "commit": "3ace700078b7a6ac14ce9b48ef707d318f12dd3c",
      "tree": "4458a764a9432a76cc00fd3815de8c1d538f6bef",
      "parents": [
        "561c00767a1eaec8f4d36d99ff8e31d72ac1b59d"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Aug 30 21:10:21 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Aug 30 21:59:39 2026"
      },
      "message": "update CI to test piper module\n"
    },
    {
      "commit": "561c00767a1eaec8f4d36d99ff8e31d72ac1b59d",
      "tree": "83a5125bb8d35da365a6586d4f9c0d2252562f21",
      "parents": [
        "58d64bc40bd64369bea8b44b333a29d2d66ebf48"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Aug 30 21:40:03 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Aug 30 21:57:18 2026"
      },
      "message": "force including libonnxruntime to fix link\n"
    },
    {
      "commit": "58d64bc40bd64369bea8b44b333a29d2d66ebf48",
      "tree": "e15d4a22e5c3cbd7b8129ef2ac6820c89b07742f",
      "parents": [
        "03183f10a2aed1a6406a7ffe70fb04779f10a354"
      ],
      "author": {
        "name": "Sola",
        "email": "dev@sola.love",
        "time": "Sat Aug 15 04:54:00 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Aug 30 21:56:44 2026"
      },
      "message": "libpiper migration\n\nMigrate now deprecated/archived piper-phonemize[1] based cxxpiper\nimplementation to libpiper[2] which was recently added to the upstream\npiper repository.\n\nBecause we are now using the upstream libpiper C library directly, I\nfigured we should probably also remove the cxx prefix from the module name.\n\nChanges made:\n\n- Removed conf options that new libpiper no longer support\n- Added peak normalization for parity with Python CLI\n- Simplified voice handling and configuration\n\n[1]: https://github.com/rhasspy/piper-phonemize\n[2]: https://github.com/OHF-Voice/piper1-gpl/tree/main/libpiper\n"
    },
    {
      "commit": "03183f10a2aed1a6406a7ffe70fb04779f10a354",
      "tree": "049e7e8d76a93320ff89f786762159a56cd02f12",
      "parents": [
        "6b5c859976752f3a2acd61df76dfc68248841414"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Aug 30 21:30:10 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Aug 30 21:30:10 2026"
      },
      "message": "fix config.log CI name\n"
    },
    {
      "commit": "6b5c859976752f3a2acd61df76dfc68248841414",
      "tree": "475682b83617f434a06f5140760b9cec4261134a",
      "parents": [
        "33185c07d70261406c40e41ae59613d011ef1f11"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Aug 29 21:52:34 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Aug 29 21:56:14 2026"
      },
      "message": "common: provide a simple MSG function\n\nSo that one can use spd_pthread_create without having to pull\nmodule_utils in.\n"
    },
    {
      "commit": "33185c07d70261406c40e41ae59613d011ef1f11",
      "tree": "fc6ef07bb5db3a5aa09f48772f3bfeb85881376d",
      "parents": [
        "3823a2fe8f30ca4067e25d65bc0e25ff983a7521"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Aug 29 21:55:34 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Aug 29 21:55:47 2026"
      },
      "message": "regenerate\n"
    },
    {
      "commit": "3823a2fe8f30ca4067e25d65bc0e25ff983a7521",
      "tree": "f842d8061015866e585f22c128f339774121206e",
      "parents": [
        "ed831e005bb7407c3f8db2b79c06238f49dab656"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Aug 29 21:44:23 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Aug 29 21:54:35 2026"
      },
      "message": "Point module writers to the example of using module_utils\n"
    },
    {
      "commit": "ed831e005bb7407c3f8db2b79c06238f49dab656",
      "tree": "fe898c4097fbb6e1f8737d3ba1ad1d3df9576904",
      "parents": [
        "e70cf10a00fd7c8a7161ae2a232b16ddb684e8da"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Aug 29 21:22:38 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Aug 29 21:22:38 2026"
      },
      "message": "bump CI ubuntu image\n"
    },
    {
      "commit": "e70cf10a00fd7c8a7161ae2a232b16ddb684e8da",
      "tree": "b3ee3d5b67b063200acc7fa6f7b942324cd68808",
      "parents": [
        "744446b1b051c110e067519a199ee2440b6b9763"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Aug 29 21:10:36 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Aug 29 21:10:36 2026"
      },
      "message": "Add missing generated stub libraries\n"
    },
    {
      "commit": "744446b1b051c110e067519a199ee2440b6b9763",
      "tree": "2b1481fd40475519a441383f5202e87a847560ef",
      "parents": [
        "a1f9c9ccbd2886ecb5d4050fd1abb7c8151996c7"
      ],
      "author": {
        "name": "Jyatin Singh",
        "email": "singhjyatin@gmail.com",
        "time": "Sat Aug 29 20:59:25 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Aug 29 20:59:25 2026"
      },
      "message": "Change the generic module shell from /bin/sh to /bin/bash\n\n- Required because the generic module currently executes commands using set -o pipefail\n- /bin/sh resolves to dash on the tested WSL environment, which does not support pipefail\n"
    },
    {
      "commit": "a1f9c9ccbd2886ecb5d4050fd1abb7c8151996c7",
      "tree": "450e54ac73d2e6367f296576927a3bae29c06a1c",
      "parents": [
        "511b143385eaee5bb011eac40422996e0fdfb806"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Aug 20 22:33:44 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Aug 20 22:34:28 2026"
      },
      "message": "tests: print error message on spd_open failure\n"
    },
    {
      "commit": "511b143385eaee5bb011eac40422996e0fdfb806",
      "tree": "b9a73eaf45bbb3d8932b23620d9842f58710bbd3",
      "parents": [
        "7d0902d531800ef93ed4239b44c355481910217d"
      ],
      "author": {
        "name": "Oğuz Ersen",
        "email": "oguz@ersen.moe",
        "time": "Thu Jul 23 17:19:32 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Fri Jul 24 18:04:24 2026"
      },
      "message": "Translated using Weblate (Turkish)\n\nCurrently translated at 100.0% (165 of 165 strings)\n\nTranslation: speech dispatcher/po\nTranslate-URL: https://hosted.weblate.org/projects/speech-dispatcher/po/tr/\n"
    },
    {
      "commit": "7d0902d531800ef93ed4239b44c355481910217d",
      "tree": "0da3d83760fa7abfe68e750e8b996c4be75f3558",
      "parents": [
        "d599da9d89ace8616ff57a37def3297b7db6cb87"
      ],
      "author": {
        "name": "ssantos",
        "email": "ssantos@web.de",
        "time": "Sun Jun 28 06:13:05 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Jun 29 21:46:16 2026"
      },
      "message": "Translated using Weblate (Portuguese)\n\nCurrently translated at 100.0% (165 of 165 strings)\n\nTranslation: speech dispatcher/po\nTranslate-URL: https://hosted.weblate.org/projects/speech-dispatcher/po/pt/\n"
    },
    {
      "commit": "d599da9d89ace8616ff57a37def3297b7db6cb87",
      "tree": "e8229e8a68f582ef7701e8f0ce67ea0d27e3b00c",
      "parents": [
        "df6d86da73a08433bc0b83ea5f9078e406506e9a"
      ],
      "author": {
        "name": "Rafael Fontenelle",
        "email": "rafaelff@gnome.org",
        "time": "Mon May 18 01:16:28 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Jun 29 21:46:13 2026"
      },
      "message": "Translated using Weblate (Portuguese (Brazil))\n\nCurrently translated at 100.0% (165 of 165 strings)\n\nTranslation: speech dispatcher/po\nTranslate-URL: https://hosted.weblate.org/projects/speech-dispatcher/po/pt_BR/\n"
    },
    {
      "commit": "df6d86da73a08433bc0b83ea5f9078e406506e9a",
      "tree": "528f5c5a57410e919e1353ebaadf5d41c73f9f70",
      "parents": [
        "00700abd7df9269eeeac3b1fdbcec3f82a736f03"
      ],
      "author": {
        "name": "daxmawal",
        "email": "jeanfrancoismanutea@gmail.com",
        "time": "Fri Jun 19 19:21:24 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Jun 23 22:03:02 2026"
      },
      "message": "Add Python module utilities\n\nSigned-off-by: daxmawal \u003cjeanfrancoismanutea@gmail.com\u003e\n"
    },
    {
      "commit": "00700abd7df9269eeeac3b1fdbcec3f82a736f03",
      "tree": "38ad181a7b159e80eeffc5bde657e5cf84a7a683",
      "parents": [
        "60b1e9ef1d3a49f4661e6c8772f923193ee64777"
      ],
      "author": {
        "name": "DaTeVo",
        "email": "voeltemata@gmail.com",
        "time": "Sat Jun 13 20:12:33 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Jun 17 23:26:30 2026"
      },
      "message": "Fix SSML stripping inside tags\n\nSigned-off-by: DaTeVo \u003cvoeltemata@gmail.com\u003e\nCo-authored-by: Jean-François David \u003cjeanfrancoismanutea@gmail.com\u003e\n"
    },
    {
      "commit": "60b1e9ef1d3a49f4661e6c8772f923193ee64777",
      "tree": "3c0f43e786e125816f98f35ac8dad45edebcbbe1",
      "parents": [
        "28e422a21d9b4840621c1c658279d914f0452af4"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue May 05 00:01:09 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue May 05 00:16:06 2026"
      },
      "message": "python: Fix making speechd.client loadable with out-of-source builds\n"
    },
    {
      "commit": "28e422a21d9b4840621c1c658279d914f0452af4",
      "tree": "0e61256597d10b57a5bd312217646e91687d5363",
      "parents": [
        "037a4910995785bd9667a65a54a39ddf6c7a6fc1"
      ],
      "author": {
        "name": "Ethin Probst",
        "email": "ethindp@pm.me",
        "time": "Mon May 04 23:28:14 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon May 04 23:40:47 2026"
      },
      "message": "Add configure option to build only client library\n"
    },
    {
      "commit": "037a4910995785bd9667a65a54a39ddf6c7a6fc1",
      "tree": "87dab8f10ae2d38feacd64eaf3d0eed6b0389e5d",
      "parents": [
        "99b531553d126471a2a33f6eb2f84a1e50d85d15"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon May 04 23:12:51 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon May 04 23:13:17 2026"
      },
      "message": "cxxpiper: document UseCUDA option\n"
    },
    {
      "commit": "99b531553d126471a2a33f6eb2f84a1e50d85d15",
      "tree": "3ed10a0d17085560dd643649d215661b03a8d4a4",
      "parents": [
        "22a9a5adfcd300fae0671c42a44d3db940b4147b"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon May 04 23:10:00 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon May 04 23:11:54 2026"
      },
      "message": "cxxpiper: Fix passing sid or not\n\nSingle-voice models such as fr_FR-tom-medium.onnx would refuse the sid\nparameter.\n\nFixes #1024\n(hopefully, does here)\n"
    },
    {
      "commit": "22a9a5adfcd300fae0671c42a44d3db940b4147b",
      "tree": "5d414a5070c222860e6961ecaafd756a52ff2740",
      "parents": [
        "f05751433b31f74e30d46cbe1894cdf0151de04b"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon May 04 01:47:23 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon May 04 01:47:23 2026"
      },
      "message": "Update po files\n"
    },
    {
      "commit": "f05751433b31f74e30d46cbe1894cdf0151de04b",
      "tree": "7673c50d69376968cbba1992a68bfdf1db1cafae",
      "parents": [
        "4b13e330b4a2b8920888a6dc3701db80cddc67a1"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon May 04 01:47:05 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon May 04 01:47:05 2026"
      },
      "message": "Regenerate html doc\n"
    },
    {
      "commit": "4b13e330b4a2b8920888a6dc3701db80cddc67a1",
      "tree": "8efeeb92dfbcff5f6170f62902acb343d5c485cf",
      "parents": [
        "3fcc6f793f9e80232c7472ea55bc9fe7bb303592"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon May 04 01:28:52 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon May 04 01:31:42 2026"
      },
      "message": "doc: fix getting pydoc.css from source\n"
    },
    {
      "commit": "3fcc6f793f9e80232c7472ea55bc9fe7bb303592",
      "tree": "a3743baa30674a256ee5c8f048fc3b535db57e6c",
      "parents": [
        "1d6e3be9626e000e664dbc25529657e80379d040"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon May 04 01:14:43 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon May 04 01:21:01 2026"
      },
      "message": "Make sure we build paths.py for the documentation\n"
    },
    {
      "commit": "1d6e3be9626e000e664dbc25529657e80379d040",
      "tree": "ec5c1248dfdd88fc561f6b6976b7930dccbc7d5d",
      "parents": [
        "bc0a98de6115cf00cda44a1aa4f914f48ef4fb5b"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon May 04 00:56:04 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon May 04 00:56:41 2026"
      },
      "message": "Regenerate html doc\n"
    },
    {
      "commit": "bc0a98de6115cf00cda44a1aa4f914f48ef4fb5b",
      "tree": "d9d48612666d4eb4f2b69d4ee7fedbbe826e8325",
      "parents": [
        "ef72a7cd63422a4d1b2aae5dbf83e03956235f09"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon May 04 00:05:42 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon May 04 00:56:30 2026"
      },
      "message": "cxxpiper: Avoid crashing on initialization failure\n"
    },
    {
      "commit": "ef72a7cd63422a4d1b2aae5dbf83e03956235f09",
      "tree": "8b0962c4a6aabfc249c5415271a17a296c503788",
      "parents": [
        "1fce844732704af9b3db0afe01917e2869343b5d"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun May 03 23:51:46 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun May 03 23:53:02 2026"
      },
      "message": "cxxpiper: Fix warnings\n"
    },
    {
      "commit": "1fce844732704af9b3db0afe01917e2869343b5d",
      "tree": "64624fd10399d05b3f8f44aa02d7ed24f90ba29b",
      "parents": [
        "3b251b60908a1ffdf6e48a1649db33c3ef1d273f"
      ],
      "author": {
        "name": "Sébastien Hinderer",
        "email": "Sebastien.Hinderer@ens-lyon.org",
        "time": "Sat May 02 22:10:39 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun May 03 19:15:29 2026"
      },
      "message": "Honour the log level in the audio backends\n\nAlthough the backends did test for the value of level in\ntheir logging macros, they did not actually pass it to the generic\nMSG logging macro.\n"
    },
    {
      "commit": "3b251b60908a1ffdf6e48a1649db33c3ef1d273f",
      "tree": "a68125c5d686a5214a236605045904ab80770fe9",
      "parents": [
        "a03bee1665a11b11b31fe910ad1555de702704dc"
      ],
      "author": {
        "name": "Sébastien Hinderer",
        "email": "Sebastien.Hinderer@ens-lyon.org",
        "time": "Sat May 02 21:58:37 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun May 03 19:15:02 2026"
      },
      "message": "Code cleanup in the Pipewire audio backend\n"
    },
    {
      "commit": "a03bee1665a11b11b31fe910ad1555de702704dc",
      "tree": "01cbae11f06fa1ba9fd470bb3f3d40e268af79bb",
      "parents": [
        "e72e0f3faed5c921cca18f4a3f39953fa8d2e911"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Apr 23 23:16:10 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Apr 23 23:42:22 2026"
      },
      "message": "Fix client connection race\n\nTo make sure we do not miss a client connection, we need to make sure\nthat we do not exit while a client is connected. We thus have to:\n\n- make sure we have not accepted a client after timeout triggered, i.e.\n  speechd_connection_new was not called. Just dropping the timeout\n  source on client connection is not enough, since \"sources that have\n  already been dispatched when g_main_loop_quit is called will still be\n  executed\", i.e. after the speechd_quit timeout got called, we may call\n  speechd_connection_new. It\u0027s thus the main function that should make a\n  last check against any connected client when the quit reason is a timeout.\n\n- main() then does not call accept, leaving any clients connecting in\n  between waiting on the server socket. On exit, systemd will notice the\n  pending clients, and re-spawn speech-dispatcher.\n\n- this allows to restore the systemd-socket-activation exit on timeout.\n\nFixes #777\nFixes #1087\n"
    },
    {
      "commit": "e72e0f3faed5c921cca18f4a3f39953fa8d2e911",
      "tree": "d1a3bf0493daade3e4b834c389afaa73a178f2c9",
      "parents": [
        "855b53b7e344d36de071e4f82bf6cb1c1dd981eb"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Mar 14 16:13:34 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Mar 14 16:13:34 2026"
      },
      "message": "Baratinoo is also called VoxyGen\n"
    },
    {
      "commit": "855b53b7e344d36de071e4f82bf6cb1c1dd981eb",
      "tree": "edf87cfd339b8cce4cf3d09eb037b4e2178902ac",
      "parents": [
        "1fefe721e4381204a977854dcef96432852dbfbd"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Mar 14 16:11:02 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Mar 14 16:11:02 2026"
      },
      "message": "Add synthesis support list\n"
    },
    {
      "commit": "1fefe721e4381204a977854dcef96432852dbfbd",
      "tree": "92d34da5e5886f8cf2d55ed0d606458700626cdd",
      "parents": [
        "e501c0614a127b77979dd56e2a56b4289ea5c700"
      ],
      "author": {
        "name": "Matthew Danish",
        "email": "mrd@debian.org",
        "time": "Sun Feb 22 10:56:32 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Feb 22 11:04:16 2026"
      },
      "message": "Remove REGEX dependency from Common Lisp ASDF:defsystem definition.\n\nThe REGEX library is not actually used in this Lisp code, and the REGEX\nlibrary itself is deprecated, and has not been supported for many years\nor decades by its author.\n"
    },
    {
      "commit": "e501c0614a127b77979dd56e2a56b4289ea5c700",
      "tree": "00252916ed959887b1de67f6e869dd139214666b",
      "parents": [
        "a8d862bc031065ab5528b204a38f3800f1d1c7ae"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Jan 17 15:18:56 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Jan 17 15:19:27 2026"
      },
      "message": "spd-say: Note that -w is not the default\n"
    },
    {
      "commit": "a8d862bc031065ab5528b204a38f3800f1d1c7ae",
      "tree": "1873ef09b2bb5f00c4c234268f1420a35d6c7cff",
      "parents": [
        "80ab986e476f1e49796d2278f0920195484afe40"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Jan 06 19:53:52 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Jan 06 20:13:18 2026"
      },
      "message": "Add a CSS for the python documentation\n"
    },
    {
      "commit": "80ab986e476f1e49796d2278f0920195484afe40",
      "tree": "ae026bbebf9fd95bee784596740db86d8b8a3538",
      "parents": [
        "ac4b6aaae8c9b95090e1edda2f85661b5c7187bf"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Jan 06 19:30:40 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Jan 06 19:32:30 2026"
      },
      "message": "Better generate just speechd.client.html\n\nIt contains more content than just the SSIPClient and Speaker classes.\n"
    },
    {
      "commit": "ac4b6aaae8c9b95090e1edda2f85661b5c7187bf",
      "tree": "a08fcb24ed99fa3c53472d3862b2e03f34160fda",
      "parents": [
        "196d06955703da95c5719eb4e91f8031dce2929f"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Jan 06 19:15:19 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Jan 06 19:23:02 2026"
      },
      "message": "Generate the python documentation webpage\n"
    },
    {
      "commit": "196d06955703da95c5719eb4e91f8031dce2929f",
      "tree": "c1311b8fda0b90849cd984ca9b11d77f0ffb9ace",
      "parents": [
        "f4bd653442ee83c6a75d6ddfcc177036e0d44861"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Jan 06 07:57:46 2026"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Jan 06 07:57:56 2026"
      },
      "message": "Point at the python documentation\n"
    },
    {
      "commit": "f4bd653442ee83c6a75d6ddfcc177036e0d44861",
      "tree": "0c300be1ad848bf2410cf149001e5d6199e024e7",
      "parents": [
        "241dcfbec39ed89ed967d055f857535f3c87b394"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Dec 27 15:16:27 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Dec 27 15:21:37 2025"
      },
      "message": "flite: Add the rms, slt, awb and kal voices\n\nAnd allow switching between them.\n"
    },
    {
      "commit": "241dcfbec39ed89ed967d055f857535f3c87b394",
      "tree": "f800989ae73f77c289c16214d2c1164fa4362139",
      "parents": [
        "00d1008c27a474c8e2b1e8f739b3a223c2a407a6"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Dec 27 14:35:55 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Dec 27 14:36:45 2025"
      },
      "message": "festival: update voice list on list request\n\nSo the server can dynamically add voices.\n"
    },
    {
      "commit": "00d1008c27a474c8e2b1e8f739b3a223c2a407a6",
      "tree": "e879c94deee9fbe34b40de097fc8b6c0d419cd31",
      "parents": [
        "a8e3b16d0a3de0258ad5866d4769a40000d3503c"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Dec 27 14:33:50 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Dec 27 14:33:50 2025"
      },
      "message": "Regenerate doc with newer texinfo\n"
    },
    {
      "commit": "a8e3b16d0a3de0258ad5866d4769a40000d3503c",
      "tree": "f0a4ef6d49b814c92396993613ec11649f682fd7",
      "parents": [
        "193bf43510251ef20bbb65ff9bcf161695c87759"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Dec 27 14:32:02 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Dec 27 14:33:15 2025"
      },
      "message": "espeak-ng-mbrola: Automatically update voice list\n\nBy watching the paths known to contain mbrola voices.\n"
    },
    {
      "commit": "193bf43510251ef20bbb65ff9bcf161695c87759",
      "tree": "e67350e22fcecdbc9292e9112c87181c844c3547",
      "parents": [
        "48409dcf0a4a94369a5248c4773a285de51b023a"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Fri Dec 26 14:42:24 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Fri Dec 26 14:44:26 2025"
      },
      "message": "Fix rare termination problem\n\nIn case the event thread quits exactly while output_read_reply is\ngetting an event, we would miss that we should throw the event away.\n"
    },
    {
      "commit": "48409dcf0a4a94369a5248c4773a285de51b023a",
      "tree": "0c9e2baad8cd25b177ee27cb4278c6f5997e4d65",
      "parents": [
        "c70b9dba91fb0415d3c53597e445a19bd9eae99f"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Fri Dec 26 14:40:43 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Fri Dec 26 14:43:39 2025"
      },
      "message": "Fix uninitialized field\n\nThis can have posed termination problems with modules that have not been\nused at all.\n"
    },
    {
      "commit": "c70b9dba91fb0415d3c53597e445a19bd9eae99f",
      "tree": "dde219bda34d20d7cac70ca65ca0e1b4679c4848",
      "parents": [
        "2e7db0cc7385e7b541ac18ce05e5a3ccb4f78834"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Dec 17 01:35:54 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Dec 17 01:36:49 2025"
      },
      "message": "symbols: Fix loading font-variants.dic\n\nWe have it shared in base/, so we should ignore failure to load the\nlocale version.\n"
    },
    {
      "commit": "2e7db0cc7385e7b541ac18ce05e5a3ccb4f78834",
      "tree": "d97ac218802f928c631b7ff2f1b9a8bf8dbd101d",
      "parents": [
        "afe4bda8ba2df7cf33fd414d6b8f38e1b7f137cc"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Dec 17 01:33:12 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Dec 17 01:35:43 2025"
      },
      "message": "symbols: Better describe the files being loaded\n\nPrinting all errors is not productive, better document which paths are\nbeing looked into, and the files actually getting loaded.\n\nFixes #1049\n"
    },
    {
      "commit": "afe4bda8ba2df7cf33fd414d6b8f38e1b7f137cc",
      "tree": "b0ef47b69485077c98e01ae8ca6d526b5890840b",
      "parents": [
        "fbdb6b0bf25e1ec105d5d76e8fcd8a118e97c582"
      ],
      "author": {
        "name": "தமிழ்நேரம்",
        "email": "anishprabu.t@gmail.com",
        "time": "Sun Apr 20 13:42:08 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Dec 16 11:00:36 2025"
      },
      "message": "Translated using Weblate (Tamil)\n\nCurrently translated at 100.0% (164 of 164 strings)\n\nTranslation: speech dispatcher/po\nTranslate-URL: https://hosted.weblate.org/projects/speech-dispatcher/po/ta/\n"
    }
  ],
  "next": "fbdb6b0bf25e1ec105d5d76e8fcd8a118e97c582"
}
