)]}'
{
  "log": [
    {
      "commit": "6d6a132bc03324d4ceb78e1b927f995d014cda20",
      "tree": "9a898610747cfe1cde905b1589ece698a9b66f9f",
      "parents": [
        "87434bb3a736e2a27d34df66924471714f408d3d",
        "4f9465318cbf1bea0f31d01322cb2d75636ca8a6"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Tue Aug 25 18:05:09 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 25 18:05:09 2026"
      },
      "message": "Merge pull request #1586 from thaJeztah/prepare_v1.10.2\n\nupdate changelog for v1.10.2"
    },
    {
      "commit": "4f9465318cbf1bea0f31d01322cb2d75636ca8a6",
      "tree": "9a898610747cfe1cde905b1589ece698a9b66f9f",
      "parents": [
        "87434bb3a736e2a27d34df66924471714f408d3d"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Tue Aug 25 17:53:09 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Tue Aug 25 17:53:09 2026"
      },
      "message": "update changelog for v1.10.2\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "87434bb3a736e2a27d34df66924471714f408d3d",
      "tree": "3fb07c98dfc6c03bf0913031726483d01972694e",
      "parents": [
        "8b673a9eb3a8c1b130907b9677f8d431c9ab1ae7",
        "e7d2120300a3e407bef3e8606bdd2ab0aa67dbf8"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Wed Aug 19 23:00:47 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 23:00:47 2026"
      },
      "message": "Merge pull request #1585 from thaJeztah/bump_testify\n\nchore(deps): bump github.com/stretchr/testify v1.12.1"
    },
    {
      "commit": "e7d2120300a3e407bef3e8606bdd2ab0aa67dbf8",
      "tree": "3fb07c98dfc6c03bf0913031726483d01972694e",
      "parents": [
        "8b673a9eb3a8c1b130907b9677f8d431c9ab1ae7"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Wed Aug 19 22:00:39 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Wed Aug 19 22:00:39 2026"
      },
      "message": "chore(deps): bump github.com/stretchr/testify v1.12.1\n\nfull diff: https://github.com/stretchr/testify/compare/v1.12.0...v1.12.1\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "8b673a9eb3a8c1b130907b9677f8d431c9ab1ae7",
      "tree": "c9873364662f765334c5bfa4a97020279669cbd8",
      "parents": [
        "0b920add8d9ba31342949f575067ea6024db81a6",
        "83127326e4b798e5dab17e3593cc34f845592d49"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Wed Aug 19 09:01:41 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 09:01:41 2026"
      },
      "message": "Merge pull request #1583 from thaJeztah/release_1.10.1\n\nupdate changelog for v1.10.1"
    },
    {
      "commit": "0b920add8d9ba31342949f575067ea6024db81a6",
      "tree": "4c80d8c322882f799dbd6d5a7c6b4650279b4347",
      "parents": [
        "e987a4036b7f045048922c0c96903d99bf827f70",
        "5e20694a7ac51fa08cb4e4c72259aac0e70d0a68"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Wed Aug 19 09:01:17 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 09:01:17 2026"
      },
      "message": "Merge pull request #1584 from thaJeztah/more_coverage\n\nTextFormatter: cover nil pointer method receivers"
    },
    {
      "commit": "5e20694a7ac51fa08cb4e4c72259aac0e70d0a68",
      "tree": "4c80d8c322882f799dbd6d5a7c6b4650279b4347",
      "parents": [
        "e987a4036b7f045048922c0c96903d99bf827f70"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Wed Aug 19 08:34:34 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Wed Aug 19 08:45:46 2026"
      },
      "message": "TextFormatter: cover nil pointer method receivers\n\nExtend the regression test for panicking Error and String methods to cover\nnil pointers with both pointer- and value-receiver implementations.\n\nThis includes the value-receiver case that triggered the reported\nregression, such as *net.IP.\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "83127326e4b798e5dab17e3593cc34f845592d49",
      "tree": "df13724b01d50f44e32982b219c8c5da5e0b03d8",
      "parents": [
        "e987a4036b7f045048922c0c96903d99bf827f70"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Wed Aug 19 08:17:48 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Wed Aug 19 08:18:08 2026"
      },
      "message": "update changelog for v1.10.1\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "e987a4036b7f045048922c0c96903d99bf827f70",
      "tree": "b3574564f9395276992598d924ce4ba329a3e85c",
      "parents": [
        "134c80f81c9667a2d8c306f159d474857a20b735",
        "17d574b11e6e884800c2a8cfc6d3d134dcf4d452"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Wed Aug 19 08:11:04 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 08:11:04 2026"
      },
      "message": "Merge pull request #1582 from thaJeztah/panic_handler\n\nTextFormatter: recover panics from Error and String methods"
    },
    {
      "commit": "17d574b11e6e884800c2a8cfc6d3d134dcf4d452",
      "tree": "b3574564f9395276992598d924ce4ba329a3e85c",
      "parents": [
        "134c80f81c9667a2d8c306f159d474857a20b735"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Wed Aug 19 07:01:04 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Wed Aug 19 07:46:52 2026"
      },
      "message": "TextFormatter: recover panics from Error and String methods\n\nPreserve fmt.Sprint behavior for values whose Error or String methods panic.\n\nFix a regression introduced in v1.10.0 (76da6028fadfcf96b9e6b9add546d8b0ff793e02),\nwhich added fast-paths for error and Stringer implementations, but did not\nhandle nil values or panicking implementations.\n\nUsing fmt.Sprint for these values restores the previous behavior, but\nregresses StringerTextFormatter by 38% and ErrorTextFormatter by 23%, and\nincreases allocations by 60% and 22%, respectively. The custom recovery\nkeeps performance effectively unchanged from v1.10.0, with no additional\nallocations:\n\n    pkg: github.com/sirupsen/logrus/benches\n    cpu: Apple M3 Pro\n                          │    v1.10.0    │             fmt.Sprint              │               custom               │\n                          │    sec/op     │   sec/op     vs base                │   sec/op     vs base               │\n    StringerTextFormatter   1.161µ ± 0%     1.600µ ± 0%  +37.81% (p\u003d0.000 n\u003d60)   1.165µ ± 0%  +0.34% (p\u003d0.000 n\u003d60)\n    ErrorTextFormatter      595.9n ± 0%     733.4n ± 0%  +23.07% (p\u003d0.000 n\u003d60)   594.7n ± 0%  -0.21% (p\u003d0.036 n\u003d60)\n    geomean                 831.8n          1.083µ       +30.23%                  832.3n       +0.07%\n\n                          │    v1.10.0    │             fmt.Sprint              │                custom                │\n                          │      B/s      │     B/s       vs base               │      B/s       vs base               │\n    StringerTextFormatter   115.00Mi ± 0%   83.43Mi ± 0%  -27.45% (n\u003d60)          114.64Mi ± 0%  -0.31% (p\u003d0.000 n\u003d60)\n    ErrorTextFormatter      107.22Mi ± 0%   87.12Mi ± 0%  -18.75% (n\u003d60)          107.45Mi ± 0%  +0.21% (p\u003d0.037 n\u003d60)\n    geomean                  111.0Mi        85.26Mi       -23.22%                  111.0Mi       -0.05%\n\nBytes and allocations per operation are unchanged.\n\nupdates 76da6028fadfcf96b9e6b9add546d8b0ff793e02\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "134c80f81c9667a2d8c306f159d474857a20b735",
      "tree": "a81865d2b41be7ce6c82063ede19b374bf0e53f2",
      "parents": [
        "108008340c69fe5ecb526940d7d156d716f4b452",
        "7350f4218b62e4e3e6e17f96755570f21a5628f9"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Tue Aug 18 10:35:23 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 10:35:23 2026"
      },
      "message": "Merge pull request #1579 from thaJeztah/err_handling\n\nentry: allow function-backed error fields"
    },
    {
      "commit": "7350f4218b62e4e3e6e17f96755570f21a5628f9",
      "tree": "a81865d2b41be7ce6c82063ede19b374bf0e53f2",
      "parents": [
        "b3369d2b710f2c5ed1566d6844bd204093bc3627"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Tue Aug 18 10:07:00 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Tue Aug 18 10:08:39 2026"
      },
      "message": "logger: WithError: wrap logger.WithError for consistency\n\nThe utility was skipping WithError as intermediate; wrap the logger\u0027s\nWithError method instead.\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "b3369d2b710f2c5ed1566d6844bd204093bc3627",
      "tree": "b74fa6736d21358b4c878a6fe752a19abc836c1f",
      "parents": [
        "108008340c69fe5ecb526940d7d156d716f4b452"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Tue Aug 18 08:46:25 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Tue Aug 18 10:08:39 2026"
      },
      "message": "entry: allow function-backed error fields\n\nTreat values implementing error as supported fields before checking their\nunderlying kind.\n\nThis allows function-backed error implementations to be added through\nWithError, WithField, and WithFields, matching formatter behavior that renders\nerror values through Error(), while continuing to reject unsupported function\nvalues.\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "108008340c69fe5ecb526940d7d156d716f4b452",
      "tree": "4e80214566d987c8cd5e54105ea774306acd7721",
      "parents": [
        "adf51582e8de3879dd386306550fc036b33f99cd",
        "05046d0a3509ea85e952604e174b8deba8e24463"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Tue Aug 18 10:02:56 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 10:02:56 2026"
      },
      "message": "Merge pull request #1578 from thaJeztah/err_handling_tests\n\nentry: improve error-handling benchmarks and coverage"
    },
    {
      "commit": "05046d0a3509ea85e952604e174b8deba8e24463",
      "tree": "4e80214566d987c8cd5e54105ea774306acd7721",
      "parents": [
        "288063d4b8c9f73fd1cb6c78e55336a386b04d51"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Tue Aug 18 08:36:00 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Tue Aug 18 09:49:54 2026"
      },
      "message": "entry: add coverage for error field values\n\nAdd tests covering error values passed through WithError, WithField, and\nWithFields.\n\nVerify that supported values are preserved and formatted without internal\nfield errors, including function-backed error implementations, while\nunsupported function values continue to be rejected.\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "288063d4b8c9f73fd1cb6c78e55336a386b04d51",
      "tree": "5f2cba9763487142a89b1687ba8d8e416b5fa245",
      "parents": [
        "adf51582e8de3879dd386306550fc036b33f99cd"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Tue Aug 18 07:33:24 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Tue Aug 18 09:11:57 2026"
      },
      "message": "entry: improve error-handling benchmarks\n\nDepending on which function is called, these currently go through\nslightly different paths; benchmark all of them to compare performance.\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "adf51582e8de3879dd386306550fc036b33f99cd",
      "tree": "c2c9baa07ffbce9bc282fe76d352e1435f355b33",
      "parents": [
        "16fee4061397f468258973ce13b0f60a9be104b7",
        "bc8160b95e47d6d6373d3fc288749b40ef2385c3"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Mon Aug 17 23:34:45 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 23:34:45 2026"
      },
      "message": "Merge pull request #1577 from thaJeztah/entry_addfields\n\nentry: add addField utility"
    },
    {
      "commit": "bc8160b95e47d6d6373d3fc288749b40ef2385c3",
      "tree": "c2c9baa07ffbce9bc282fe76d352e1435f355b33",
      "parents": [
        "16fee4061397f468258973ce13b0f60a9be104b7"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Aug 17 21:54:38 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Aug 17 23:25:11 2026"
      },
      "message": "entry: add addField utility\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "16fee4061397f468258973ce13b0f60a9be104b7",
      "tree": "06adc73d1603e723d492fb584e59286f8cbf3feb",
      "parents": [
        "1466e54e3eb9b7fa3af90ad0d12ad8112602f909",
        "e7a78fe21d7fd57b341494e916ccac8ac1867397"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Mon Aug 17 21:47:58 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 21:47:58 2026"
      },
      "message": "Merge pull request #1576 from thaJeztah/more_test_coverage\n\nimprove test- and benchmark coverage"
    },
    {
      "commit": "e7a78fe21d7fd57b341494e916ccac8ac1867397",
      "tree": "06adc73d1603e723d492fb584e59286f8cbf3feb",
      "parents": [
        "ab899752097a8e210e3aeb8b56d96efce068eed6"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Aug 17 21:10:15 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Aug 17 21:41:24 2026"
      },
      "message": "entry: add coverage for mutable Entry.Data\n\nAdd a focused test for the existing Entry.Data behavior.\n\nVerify that fields are exposed through Data, derived entries inherit fields\nwithout sharing the same map, and direct mutations remain visible when the\nentry is logged.\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "ab899752097a8e210e3aeb8b56d96efce068eed6",
      "tree": "0fa87f6ef9a6fc7e48ebf43c48121225aa328828",
      "parents": [
        "7275c5ae5cf4adcdf5a880507fc7b5cc9d8b7a6d"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Aug 17 12:48:15 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Aug 17 21:41:16 2026"
      },
      "message": "entry, formatter: test formatters through the logging path\n\nUpdate formatter and Entry tests to exercise fields through a Logger instead\nof relying on fields being eagerly exposed through Entry.Data.\n\nUse local loggers where possible instead of the package-level standard logger,\nkeeping the tests focused on their observable logging and formatting behavior.\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "7275c5ae5cf4adcdf5a880507fc7b5cc9d8b7a6d",
      "tree": "3183b6da805dfdb26d62056cb3a74c8822bce8f0",
      "parents": [
        "7c18f0808d3c29c784146894bf6c7a4a4ca436ed"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Sun Aug 16 22:20:40 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Aug 17 21:30:28 2026"
      },
      "message": "entry: add test for branching from reused entries\n\nVerify that an Entry can be logged, used as the parent of a derived Entry,\nand then reused without inheriting fields added to the child.\n\nThis provides coverage for preserving parent field state when entries are\nbranched and reused.\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "7c18f0808d3c29c784146894bf6c7a4a4ca436ed",
      "tree": "e8bfbfbad9a9d44afab1618222053c813acccd33",
      "parents": [
        "a4a6cdac94bdcc497e734a88bba4eff38fe279eb"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Sun Aug 16 18:13:26 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Aug 17 21:30:23 2026"
      },
      "message": "entry: add benchmarks for entry construction and reuse\n\nAdd benchmarks for creating entries, chained field construction, and logging\nthrough entries reused across multiple calls.\n\nCover chained logging with the target level both enabled and disabled to\nprovide baselines for evaluating changes to how Entry fields are accumulated,\nmaterialized, and reused.\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "a4a6cdac94bdcc497e734a88bba4eff38fe279eb",
      "tree": "dd1c8f95dda51ee7053068572249f9f8cec73d9a",
      "parents": [
        "1466e54e3eb9b7fa3af90ad0d12ad8112602f909"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Aug 17 11:00:13 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Aug 17 21:25:49 2026"
      },
      "message": "logger: reset timer before LoggerLog sub-benchmarks\n\nReset the benchmark timer after logger setup in each `LoggerLog` sub-benchmark.\nThis keeps logger configuration and other setup work out of the measured loop.\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "1466e54e3eb9b7fa3af90ad0d12ad8112602f909",
      "tree": "f955a044a408b8ccdb303f418f62f49719eb6c43",
      "parents": [
        "457e372460c7a80ca7c800b51ebeee5362aaa180",
        "d8f2f7b03862ed8f16fcba06ba413caae1a6db1c"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Mon Aug 17 19:35:26 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 19:35:26 2026"
      },
      "message": "Merge pull request #1575 from thaJeztah/bump_testify\n\nchore(deps): bump github.com/stretchr/testify v1.12.0"
    },
    {
      "commit": "d8f2f7b03862ed8f16fcba06ba413caae1a6db1c",
      "tree": "f955a044a408b8ccdb303f418f62f49719eb6c43",
      "parents": [
        "457e372460c7a80ca7c800b51ebeee5362aaa180"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Aug 17 13:19:40 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Aug 17 13:19:40 2026"
      },
      "message": "chore(deps): bump github.com/stretchr/testify v1.12.0\n\nno longer has any dependencies;\n\nfull diff: https://github.com/stretchr/testify/compare/v1.10.0...v1.12.0\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "457e372460c7a80ca7c800b51ebeee5362aaa180",
      "tree": "53c54b5f50b45563349629bbea9c19444ba46cf1",
      "parents": [
        "8ebae73c053afd85032210e8bbab1ce1b4f65dbe",
        "6b6a3a624e574d3f4988634f1e09e91826fc1570"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Thu Aug 13 15:04:35 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 15:04:35 2026"
      },
      "message": "Merge pull request #1573 from thaJeztah/update_colors\n\nformatter: differentiate debug and trace colors"
    },
    {
      "commit": "6b6a3a624e574d3f4988634f1e09e91826fc1570",
      "tree": "53c54b5f50b45563349629bbea9c19444ba46cf1",
      "parents": [
        "8ebae73c053afd85032210e8bbab1ce1b4f65dbe"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Thu Aug 13 14:21:55 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Thu Aug 13 14:24:47 2026"
      },
      "message": "formatter: differentiate debug and trace colors\n\nUse dim cyan for debug output and dim white for trace output to make\nlower-severity log messages easier to distinguish in TTY output.\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "8ebae73c053afd85032210e8bbab1ce1b4f65dbe",
      "tree": "82329a1c664c79b3ac883ebc982d95fb1f3b742c",
      "parents": [
        "84cedf9d8b02e719f44be1b8a384be724ad49097",
        "f156a33552c54420d1f95b897877a4c3156d6a02"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Thu Aug 13 12:37:31 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 12:37:31 2026"
      },
      "message": "Merge pull request #1572 from thaJeztah/update_logs\n\ndocs: clarify formatter field handling"
    },
    {
      "commit": "f156a33552c54420d1f95b897877a4c3156d6a02",
      "tree": "82329a1c664c79b3ac883ebc982d95fb1f3b742c",
      "parents": [
        "84cedf9d8b02e719f44be1b8a384be724ad49097"
      ],
      "author": {
        "name": "Oleg Romanchuk",
        "email": "oleg@romanchuk.us",
        "time": "Tue Nov 01 18:40:58 2022"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Thu Aug 13 11:57:52 2026"
      },
      "message": "docs: clarify formatter field handling\n\nClarify that Formatter receives standard log fields through Entry itself,\nwhile fields added with WithField and WithFields are available in Entry.Data.\n\nDocument how TextFormatter and JSONFormatter combine Entry.Data with standard\nfields, including conflict prefixing and configurable field names.\n\nCo-authored-by: Oleg Romanchuk \u003coleg@romanchuk.us\u003e\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "84cedf9d8b02e719f44be1b8a384be724ad49097",
      "tree": "a63cc1d68f926fc7c72ca04885efabbacd7f69cf",
      "parents": [
        "e5b377a7932474688abffb96591cc885ee3bba6a",
        "a3e1580e2b36f466df623bccef48f19eb384ed3a"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Thu Aug 13 10:33:26 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 10:33:26 2026"
      },
      "message": "Merge pull request #1571 from thaJeztah/slog_hookopts\n\nhooks/slog: add HookOptions"
    },
    {
      "commit": "a3e1580e2b36f466df623bccef48f19eb384ed3a",
      "tree": "a63cc1d68f926fc7c72ca04885efabbacd7f69cf",
      "parents": [
        "e5b377a7932474688abffb96591cc885ee3bba6a"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Thu Aug 13 10:14:57 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Thu Aug 13 10:15:10 2026"
      },
      "message": "hooks/slog: add HookOptions\n\nAdd HookOptions and update NewHook to accept optional configuration, matching\nthe configuration pattern used by NewHandler.\n\nMove LevelMapper into HookOptions and copy the supplied options at\nconstruction time. Nil options use the default level mapping.\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "e5b377a7932474688abffb96591cc885ee3bba6a",
      "tree": "29fd31176a4cf09226112865e32e9f1d31836d9c",
      "parents": [
        "0cee61e3ee5f853af4e74aa8b47fdd8515c2bfb6",
        "30a5487f299fa8935410cb2089993362923603d2"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Thu Aug 13 10:14:20 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 10:14:20 2026"
      },
      "message": "Merge pull request #1570 from thaJeztah/slog_leveler\n\nhooks/slog: add level adapters"
    },
    {
      "commit": "30a5487f299fa8935410cb2089993362923603d2",
      "tree": "29fd31176a4cf09226112865e32e9f1d31836d9c",
      "parents": [
        "0cee61e3ee5f853af4e74aa8b47fdd8515c2bfb6"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Thu Aug 13 08:48:28 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Thu Aug 13 09:35:20 2026"
      },
      "message": "hooks/slog: add level adapters\n\nAdd Level and SlogLevel adapters for converting between Logrus and slog\nlevels using the default mappings.\n\nLevel implements slog.Leveler, allowing a Logrus level to be used directly\nwhere slog expects a level provider. SlogLevel provides the corresponding\nLogrus-side Leveler interface for the reverse direction.\n\nCentralize the default level mappings in these adapters and reuse them from\nHook and Handler.\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "0cee61e3ee5f853af4e74aa8b47fdd8515c2bfb6",
      "tree": "b80b9c9c1ce28eefb9d81224f95360b37611de44",
      "parents": [
        "6be54c5dbba3a1b80b5d338db0a2a831aaaee6d6",
        "4069973f07a67d8cf90703a1bff6030736ce73f6"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Thu Aug 13 09:33:54 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 09:33:54 2026"
      },
      "message": "Merge pull request #1569 from thaJeztah/slog_noleveler\n\nhooks/slog: use concrete slog.Level for hook level mapping"
    },
    {
      "commit": "4069973f07a67d8cf90703a1bff6030736ce73f6",
      "tree": "b80b9c9c1ce28eefb9d81224f95360b37611de44",
      "parents": [
        "6be54c5dbba3a1b80b5d338db0a2a831aaaee6d6"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Thu Aug 13 09:08:25 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Thu Aug 13 09:08:25 2026"
      },
      "message": "hooks/slog: use concrete slog.Level for hook level mapping\n\nChange Hook.LevelMapper to return slog.Level instead of slog.Leveler.\n\nLevelMapper is already evaluated for each record, allowing mappings to be\ndynamic. Returning slog.Level makes the mapped record severity concrete\nwhile reserving slog.Leveler for dynamically evaluated level thresholds.\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "6be54c5dbba3a1b80b5d338db0a2a831aaaee6d6",
      "tree": "39d0da557053bf0f477d0efc084fad27f6a952f9",
      "parents": [
        "972503ed7b512dcc1045d1c6fe84c91fa84108f9",
        "76c4de676d47ec6def893d8b484ff383c74ad87c"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Wed Aug 12 21:44:08 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 21:44:08 2026"
      },
      "message": "Merge pull request #1568 from thaJeztah/update_changelog\n\nupdate release notes for v1.10.0"
    },
    {
      "commit": "76c4de676d47ec6def893d8b484ff383c74ad87c",
      "tree": "39d0da557053bf0f477d0efc084fad27f6a952f9",
      "parents": [
        "972503ed7b512dcc1045d1c6fe84c91fa84108f9"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Wed Aug 12 21:08:47 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Wed Aug 12 21:32:42 2026"
      },
      "message": "update release notes for v1.10.0\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "972503ed7b512dcc1045d1c6fe84c91fa84108f9",
      "tree": "75743a1e4cf02a4669700e7a1bb43080c50cd35b",
      "parents": [
        "025ccbd688ed13de07515c4c76d819a6c85bb96f",
        "5226a8ba9c60eb8230ceb2a63fce8e6339f0f0a0"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Wed Aug 12 19:20:56 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 19:20:56 2026"
      },
      "message": "Merge pull request #957 from jtnord/fix-763\n\nDo not assume no color on windows."
    },
    {
      "commit": "5226a8ba9c60eb8230ceb2a63fce8e6339f0f0a0",
      "tree": "75743a1e4cf02a4669700e7a1bb43080c50cd35b",
      "parents": [
        "a7393386f007dd0c5b080fd6b26dfd15bcf05449"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Sat Jun 27 09:54:55 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Wed Aug 12 18:55:32 2026"
      },
      "message": "README: touch-up for Windows TTY detection\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "a7393386f007dd0c5b080fd6b26dfd15bcf05449",
      "tree": "1d42edf3d4ad605761b77d527604431dcb3dfee4",
      "parents": [
        "025ccbd688ed13de07515c4c76d819a6c85bb96f"
      ],
      "author": {
        "name": "James Nord",
        "email": "jnord+github@cloudbees.com",
        "time": "Tue Apr 23 16:12:36 2019"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Wed Aug 12 17:55:42 2026"
      },
      "message": "Do not assume no color on windows.\n\nrecent windows 10 can support colour (it is even enabled in logrus)\nhowever the default formatter does not use colour and so the default log\nformat is different on windows to other OSes when logging to the\nterminal.  This removed the hard code no colour for windows terminals to\nbe consistent with other OSes\n\nNow that windows coloring behaves correctly the unit test for\ntext_formatter was incorrect.\n\nchanges the expected test output to be the same regardless of the OS.\n\nCo-authored-by: James Nord \u003cjnord+github@cloudbees.com\u003e\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "025ccbd688ed13de07515c4c76d819a6c85bb96f",
      "tree": "ef89f818d2785691ff91171d5a42aee5d6a7bb14",
      "parents": [
        "f170ce15c83870ccaff807d2ebec8002ade926c9",
        "3e820c30ea11568ad865afe1259a758d2d2a0520"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Wed Aug 12 17:54:31 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 17:54:31 2026"
      },
      "message": "Merge pull request #1567 from thaJeztah/slog_no_recursion\n\nhooks/slog: prevent recursive forwarding between adapters"
    },
    {
      "commit": "3e820c30ea11568ad865afe1259a758d2d2a0520",
      "tree": "ef89f818d2785691ff91171d5a42aee5d6a7bb14",
      "parents": [
        "f170ce15c83870ccaff807d2ebec8002ade926c9"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Wed Aug 12 17:13:37 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Wed Aug 12 17:45:13 2026"
      },
      "message": "hooks/slog: prevent recursive forwarding between adapters\n\nTrack Logrus loggers in the context while records are forwarded through the\nslog Hook, and have Handler stop records that would otherwise be forwarded\nback into a logger they already traversed.\n\nThis prevents Hook and Handler configurations from recursively forwarding\nrecords until the stack overflows, while still allowing records to pass\nbetween different Logrus and slog backends during migration.\n\nAdd coverage for direct and multi-logger recursion, context preservation, and\nan example showing Logrus and slog integrations working in both directions.\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "f170ce15c83870ccaff807d2ebec8002ade926c9",
      "tree": "49fab59f1b903b528debe53ad2d24a6c4fe694fb",
      "parents": [
        "ca74dacf6077ddebe4e2876d7ac92bdd87598cb4",
        "cd2c7ff1a73b2b79202565f0e8c96913b13155a4"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Wed Aug 12 17:44:30 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 17:44:30 2026"
      },
      "message": "Merge pull request #1566 from thaJeztah/slog_caller\n\nhooks/slog: add HandlerOptions and source reporting"
    },
    {
      "commit": "cd2c7ff1a73b2b79202565f0e8c96913b13155a4",
      "tree": "49fab59f1b903b528debe53ad2d24a6c4fe694fb",
      "parents": [
        "ca74dacf6077ddebe4e2876d7ac92bdd87598cb4"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Wed Aug 12 16:47:47 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Wed Aug 12 17:30:17 2026"
      },
      "message": "hooks/slog: add HandlerOptions and source reporting\n\nAlign the Handler constructor and configuration model with the standard\nlibrary slog handlers by accepting *HandlerOptions and copying the supplied\noptions at construction time.\n\nMove custom level mapping into HandlerOptions so handler configuration has a\nsingle source of truth and is preserved by derived handlers.\n\nAdd AddSource support to preserve slog.Record caller information as Logrus\ncaller metadata, avoiding Logrus caller rediscovery when the record already\ncontains the original call site.\n\nAdd coverage for caller preservation and an example showing source reporting\nand custom level mapping.\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "ca74dacf6077ddebe4e2876d7ac92bdd87598cb4",
      "tree": "f7b7b0602f3cb7c60e575d7bcfccf02e9ffd7e73",
      "parents": [
        "3ca4a7651bce83a6f9a27e7d5ee983f5f79cefd2",
        "e89852dc905657a617422f43bc04f544b41ec2ae"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Wed Aug 12 16:48:36 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 16:48:36 2026"
      },
      "message": "Merge pull request #1565 from thaJeztah/slog_example\n\nhooks/slog: add package documentation and examples"
    },
    {
      "commit": "e89852dc905657a617422f43bc04f544b41ec2ae",
      "tree": "f7b7b0602f3cb7c60e575d7bcfccf02e9ffd7e73",
      "parents": [
        "3ca4a7651bce83a6f9a27e7d5ee983f5f79cefd2"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Wed Aug 12 15:20:53 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Wed Aug 12 16:35:16 2026"
      },
      "message": "hooks/slog: add package documentation and examples\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "3ca4a7651bce83a6f9a27e7d5ee983f5f79cefd2",
      "tree": "9f406a76e0bcb70f7359ef6eee8e7142bc2327c5",
      "parents": [
        "4dffc93e185dfc8ef2c001582502412f5bac4966",
        "ea7cc5b3d151e57b97230a0b5d6d7e17084a97e9"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Wed Aug 12 15:32:30 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 15:32:30 2026"
      },
      "message": "Merge pull request #1553 from sonnemusk/feat/slog-handler\n\nAdd slog.Handler writing to logrus.Logger"
    },
    {
      "commit": "ea7cc5b3d151e57b97230a0b5d6d7e17084a97e9",
      "tree": "9f406a76e0bcb70f7359ef6eee8e7142bc2327c5",
      "parents": [
        "4dffc93e185dfc8ef2c001582502412f5bac4966"
      ],
      "author": {
        "name": "sonnemusk",
        "email": "sonnemusk@gmail.com",
        "time": "Fri Jul 24 02:03:59 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Wed Aug 12 14:47:23 2026"
      },
      "message": "hooks/slow: add slog.Handler that writes to logrus.Logger\n\nComplete the second half of #1401 by providing a slog.Handler bridge\ninto Logrus, complementary to the existing Logrus→slog hook.\n\n- Map slog levels to logrus levels (customizable via Handler.LevelMapper)\n- Pass attributes as logrus fields; flatten groups with \".\" prefixes\n- Preserve context and record time\n- Enabled defers to the underlying logger\u0027s level\n- Preserve Logrus\u0027s extended Trace, Fatal, and Panic levels using the same\n  custom slog level boundaries as Hook, and document the mapping directly on\n  Handler.\n\nCo-authored-by: sonnemusk \u003csonnemusk@gmail.com\u003e\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "4dffc93e185dfc8ef2c001582502412f5bac4966",
      "tree": "ff57e0271786f3f49908df64e99401a513704129",
      "parents": [
        "ed957d512a86b08ac978d64f65ae256a1b56263f",
        "477c0b7b38846d745f57232cb727b98155b3a48c"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Wed Aug 12 12:59:26 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 12:59:26 2026"
      },
      "message": "Merge pull request #1564 from thaJeztah/panic_at_the_disco\n\nentry: don\u0027t panic when using Log with PanicLevel"
    },
    {
      "commit": "477c0b7b38846d745f57232cb727b98155b3a48c",
      "tree": "ff57e0271786f3f49908df64e99401a513704129",
      "parents": [
        "ed957d512a86b08ac978d64f65ae256a1b56263f"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Wed Aug 12 10:49:24 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Wed Aug 12 12:42:42 2026"
      },
      "message": "entry: don\u0027t panic when using Log with PanicLevel\n\nGeneric Log methods treat their level as logging severity and intentionally\ndo not apply the side effects of the corresponding Panic or Fatal methods.\n\nCommit f96066e moved the panic from Entry.Panic into Entry.log as an\noptimization, so that Entry.log no longer needed to return the formatted\nmessage solely for use as the panic value. As a side effect, this caused\nEntry.Log(PanicLevel, ...) to panic as well.\n\nCommit 5f8c666 later documented the intended distinction between the\ngeneric Log methods and the dedicated Panic and Fatal methods, but the\nEntry implementation remained inconsistent with that contract.\n\nPass the intended panic behavior explicitly through the internal logging\nhelpers, so that only Panic, Panicf, and Panicln panic after logging. Keep\nthe panic in Entry.log so that it uses the fully populated *Entry as the\npanic value without requiring the normal logging path to return it.\n\nAlso consolidate the argument formatting used by the Entry logging\nmethods and document the same behavior for Logf and Logln.\n\nThis preserves the *Entry panic value established by 35f12fb and does not\nchange the panic-safe locking introduced by 977e033.\n\nRegression introduced in f96066e.\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "ed957d512a86b08ac978d64f65ae256a1b56263f",
      "tree": "3a0922ec00be0b30be8be50cd9491ebc7bcee3dd",
      "parents": [
        "e95168d0c72ba4b0ea9b6e5277b72258499b4970",
        "aee0e0416f92717dcfbedc06a610ec199e06f4f8"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Tue Aug 11 11:28:48 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 11:28:48 2026"
      },
      "message": "Merge pull request #1563 from thaJeztah/fix_example_formatting\n\nREADME: fix log output example formatting"
    },
    {
      "commit": "e95168d0c72ba4b0ea9b6e5277b72258499b4970",
      "tree": "76faacf09f37e6f334781d7f5d58e4fe95f7f202",
      "parents": [
        "1d2576d5a0174e8158db753ea5663466f5aa51b9",
        "0f9fa1418c4aaa5871e58f52b612287c1fc92ae7"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Tue Aug 11 11:22:45 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 11:22:45 2026"
      },
      "message": "Merge pull request #1562 from thaJeztah/deprecate_MutexWrap\n\nlogrus: deprecate MutexWrap"
    },
    {
      "commit": "aee0e0416f92717dcfbedc06a610ec199e06f4f8",
      "tree": "3f83fddf2211d19bdf3d931300486fc2597de357",
      "parents": [
        "1d2576d5a0174e8158db753ea5663466f5aa51b9"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Tue Aug 11 11:12:36 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Tue Aug 11 11:18:29 2026"
      },
      "message": "README: fix log output example formatting\n\n- don\u0027t wrap json output\n- add code hints for syntax highlighting\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "0f9fa1418c4aaa5871e58f52b612287c1fc92ae7",
      "tree": "76faacf09f37e6f334781d7f5d58e4fe95f7f202",
      "parents": [
        "1d2576d5a0174e8158db753ea5663466f5aa51b9"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Tue Aug 11 11:02:07 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Tue Aug 11 11:03:12 2026"
      },
      "message": "logrus: deprecate MutexWrap\n\nMutexWrap was introduced as an implementation detail for Logger.SetNoLock,\nbut was exported as part of the package API.\n\nMake the underlying implementation private and keep MutexWrap as a\ndeprecated alias for compatibility.\n\nupdates bc35b026f0f9469fbd784f9066e936722d144c27\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "1d2576d5a0174e8158db753ea5663466f5aa51b9",
      "tree": "d6b454238c99ef07537da9b9020f009b282c8c7d",
      "parents": [
        "4695ac2b2ebcf5a035682c430294ff8a0cafb3ce",
        "72d5c9ae83897c34bd9048e165cf3bff7667d87c"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Tue Aug 11 10:37:00 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 10:37:00 2026"
      },
      "message": "Merge pull request #1561 from thaJeztah/slog_levels\n\nhooks/slog: preserve extended Logrus levels"
    },
    {
      "commit": "72d5c9ae83897c34bd9048e165cf3bff7667d87c",
      "tree": "d6b454238c99ef07537da9b9020f009b282c8c7d",
      "parents": [
        "7bdc17742b3e6424fc2da7382b945a09e26b701c"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Tue Aug 11 09:32:56 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Tue Aug 11 10:10:30 2026"
      },
      "message": "hooks/slog: preserve extended Logrus levels\n\nMap Trace, Fatal, and Panic to custom slog levels instead of collapsing them\ninto Debug and Error, preserving their relative severity and allowing the\nmapping to round-trip through the slog Handler.\n\nThe slog hook has not been included in a released version yet, so this mapping\ncan still be adjusted without a compatibility concern.\n\nupdates 4e3d3133d57894562639ccc807bcb1d7fd3466fc\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "7bdc17742b3e6424fc2da7382b945a09e26b701c",
      "tree": "b104acb0dcf59229d61ed9ea5812c7116e4f841e",
      "parents": [
        "4695ac2b2ebcf5a035682c430294ff8a0cafb3ce"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Tue Aug 11 09:37:53 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Tue Aug 11 09:41:28 2026"
      },
      "message": "hooks/slog: rename tests to match implementation\n\nupdates d37a1efbcece94ad50f908ea8be317b73e58fcff\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "4695ac2b2ebcf5a035682c430294ff8a0cafb3ce",
      "tree": "09e979eef71926d627a986df2eb84871482765f7",
      "parents": [
        "597f8ff316b8a6b811343d18efe2f13a970f896a",
        "d37a1efbcece94ad50f908ea8be317b73e58fcff"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Tue Aug 11 09:18:43 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 09:18:43 2026"
      },
      "message": "Merge pull request #1560 from thaJeztah/slog_rename\n\nhooks/slog: rename SlogHook to Hook"
    },
    {
      "commit": "d37a1efbcece94ad50f908ea8be317b73e58fcff",
      "tree": "09e979eef71926d627a986df2eb84871482765f7",
      "parents": [
        "597f8ff316b8a6b811343d18efe2f13a970f896a"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Tue Aug 11 08:51:10 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Tue Aug 11 09:04:17 2026"
      },
      "message": "hooks/slog: rename SlogHook to Hook\n\nRename SlogHook to Hook and NewSlogHook to NewHook to avoid repeating the\npackage name in the public API.\n\nThe slog hook has not been included in a released version yet, so these names\ncan still be adjusted without a deprecation cycle.\n\nupdates 4e3d3133d57894562639ccc807bcb1d7fd3466fc\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "597f8ff316b8a6b811343d18efe2f13a970f896a",
      "tree": "637d081551eb4a725e1bd38fd3c4699719dff700",
      "parents": [
        "59310a0f9feda2cfff84a47f08908dc7e5551a29",
        "a33e613bc3452b2557654b675caf3a94d390d72c"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Tue Aug 11 08:46:19 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 08:46:19 2026"
      },
      "message": "Merge pull request #1559 from thaJeztah/remove_levelmapper\n\nhooks/slog: remove LevelMapper type"
    },
    {
      "commit": "59310a0f9feda2cfff84a47f08908dc7e5551a29",
      "tree": "9961b32e91b8e387e61cbabc2df5cc5947f49485",
      "parents": [
        "0f08b84da767c513cff203ad771b44ee5766aed7",
        "26d72464666dfbeda509188450731629598a60eb"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Tue Aug 11 08:34:24 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 08:34:24 2026"
      },
      "message": "Merge pull request #1558 from thaJeztah/allow_caller_override\n\nentry: preserve explicitly set caller information"
    },
    {
      "commit": "a33e613bc3452b2557654b675caf3a94d390d72c",
      "tree": "123dbcce5462eb1d9c1dcf251fb723469d8969b1",
      "parents": [
        "0f08b84da767c513cff203ad771b44ee5766aed7"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Tue Aug 11 08:30:47 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Tue Aug 11 08:32:56 2026"
      },
      "message": "hooks/slog: remove LevelMapper type\n\nUse a plain function field for SlogHook.LevelMapper instead of exposing a\nseparate named function type.\n\nThe slog hook has not been included in a released version yet, so this API can\nstill be adjusted without a deprecation cycle.\n\nupdates 8011284fadc315067c23e8cfc19bef11e130051c\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "26d72464666dfbeda509188450731629598a60eb",
      "tree": "9961b32e91b8e387e61cbabc2df5cc5947f49485",
      "parents": [
        "0f08b84da767c513cff203ad771b44ee5766aed7"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Aug 10 19:51:21 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Tue Aug 11 08:10:09 2026"
      },
      "message": "entry: preserve explicitly set caller information\n\nKeep an Entry\u0027s existing Caller when caller reporting is enabled instead of\nalways replacing it with the automatically detected caller.\n\nUpdate the Caller and HasCaller documentation to describe that Caller may be\nset explicitly and is only populated automatically when nil.\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "0f08b84da767c513cff203ad771b44ee5766aed7",
      "tree": "09720d3e611648ed99d98dcf2dc6e50750e613d3",
      "parents": [
        "5dce903c79568edf2d5088eb0a7c8bdb5e56a9b4",
        "b5c337de8cdbeb5304ed61c115fe1f002396ad18"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Mon Aug 10 19:40:48 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 10 19:40:48 2026"
      },
      "message": "Merge pull request #1557 from thaJeztah/extract_invalidfn\n\nentry: extract invalid field check, and touch-up error-message"
    },
    {
      "commit": "b5c337de8cdbeb5304ed61c115fe1f002396ad18",
      "tree": "09720d3e611648ed99d98dcf2dc6e50750e613d3",
      "parents": [
        "5989b7de2739388fbf42e2e91d91291a34421d91"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Aug 10 19:07:41 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Aug 10 19:25:28 2026"
      },
      "message": "entry: touch-up error for skipped fields\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "5989b7de2739388fbf42e2e91d91291a34421d91",
      "tree": "ece720657a876a96fc706369ec4b781eef96cd5e",
      "parents": [
        "5dce903c79568edf2d5088eb0a7c8bdb5e56a9b4"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Aug 10 13:43:33 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Aug 10 18:23:27 2026"
      },
      "message": "entry: extract invalid field check\n\nMove the check for unsupported function values into a small helper so it\ncan be reused by both WithField and WithFields.\n\nThis allows WithField to handle a single field directly instead of creating\na temporary Fields map and delegating to WithFields, while keeping the\nvalidation logic in one place.\n\nBefore/after:\n\n                                         │  before.txt  │              after.txt              │\n                                         │    sec/op    │   sec/op     vs base                │\n    Entry_WithError                         117.8n ± 1%   118.5n ± 1%   +0.64% (p\u003d0.012 n\u003d10)\n    Entry_WithField_Chain                  1107.5n ± 1%   630.8n ± 0%  -43.04% (p\u003d0.000 n\u003d10)\n    Entry_WithFields/valid_fields_only      224.2n ± 0%   225.3n ± 1%   +0.49% (p\u003d0.002 n\u003d10)\n    Entry_WithFields/contains_func          273.2n ± 1%   247.5n ± 1%   -9.44% (p\u003d0.000 n\u003d10)\n    Entry_WithFields/contains_func_ptr      279.8n ± 2%   249.8n ± 1%  -10.74% (p\u003d0.001 n\u003d10)\n    Entry_WithFields/mixed_valid_invalid    327.2n ± 1%   299.9n ± 1%   -8.36% (p\u003d0.000 n\u003d10)\n    Entry_WithFields/larger_map             619.8n ± 3%   612.2n ± 1%   -1.23% (p\u003d0.007 n\u003d10)\n    geomean                                 332.9n        294.3n       -11.61%\n\n                                         │  before.txt  │               after.txt               │\n                                         │     B/op     │     B/op      vs base                 │\n    Entry_WithError                          448.0 ± 0%     448.0 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\n    Entry_WithField_Chain                  2.188Ki ± 0%   2.188Ki ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\n    Entry_WithFields/valid_fields_only       448.0 ± 0%     448.0 ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\n    Entry_WithFields/contains_func           488.0 ± 0%     480.0 ± 0%  -1.64% (p\u003d0.000 n\u003d10)\n    Entry_WithFields/contains_func_ptr       488.0 ± 0%     480.0 ± 0%  -1.64% (p\u003d0.000 n\u003d10)\n    Entry_WithFields/mixed_valid_invalid     488.0 ± 0%     480.0 ± 0%  -1.64% (p\u003d0.000 n\u003d10)\n    Entry_WithFields/larger_map            1.320Ki ± 0%   1.320Ki ± 0%       ~ (p\u003d1.000 n\u003d10) ¹\n    geomean                                  684.8          680.0       -0.71%\n    ¹ all samples are equal\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "5dce903c79568edf2d5088eb0a7c8bdb5e56a9b4",
      "tree": "4dc2e4cb0bc0a3fe93f4d80fcdf71cec4bf66a6c",
      "parents": [
        "d67ad3100daaf050766ae492a9dad7a48f6b0975",
        "df70e6505603ccaf881ec69826c05470a2e36a1c"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Mon Aug 10 18:15:43 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 10 18:15:43 2026"
      },
      "message": "Merge pull request #1556 from thaJeztah/refactor_dup\n\nentry: centralize entry duplication"
    },
    {
      "commit": "df70e6505603ccaf881ec69826c05470a2e36a1c",
      "tree": "4dc2e4cb0bc0a3fe93f4d80fcdf71cec4bf66a6c",
      "parents": [
        "d67ad3100daaf050766ae492a9dad7a48f6b0975"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Aug 10 11:06:07 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Aug 10 13:02:00 2026"
      },
      "message": "entry: centralize entry duplication\n\nAdd an internal dup helper for copying the common Entry state used when\nderiving or logging entries.\n\nUse the helper in Dup, WithError, WithContext, WithFields, WithTime, and log,\nwhile retaining the specialized Data allocation used by field-adding methods.\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "d67ad3100daaf050766ae492a9dad7a48f6b0975",
      "tree": "895418a68bd4234984255ae54515bc0dff292da6",
      "parents": [
        "226e0c55f9b4bc185812092185361269c3556438",
        "7cbb10ec5fa2e04dfabb3308de1c7d8cdc32d21b"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Mon Aug 10 13:01:43 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 10 13:01:43 2026"
      },
      "message": "Merge pull request #1555 from thaJeztah/fix_benchmarks\n\nbench: keep benchmark results alive"
    },
    {
      "commit": "7cbb10ec5fa2e04dfabb3308de1c7d8cdc32d21b",
      "tree": "895418a68bd4234984255ae54515bc0dff292da6",
      "parents": [
        "226e0c55f9b4bc185812092185361269c3556438"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Aug 10 12:28:24 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Aug 10 12:28:24 2026"
      },
      "message": "bench: keep benchmark results alive\n\nKeep the results of Entry benchmarks alive until after the measured loop so the\ncompiler cannot eliminate the work being benchmarked.\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "226e0c55f9b4bc185812092185361269c3556438",
      "tree": "c6ce04c45efe489ece43cb256121c5704b596aac",
      "parents": [
        "a23d315dfebb6de47d18c92c8ae1430736a60b0c",
        "e3a55b75b9b7fefef67e20a0da35167064b84f00"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Mon Aug 10 10:01:44 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 10 10:01:44 2026"
      },
      "message": "Merge pull request #1554 from thaJeztah/deprecate_hascaller\n\nentry: deprecate Entry.HasCaller"
    },
    {
      "commit": "e3a55b75b9b7fefef67e20a0da35167064b84f00",
      "tree": "c6ce04c45efe489ece43cb256121c5704b596aac",
      "parents": [
        "a23d315dfebb6de47d18c92c8ae1430736a60b0c"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Aug 10 09:12:20 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Aug 10 09:28:25 2026"
      },
      "message": "entry: deprecate Entry.HasCaller\n\nDeprecate Entry.HasCaller in favor of checking Entry.Caller directly.\n\nHasCaller uses a value receiver, which copies the Entry unnecessarily for a\nsimple nil check. Add a //go:fix inline directive so tooling can migrate callers\nto `Entry.Caller !\u003d nil` automatically, and clarify when caller information is\nnormally attached.\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "a23d315dfebb6de47d18c92c8ae1430736a60b0c",
      "tree": "9179534261666b02b746a0650fc18d5b3c4e526d",
      "parents": [
        "285c9ec81274c8a02f9af737aa870bd2695db120",
        "d97f76e85e92eb2fe4602ac43f108aa340ecd753"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Mon Jun 29 09:58:17 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 09:58:17 2026"
      },
      "message": "Merge pull request #1543 from thaJeztah/linting\n\ngofmt,  remote some dot-imports, and minor cleanup in LogAndAssertText"
    },
    {
      "commit": "d97f76e85e92eb2fe4602ac43f108aa340ecd753",
      "tree": "9179534261666b02b746a0650fc18d5b3c4e526d",
      "parents": [
        "0085fa49749aa03f15955f0911e96e1705929ff1"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Jun 29 09:37:32 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Jun 29 09:40:11 2026"
      },
      "message": "internal/testutils: LogAndAssertText: minor cleanup\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "0085fa49749aa03f15955f0911e96e1705929ff1",
      "tree": "7049ef19377e2c329d270eec5f759fe6f56b8087",
      "parents": [
        "e79c4cd347dba06abe0f476a4e2f9fee88792265"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Jun 29 08:49:51 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Jun 29 09:37:10 2026"
      },
      "message": "internal/testutils: remove dot-imports\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "e79c4cd347dba06abe0f476a4e2f9fee88792265",
      "tree": "e339a5fcc94708f798471045fab81d2332d2b530",
      "parents": [
        "285c9ec81274c8a02f9af737aa870bd2695db120"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Jun 29 08:49:08 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Jun 29 08:49:08 2026"
      },
      "message": "gofmt code\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "285c9ec81274c8a02f9af737aa870bd2695db120",
      "tree": "3fd99643ad42a67d527437e8220fa827d905f61b",
      "parents": [
        "8101d7eb512e40271e72d1d0051b87cbd31eb476",
        "2a9c51007f8909568f7c5a38b2437bd980f38723"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Sat Jun 27 14:24:22 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 27 14:24:22 2026"
      },
      "message": "Merge pull request #1357 from hatamiarash7/master\n\nFix Markdown style"
    },
    {
      "commit": "2a9c51007f8909568f7c5a38b2437bd980f38723",
      "tree": "3fd99643ad42a67d527437e8220fa827d905f61b",
      "parents": [
        "8101d7eb512e40271e72d1d0051b87cbd31eb476"
      ],
      "author": {
        "name": "Arash Hatami",
        "email": "hatamiarash7@gmail.com",
        "time": "Wed Nov 09 06:50:29 2022"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Sat Jun 27 14:07:31 2026"
      },
      "message": "Fix MD style\n\nCo-authored-by: Arash Hatami \u003chatamiarash7@gmail.com\u003e\nSigned-off-by: Arash Hatami \u003chatamiarash7@gmail.com\u003e\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "8101d7eb512e40271e72d1d0051b87cbd31eb476",
      "tree": "35336ad4f512118e2182519dcfdf80588846ac18",
      "parents": [
        "86fcec7854434dd75d6bfc915556198be0710e8a",
        "560daa44bf74b6ebd6b88cc0aac6c0ae91ca3432"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Sat Jun 27 12:12:47 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 27 12:12:47 2026"
      },
      "message": "Merge pull request #1541 from thaJeztah/optimize_single_string\n\nOptimize single-string Log and Logln calls"
    },
    {
      "commit": "560daa44bf74b6ebd6b88cc0aac6c0ae91ca3432",
      "tree": "35336ad4f512118e2182519dcfdf80588846ac18",
      "parents": [
        "147441047bc46aff92844124bd8c4205e64ae6ea"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Sat Jun 27 10:46:21 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Sat Jun 27 11:57:54 2026"
      },
      "message": "Optimize single-string Log and Logln calls\n\nAvoid fmt.Sprint/fmt.Sprintln for the common case where a logging call\nreceives a single string argument. This preserves formatting semantics while\nremoving allocations from enabled Logger.Log and Logger.Logln calls.\n\nFor Entry.Logln, we can also skip Entry.Log as intermediate, as we don\u0027t\nhave to re-check if the log-level is enabled, and we already have a formatted\nstring.\n\n    go test -run\u003d\u0027^$\u0027 -bench\u003d\u0027BenchmarkLoggerLog\u0027 -benchmem -count\u003d10 -cpu\u003d1 \u003e after.txt\n    benchstat before.txt after.txt\n    goos: darwin\n    goarch: arm64\n    pkg: github.com/sirupsen/logrus\n    cpu: Apple M3 Pro\n                             │ before.txt  │              after.txt              │\n                             │   sec/op    │   sec/op     vs base                │\n    LoggerLog/disabled_level   1.072n ± 1%   1.075n ± 5%        ~ (p\u003d0.631 n\u003d10)\n    LoggerLog/enabled_log      173.0n ± 1%   135.0n ± 0%  -21.97% (p\u003d0.000 n\u003d10)\n    LoggerLog/enabled_logln    226.1n ± 1%   135.7n ± 0%  -39.97% (p\u003d0.000 n\u003d10)\n    geomean                    34.74n        27.00n       -22.26%\n\n                             │  before.txt  │              after.txt               │\n                             │     B/op     │    B/op     vs base                  │\n    LoggerLog/disabled_level   0.000 ± 0%     0.000 ± 0%        ~ (p\u003d1.000 n\u003d10) ¹\n    LoggerLog/enabled_log      212.0 ± 0%     208.0 ± 0%   -1.89% (p\u003d0.000 n\u003d10)\n    LoggerLog/enabled_logln    240.0 ± 0%     208.0 ± 0%  -13.33% (p\u003d0.000 n\u003d10)\n    geomean                               ²                -5.26%                ²\n    ¹ all samples are equal\n    ² summaries must be \u003e0 to compute geomean\n\n                             │  before.txt  │              after.txt               │\n                             │  allocs/op   │ allocs/op   vs base                  │\n    LoggerLog/disabled_level   0.000 ± 0%     0.000 ± 0%        ~ (p\u003d1.000 n\u003d10) ¹\n    LoggerLog/enabled_log      4.000 ± 0%     3.000 ± 0%  -25.00% (p\u003d0.000 n\u003d10)\n    LoggerLog/enabled_logln    6.000 ± 0%     3.000 ± 0%  -50.00% (p\u003d0.000 n\u003d10)\n    geomean                               ²               -27.89%                ²\n    ¹ all samples are equal\n    ² summaries must be \u003e0 to compute geomean\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "147441047bc46aff92844124bd8c4205e64ae6ea",
      "tree": "2562187034ef0df90fc661446e75f5cd3217cc91",
      "parents": [
        "86fcec7854434dd75d6bfc915556198be0710e8a"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Sat Jun 27 10:20:47 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Sat Jun 27 11:55:07 2026"
      },
      "message": "add BenchmarkLoggerLog\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "86fcec7854434dd75d6bfc915556198be0710e8a",
      "tree": "3c83cd0c4b082783ff59f1befa0dcef2320e5926",
      "parents": [
        "5144111cbd1cf799a62bcd3beb96441ebd5e3380",
        "31d38f8d430dd5e94b6aa22b6e48eb8aaac80dfc"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Fri Jun 26 16:36:30 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 16:36:30 2026"
      },
      "message": "Merge pull request #1518 from thaJeztah/prepare_release\n\nCHANGELOG: add v1.10.0 release notes (unreleased)"
    },
    {
      "commit": "31d38f8d430dd5e94b6aa22b6e48eb8aaac80dfc",
      "tree": "3c83cd0c4b082783ff59f1befa0dcef2320e5926",
      "parents": [
        "5144111cbd1cf799a62bcd3beb96441ebd5e3380"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Mon Mar 09 20:06:39 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Fri Jun 26 16:22:32 2026"
      },
      "message": "CHANGELOG: add v1.10.0 release notes (unreleased)\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "5144111cbd1cf799a62bcd3beb96441ebd5e3380",
      "tree": "5c075b55abff173b4c3ab5586124ac471f91286a",
      "parents": [
        "276c5f8df9e13899126cfb2e0f615bd644d5027f",
        "7479cd095cb1afeac09613affb373658c910f516"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Fri Jun 26 16:22:09 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 16:22:09 2026"
      },
      "message": "Merge pull request #1540 from thaJeztah/more_godoc\n\nLogger.SetReportCaller: add godoc"
    },
    {
      "commit": "7479cd095cb1afeac09613affb373658c910f516",
      "tree": "5c075b55abff173b4c3ab5586124ac471f91286a",
      "parents": [
        "276c5f8df9e13899126cfb2e0f615bd644d5027f"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Fri Jun 26 16:01:16 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Fri Jun 26 16:09:20 2026"
      },
      "message": "Logger.SetReportCaller: add godoc\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "276c5f8df9e13899126cfb2e0f615bd644d5027f",
      "tree": "1138ecf9a4084a836309df0646a02f92d3a78ddb",
      "parents": [
        "a329321ca408dcf36e49a6cdeac31e47be3d6362",
        "89c2280b2221a508288577ba930cb607478b93e4"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Fri Jun 26 16:06:19 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 16:06:19 2026"
      },
      "message": "Merge pull request #1539 from thaJeztah/update_changelog_headings\n\nCHANGELOG: fix headings to be h2"
    },
    {
      "commit": "89c2280b2221a508288577ba930cb607478b93e4",
      "tree": "1138ecf9a4084a836309df0646a02f92d3a78ddb",
      "parents": [
        "a329321ca408dcf36e49a6cdeac31e47be3d6362"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Fri Jun 26 15:48:48 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Fri Jun 26 15:48:48 2026"
      },
      "message": "CHANGELOG: fix headings to be h2\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "a329321ca408dcf36e49a6cdeac31e47be3d6362",
      "tree": "f40286a8d2b1bc7a3af95398893030d345402072",
      "parents": [
        "5747588486a27a93ffc782fe5fbff21d0c3f5458",
        "13afddf9da2a93a754d1770c35489e1041da73f5"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Fri Jun 26 15:27:22 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 15:27:22 2026"
      },
      "message": "Merge pull request #1537 from thaJeztah/compile_assert\n\nreplace TestLogrusInterfaces with compile-time assertions"
    },
    {
      "commit": "13afddf9da2a93a754d1770c35489e1041da73f5",
      "tree": "f40286a8d2b1bc7a3af95398893030d345402072",
      "parents": [
        "5747588486a27a93ffc782fe5fbff21d0c3f5458"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Fri Jun 26 14:39:46 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Fri Jun 26 15:12:34 2026"
      },
      "message": "replace TestLogrusInterfaces with compile-time assertions\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "5747588486a27a93ffc782fe5fbff21d0c3f5458",
      "tree": "04db75cdb1e41be64d38cdfb388940b26b744e26",
      "parents": [
        "c4f54905181e5d8e16157ec0d518c59a9af650e3",
        "36cad8ebf0fcb463520585d9f1bdfab7907c62c1"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Fri Jun 26 15:11:44 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 15:11:44 2026"
      },
      "message": "Merge pull request #1527 from thaJeztah/reorg_interfaces\n\nexpose interfaces for Logger and Entry"
    },
    {
      "commit": "36cad8ebf0fcb463520585d9f1bdfab7907c62c1",
      "tree": "04db75cdb1e41be64d38cdfb388940b26b744e26",
      "parents": [
        "c4f54905181e5d8e16157ec0d518c59a9af650e3"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Wed Mar 17 08:30:42 2021"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Fri Jun 26 14:59:44 2026"
      },
      "message": "expose interfaces for Logger and Entry\n\nExport small interfaces covering the common logging methods.\n\nThese interfaces allow consumers to depend on behavior instead of\nconcrete Logrus types, making it easier to write reusable code and\nto substitute alternative logging implementations.\n\nThis patch splits up the FieldLogger interface to smaller interfaces\nthat together compose a FieldLogger.\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "c4f54905181e5d8e16157ec0d518c59a9af650e3",
      "tree": "e418416ac09242cc34c4fcc7003a489b62ae5ead",
      "parents": [
        "3d496daa427910eaea682b6ae11a2af324e27028",
        "36e96b28793e11f8cb1a138e700221e5cc06762e"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Fri Jun 26 13:46:25 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 13:46:25 2026"
      },
      "message": "Merge pull request #1536 from thaJeztah/zizmor_fixes\n\nci: update actions, pin actions by sha, and remove unneeded `pull-requests: read`"
    },
    {
      "commit": "36e96b28793e11f8cb1a138e700221e5cc06762e",
      "tree": "e418416ac09242cc34c4fcc7003a489b62ae5ead",
      "parents": [
        "c5016884b01084c06e7f0678609fed1ab460697b"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Fri Jun 26 12:15:00 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Fri Jun 26 13:19:56 2026"
      },
      "message": "ci: remove unneeded pull-requests: read\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "c5016884b01084c06e7f0678609fed1ab460697b",
      "tree": "3639919f67b6787a14c56e9963b551967b747c55",
      "parents": [
        "655924646a1290fa1384435513c6844aa596ef41"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Fri Jun 26 12:12:19 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Fri Jun 26 13:19:56 2026"
      },
      "message": "ci: pin actions by sha\n\nApply fixes from zizmor;\n\n    zizmor --fix\u003dall --min-severity\u003dmedium .\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "655924646a1290fa1384435513c6844aa596ef41",
      "tree": "84947c4615ad0e646bee8edf09be6f2f64911c52",
      "parents": [
        "3d496daa427910eaea682b6ae11a2af324e27028"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Fri Jun 26 12:10:24 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Fri Jun 26 13:19:56 2026"
      },
      "message": "ci: update actions and use full version\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "3d496daa427910eaea682b6ae11a2af324e27028",
      "tree": "62f4939c0c2a73bd239ba94aeda8b37f155bac5b",
      "parents": [
        "3f5a0d3ed8867ac12be9c8175dc5a08cee147388",
        "a0e4101584b01e13adbe7a81125daaf7137e7c9d"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Fri Jun 26 13:17:59 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 13:17:59 2026"
      },
      "message": "Merge pull request #1535 from thaJeztah/fix_tinygo_step2\n\nci: add tinygo test case"
    },
    {
      "commit": "a0e4101584b01e13adbe7a81125daaf7137e7c9d",
      "tree": "917fce226a385619f02e3e57912fd945a6d33557",
      "parents": [
        "72731a48491b316115ba2f866bc8acab34ffd5a3"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Fri Jun 26 12:45:46 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Fri Jun 26 12:54:01 2026"
      },
      "message": "ci: validate tinygo checksum\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    },
    {
      "commit": "3f5a0d3ed8867ac12be9c8175dc5a08cee147388",
      "tree": "8f18cf5af842391a104a30a0a8f124a27ef7715e",
      "parents": [
        "fdc99501531e1c26d4b759cdb80db3ba74ed94c8",
        "861fc2cea9048c8863039ec01edd1e36b9769ead"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "thaJeztah@users.noreply.github.com",
        "time": "Fri Jun 26 12:26:05 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 12:26:05 2026"
      },
      "message": "Merge pull request #1533 from box4wangjing/master\n\nchore: fix some comments to improve readability"
    },
    {
      "commit": "72731a48491b316115ba2f866bc8acab34ffd5a3",
      "tree": "88f8388e0e4e46b524fb5c8411ccc18c3d5f0806",
      "parents": [
        "9d6c8ec939078dd32e58862ed45d77de3c31ccbe"
      ],
      "author": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Fri Jun 26 08:45:04 2026"
      },
      "committer": {
        "name": "Sebastiaan van Stijn",
        "email": "github@gone.nl",
        "time": "Fri Jun 26 12:22:11 2026"
      },
      "message": "ci: run all tests with tinygo\n\nSigned-off-by: Sebastiaan van Stijn \u003cgithub@gone.nl\u003e\n"
    }
  ],
  "next": "9d6c8ec939078dd32e58862ed45d77de3c31ccbe"
}
