)]}'
{
  "log": [
    {
      "commit": "b6416be4b6192a6f498acca1e4fc3b05127c7dd6",
      "tree": "38ea04c1560562af4a4a75ad8754dd9ecd36dcf6",
      "parents": [
        "bccdf70f626be8d0efb3b63701caf2e789fe8dbf"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Sep 03 14:37:37 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Sep 03 14:37:37 2026 +0200"
      },
      "message": "Document that logDice measures salience, not surprise\n\nA collocate that co-occurs less often than expected can still reach a\nlogDice close to that of a strongly attracted one, which is puzzling\nuntil one sees that logDice never compares against an expected\nfrequency. Since it only puts O into the numerator of the Dice\ncoefficient, the difference between the score of a pair and the score it\nwould get if it co-occurred exactly as often as expected is precisely\nthe pointwise mutual information:\n\n  logDice(O) - logDice(E) \u003d log2(O / E) \u003d pmi\n\nThe level a pair starts from thus depends on the marginal frequencies\nalone. Among the collocates of Grund in a 5+5 window, the rare\n\"triftiger\" starts at -4.60 and reaches 3.96, exceeding what is expected\nby a pmi of 8.57, while the frequent \"Berlin\" starts at 5.58 and still\nreaches 3.84 while co-occurring 1.74 bits less often than expected.\n\nThis is a property of the measure rather than a defect: logDice was\ndesigned to be corpus size independent and comparable across corpora,\nnot to express surprise. But since collocationAnalysis() ranks and\nthresholds by it, users should know to drop pairs that are not attested\nmore often than expected, with dplyr::filter(O \u003e E) or a minimum pmi or\nll. This is now explained in a section of the association score\ndocumentation, referred to from the thresholdScore parameter where the\ndefault takes effect, and summarized in the Readme.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I9059cd064e2a612d9327cc009da0b4856612e41d\n"
    },
    {
      "commit": "bccdf70f626be8d0efb3b63701caf2e789fe8dbf",
      "tree": "543f2e984b656b1f856e4a4f7c1e7d2e4d3149e7",
      "parents": [
        "8bacebb64a582d71eee5005a2de377fb1027da69"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Sep 03 14:26:48 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Sep 03 14:26:48 2026 +0200"
      },
      "message": "Guard log-likelihood against windows covering the whole corpus\n\nThe contingency table of ll() classifies all N corpus tokens by whether\nthey lie inside a window around the node, using window_size * O1 as the\nrow total. That stops being a partition once the windows cover more than\nthe corpus: N - window_size * O1 turns negative, and the score became\nNaN through a log() of a negative number, with only a warning from log()\nitself to indicate what had happened.\n\nSuch a node has to cover more than 1/w of the corpus, so with the\ndefault window it is out of reach, but in DeReKo \"der\" (2.90% of all\ntokens) gets there from a context of 18 left and 18 right, \"die\" from\n19+19 and \"und\" from 24+24.\n\nThese cases now yield NA with a warning that names the condition and\nsuggests a smaller window. The check is vectorized, so that only the\naffected values become NA.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I5e11396c67bc9103ec73745726d052857536df7f\n"
    },
    {
      "commit": "8bacebb64a582d71eee5005a2de377fb1027da69",
      "tree": "82d0cb70ae7ca471f2dd268d395a199c91ad80ae",
      "parents": [
        "1e9f79174b3cb0b5983ab321db0c9e34d0f781ce"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Sep 03 14:26:36 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Sep 03 14:26:36 2026 +0200"
      },
      "message": "Compute logDice as defined by Rychly, comparable to other tools\n\nlogDice was computed as 14 + log2(2 * O / (w * O1 + O2)), multiplying\nthe node frequency by the window size, while the documentation cites\nRychly (2008), who defines it as 14 + log2(2 * O / (O1 + O2)).\n\nThe window size factor does not belong here. It is correct in the\nexpected frequency E, where w * O1 counts the positions in which a\ncollocate can occur, and the other scores take the window into account\nthrough E alone. The Dice coefficient, however, relates the\nco-occurrence frequency to how often the two words occur at all, so its\ndenominator sums marginal frequencies. Adding w * O1, a count of window\npositions, to O2, a count of word tokens, mixes units, and it makes the\ncoefficient asymmetric: for Grund/triftiger it gave 0.64, for\ntriftiger/Grund 3.96, from the same counts.\n\nThe practical effect was that a frequent node made w * O1 dominate the\ndenominator - for Grund and triftiger in a 5+5 window, O2 contributed\n0.006% of it - so that rare collocates were penalised. triftiger scored\n0.64, below Berlin at 2.03, although Berlin co-occurs with Grund less\noften than chance predicts (pmi -1.74). They are now 3.96 and 3.84.\n\nScores rise by up to log2(w), so up to 3.32 for the default context of\n5 left and 5 right, which makes collocationAnalysis() somewhat more\npermissive when recursing with the default thresholdScore \u003d \"logDice\"\nand threshold \u003d 2. Results computed with a total window size of 1 are\nunaffected, the two formulas being identical there, which is why the\nlight verb construction table in the Readme stays as it is, while the\ncollocationScoreQuery example, which uses the default window, was rerun.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I190fd65d0c53517df74c26c007a6440d974f700c\n"
    },
    {
      "commit": "1e9f79174b3cb0b5983ab321db0c9e34d0f781ce",
      "tree": "e4357bbcc0c0fe7b31b49349c6c37054307b31dd",
      "parents": [
        "81ddc344bdb4f93cfe0b498c35a05f0b70d6a9c9"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Sep 03 13:23:42 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Sep 03 13:49:12 2026 +0200"
      },
      "message": "Doc prompting tests: cover authorization and multi-VC comparison\n\nThe two Readme sections that are hardest to follow were not covered by\nany documentation task: authorization, which readers most often get\nwrong, and the multi-VC collocation comparison, whose section is new and\nwhose columns are easy to misread.\n\nUnlike the other tasks, the code of these two cannot reasonably be\nexecuted in a test: authorization needs a browser flow or a token for\nrestricted data, and a multi-VC collocation analysis runs for minutes.\nOnly the generated code is inspected, which is what these tests are\nabout anyway - whether the Readme can be followed.\n\nThe expectations therefore aim at the parts that are easy to get wrong\nand that the sections explicitly explain: metadataOnly \u003d FALSE for\nreceiving KWIC snippets, a *named* vc vector, since the names become the\nlabels of the comparison columns, reducing the result to one row per\ncollocate, since it holds one per collocate and vc, and taking the\nimputed flag into account, since imputed scores describe presence or\nabsence rather than a measured contrast.\n\nGLM-5.3-Flash solves both from the Readme alone, in the multi-VC case\nincluding filter(label \u003d\u003d ..., !imputed) and arranging by delta_logDice.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I25865ef32bb6c3ee894cfb081f93d51bfb28b915\n"
    },
    {
      "commit": "81ddc344bdb4f93cfe0b498c35a05f0b70d6a9c9",
      "tree": "f08d3677c408a8db5b5c0bdd81f6f68a9df59de4",
      "parents": [
        "efec8634852c4e4d2cf4352fbb063bf425a3312e"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Sep 03 13:18:53 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Sep 03 13:49:12 2026 +0200"
      },
      "message": "Readme: document corpusStats, textMetadata and collocationScoreQuery\n\nThese three are exported, useful and were shown nowhere in the Readme,\nwhich not only leaves readers to find them in the reference\ndocumentation, but effectively hides them from an LLM whose context is\nthe Readme: it cannot use what it has not been shown.\n\ncorpusStats answers how large a (virtual) corpus is, textMetadata\nretrieves everything KorAP knows about a text given its sigle, and\ncollocationScoreQuery scores collocation candidates that are already\nknown, as opposed to collocationAnalysis, which searches for them. The\nlatter also demonstrates passing a vector of collocates, which was added\nin 1.3.0 but not shown anywhere either.\n\nAll examples and their output were run against DeReKo. The three\ndocumentation prompting tasks added cover exactly these\nfunctions, and GLM-5.3-Flash solves all three from the new sections\nalone, including as.df \u003d TRUE and the vector of collocates.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: Ia760750d10825bb2220c807ef0fc6e25e2cdd821\n"
    },
    {
      "commit": "efec8634852c4e4d2cf4352fbb063bf425a3312e",
      "tree": "a31f620b8fe51a33a045854dfac66e75d8c3da37",
      "parents": [
        "6957ac9ceaf4b0de7ce1e350ed5f10b4bcfca2ce"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Sep 03 13:13:37 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Sep 03 13:49:12 2026 +0200"
      },
      "message": "Check the Readme against the package on every test run\n\nThe Readme is the entry point for readers, and, since generated code is\ncopied from it verbatim, for LLMs too. Nothing so far noticed when it\ndrifted away from the package: the \"available since RKorAPClient\n0.9.0.9000\" claim named a version that never existed and survived for\nyears, and the code in it is never executed.\n\nFour checks, all offline and in milliseconds, so unlike the\ndocumentation tests they can run on every commit:\n\n* every R code block parses\n* every function called exists, those of this package as exports, the\n  others through the packages the Readme itself loads\n* every named argument exists in the signature of the function it is\n  passed to, which is where a renamed parameter would otherwise turn\n  the Readme into a source of broken code\n* every version mentioned has a NEWS.md section, which is what the\n  0.9.0.9000 claim failed\n\nSignatures are taken from the .local wrapper that setMethod() creates\nfor S4 methods whose arguments differ from the generic, since the\nformals of the method itself are only those of the generic.\n\nAll four were verified to fail on an injected fault of their kind. They\nskip when Readme.md is absent, as it is in the built package, being in\n.Rbuildignore.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: Ic1aefea5d964956ca46132ec3d97e2318b4fe931\n"
    },
    {
      "commit": "6957ac9ceaf4b0de7ce1e350ed5f10b4bcfca2ce",
      "tree": "2f472382e2dbeb87241e9e6577edec0de530a4c1",
      "parents": [
        "323a4d399c1b52943d8cd72d8a7c31fe2dcddc57"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Sep 03 12:18:27 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Sep 03 13:49:12 2026 +0200"
      },
      "message": "CI: run the doc prompting tests in their own, non-blocking job\n\nThe Readme documentation prompting tests query LLMs, so they are neither\ndeterministic nor free: a model can miss an expectation on one run and\nmeet it on the next, and an empty API account fails them regardless of\nthe state of the package. Letting them decide whether the pipeline is\ngreen means red builds for commits that changed nothing related.\n\nThey therefore move into their own job with allow_failure: true, where a\nfailure is visible as what it is, a hint that the documentation may have\nbecome unclear, without blocking anything. That job runs GLM-5.3-Flash,\nwhich solved all three documentation tasks in every trial run, while\ngemini-3.5-flash-lite still missed an expectation every few runs.\n\nKeeping them out of the main job needs more than a testthat filter,\nsince devtools::check() runs the tests as well, and blanking the API\nkeys in the job would not work either, because project level variables\nset in the GitLab UI take precedence over those in the yml. The model\nlist is used as the switch instead: RKORAP_LLM_MODELS unset means the\ndefault models, set but empty means none at all, so the main job\ngenerates no LLM tests in either of its two steps.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: Ia1f29f05a0b8401f61307859e97948f4be977565\n"
    },
    {
      "commit": "323a4d399c1b52943d8cd72d8a7c31fe2dcddc57",
      "tree": "72193c6a46d2ead305d9765f85019f6f137b6c07",
      "parents": [
        "37f96075e1fdcab348c358be3ce2820eb5ac0a50"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Sep 03 12:04:35 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Sep 03 13:48:31 2026 +0200"
      },
      "message": "Doc prompting tests: run against several current low cost models\n\nThe Readme documentation tests ran against a single hardcoded model,\ngemini-2.5-pro. Since the tasks are simple, and since what is being\ntested is the Readme rather than the model, cheap and fast models are\nthe better fit: if such a model cannot follow the Readme, that is a\nfinding about the Readme. They are also considerably cheaper to run,\nin money and in energy.\n\nThe model is therefore no longer a constant but a list, run one test per\nmodel and task, and overridable via RKORAP_LLM_MODELS. The defaults are\ngemini-3.5-flash-lite, claude-sonnet-5 and GLM-5.3-Flash, the latter via\nthe OpenAI compatible Synthetic API at https://api.synthetic.new/openai/v1,\nauthorized with SYNTHETIC_API_KEY. tidyllm\u0027s openai provider takes no\ncustom base url, so that endpoint is queried directly with httr2, which\nis a hard dependency anyway.\n\nEach model is skipped individually if its API key is missing, so a\npartial set of keys tests whatever it can. Conditions of the account\nrather than of the documentation - rate limits, failed authorization\nand, newly, exhausted credits - lead to a skip instead of a failure.\n\nAlso fixes a problem that was independent of all this: the file called\nlibrary(tidyllm) at top level, although tidyllm is only suggested. Where\nit is not installed, as when checking with _R_CHECK_DEPENDS_ONLY_, that\nmade the whole file fail instead of skip. tidyllm is now qualified at\nits call sites and skipped on when missing.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I8be20b040f7549f39996af1d02afcefa69e63ce2\n"
    },
    {
      "commit": "37f96075e1fdcab348c358be3ce2820eb5ac0a50",
      "tree": "d46205219fa10a6373ca793dbdbefbc8ccf96fc1",
      "parents": [
        "ef5b7c1b03f9e83b0d6ef9a4f10d56d4e1a44c5d"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Sep 03 07:18:11 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Sep 03 07:18:11 2026 +0200"
      },
      "message": "CA: check the parameters a cacheAs file was created with\n\nUntil now, a cacheAs file was used whenever it existed. Changing a\nparameter and forgetting to delete the file therefore silently returned\nan analysis computed with the old parameters. Inferring the parameters\nfrom the cached data frame would not help much: of the 23 parameters\nthat affect the result, only node, vc, leftContextSize and\nrightContextSize are recoverable from it, which leaves out exactly the\nones that are typically tuned between runs, such as minOccur,\ntopCollocatesLimit, searchHitsSampleLimit, exactFrequencies, stopwords\nand threshold.\n\nThe parameters are therefore recorded when the file is written, and\ncompared on the next call. They are collected from the call frame rather\nthan listed explicitly, so that parameters added later are covered\nwithout having to remember to register them. Also recorded is the API\nURL, since reusing one cache file for two KorAP instances is a mistake\nworth catching, and, for reference only, the index revision: corpus\nupdates should not invalidate an analysis that was deliberately kept.\n\nIf parameters differ, the analysis is recomputed and the file\noverwritten, with a warning naming the differing parameters. That is\npreferred over an error: it never returns results that disagree with the\nrequested parameters, and never breaks a long pipeline. Users who want\nto keep an old analysis can pass a different cacheAs file name.\n\nThe parameters are stored in an attribute, so the file stays a plain\ndata frame for anyone reading it with readRDS(), and the attribute is\nstripped when loading, so the returned value is the same whether it came\nfrom the cache or not. Cache files written by 1.3.0 carry no attribute\nand are used as they are.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: Ib21aa93fa3c2bf1cd42dd07dbfcbd2970841a412\n"
    },
    {
      "commit": "ef5b7c1b03f9e83b0d6ef9a4f10d56d4e1a44c5d",
      "tree": "f3ba890b684e12eba03776fe47806facc8667312",
      "parents": [
        "ae4079aee782740315e3c8d7cb6f19dbe1f73df8"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Sep 01 07:24:43 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Sep 01 07:24:43 2026 +0200"
      },
      "message": "Drop the PTXQC dependency and bump to 1.3.0.9000\n\nPTXQC was imported for exactly two small string functions, lcpCount()\nand lcsCount(), both used only by queryStringToLabel(). It brought\nrmzqc, jsonvalidate, seqinr and V8 with it, and V8 was the only\ndependency in the whole tree that required a libv8 installation, which\nmade it by far the most expensive part of installing RKorAPClient on\nLinux. The recursive dependency closure shrinks from 128 to 90 packages.\n\nBoth functions are pure R in PTXQC, so reimplementing them costs no\ncompiled code. The replacements determine the length of the common\nprefix and suffix by binary search over vectorized startsWith() and\nendsWith() calls, instead of comparing character by character (and, for\nthe suffix, reversing every string with strsplit/rev/paste first). That\nmakes them 10 to 65 times faster, depending on the number and length of\nthe strings:\n\n                                      PTXQC      here\n  10 query strings, 37 chars   prefix   183 us    16 us\n                               suffix   127 us    13 us\n  121 vcs, 42 chars            prefix   413 us    29 us\n                               suffix  1029 us    26 us\n  50 strings, 563 chars        prefix  1405 us    64 us\n                               suffix  4362 us    67 us\n\nResults are unchanged: the two functions were compared against their\nPTXQC counterparts over 3020 inputs, and queryStringToLabel() over 8044\ninput/argument combinations, without a single difference. Empty vectors,\nempty strings and the single string case (where a string is its own\nprefix and suffix) behave exactly as before. The only deviation is for\nNA input, where PTXQC\u0027s lcsCount() silently treats NA as the literal\nstring \"NA\"; queryStringToLabel() never reaches it in that case, because\nthe prefix function errors on NA in both implementations.\n\nSince V8 is gone, and keyring no longer needs sodium either, libv8-dev\nand libsodium-dev can be dropped from the Linux installation\ninstructions in the Readme.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: Icad4bc76b773b1586922dd05458b82409d112932\n"
    },
    {
      "commit": "ae4079aee782740315e3c8d7cb6f19dbe1f73df8",
      "tree": "a25b6cb22654fda2c031b5839cd4fcbd44562077",
      "parents": [
        "81024dd4d92c2f926dbae0405802871d490765d1"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Sep 01 06:57:17 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Sep 01 06:57:42 2026 +0200"
      },
      "message": "CI: create GitHub releases from NEWS.md on version tags\n\nPushing a v\u003cversion\u003e tag now creates the corresponding GitHub release\nautomatically, with the matching section of NEWS.md as release notes,\nfollowing the naming used so far (\"RKorAPClient v1.2.1 (CRAN-Release)\").\n\nThe notes are cut out between the level 1 NEWS.md heading that mentions\nthe tagged version and the next level 1 heading, so that headings like\n\"# RKorAPClient 0.7.5 (CRAN release)\" are matched as well, while level 2\nheadings inside a section are kept. Versions are matched as whole\ntokens, so that v1.2.1 does not pick up a \"1.2.1.9000\" dev section.\n\nThe job fails if NEWS.md has no section for the tagged version, rather\nthan publishing an empty release, and warns if the tag disagrees with\nthe version in DESCRIPTION. Tags that are not x.y.z are marked as\npre-releases. Re-running on an existing release updates it instead of\nfailing, and workflow_dispatch allows generating the notes for a tag\nthat was pushed before this workflow existed.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I2bee9d30e3894c92d5f35f077895388b19c5e5cc\n"
    },
    {
      "commit": "81024dd4d92c2f926dbae0405802871d490765d1",
      "tree": "8270728812f4dd7258df3ad6c374f1bcf12e0b79",
      "parents": [
        "f365ed95caa4c3f4c57a2905e33e066304649bb5"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Aug 31 11:36:07 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Sep 01 06:49:06 2026 +0200"
      },
      "message": "Prepare release 1.3.0\n\nBump the version out of its development suffix, turn the dev NEWS\nheading into the 1.3.0 release heading and record the new\nimputation-flag, verbose-reporting and duplicate-warning entries, and\nadd cran-comments for the release. Label the previously unlabelled\ncran-comments section 1.2.1.\n\nAlso record the KorAPConnection() documentation fix of the preceding\ncommit in NEWS.md and explain it in cran-comments.md: the first 1.3.0\nsubmission was rejected by the incoming pretest with the \"Rd files\nwithout \\usage\" NOTE on r-devel-linux-x86_64-debian-gcc and -clang.\n\nR CMD check --as-cran Status OK (0 errors, 0 warnings, 0 notes) locally\non Fedora 44 with R 4.6.1, including the Rd fix. The macOS builder and\nwin-builder runs listed in cran-comments.md were made for the first\n1.3.0 submission and are to be repeated before resubmitting.\n\nThe last state without the Rd fix was confirmed green on GitHub Actions\n(https://github.com/KorAP/RKorAPClient/actions/runs/33394690107):\nR-CMD-check passing on ubuntu-latest (devel, release, oldrel-1),\nmacOS-latest (release) and windows-latest (release), plus test-coverage\npassing.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I87fb5ec5c587fa5d947a0d2d3b3c9af1a4c221cb\n"
    },
    {
      "commit": "f365ed95caa4c3f4c57a2905e33e066304649bb5",
      "tree": "17dfcc60a297c1365def3958396745dd521caa78",
      "parents": [
        "eed0858ff96597b843de708c012a42ec12af790b"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Sep 01 06:33:07 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Sep 01 06:33:07 2026 +0200"
      },
      "message": "Readme: document comparing collocates across virtual corpora\n\nDescribe the multi-VC comparison that collocationAnalysis() performs\nwhen vc is given as a named vector: which comparison columns are added\nper association score, and the two properties that are easy to trip\nover when using them, namely that the result holds one row per\ncollocate *and* virtual corpus with the comparison columns repeated on\neach, and that scores of collocates attested in only one of the\ncompared corpora are imputed from a floor value.\n\nThe example was run against the live DeReKo instance and the shown\ndplyr pipeline was verified on its result. No result table is included:\nwithout an access token the comparison only sees the freely available\nsubset, where the compared corpora are covered too unevenly for the\nnumbers to illustrate anything.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: If845cf72c3de90d13a0bab68fa6e8928c36330cd\n"
    },
    {
      "commit": "eed0858ff96597b843de708c012a42ec12af790b",
      "tree": "a8af7be52dd9567f2c5be93ade388de9f57ff3be",
      "parents": [
        "6a16d7d95259a25874f6dd6f37ae709325229a16"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Sep 01 06:14:00 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Sep 01 06:14:00 2026 +0200"
      },
      "message": "Readme: fix outdated statements and document caching\n\n* The two auth() flows were announced as \"available since RKorAPClient\n  0.9.0.9000\", a development version nobody can install. They were\n  released in 1.0.0.\n* collocationAnalysis() has not been new since 0.7.x, so drop the \"new\"\n  from its section heading.\n* Document the cacheAs parameter of collocationAnalysis(), which is\n  particularly useful for the long running analyses shown in that\n  section.\n* Document that API responses are cached locally by default, where they\n  end up, how to switch the cache off and how to clear it, including the\n  DeReKo in/outside IDS caveat that so far was only mentioned in\n  ?KorAPConnection.\n* Use verbose \u003d TRUE instead of verbose \u003d T, as everywhere else.\n* Recommend libcurl4-openssl-dev over libcurl4-gnutls-dev on Debian, as\n  the curl package itself does.\n* Bump the copyright year.\n\nLeft as is on purpose: libv8-dev/v8-devel is still required, since V8\nremains in the dependency chain via PTXQC -\u003e rmzqc -\u003e jsonvalidate, and\nall external links in the Readme still resolve.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: Ibaf9789a8a07d10a14549ba9714e9416f0b54a0c\n"
    },
    {
      "commit": "6a16d7d95259a25874f6dd6f37ae709325229a16",
      "tree": "e5fcf010d0c8deb3ba9437a43e4c7ce2676a1576",
      "parents": [
        "6a0bad4e589d158c409b50238f51c4d6868bc230"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Aug 31 21:36:01 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Aug 31 21:36:03 2026 +0200"
      },
      "message": "Document KorAPConnection() as a function to fix CRAN Rd NOTE\n\nCRAN\u0027s r-devel-linux-x86_64-debian-gcc and -clang checks report\n\n  Rd files without \\usage:\n    \u0027KorAPConnection-class.Rd\u0027\n  \\arguments should not be documented without \\usage.\n\nbecause the user facing documentation, with one @param per constructor\nargument, was attached to the setClass() call. The object exported under\nthe name KorAPConnection was the class generator, whose formals are just\n`function(...)`, so roxygen2 could not derive a \\usage section from it\nand the documented arguments ended up in an Rd file without one. Adding\na hand written \\usage is not an option either: it contradicts the\ngenerator\u0027s `...` signature and turns the NOTE into a much worse\n\"code/documentation mismatches\" WARNING.\n\nReplace the generator with a real KorAPConnection() function that\nforwards its arguments to new(\"KorAPConnection\", ...) and attach the\ndocumentation to it. roxygen2 now derives \\usage from the actual\nformals, so the manual page states how the constructor is really called,\nand the NOTE is gone.\n\nThe constructor forwards supplied arguments only, so that the defaults\nand the missing() based KORAP_VERBOSE / rkorap.verbose overrides of the\ninitialize method keep working unchanged. Its own defaults merely mirror\nthose of the initialize method in order to document them; the new tests\nasserts that the documented defaults are the ones a connection actually\nends up with, so that the two cannot drift apart silently. The KORAP_URL\ndefault is now shared by both signatures as defaultKorAPUrl().\n\nNAMESPACE is unchanged: KorAPConnection remains both an exported\nfunction and an exported S4 class, and new(\"KorAPConnection\", ...) keeps\nworking.\n\nR CMD check --as-cran: Status OK, and no Rd file in man/ has \\arguments\nwithout \\usage any more.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I789d42c01e1be98a989f8f4d9a5b14865ca48daa\n"
    },
    {
      "commit": "6a0bad4e589d158c409b50238f51c4d6868bc230",
      "tree": "b8d85f71a2c903912114ca31a9909efc0ef46993",
      "parents": [
        "7b7a73b665502e82133329d873d1d9800884a0f6"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Aug 31 11:34:18 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Aug 31 11:34:18 2026 +0200"
      },
      "message": "Regenerate documentation with roxygen2 8.1.0\n\nroxygen2 8.1.0 groups multiple importFrom() symbols from the same package\ninto a single multi-line call, which rewrites most of NAMESPACE. The change\nis purely cosmetic: the set of imports, exports and S3 methods is unchanged\n(136 entries before and after).\n\nCo-Authored-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nChange-Id: I407afbf043c37aed60b4940cbf42026cd1a7ae73\n"
    },
    {
      "commit": "7b7a73b665502e82133329d873d1d9800884a0f6",
      "tree": "100bf8e6c281f489376fd4bf2f0d489441101e56",
      "parents": [
        "bceeb05254bec96f54236e92c7da40a65a09927e"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Aug 31 10:31:27 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Aug 31 10:31:27 2026 +0200"
      },
      "message": "CA: warn when duplicate rows are dropped from multi-VC comparisons\n\nThe pivots in add_multi_vc_comparisons() use values_fn \u003d dplyr::first, so\nrepeated node/collocate/label rows -- as produced when the same collocate is\nfound at several context positions -- were silently reduced to their first\noccurrence. Warn instead, naming mergeDuplicateCollocates() as the way to\ncombine those rows before comparing.\n\nCo-Authored-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nChange-Id: I832ea9a2bc0d28256bba5a37e8b94721809f3a68\n"
    },
    {
      "commit": "bceeb05254bec96f54236e92c7da40a65a09927e",
      "tree": "f6e2248ac6c468716ee5f97abd6b600f1864c801",
      "parents": [
        "ba15cffd49405e1ecf9b56ea6832a670f372b3a3"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Aug 31 10:30:07 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Aug 31 10:30:07 2026 +0200"
      },
      "message": "CA: add tests for the cacheAs parameter\n\ncacheAs shipped without any test coverage. Cover the three behaviours it\npromises: a cache hit returns the stored result before any server contact,\nthe .rds extension is appended when missing and not doubled when present,\nand a cache miss writes a file that the next call reuses.\n\nCo-Authored-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nChange-Id: I5c88ee510815ee13f5cda08a0c4a269871b47df7\n"
    },
    {
      "commit": "ba15cffd49405e1ecf9b56ea6832a670f372b3a3",
      "tree": "c74eeaa69334bff5b8011599750ed172596d6ef4",
      "parents": [
        "424cb78ed98fa885704bba4cdddf52e7d6f7962c"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Aug 31 10:19:56 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Aug 31 10:19:56 2026 +0200"
      },
      "message": "CA: mark multi-VC comparison columns as experimental\n\nThe comparison column layout is still settling. Badge the section\nexperimental and say plainly that names and semantics may change without a\ndeprecation cycle, so that shipping it does not lock the current column\nnames in place.\n\nCo-Authored-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nChange-Id: I75c0042607cc9ae61ce9b1a904982509276e00eb\n"
    },
    {
      "commit": "424cb78ed98fa885704bba4cdddf52e7d6f7962c",
      "tree": "abaaa79316bdbd2e1a20fdfe966f02349f13902f",
      "parents": [
        "9525334f18cff3af96782cdf92c3f8dc0b84d2ad"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Aug 31 10:19:29 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Aug 31 10:19:29 2026 +0200"
      },
      "message": "CA: report imputation in multi-VC comparisons when verbose\n\nImputation was silent, so a result whose top max_delta rows are entirely\npresence/absence artifacts looked no different from one built on observed\nscores throughout. Pass the connection\u0027s verbosity into\nadd_multi_vc_comparisons() and report how many node/collocate combinations\nand label cells were imputed, pointing at the `imputed` column and\nqueryMissingScores.\n\nCo-Authored-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nChange-Id: I5159483452595f38d09f06411b64a7327814977f\n"
    },
    {
      "commit": "9525334f18cff3af96782cdf92c3f8dc0b84d2ad",
      "tree": "d4c5a45efa5e0bdabfb3d5b48d93c2e12a6ffe4c",
      "parents": [
        "d7bb5cb7154a01e7493369ccb929aa2a3f237748"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Aug 31 10:18:43 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Aug 31 10:18:43 2026 +0200"
      },
      "message": "CA: document how to read multi-VC comparison columns\n\nAdd a \"Interpreting multi-VC comparisons\" section spelling out the three\nproperties that are easy to misread: deltas involving imputed cells describe\npresence/absence rather than contrast, imputed values are relative to the\nresult set they were computed from and so are not comparable across calls,\nand winner/loser columns order point estimates without any notion of\nuncertainty (unlike ci()). Also note that ranks and percentile ranks are\ncomputed within each label over candidate sets of differing size.\n\nCo-Authored-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nChange-Id: I4744d4d9742c7a46dcdb5b4bca9138190f6b73d2\n"
    },
    {
      "commit": "d7bb5cb7154a01e7493369ccb929aa2a3f237748",
      "tree": "9736188bd65f1107c2223bccc02da677f2bbc516",
      "parents": [
        "3b091c002f69701cfa4b40434dc3a9408d155493"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Aug 31 10:18:02 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Aug 31 10:18:02 2026 +0200"
      },
      "message": "CA: flag imputed cells in multi-VC comparisons\n\nWhen a collocate is attested in one virtual corpus but not in another,\nadd_multi_vc_comparisons() imputes the missing scores from a pooled floor.\nThe resulting delta/winner/loser columns then describe presence vs. absence\nrather than a measured contrast, and nothing in the output said so.\n\nRecord the missingness pattern before imputation and expose it as\n`imputed_\u003clabel\u003e` (per label), `n_imputed` (count) and `imputed` (any), so\nthat `filter(!imputed)` keeps only collocates attested in every compared\nvirtual corpus.\n\nCo-Authored-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nChange-Id: I25fb0196f1b75519c126130fc19bc62d40675e17\n"
    },
    {
      "commit": "3b091c002f69701cfa4b40434dc3a9408d155493",
      "tree": "db54d74d1544c57fa823a652af1922a05c980558",
      "parents": [
        "209b52ca4d0a81acbc761e9ebf759f9fc6f29e11"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Jul 06 15:33:12 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Jul 06 15:33:12 2026 +0200"
      },
      "message": "Make morph pipe-separator test resilient to transient API issues\n\nThe live korap.dnb.de call can occasionally return no morph data for\nthe fetched match (e.g. under concurrent CI matrix load), causing a\nhard test failure unrelated to actual code correctness. Skip instead\nof failing when no morphological data comes back.\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I1694bcd3f1e51d2e33251949715f0d045e91b074\n"
    },
    {
      "commit": "209b52ca4d0a81acbc761e9ebf759f9fc6f29e11",
      "tree": "b85b07fb584c9213945c53da7c08b715fa1499ba",
      "parents": [
        "9c53e4171317c646bacdfe8d73b1ab128635700a"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Jun 21 12:14:36 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Jun 21 12:15:25 2026 +0200"
      },
      "message": "Bump roxygen2 version to 8.0.0\n\nChange-Id: Ib5f5c66bd3db80d147370d2f16fc1c340240477c\n"
    },
    {
      "commit": "9c53e4171317c646bacdfe8d73b1ab128635700a",
      "tree": "90b09d08c51d63a81248703053fe3c313459c24b",
      "parents": [
        "9db18916673b89e148edd7090480ece1a304c0fa"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Jun 21 12:13:44 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Jun 21 12:15:17 2026 +0200"
      },
      "message": "Make collocationScoreQuery() accept a vector of collocates\n\nChange-Id: I719c7577393f352fcfebe740a13fbf0daf790d3c\n"
    },
    {
      "commit": "9db18916673b89e148edd7090480ece1a304c0fa",
      "tree": "6cb3dbd3817c03b165dd9d92f0101baf95b6ac58",
      "parents": [
        "c728a351092f81b5ef34256b45a54f537a85f83e"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Jun 21 12:11:29 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Jun 21 12:11:29 2026 +0200"
      },
      "message": "Update .Rbuildignore\n\nChange-Id: I68bc6702b057f620cd563311e4661e3559719518\n"
    },
    {
      "commit": "c728a351092f81b5ef34256b45a54f537a85f83e",
      "tree": "4810fc3cc69297bf5a6e1bb61880a6cd924b7b7e",
      "parents": [
        "09b1c086fba9f2b0dc7b41caec65b7c2c3010403"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Jun 21 12:07:00 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Jun 21 12:07:00 2026 +0200"
      },
      "message": "Fix accessToken in fetch annotations test\n\nChange-Id: I7cf5076ec49b25f2ee3ffbbdfc19bd2ea0cb1fbd\n"
    },
    {
      "commit": "09b1c086fba9f2b0dc7b41caec65b7c2c3010403",
      "tree": "e2a4a13c01e092a7a24dfded5da35b09992f754e",
      "parents": [
        "325a3ab7a5889d700bf002714ae27c28c6339147"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri May 01 14:45:47 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri May 01 15:48:45 2026 +0200"
      },
      "message": "Add winner and loser URLs to multi-VC collocation comparisons\n\nChange-Id: Ia3bea5f400713c6b513e1cc1033c9c5c869d957f\n"
    },
    {
      "commit": "325a3ab7a5889d700bf002714ae27c28c6339147",
      "tree": "a68d09234a9d05f14b088439ed2fa4b87c2e129f",
      "parents": [
        "db2fabd236f9a6cd9f8e5c835939e4fb9dc1275f"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri May 01 14:45:23 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri May 01 14:45:23 2026 +0200"
      },
      "message": "Update .gitignore and .Rbuildignore\n\nChange-Id: Ice83a1dd0b4aa93b4797e348824e577ce8fcf3a1\n"
    },
    {
      "commit": "db2fabd236f9a6cd9f8e5c835939e4fb9dc1275f",
      "tree": "00851274b27bbd69a55e33dcbf456b76940053b2",
      "parents": [
        "9ab905857faf08727edad6940ce27fca663f46ad"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Apr 27 15:01:37 2026 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri May 01 13:34:36 2026 +0200"
      },
      "message": "feat(collocationAnalysis): add cacheAs parameter for result caching\n\nAdd a `cacheAs` parameter that accepts a file path (with automatic\n`.rds` extension if omitted). If the file exists, the cached result\nis returned immediately without contacting the server. Otherwise the\nanalysis runs normally and the result is saved to the file.\n\nCo-authored-by: Copilot \u003ccopilot@github.com\u003e\nChange-Id: I60f73a5a824e637d572a7b21b6ea80868a31b4d4\n"
    },
    {
      "commit": "9ab905857faf08727edad6940ce27fca663f46ad",
      "tree": "b271fade8433bfaa2c2a2335a3443f79f1881c7e",
      "parents": [
        "2b0b0a18a6539813e9ff807c31c72171539fe0bf"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Oct 19 14:59:38 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Oct 19 15:02:21 2025 +0200"
      },
      "message": "Update NEWS.md\n\nChange-Id: Ib1cdb5735f4854bf2bd363aa87876cf943768ba8\n"
    },
    {
      "commit": "2b0b0a18a6539813e9ff807c31c72171539fe0bf",
      "tree": "01f09118f6165ad7579edb9f88a01c391d93ad97",
      "parents": [
        "0a29263ffc80e12affaa0de9ef87b5af37d66d0b"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Oct 19 14:49:14 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Oct 19 15:02:21 2025 +0200"
      },
      "message": "CA: fix score threshold in recursive CA\n\nChange-Id: I439a29559fab741bbb80c23591d1c64e99d1b0b6\n"
    },
    {
      "commit": "0a29263ffc80e12affaa0de9ef87b5af37d66d0b",
      "tree": "7aafb8e96897645d9789ceafb65f1a46f8a7a13f",
      "parents": [
        "c79155bca7cd0732c0bcb2557c288626f0ca4539"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Oct 19 14:04:36 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Oct 19 15:02:21 2025 +0200"
      },
      "message": "CA: Inject focus into to result webUIRequestUrls\n\nif appropriate to improve the immediate visibility of the actual\ncollocations.\n\nChange-Id: I728e61701bf4fc620b40077da54a11506e6e941c\n"
    },
    {
      "commit": "c79155bca7cd0732c0bcb2557c288626f0ca4539",
      "tree": "3383d26d0a0b07b543a64076862a697f76abb84c",
      "parents": [
        "de679ea56c5092bd984d091afb62c2c630f473b5"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Oct 19 13:42:55 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Oct 19 15:02:21 2025 +0200"
      },
      "message": "Ignore first letter case in stopwords\n\nChange-Id: Ibe0301e89c2602bd59b4a6d91de3437e413e9c3f\n"
    },
    {
      "commit": "de679ea56c5092bd984d091afb62c2c630f473b5",
      "tree": "b50df090b7365662e2e246851a845835d6c190f8",
      "parents": [
        "4cbb547fd9e924a2c566f166924590189e75f7ed"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Oct 19 13:14:51 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Oct 19 15:02:21 2025 +0200"
      },
      "message": "CA: add queryMissingScores parameter\n\nIf TRUE, attempt to retrieve corpus-based association scores for\nvc/collocate combinations that would otherwise be imputed, by\nre-querying the KorAP backend without applying the collocate frequency\nthreshold.\n\nChange-Id: I7d2707e16d6efab3515e4cebef4985e8b780a116\n"
    },
    {
      "commit": "4cbb547fd9e924a2c566f166924590189e75f7ed",
      "tree": "e563439ab3c6b979e1e5b571bc30e45bedd0319a",
      "parents": [
        "91f35179c7604d541f3a9907eeb553b9f37043b5"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Oct 19 12:15:25 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Oct 19 15:02:21 2025 +0200"
      },
      "message": "CA: add some more info on how missing values are imputed\n\nChange-Id: I0268e5ad26d91300e425588c9f07eb32d45171d1\n"
    },
    {
      "commit": "91f35179c7604d541f3a9907eeb553b9f37043b5",
      "tree": "40d5ced599d30eda7657490337eaad47c8b43878",
      "parents": [
        "77852b2af68bdb578421aea4efb97ef2fa51320d"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Oct 19 11:36:53 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Oct 19 15:02:21 2025 +0200"
      },
      "message": "Add missing rlang dependency in DESCRIPTION\n\nChange-Id: I50749277dc1f3fb91d5ec944fa4cb8b173037f32\n"
    },
    {
      "commit": "77852b2af68bdb578421aea4efb97ef2fa51320d",
      "tree": "63a2852821497543071202e6e4a65431b0809934",
      "parents": [
        "130a2a29eb3b593878dc2ac410e8a2b716d64e01"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Oct 19 11:35:34 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Oct 19 15:02:21 2025 +0200"
      },
      "message": "Remove redundant thresholdScore parameter from add_multi_vc_comparisons function\n\nChange-Id: I3a0077497f52d94e0b63d90bca0812c7e3d0c9d6\n"
    },
    {
      "commit": "130a2a29eb3b593878dc2ac410e8a2b716d64e01",
      "tree": "3a50e5d226336ac30a7011ceec44a0e74e543919",
      "parents": [
        "9894a37ab8a660bca79e94c5480da5428e357e4f"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Oct 18 16:09:23 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Oct 19 15:02:21 2025 +0200"
      },
      "message": "CA: add percentile ranks and documentation\n\nChange-Id: I3a0c6aab970db5f4685b03164b20e0489e03799f\n"
    },
    {
      "commit": "9894a37ab8a660bca79e94c5480da5428e357e4f",
      "tree": "6ce7350d737c086589cbf2c37d97645896180cec",
      "parents": [
        "28a29845b877fb28ee76196b67f585fd89344877"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Oct 18 14:51:29 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Oct 19 15:01:19 2025 +0200"
      },
      "message": "CA: replace NA dampening factor with missingScoreQuantile\n\nBetter use distributional priors instead of raw minima.\n\nChange-Id: I85d77a63c1bc06c8f6398ddac75deec52f1ca96a\n"
    },
    {
      "commit": "28a29845b877fb28ee76196b67f585fd89344877",
      "tree": "3e0b032275070a5fe2cfccc40a6ee04da49fa0f2",
      "parents": [
        "b2862d4cd478b6ec38f89cb38472dd4b416b3224"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Oct 18 12:25:09 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Oct 18 14:07:27 2025 +0200"
      },
      "message": "CA: add measure based ranks\n\nChange-Id: I84dacfe9f61e9b65268b241bc8adf82c4cc4adc3\n"
    },
    {
      "commit": "b2862d4cd478b6ec38f89cb38472dd4b416b3224",
      "tree": "b89753066c8baaa626421fc1097a19a9e60374b9",
      "parents": [
        "5e35d7a5e7713a91fe8672cf9d30402298a20a72"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Oct 18 10:17:49 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Oct 18 10:17:49 2025 +0200"
      },
      "message": "CA: introduce max_delta_\u003cscore\u003e\n\nChange-Id: I4c3ccf374017c46051bec11cf2a836df511ea586\n"
    },
    {
      "commit": "5e35d7a5e7713a91fe8672cf9d30402298a20a72",
      "tree": "c7a905d394c324cc5f7a61c4206e6e0b5ac6e319",
      "parents": [
        "e34a8be915170d1cc1bc61b63369d3e562ab3694"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Oct 17 21:21:22 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Oct 18 09:39:38 2025 +0200"
      },
      "message": "CA: add winner columns\n\nChange-Id: Ia6ec4821d08352f2044e8a7101880d75419d995d\n"
    },
    {
      "commit": "e34a8be915170d1cc1bc61b63369d3e562ab3694",
      "tree": "f17d8a4185aba582c01b0f0b58c9e857707b3e4e",
      "parents": [
        "e31322eb3446a24a30fb091b92ffe8ffd0c06d09"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Oct 17 20:13:42 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Oct 17 20:51:30 2025 +0200"
      },
      "message": "CA: support named vc list and vcLabel parameter to specify labels\n\nChange-Id: I983e589e9231f678141e8798effcfcc652ca63f5\n"
    },
    {
      "commit": "e31322eb3446a24a30fb091b92ffe8ffd0c06d09",
      "tree": "6f4b68ece27f7aebdeeb937deddf917ffc6acd8e",
      "parents": [
        "c4540a2d80f127afc94ec61c3a336fa7f79cb35e"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Oct 17 18:55:36 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Oct 17 18:55:36 2025 +0200"
      },
      "message": "Fix label issue in multi-vc CA\n\nChange-Id: I9df9c648851cd65812aec509a4ed9abe5c1691ba\n"
    },
    {
      "commit": "c4540a2d80f127afc94ec61c3a336fa7f79cb35e",
      "tree": "11308627deb705b1b68a098f4527dabbe73c93bb",
      "parents": [
        "a25fbd999afde4045580182feeca23ad719c1378"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Oct 14 17:39:53 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Oct 14 17:39:53 2025 +0200"
      },
      "message": "Add delta columns for CA with multiple VCs\n\nChange-Id: Ie7d7bbfec226277f07e0f089e8ed6e847ca048f2\n"
    },
    {
      "commit": "a25fbd999afde4045580182feeca23ad719c1378",
      "tree": "b8d933890c957563b387996c8368f71530d985aa",
      "parents": [
        "4a2fee0fc96d8913cb02026b37cc671f526a2f6d"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Oct 14 17:38:09 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Oct 14 17:38:09 2025 +0200"
      },
      "message": "Get rid of empty sequence warning in CA\n\nChange-Id: I39d239f1a49871e975b9f60db434c68703cd84fd\n"
    },
    {
      "commit": "4a2fee0fc96d8913cb02026b37cc671f526a2f6d",
      "tree": "f39f1275c6dd331632569ce6b6310d9bfeb83cd9",
      "parents": [
        "d9aa0637236840fc6220b5a47c2a643172ba435c"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Oct 13 13:27:09 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Oct 13 13:27:09 2025 +0200"
      },
      "message": "Add labels in collocationAnalysis when called with vectors\n\nChange-Id: I78f4e6a1eeb59302416d38d160b29267666d50b1\n"
    },
    {
      "commit": "d9aa0637236840fc6220b5a47c2a643172ba435c",
      "tree": "4edd1e83618660492a2704b5fb38ad525f0f88d8",
      "parents": [
        "1229bc6555b20fcb398e76437a6a4573ecf022b9"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Oct 13 10:11:52 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Oct 13 10:11:52 2025 +0200"
      },
      "message": "Bump to dev version 1.2.1.9000\n\nChange-Id: I0ae5285f110d02b3039031eb42f7458d432b39e2\n"
    },
    {
      "commit": "1229bc6555b20fcb398e76437a6a4573ecf022b9",
      "tree": "19a74e47623d5e4252c2420864cddedf4284d605",
      "parents": [
        "a6ab8a18b22b9975e2668cdb1598d53b5867d8ac"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Oct 09 17:10:31 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Oct 09 17:10:31 2025 +0200"
      },
      "message": "Update CRAN comments\n\nChange-Id: Iaa65826f0bf24f4c9250dc7d470ddbaea4ccf578\n"
    },
    {
      "commit": "a6ab8a18b22b9975e2668cdb1598d53b5867d8ac",
      "tree": "baa7a9d64b42ac22337d4e442f6e886ba6112aae",
      "parents": [
        "41420074bc26a3effcd7f574377df774274b8732"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Oct 09 15:03:55 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Oct 09 17:10:17 2025 +0200"
      },
      "message": "Prepare new bug fix version 1.2.1\n\nChange-Id: Ia8d7f7982940a57e56eaeccf59845c4c749737e0\n"
    },
    {
      "commit": "41420074bc26a3effcd7f574377df774274b8732",
      "tree": "344cbd7e9c19d311a1e3db00b45cd6e0d981f21c",
      "parents": [
        "bdedd0227361999a3c456de06a23988cf32c9744"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Oct 09 15:13:40 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Oct 09 15:16:52 2025 +0200"
      },
      "message": "Revert \"warn on rewrites\"\n\nThis reverts commit 336c85d5c1d3986e1846c2b7e5dee6a4c40192e9.\n\nChange-Id: I1948894db742a6dfbb81a2c6cc82dd012330081f\n"
    },
    {
      "commit": "bdedd0227361999a3c456de06a23988cf32c9744",
      "tree": "5e4038d30e6bc6e88bcbf0de9de4664d0f24bcf2",
      "parents": [
        "cd4521884fd23558757338fcbbf6e67702f9a780"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Oct 09 14:14:15 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Oct 09 14:53:00 2025 +0200"
      },
      "message": "Switch all annotation parsing to xml2\n\nChange-Id: I047b6ce1debb88ff20912c60743221fe33f70b7d\n"
    },
    {
      "commit": "cd4521884fd23558757338fcbbf6e67702f9a780",
      "tree": "db32df9430c4d52b629dbe9368782d8174f8a9b0",
      "parents": [
        "336c85d5c1d3986e1846c2b7e5dee6a4c40192e9"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Oct 09 13:28:41 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Oct 09 14:53:00 2025 +0200"
      },
      "message": "Fix fetchAnnotations getting all morph values\n\nNow using xml2 package to properly parse the query result\n\nresolves #30\n\nChange-Id: I827cae94791f14ce0955352fd64fd7e5683a92e6\n"
    },
    {
      "commit": "336c85d5c1d3986e1846c2b7e5dee6a4c40192e9",
      "tree": "06fbc56972df571c21f37751257dec3882783c54",
      "parents": [
        "a02f1935f26b9440a748a41feecac1c676e98c37"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Jul 24 13:52:03 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Oct 09 14:42:38 2025 +0200"
      },
      "message": "warn on rewrites\n\nChange-Id: Ib7f86993eb3febaaaeeb25b0672e4f3ab91cba1c\n"
    },
    {
      "commit": "a02f1935f26b9440a748a41feecac1c676e98c37",
      "tree": "4495bb52d8a941b138648a68e0ad9672b17023dc",
      "parents": [
        "d617979cdcfbf445db94a8646ca70032908b419e"
      ],
      "author": {
        "name": "feldmueller",
        "email": "feldmueller@posteo.de",
        "time": "Mon Sep 15 16:38:06 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Oct 09 14:41:53 2025 +0200"
      },
      "message": "change format of annotation_snippet column for compatibility with Python client\n\nChange-Id: Id6bd21cf45fe01d4646495e9d7a3ffde11f13d14\n"
    },
    {
      "commit": "d617979cdcfbf445db94a8646ca70032908b419e",
      "tree": "403f4b78a48a15f14c59777ffd5972b32a6e76ec",
      "parents": [
        "9de0c80a66378116f0d229120822ac9c4509f5b4"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Sep 16 10:39:11 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Oct 09 14:41:51 2025 +0200"
      },
      "message": "Bump to dev version 1.2.0.9000\n\nChange-Id: I36c1895fd7a47ca012b907585c8b809b937eb447\n"
    },
    {
      "commit": "9de0c80a66378116f0d229120822ac9c4509f5b4",
      "tree": "45ace3c8f304d4ed8c54d20c9682f29f7222be3e",
      "parents": [
        "2052bde488066f2d3731aece905e3a4d6f5ec235"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Wed Sep 10 17:23:33 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Wed Sep 10 17:26:55 2025 +0200"
      },
      "message": "Bump version to v1.2.0\n\nChange-Id: Ieed0bb859c79b0344018c7324bea79a513edb15e\n"
    },
    {
      "commit": "2052bde488066f2d3731aece905e3a4d6f5ec235",
      "tree": "7866c7f32bf5343f6f5cdfa88e5380b910f6a371",
      "parents": [
        "39da9dcff91c473fbf9211e18d821ba62ccb1d2c"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Wed Sep 10 14:44:49 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Wed Sep 10 14:44:49 2025 +0200"
      },
      "message": "CI: Make codecov less demanding\n\nChange-Id: I80b4497b611ad5f0e4f3e595c5ee4e938a06daca\n"
    },
    {
      "commit": "39da9dcff91c473fbf9211e18d821ba62ccb1d2c",
      "tree": "923ba6d5b0918ef75661852730dc2770d117ad50",
      "parents": [
        "1a295ad676d3e47ca4098f19af6b0a6ab00bb6f1"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Wed Sep 10 13:54:40 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Wed Sep 10 13:54:40 2025 +0200"
      },
      "message": "Allow overriding verbosity default via env var KORAP_VERBOSE\n\nChange-Id: I8a2e32f24c22f2039b335cd000c610ba5ff3da08\n"
    },
    {
      "commit": "1a295ad676d3e47ca4098f19af6b0a6ab00bb6f1",
      "tree": "caa66267d1ab747a6b7d7b929bcc8f1ebf0a67ee",
      "parents": [
        "0af7593c5168aae13fad77846ced142bb93118a3"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Wed Sep 10 13:52:52 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Wed Sep 10 13:52:52 2025 +0200"
      },
      "message": "Bump RoxygenNote from 7.3.2 to 7.3.3\n\nChange-Id: I4c1a06f76f61d1d74942f863ee01d236bc331101\n"
    },
    {
      "commit": "0af7593c5168aae13fad77846ced142bb93118a3",
      "tree": "a5c074d6e8335e042266fc36c3611e1f782ea58e",
      "parents": [
        "6aa5a0d81be19ede35ca1edbd3f663aef6f3ec75"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Sep 09 18:14:16 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Tue Sep 09 18:55:45 2025 +0200"
      },
      "message": "Fix fetchAnnotations documentation mismatches\n\nChange-Id: I2dc7bc69ce64492780ee1f67fea03e00bbc034ba\n"
    },
    {
      "commit": "6aa5a0d81be19ede35ca1edbd3f663aef6f3ec75",
      "tree": "94c1008a180b7ace1b0642bf543d9ed3a38230b6",
      "parents": [
        "0a726303ec556e738b401074e65ed29b8defa08b"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Sep 08 17:51:47 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Sep 08 17:51:47 2025 +0200"
      },
      "message": "Fix some CRAN policy issues\n\nChange-Id: I6862ea1bfbadbaf5d6090b6655c21ecf66650c16\n"
    },
    {
      "commit": "0a726303ec556e738b401074e65ed29b8defa08b",
      "tree": "079da1b8fc631ed9ca08c65d2a99fc618db017e3",
      "parents": [
        "b6b34756d7cde0fbe12f6964ad640afb65fcfcd7"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Sep 08 17:09:36 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Sep 08 17:09:36 2025 +0200"
      },
      "message": "Update NEWS.md\n\nChange-Id: If8f451ee918da538a27643a6a6b9c66fcdecb51d\n"
    },
    {
      "commit": "b6b34756d7cde0fbe12f6964ad640afb65fcfcd7",
      "tree": "875330f6111fbf2da2a8d822fef225f7328350f4",
      "parents": [
        "2baf5c53cdb431735ce4006182344d817f6fa4dd"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Sep 05 17:11:06 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Sep 05 17:11:06 2025 +0200"
      },
      "message": "Add test for parse_xml_annotations\n\nChange-Id: Ib34b18aedd3fd0b52dea99141540bb7da2700b00\n"
    },
    {
      "commit": "2baf5c53cdb431735ce4006182344d817f6fa4dd",
      "tree": "f8df273f2ba60514760ae9b3614486c7e334a321",
      "parents": [
        "93787d52e349fae2d6b1a9e2a2ca07bf1ad5dd60"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Sep 05 16:41:11 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Sep 05 16:41:11 2025 +0200"
      },
      "message": "Increase fetchAnnotation test coverage according to codecov\n\nChange-Id: I0c8c0f0e7196082ddb42a37001f62a2958ea13e1\n"
    },
    {
      "commit": "93787d52e349fae2d6b1a9e2a2ca07bf1ad5dd60",
      "tree": "d42eabe0fd2b40c13e21cc31cebae12c301315d4",
      "parents": [
        "560b591ea7e4acefff9892d2a1f10cda0d139340"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Wed Sep 03 13:33:25 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Wed Sep 03 13:33:25 2025 +0200"
      },
      "message": "Add overwrite parameter to fetchAnnotations\n\nChange-Id: I395dbcb44a18e04679232bdc65b4e2912836e4fa\n"
    },
    {
      "commit": "560b591ea7e4acefff9892d2a1f10cda0d139340",
      "tree": "d0516854094348a767048130e087f6f105e6e497",
      "parents": [
        "705b9494b570e9142d2210290286cf0e0e97eb54"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Sep 01 17:36:13 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Sep 01 17:36:13 2025 +0200"
      },
      "message": "Fix annotation parsing in fetchAnnotations\n\nResolves #27\n\nChange-Id: Id0fc0cc99835926f75e2679ce10c407763bf7dc3\n"
    },
    {
      "commit": "705b9494b570e9142d2210290286cf0e0e97eb54",
      "tree": "ef38ae28a9e7d9f2cd442e031b9562b8f6e454d5",
      "parents": [
        "c1bd08179072fde831f6e767fd185cb5d159fc25"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Aug 18 10:38:04 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Aug 18 10:38:04 2025 +0200"
      },
      "message": "Add Bremen to Bremen vc def in regional demo\n\nChange-Id: Ia65dc58e77efd9782c59a1636938d3c88376a3e9\n"
    },
    {
      "commit": "c1bd08179072fde831f6e767fd185cb5d159fc25",
      "tree": "b173feb2425daefa9d79c141878c2094968a5a34",
      "parents": [
        "9b4295a64d2fd2716f93cde688a04c006b1b3a28"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Aug 18 10:10:26 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Aug 18 10:10:26 2025 +0200"
      },
      "message": "Add Magdeburg to Sachsen-Anhalt vc def in regional demo\n\nChange-Id: Ieb4f794524fc1c1ff68c8d80e04ed5647195d13d\n"
    },
    {
      "commit": "9b4295a64d2fd2716f93cde688a04c006b1b3a28",
      "tree": "1731e3967d47dd556b1c9b98d98724b2bc953a4f",
      "parents": [
        "0b7c50d8e30dfccd550f8b8e06d1c13d3e4fce2c"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Aug 17 18:10:24 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Aug 18 10:09:19 2025 +0200"
      },
      "message": "Add interactive highcharter function to regional demo\n\nChange-Id: I049e04bb4ced706844bc341a12c82071f8685e40\n"
    },
    {
      "commit": "0b7c50d8e30dfccd550f8b8e06d1c13d3e4fce2c",
      "tree": "b3820c2ccfa46709c3477992e63924d7e4565154",
      "parents": [
        "0e18020e8bc820a0dc9de88aaa2026202b826fb3"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Aug 17 18:09:20 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Aug 17 18:09:20 2025 +0200"
      },
      "message": "Add map caching to regional demo\n\nChange-Id: I450130d35ba1c55a1b1b4327d805d5d3cb9bf4e9\n"
    },
    {
      "commit": "0e18020e8bc820a0dc9de88aaa2026202b826fb3",
      "tree": "9e36a901feb64837667997beffe7cbf641124926",
      "parents": [
        "4d8824c5c797bbd64f20c1c5c13b8223719a045b"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Aug 17 14:09:20 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Aug 17 14:09:20 2025 +0200"
      },
      "message": "Upgrade regional demo to GADM 4.1\n\nChange-Id: Ic170bb8162595cc0f4cbc32e7f9ebf4a3b534382\n"
    },
    {
      "commit": "4d8824c5c797bbd64f20c1c5c13b8223719a045b",
      "tree": "a4c0b8226bbc35235c9cefba7f07626daf1293fb",
      "parents": [
        "6b27e2f0ea51c824506daf56a0e2e9ef92bd49f6"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Aug 17 12:37:24 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Aug 17 12:37:24 2025 +0200"
      },
      "message": "Use sf package for sp tidying in regional demo\n\nResolves #29\n\nChange-Id: Ie169a9b7f421c7dcfc21e8eb7fb9fb5f90216555\n"
    },
    {
      "commit": "6b27e2f0ea51c824506daf56a0e2e9ef92bd49f6",
      "tree": "486848e0091f19dfea6ad45ebd41fce0afdf500a",
      "parents": [
        "16b9d0ce7449965dda0e481d86147a12fcf39aba"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Aug 17 12:18:58 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Aug 17 12:18:58 2025 +0200"
      },
      "message": "Fix link for geo data download in regional demo\n\nResolves #28\n\nChange-Id: I1bec65bc3889f6c1acd3e0788ae125a48d368ac2\n"
    },
    {
      "commit": "16b9d0ce7449965dda0e481d86147a12fcf39aba",
      "tree": "eb9ddfdee8d2001668a023792922ec65435f54ee",
      "parents": [
        "2d9bc3d51ae61146e8c7c0d21909bd61ed8b12c4"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Jul 25 18:22:33 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Jul 25 18:23:20 2025 +0200"
      },
      "message": "Add corpus size by year demo\n\nChange-Id: Ic5cfd91fbb3231c7ac933872b34df9a5fb0d13b4\n"
    },
    {
      "commit": "2d9bc3d51ae61146e8c7c0d21909bd61ed8b12c4",
      "tree": "bfb4601b2eac060e0fec5a635144872a875b8bfa",
      "parents": [
        "87fd281395d95e195f900fc043514a993e5bcab8"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Jul 21 14:12:59 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Jul 21 14:12:59 2025 +0200"
      },
      "message": "Add dev version hint in Readme\n\nChange-Id: Ifc9cc784da41aa7908d7cbd60f24127b41f2783a\n"
    },
    {
      "commit": "87fd281395d95e195f900fc043514a993e5bcab8",
      "tree": "236c44990376d72c2291de4c4be642ca836f19aa",
      "parents": [
        "03d2b1ad05277194feb2ce38fac7ed66d13de24b"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Jul 21 10:57:23 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Jul 21 11:39:30 2025 +0200"
      },
      "message": "Update NEWS and Readme with fetchAnnotations\n\nChange-Id: I36dabcfa6686dc4011fef901e24bfd94493991ec\n"
    },
    {
      "commit": "03d2b1ad05277194feb2ce38fac7ed66d13de24b",
      "tree": "d3c80922f9749cae738c69e4b9497c39cc4aa67c",
      "parents": [
        "89f796e283aaa69be35c2bb12cc401651fb6ed69"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Jul 19 09:14:45 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Jul 21 11:39:30 2025 +0200"
      },
      "message": "Simplify initializations\n\nChange-Id: I3516bd79b688c05613ea1122c904b7d9056bd0b0\n"
    },
    {
      "commit": "89f796e283aaa69be35c2bb12cc401651fb6ed69",
      "tree": "e81cddaba34292302b8f1d8fbf6841fb0469aa79",
      "parents": [
        "2512130a6ab9ff98fa8f8c067a3074285e50f2cc"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Jul 19 09:05:06 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Jul 21 11:39:30 2025 +0200"
      },
      "message": "Improve documentation\n\nChange-Id: Id98ea59ddde769bf88ed13e3e9f2303abd2b7259\n"
    },
    {
      "commit": "2512130a6ab9ff98fa8f8c067a3074285e50f2cc",
      "tree": "076a76e4594831fe44421cd8bf189850d32baabc",
      "parents": [
        "e8c0fef18f7b333b8d554589d372eefcbea7abb0"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Jul 19 08:45:43 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Jul 21 11:39:30 2025 +0200"
      },
      "message": "fetchAnnotations: Avoid the scientific notation problem\n\nChange-Id: I7b7f914a1a05d0180563e851e912bb7a8f43361c\n"
    },
    {
      "commit": "e8c0fef18f7b333b8d554589d372eefcbea7abb0",
      "tree": "b32c22a104b4ada0b9fcac748761ae055f6a97ad",
      "parents": [
        "7ff770ec53764d305a3691efc87136523cbae27b"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Jul 18 19:59:04 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Jul 21 11:39:30 2025 +0200"
      },
      "message": "Add ETA for  fetchAnnotations\n\nChange-Id: I7e0bc3c92309fc2713c46b3a5807f3fedce8dddd\n"
    },
    {
      "commit": "7ff770ec53764d305a3691efc87136523cbae27b",
      "tree": "0384d51e335ae5a3410bd63c726c9b3548493c0f",
      "parents": [
        "c643a12688aa6713772dba72e788c7cd22230240"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Jul 18 19:07:10 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Jul 21 11:39:30 2025 +0200"
      },
      "message": "Handle multiple morpho annotations\n\nChange-Id: I8afb7acd389639499b9da9d3ffa17ee09f4fe954\n"
    },
    {
      "commit": "c643a12688aa6713772dba72e788c7cd22230240",
      "tree": "da47a594858f6d65472e78e8bfb7cf2b8f38eefa",
      "parents": [
        "a29f3d4e72815d0e896ee9a65b3482fd9c6d08a7"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Jul 18 18:18:36 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Jul 21 11:39:30 2025 +0200"
      },
      "message": "Remove debug output\n\nChange-Id: Ib67a9b92a4ca0f1af8716762312a7314595a00bf\n"
    },
    {
      "commit": "a29f3d4e72815d0e896ee9a65b3482fd9c6d08a7",
      "tree": "146be7e57fd831dc030b209f92277b70d7c8faea",
      "parents": [
        "ff712a997522ed17f9a5d4d1dec94873a497ce07"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Jul 18 10:14:43 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Jul 21 11:39:30 2025 +0200"
      },
      "message": "Parse annotations into lists of vectors\n\nChange-Id: I9ee3a5c10ff997380b9661dd603f8ec83c6a91a8\n"
    },
    {
      "commit": "ff712a997522ed17f9a5d4d1dec94873a497ce07",
      "tree": "073436897213bd85013de37f1022292859b34ec5",
      "parents": [
        "e52b29514e823a54fe5ac0ae7637f6392f0e2fb3"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Fri Jul 18 09:07:23 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Jul 21 11:39:30 2025 +0200"
      },
      "message": "fetchAnnotations: use matchID if present\n\nChange-Id: I147eb05cca958ffe5bd0189b7a239163cfe57a28\n"
    },
    {
      "commit": "e52b29514e823a54fe5ac0ae7637f6392f0e2fb3",
      "tree": "1889e86a5f157f9d919986bc9826ce13e7c142ea",
      "parents": [
        "49b8fc9d0882c36230f8b88f35c4910605337486"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Thu Jul 17 16:53:02 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Jul 21 11:39:30 2025 +0200"
      },
      "message": "Add fetchAnnotations method to KorAPQuery\n\nResolves #26\n\nChange-Id: Ie6234e471216941148304d42cf70c7cc509ceb41\n"
    },
    {
      "commit": "49b8fc9d0882c36230f8b88f35c4910605337486",
      "tree": "336f65cca856713dbcfccc32b31d0e22538d2fed",
      "parents": [
        "2deadd8a2d40689eb599ce2ecef1c7a222943a5e"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Jul 19 09:17:18 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Jul 21 11:39:30 2025 +0200"
      },
      "message": "Bump to dev version 1.1.0.9000\n\nChange-Id: Ice7f293e6a5312b9d710d3d483c2e297439a8083\n"
    },
    {
      "commit": "2deadd8a2d40689eb599ce2ecef1c7a222943a5e",
      "tree": "015c47992834b4e4cb83caddd6aaeb4b1a49045c",
      "parents": [
        "ef9082852c0580638df6ba1e83e21b8ae76fd5da"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Wed Jul 09 08:53:33 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Jul 21 11:39:29 2025 +0200"
      },
      "message": "Use English Wikipedia instance for ca doc test\n\nChange-Id: I811d9d503fdc3dc4c69c4e3f34535c8d1b2d1ef0\n"
    },
    {
      "commit": "ef9082852c0580638df6ba1e83e21b8ae76fd5da",
      "tree": "6ceacb6629495d5192217cd16735b4960225c956",
      "parents": [
        "f8db5300eef0d600deaead855df94f8267c143ab"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Wed Jul 09 08:29:53 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Jul 21 11:39:17 2025 +0200"
      },
      "message": "Readme: Add section on connecting to other KorAP instances\n\nChange-Id: Ia3609288c32787181b963ea7ba3d9f7b3b7ca038\n"
    },
    {
      "commit": "f8db5300eef0d600deaead855df94f8267c143ab",
      "tree": "d014732d10a0a58a4f148c2cd9cbff1c12075572",
      "parents": [
        "c9cb6778e4f113e471d05edc9183a31c66ce5143"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Jul 06 15:55:36 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Jul 21 11:39:17 2025 +0200"
      },
      "message": "GitLab CI: install tidyllm\n\nChange-Id: I0d2ccc1d7eb976ec732d9ca279724bf19dd065a5\n"
    },
    {
      "commit": "c9cb6778e4f113e471d05edc9183a31c66ce5143",
      "tree": "efe3567d5f036ca617d42caf27edf82bedb0dc82",
      "parents": [
        "a28a99ab5775a0b588b86f380a73178f85e00044"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Jul 06 15:55:00 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Mon Jul 21 11:39:11 2025 +0200"
      },
      "message": "Skip llm doc tests if offline or no API key is set\n\nChange-Id: Icbbae2d52985db2303d6651156c70ae8bb622d33\n"
    },
    {
      "commit": "a28a99ab5775a0b588b86f380a73178f85e00044",
      "tree": "3fe3ff5fbd45317094713372897eaccb651051ed",
      "parents": [
        "b8839d3a12d9efd7cf99323759fa67b12f26c225"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Jul 06 14:52:47 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Jul 06 14:52:47 2025 +0200"
      },
      "message": "Include tidyllm into package suggestions\n\nChange-Id: I5756c5259f9d0215cd290c092c3d2aa84ad0d7c7\n"
    },
    {
      "commit": "b8839d3a12d9efd7cf99323759fa67b12f26c225",
      "tree": "183dc26c87f0e6ed35d5a2d72dc05dc64437fe31",
      "parents": [
        "c1202d09ebf2b286c9e3cecc50f9510288068723"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Jul 06 14:42:30 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Jul 06 14:42:30 2025 +0200"
      },
      "message": "Switch to creationDate in Readme.md and DocPrompt test\n\nChange-Id: I765b7a976680ace8038cac48749063470b688806\n"
    },
    {
      "commit": "c1202d09ebf2b286c9e3cecc50f9510288068723",
      "tree": "b503bbe1046f46cbc5c43f9d79f7e4830f3be5da",
      "parents": [
        "768d833dd5a466552bb0cbfb5f8f99731010e36e"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Jul 06 13:28:51 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Jul 06 13:28:51 2025 +0200"
      },
      "message": "Default to claude-3-7-sonnet-latest\n\nVery reliable and very fast.\n\nChange-Id: If893575bc7946a7eb77552114ab8c37bf9fa7b4a\n"
    },
    {
      "commit": "768d833dd5a466552bb0cbfb5f8f99731010e36e",
      "tree": "1b11ea127b485af7896e1426aae8c9a71852857d",
      "parents": [
        "345211ae499e8cda057711db328a3fc3fe7cbdaf"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Jul 06 13:24:21 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Jul 06 13:24:21 2025 +0200"
      },
      "message": "Add Gemini support\n\nChange-Id: Ic669dd68e170c97e94c4d12bda0b352ffe2d3afe\n"
    },
    {
      "commit": "345211ae499e8cda057711db328a3fc3fe7cbdaf",
      "tree": "a101dee70470a95bc8c64a7507627a136da2e0db",
      "parents": [
        "8e1b77d48c509545f05a94cc76921882d8fda13b"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Jul 06 12:52:24 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sun Jul 06 12:52:24 2025 +0200"
      },
      "message": "Use tidyllm library\n\nChange-Id: Ib5a914632aecbe8a1b1250edac7135d8c2c32d3d\n"
    },
    {
      "commit": "8e1b77d48c509545f05a94cc76921882d8fda13b",
      "tree": "7e3b3bc69c6c1ed347bda2594b2e4db20df1b747",
      "parents": [
        "e759b343fb01b48da838d3754de0a9f4960ec1fb"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Jul 05 20:21:59 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Jul 05 20:21:59 2025 +0200"
      },
      "message": "Make LLM model changeable\n\nChange-Id: Iaf9abda64a6cf1a26c3b54fdad73b13ff3f09c51\n"
    },
    {
      "commit": "e759b343fb01b48da838d3754de0a9f4960ec1fb",
      "tree": "089d0f6f1b11b9143d9253e461df8596488eea6c",
      "parents": [
        "10dcfee64b367f46ea24d1440f09e4debde4eec2"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Jul 05 19:48:20 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Jul 05 19:48:20 2025 +0200"
      },
      "message": "Actually run the code in in the LLM doc tests\n\nChange-Id: I9293a0346350a7102c62d5904aa5840e1292b500\n"
    },
    {
      "commit": "10dcfee64b367f46ea24d1440f09e4debde4eec2",
      "tree": "f9c07f82404017c0acbf3bb718ac0ca7037d70c4",
      "parents": [
        "06143703ff293f3bdb7161e717ac144b6df9fba6"
      ],
      "author": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Jul 05 19:13:27 2025 +0200"
      },
      "committer": {
        "name": "Marc Kupietz",
        "email": "kupietz@ids-mannheim.de",
        "time": "Sat Jul 05 19:13:27 2025 +0200"
      },
      "message": "DocPrompt test with instance wiki\n\nChange-Id: I36739976798a7aa82be5b4d0598324b2fee1f458\n"
    }
  ],
  "next": "06143703ff293f3bdb7161e717ac144b6df9fba6"
}
