)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "fbdb6b0bf25e1ec105d5d76e8fcd8a118e97c582",
      "tree": "06ebe85e5eb76bb0d39d0cd8f466def57d601ea4",
      "parents": [
        "6bf3370e2d1fc009d3112a4bbcb8f9ba9942fe90"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Dec 09 20:39:33 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Dec 09 20:40:35 2025"
      },
      "message": "server: normalize with realpath the socket path before checking\n\nOtherwise, e.g. with XDG_RUNTIME_DIR with a trailing slash, they do not\ncoincide.\n\nFixes #1066\n"
    },
    {
      "commit": "6bf3370e2d1fc009d3112a4bbcb8f9ba9942fe90",
      "tree": "1e853ed7d160126f9466866461988dd110cd4c5a",
      "parents": [
        "e58c272c10e0e58b61ce007d4fa5b54e47f302fa"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Nov 17 20:57:49 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Nov 17 21:01:05 2025"
      },
      "message": "symbols: Restore single-regexp for files which have complex symbols\n\nFor instance, locale/fr/symbols.dic has both\n\nin-word \u0027       (?\u003c\u003d[^\\W_])[\u0027’]\n’       apostrophe droite\n\nthat can match ’, but the second rule is supposed not to match when the\nfirst one does. We have to keep them in the same regexp for this to\nhappen.\n\nSo we refine 031eda9a45ad (\"symbols: Split simple symbol tables into chunks\nof 1000 lines\") into splitting only for files which do not have complex\nsymbols, and thus for which we don\u0027t have that situation, notably\nemojis.dic which is the one that has the size issue.\n"
    },
    {
      "commit": "e58c272c10e0e58b61ce007d4fa5b54e47f302fa",
      "tree": "d503abf0121567e55864c13d6e1a95cb04fb484e",
      "parents": [
        "031eda9a45ad224f59a18439ca63f60fa84a0a0d"
      ],
      "author": {
        "name": "Patrick ZAJDA",
        "email": "patrick@zajda.fr",
        "time": "Tue Nov 11 22:01:01 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Nov 17 19:47:48 2025"
      },
      "message": "Update CLDR to version 48, Orca and NVDA symbols to latest version\n\nSigned-off-by: Patrick ZAJDA \u003cpatrick@zajda.fr\u003e\n"
    },
    {
      "commit": "031eda9a45ad224f59a18439ca63f60fa84a0a0d",
      "tree": "5fce9c63a0d32ff421241362809e9f8a3fd86bb0",
      "parents": [
        "61a366b855d3776307c6ae1b6e2ce323671965d7"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Nov 16 19:40:51 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Nov 16 19:43:16 2025"
      },
      "message": "symbols: Split simple symbol tables into chunks of 1000 lines\n\npcre, when built with link size 2, cannot support ~4000 symbols, so we have\nto split. complex symbols and one-byte characters can stay together, we will\nprobably not hit such a limitation, while multi-characters can indeed be\nplenty with emojis, ideograms, etc.\n"
    },
    {
      "commit": "61a366b855d3776307c6ae1b6e2ce323671965d7",
      "tree": "be13fd9f782ea6ce50190b817b686c181243ad71",
      "parents": [
        "de6dc46ef734c80cf6d35429988eaaecdd765651"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Oct 30 01:23:40 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Oct 30 01:23:58 2025"
      },
      "message": "Fix memory leak\n"
    },
    {
      "commit": "de6dc46ef734c80cf6d35429988eaaecdd765651",
      "tree": "6a6160a8c365e285dc50ee5bf9640edcbef1cbc7",
      "parents": [
        "91cff3918aac42c74be8b3e6628e3082b19b3d06"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Oct 30 01:21:03 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Oct 30 01:21:24 2025"
      },
      "message": "Fix memory leak\n"
    },
    {
      "commit": "91cff3918aac42c74be8b3e6628e3082b19b3d06",
      "tree": "167871690dd719b173e0d2a56cc5e3ed763bb51b",
      "parents": [
        "3090fd18c0010b48e42286900dfadb2884460c79"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Oct 30 01:18:20 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Oct 30 01:18:45 2025"
      },
      "message": "modules: fix integer sign loss\n"
    },
    {
      "commit": "3090fd18c0010b48e42286900dfadb2884460c79",
      "tree": "31085c47a4e517781581a29a03e7bbb946490b21",
      "parents": [
        "ea6d72a4cef4a8b9127b605acc137667d92aaf2a"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Oct 30 01:13:44 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Oct 30 01:14:09 2025"
      },
      "message": "Fix accessing speak_queue_pause_state outside lock\n"
    },
    {
      "commit": "ea6d72a4cef4a8b9127b605acc137667d92aaf2a",
      "tree": "78214235a697dbbee9c48d0b3c03af1dd7bc7974",
      "parents": [
        "77acfe565f8c1ff8b74e15e68765222ff100d013"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Oct 30 01:11:16 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Oct 30 01:11:42 2025"
      },
      "message": "Fix accessing id-\u003efd outside lock\n"
    },
    {
      "commit": "77acfe565f8c1ff8b74e15e68765222ff100d013",
      "tree": "dcbfd7a4da6b0749cda439f34654d83071fa26c8",
      "parents": [
        "a93530aa67d558c8c9a9d049cf9c5ee0966c7abd"
      ],
      "author": {
        "name": "Marco Ippolito",
        "email": "maroloccio@gmail.com",
        "time": "Thu Oct 02 10:09:54 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Oct 02 11:30:32 2025"
      },
      "message": "Fix typo\n"
    },
    {
      "commit": "a93530aa67d558c8c9a9d049cf9c5ee0966c7abd",
      "tree": "1893f3ad05a722ba3593fdf383ff9b5b2e6d885d",
      "parents": [
        "a8a8d73b663c05db192a1b4e85a57b6ce7d857a8"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Sep 29 23:46:03 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Sep 29 23:47:55 2025"
      },
      "message": "server output: avoid including the \u0027error\u0027 word when there is none\n"
    },
    {
      "commit": "a8a8d73b663c05db192a1b4e85a57b6ce7d857a8",
      "tree": "17237b70d2cc47ad035840b33179e48e4aa266c7",
      "parents": [
        "0359c1efc73b8f235697c426ead91b2569b2873c"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Sep 21 23:03:28 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Sep 21 23:04:48 2025"
      },
      "message": "symbols: Also report successes\n\nSo people do not care too much about the failures.\n"
    },
    {
      "commit": "0359c1efc73b8f235697c426ead91b2569b2873c",
      "tree": "b1ede354583055947f051ce50f253759e0e52951",
      "parents": [
        "28f8f2dbcd44aa29cd55e0661a125eba88f038d7"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Aug 27 10:40:40 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Aug 27 10:42:11 2025"
      },
      "message": "Revert \"module_main: make module_stdout_mutex recursive\"\n\nThis reverts commit 3e5c5b7a8da66f79cd7d7f6e4cb631ec2abd1b8d.\n\nWe are not actually supposed to call module_report_event_begin/end\ninside module_speak... Better make the module hang (which is easy to see\nin gdb) rather than the server hang (which requires understanding that\nbegin/end can only happen after the 200 ack).\n"
    },
    {
      "commit": "28f8f2dbcd44aa29cd55e0661a125eba88f038d7",
      "tree": "6bc84a629dddcb30775ef7e928b17d6932eb7344",
      "parents": [
        "7190c8ca9c7947e75881ee39c7233e6eb8e9f97d"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Aug 27 09:50:45 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Aug 27 09:53:20 2025"
      },
      "message": "Fix documentation of synth begin/end/pause/stop\n\nmodule_speak_begin/end/pause/stop do not actually exist, it is\nmodule_report_event_begin/end/pause/stop that exist.\n"
    },
    {
      "commit": "7190c8ca9c7947e75881ee39c7233e6eb8e9f97d",
      "tree": "6d19a3f7ace8a6c5ab39b8eb3298bec5b433852d",
      "parents": [
        "3e5c5b7a8da66f79cd7d7f6e4cb631ec2abd1b8d"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Aug 27 09:47:39 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Aug 27 09:53:20 2025"
      },
      "message": "typo\n"
    },
    {
      "commit": "3e5c5b7a8da66f79cd7d7f6e4cb631ec2abd1b8d",
      "tree": "37470d2f318740d1fa8b908a826542722084d2cc",
      "parents": [
        "90067d917dff02b4fe9e27c369b142793fad9cc2"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Aug 26 14:46:59 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Aug 26 14:48:14 2025"
      },
      "message": "module_main: make module_stdout_mutex recursive\n\nSo that in module_speak we can call module_report_event_begin/end when\nwe actually use a synchronous synthesis.\n"
    },
    {
      "commit": "90067d917dff02b4fe9e27c369b142793fad9cc2",
      "tree": "b2d56ad5b34be235ab3214698ebe7bfbb26c56d2",
      "parents": [
        "6b6c26bb0e429b61b76722bea1fdfa832c9d5987"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Aug 26 14:30:47 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Aug 26 14:31:22 2025"
      },
      "message": "Add comment about event_begin/end calls\n"
    },
    {
      "commit": "6b6c26bb0e429b61b76722bea1fdfa832c9d5987",
      "tree": "6e40fcbaffea1fce96442adb62ff44c5f1d31162",
      "parents": [
        "488f5d979c8afa55a67f6e976aa2e6c88b5a143e"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Aug 26 14:29:30 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Aug 26 14:30:31 2025"
      },
      "message": "Add stop events in skeleton examples\n"
    },
    {
      "commit": "488f5d979c8afa55a67f6e976aa2e6c88b5a143e",
      "tree": "08817c127caa90c3de9305081e453f443f7a3bf0",
      "parents": [
        "6114ea942af3f71db384bf7195bde181ba08627b"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Jul 22 22:22:00 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Jul 22 22:23:55 2025"
      },
      "message": "locale: Import mathematic symbols from Orca\n\nRefs #1038\n"
    },
    {
      "commit": "6114ea942af3f71db384bf7195bde181ba08627b",
      "tree": "aaa27c412ab07f1e66bfd94b49b6bca48e8b7214",
      "parents": [
        "8555ed68ee30da7e75ccd3b9f278fb324ef1a823"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Jul 22 21:56:24 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Jul 22 21:56:24 2025"
      },
      "message": "typo\n"
    },
    {
      "commit": "8555ed68ee30da7e75ccd3b9f278fb324ef1a823",
      "tree": "7493ea9bb0abaeae433fd810baf05e7b24e14fe4",
      "parents": [
        "a0ad6fe5f7f3a2d1f5a78f75fb135a31c3a1501b"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Jul 22 21:09:31 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Jul 22 21:10:25 2025"
      },
      "message": "locale: Fix orca-chars.dic file names\n"
    },
    {
      "commit": "a0ad6fe5f7f3a2d1f5a78f75fb135a31c3a1501b",
      "tree": "047210022b59ba3d1dff8e6327a2c77e260933eb",
      "parents": [
        "5ff76c4f8c977b6efe6873337f2fd83e6012ec81"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Jul 21 18:45:34 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Jul 21 18:50:41 2025"
      },
      "message": "pulse: Install a configuration snippet to fix resampling quality\n\nAs reported in #884, espeak output suffers from the default resampling\nquality 4, so set it ourself to 10.\n\nFixes #884\n"
    },
    {
      "commit": "5ff76c4f8c977b6efe6873337f2fd83e6012ec81",
      "tree": "a63fc01c90d29e50ecdf9c4d5443e2ee186cf613",
      "parents": [
        "411152bc5edba94c8ce0a60c53a124b8f1361352"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Jul 21 08:42:12 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Jul 21 08:44:50 2025"
      },
      "message": "pipewire: Set resampling quality to 10\n\nAs reported in #884, espeak output suffers from the default resampling\nquality 4, so set it ourself to 10.\n"
    },
    {
      "commit": "411152bc5edba94c8ce0a60c53a124b8f1361352",
      "tree": "0675b02efa0f2b57c748971068c187c9ec3aa32b",
      "parents": [
        "ffbbec5aa1b53cca96b2dbb42c54d520ef1cf098"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Fri Jul 11 16:41:33 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Fri Jul 11 16:41:41 2025"
      },
      "message": "complete documentation for running a dedicated speechd\n"
    },
    {
      "commit": "ffbbec5aa1b53cca96b2dbb42c54d520ef1cf098",
      "tree": "9ab05d8b7006c254623a1597662ef573ea9db94d",
      "parents": [
        "598a37b29826f331ab6ca18000d78a0dc0d7cfaa"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed May 21 22:18:33 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed May 21 22:20:29 2025"
      },
      "message": "Use /bin/sh instead of requiring bash\n\ndash does support set -o pipefail\n"
    },
    {
      "commit": "598a37b29826f331ab6ca18000d78a0dc0d7cfaa",
      "tree": "29416a94a5c8accc404f9d482678aa2be70bcd67",
      "parents": [
        "fb3f571d65224070419973f0c52455031af04d01"
      ],
      "author": {
        "name": "Sébastien Hinderer",
        "email": "Sebastien.Hinderer@ens-lyon.org",
        "time": "Wed Apr 30 12:24:03 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Wed Apr 30 16:24:16 2025"
      },
      "message": "Remove blank line at THE begiNning of config/speechd.conf\n\nThis is the file that gets installed and it is a bit weird when editing\none\u0027s configuration file to land on a blank line when opening it.\n"
    },
    {
      "commit": "fb3f571d65224070419973f0c52455031af04d01",
      "tree": "131cfdc8252f9d2d43f3558ab428846a07b6fc38",
      "parents": [
        "ba76c566c84e269e9375553a08406a8c166c12e5"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Apr 08 23:23:44 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Apr 08 23:26:55 2025"
      },
      "message": "Fix value returned by module_speak\n\nIt was never documented as returning the number of bytes. If that\nhappens to be zero, it would wrongly believed to be failing.\n\nFixes #1025\n"
    },
    {
      "commit": "ba76c566c84e269e9375553a08406a8c166c12e5",
      "tree": "8261ac6150a58a28f12aa6af0405a8c794b94cb2",
      "parents": [
        "cd013dc8f9f1c786c6eb40d6e4c3403ed86daf52"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Apr 08 23:11:09 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Apr 08 23:12:30 2025"
      },
      "message": "output: cope with spurious event from output module\n\nAfter joining the output_thread, we would not consume the event, and\nthus stay stuck inside output_read_reply while running the next command.\n"
    },
    {
      "commit": "cd013dc8f9f1c786c6eb40d6e4c3403ed86daf52",
      "tree": "4fb508a948b93e4306524b37f9327dd77586903d",
      "parents": [
        "bdf61a4075c0eaaebcfdf1b24c389c360131d783"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Apr 08 22:39:22 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Tue Apr 08 22:59:25 2025"
      },
      "message": "Set names to threads\n"
    },
    {
      "commit": "bdf61a4075c0eaaebcfdf1b24c389c360131d783",
      "tree": "0a8e278595387e01b3a67bb9339ec8d07cea7c54",
      "parents": [
        "6d3b4ab549beb939d7e42494b3feb800cb213128"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Apr 06 15:53:20 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Apr 06 16:18:53 2025"
      },
      "message": "Do not add symbols from base/symbols.dic when they are not in \u003clocale\u003e/symbols.dic\n\nE.g. ⇄ is in base/symbols.dic, but not in fr/symbols.dic, so we do not\nwant to take the definition from base/symbols.dic, and let emojis.dic\nprovide a definition.\n\nThis is the same goal as f9622994cbd43ce67f992f87337fbb0174792a21, but\nwithout losing base/symbols.dic providing symbol default properties.\n"
    },
    {
      "commit": "6d3b4ab549beb939d7e42494b3feb800cb213128",
      "tree": "a8ce5fbfd6e715171c3e8097f06d6c9f91eb6977",
      "parents": [
        "281adbc39c9e0a3e61e721fe39ba9362392af6fe"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Apr 06 15:45:03 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Apr 06 16:18:53 2025"
      },
      "message": "Revert \"Process base symbols after other dictionaries\"\n\nThis reverts commit f9622994cbd43ce67f992f87337fbb0174792a21.\n\nThis was dropping the properties of the common NVDA symbols, such as\n\n? sentence ending\tquestion\tall\talways\n\nwhich are not specified in all translated files, they assume that the\nbase file always provide them.\n"
    },
    {
      "commit": "281adbc39c9e0a3e61e721fe39ba9362392af6fe",
      "tree": "91ecf16b517536fdc7478a7ede1723a0e2d2c9f4",
      "parents": [
        "b7162ae64b98125bf4a00f6415e9fc70cb6e729b"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Apr 06 16:16:58 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Apr 06 16:17:09 2025"
      },
      "message": "regenerate\n"
    },
    {
      "commit": "b7162ae64b98125bf4a00f6415e9fc70cb6e729b",
      "tree": "ee131078d62b47e118d591d5b7e11f339885625a",
      "parents": [
        "ab753ce22b3fe417ab5965e51ec9d48dc4faf753"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Apr 06 14:29:50 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sun Apr 06 14:31:27 2025"
      },
      "message": "output: Add missing signaling when not reading message any more\n\nOtherwise this can get stuck when leaving the Orca preference dialog:\n\n6  ___pthread_cond_wait (cond\u003d0x55e35e11fcd0, mutex\u003d0x55e35e11fca8) at ./nptl/pthread_cond_wait.c:458\n7  0x000055e340c5a58b in output_read_reply (output\u003d0x55e35e11fc40) at output.c:299\n8  0x000055e340c5adae in output_get_voices (output\u003d0x55e35e11fc40, language\u003d0x0, variant\u003d0x0) at output.c:521\n9  0x000055e340c5b1dc in output_list_voices (module_name\u003d0x55e35e11cb00 \"espeak-ng\", language\u003d0x0, variant\u003d0x0) at output.c:601\n10 0x000055e340c5228d in parse_list (buf\u003d0x55e35e12bc10 \"LIST SYNTHESIS_VOICES\\r\\n\", bytes\u003d23, fd\u003d34, speechd_socket\u003d0x55e35e12cb20) at parse.c:964\n11 0x000055e340c4d97f in parse (buf\u003d0x55e35e12bc10 \"LIST SYNTHESIS_VOICES\\r\\n\", bytes\u003d23, fd\u003d34) at parse.c:108\n12 0x000055e340c478f1 in serve (fd\u003d34) at server.c:269\n"
    },
    {
      "commit": "ab753ce22b3fe417ab5965e51ec9d48dc4faf753",
      "tree": "b983cbdb3386f1d059628c3ed72f3dbdb1165e98",
      "parents": [
        "ec3198aad73ada4114d7099f2d85274d294e64d8"
      ],
      "author": {
        "name": "Tait Hoyem",
        "email": "tait@tait.tech",
        "time": "Mon Mar 17 23:22:09 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Mon Mar 17 23:24:58 2025"
      },
      "message": "Remove outdated reference to waiting for a connection\n"
    },
    {
      "commit": "ec3198aad73ada4114d7099f2d85274d294e64d8",
      "tree": "c7858aee1fe2d92ca3b0726b8877cc33f509cd42",
      "parents": [
        "d38e8629ac706c6f4a072854fcd74be203021001"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Fri Mar 14 00:39:58 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Fri Mar 14 00:39:58 2025"
      },
      "message": "doc: Really fix dvi build\n"
    },
    {
      "commit": "d38e8629ac706c6f4a072854fcd74be203021001",
      "tree": "dfaaa76533bd1c739b26e2f085e7d5d54d181732",
      "parents": [
        "af7cef83d4151c509321ee3371a0aa6b95bcb28b"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Fri Mar 14 00:10:01 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Fri Mar 14 00:10:01 2025"
      },
      "message": "doc: Fix dvi compilation\n"
    },
    {
      "commit": "af7cef83d4151c509321ee3371a0aa6b95bcb28b",
      "tree": "1a191e67c18988d0f7a5155df4a1724a9e869fc8",
      "parents": [
        "f68ef0b3c79a16f42f3718101dc88f69c908ca2c"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Mar 13 18:37:12 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Mar 13 18:37:12 2025"
      },
      "message": "Regenerate documentation\n"
    },
    {
      "commit": "f68ef0b3c79a16f42f3718101dc88f69c908ca2c",
      "tree": "c7841a8b2eca7a5645f5e922a0dfe809c8c993a0",
      "parents": [
        "562f8b290afda490ea205a0062a35d0f23e6de1b"
      ],
      "author": {
        "name": "Jan Tojnar",
        "email": "jtojnar@gmail.com",
        "time": "Sat Mar 01 14:41:43 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Mar 13 18:35:14 2025"
      },
      "message": "doc/cs: Modernize synthetizer translation\n\n“Syntetizátor” is apparently a valid translation, although less common one.\nhttps://cs.wikipedia.org/wiki/Syntez%C3%A1tor\nhttps://prirucka.ujc.cas.cz/?slovo\u003dsyntetiz%C3%A1tor\nhttps://www.korpus.cz/slovo-v-kostce/compare/cs/syntez%C3%A1tor--syntetiz%C3%A1tor\n"
    },
    {
      "commit": "562f8b290afda490ea205a0062a35d0f23e6de1b",
      "tree": "40425ec6a31c29bc65d8700d35d3e0564ee61675",
      "parents": [
        "1e5de2412fffbfa12bb974864d56447bbcc29a3c"
      ],
      "author": {
        "name": "Jan Tojnar",
        "email": "jtojnar@gmail.com",
        "time": "Sat Mar 01 14:37:22 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Mar 13 18:35:14 2025"
      },
      "message": "doc/cs: Modernize authentication translation\n\n“Autentifikace” is apparently a valid translation, although an uncommon one nowadays.\nhttps://cs.wikipedia.org/wiki/Autentizace\nhttps://www.interval.cz/clanky/hrichy-pro-sileneho-korektora-autentizace-autentikace-nebo-autentifikace/\nhttps://prirucka.ujc.cas.cz/?id\u003dautentifikace\n"
    },
    {
      "commit": "1e5de2412fffbfa12bb974864d56447bbcc29a3c",
      "tree": "57e33c6d710146f06b75c1b88614e66bed513327",
      "parents": [
        "db91622383b7f80473743deaa3d0c611b654db6d"
      ],
      "author": {
        "name": "Jan Tojnar",
        "email": "jtojnar@gmail.com",
        "time": "Sat Mar 01 14:34:55 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Mar 13 18:35:14 2025"
      },
      "message": "doc/cs: Fix typos\n"
    },
    {
      "commit": "db91622383b7f80473743deaa3d0c611b654db6d",
      "tree": "87441c7341b861c48b39600c4f584783c0d64120",
      "parents": [
        "539c4a033cb2f2d3911e1a255485131075051e13"
      ],
      "author": {
        "name": "Jan Tojnar",
        "email": "jtojnar@gmail.com",
        "time": "Sat Mar 01 14:23:06 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Thu Mar 13 18:35:14 2025"
      },
      "message": "doc/cs: Convert to UTF-8\n\nThis is the default encoding nowadays:\nhttps://www.gnu.org/software/texinfo/manual/texinfo/html_node/_0040documentencoding.html\n\nSwitching to that will hopefully prevent future manglings like the one fixed in the parent commit.\n"
    },
    {
      "commit": "539c4a033cb2f2d3911e1a255485131075051e13",
      "tree": "63a99f2797010f1c58e64cbe0404801b8b5a736a",
      "parents": [
        "bfb1030d48eaf3c5fb444ce122ccb38b7ff9c6af"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Mar 08 12:43:53 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Mar 08 12:44:46 2025"
      },
      "message": "cxxpiper: Add building notes\n"
    },
    {
      "commit": "bfb1030d48eaf3c5fb444ce122ccb38b7ff9c6af",
      "tree": "fe18e3f3efba591ac6c1a5822617a7c7e461a2ee",
      "parents": [
        "1f579a4a0933ed90f1bb2efb67ad205fa3d8a81f"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Mar 08 12:38:41 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Mar 08 12:39:10 2025"
      },
      "message": "INSTALL: Fix autoreconf documentation\n\nbuild.sh does much more than just autoreconf\n"
    },
    {
      "commit": "1f579a4a0933ed90f1bb2efb67ad205fa3d8a81f",
      "tree": "8fb22f41f476d9978467b133a8e2746af915c4f7",
      "parents": [
        "0012caa4adcd8a9cd470eac78ae945f77b0d2d78"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Mar 08 11:26:50 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Mar 08 11:28:24 2025"
      },
      "message": "generic: Add GenericDefaultCharset parameter\n\nThis avoids having to use GenericLanguage just to specify the charset,\nand keep it only for the original purpose: translate from iso code to\nsynth-specific code.\n"
    },
    {
      "commit": "0012caa4adcd8a9cd470eac78ae945f77b0d2d78",
      "tree": "490ae6ea100dcb25d2615f9bfa800b8d15b213f6",
      "parents": [
        "038dc8f0d511fc8f8f8cb144d26bd521db90c0ad"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Mar 08 10:59:41 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Mar 08 11:00:04 2025"
      },
      "message": "audio: Fix debugging message\n"
    },
    {
      "commit": "038dc8f0d511fc8f8f8cb144d26bd521db90c0ad",
      "tree": "feb3c683f898f90da8b26f3d40a4364c9149103a",
      "parents": [
        "a42fd7faf81a7660d48ec06b9934a2acb715c3e6"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Mar 08 10:55:38 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Mar 08 10:56:40 2025"
      },
      "message": "audio: Fix debugging message\n"
    },
    {
      "commit": "a42fd7faf81a7660d48ec06b9934a2acb715c3e6",
      "tree": "6ca83117abe059254bc9718dce41a67b5230efbe",
      "parents": [
        "60a00d50b7b10b9aa7ecdb05e3992d7405685353"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Mar 08 10:48:46 2025"
      },
      "committer": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@ens-lyon.org",
        "time": "Sat Mar 08 10:54:17 2025"
      },
      "message": "generic: Fix crash\n\ndd759d73f19a (\"generic: Fix random garbage on non-text utterances\")\nbroke the generic module.\n"
    }
  ],
  "next": "60a00d50b7b10b9aa7ecdb05e3992d7405685353"
}
