)]}'
{
  "log": [
    {
      "commit": "b7b9b9b24269b21d1d5f54438b9191ad7b52bb9e",
      "tree": "0080be2e25f46c46da4eb447e64d4907aadced0f",
      "parents": [
        "38755b20033e3cf902d9e23ad7d1039993671445"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Wed Oct 28 22:40:30 2026 +0100"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Wed Oct 28 22:40:30 2026 +0100"
      },
      "message": "ai-benchmark: jms s2 accepts any way of keeping the order as the body, not only variableReceive\n\nThe request says \"keep the order as the body\"; the check wanted the word variableReceive in reserve-order.\nIt now also accepts an enrich with an aggregationStrategy, and a variable or property set from ${body} before\nthe call to stock and set back as the body after it (the same name, so the answer kept in a variable does not\ncount). No r23 run kept the order, so r23 scores the same. The jms reference pass: 4 of 4.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "38755b20033e3cf902d9e23ad7d1039993671445",
      "tree": "f673b00abf9e4bbf78f809491805e0823a443919",
      "parents": [
        "b2afaa0b7d7d3256b995b927f854779878d8b75b"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Wed Oct 28 22:29:37 2026 +0100"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Wed Oct 28 22:29:37 2026 +0100"
      },
      "message": "ai-benchmark: retry a 500 from Ollama once, midnight in the reload checks, score on the last reload that changed a route, cron + in nightly s4\n\nFrom the r23 analysis, 7 of the 34 ladder failures came from Ollama or the harness:\n- a 500 from Ollama (\"qwen tool call parsing failed\") ended the step; it is now tried once more (filter s1, 3 steps)\n- after_reload and the wait compared seconds of the day without the wrap past midnight (stock-api s1, 1 step)\n- a reload with changed:0 (a YAML repair) moved the start of the log window past what the unchanged routes had\n  logged (file-processing s3, 1 step)\n- the nightly s4 check refused 0+0+2+*+*+?, which camel-cron reads as 0 0 2 * * ? (3 steps)\n\nReference pass of the four examples: 14 of 14.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "b2afaa0b7d7d3256b995b927f854779878d8b75b",
      "tree": "7e98758507428c48ad307cac986675093b25141b",
      "parents": [
        "0695d4f6dda5b409889f06075f2efdc4e719af54"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Mon Oct 26 10:59:41 2026 +0100"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Mon Oct 26 10:59:41 2026 +0100"
      },
      "message": "ai-benchmark: the route values of six examples in variables, not headers, as the examples keep them\n\napache/camel-jbang-examples#130 (bd8319bffa22) keeps a value a route keeps for itself in a variable: run/order-generator (orderId), transform/json-transform (orderId, itemCount), transform/csv-to-json (invoiceId, also in the fileName of the file write), route/order-lines (orderId), route/aggregator (orderId, also the correlationExpression) and route/enrich-and-dedupe (customerFile, the pollEnrich file name). The step requests and the references follow; the two checks that looked for setHeader accept setVariable as well, so an answer with a header still passes. Headers that an endpoint reads stay headers. Reference passes: the five ladder examples 18/18, enrich-and-dedupe 3/3.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "0695d4f6dda5b409889f06075f2efdc4e719af54",
      "tree": "7f98506b8b486141657105fa6c3cf67394c68ff8",
      "parents": [
        "6fcee4182ec72072b9566a0697b7b046b06c981b"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Mon Oct 26 09:33:55 2026 +0100"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Mon Oct 26 09:33:55 2026 +0100"
      },
      "message": "ai-benchmark: cap the length of an answer, and keep a cut answer out of the conversation\n\nr22 had two runaway answers of 30 minutes each: a camel_edit_file call that grew to 433 KB (99,450 tokens, r22n-1) and one that the 30-minute timeout cut (r22l-3). The answer is now at most 8192 tokens (BENCH_NUM_PREDICT). Ollama returns a cut answer without its tool call (done_reason length): it stays out of the conversation, the model is told to send a shorter call, and the cut counts as a tool call.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "6fcee4182ec72072b9566a0697b7b046b06c981b",
      "tree": "a286324e34529f37caaaf033dd0447bf3e18a8c6",
      "parents": [
        "7a0f6c452913ccff974a1ac32ba59d86e1f6703a"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Thu Oct 22 08:47:01 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Thu Oct 22 08:47:01 2026 +0200"
      },
      "message": "ai-benchmark: a check that cannot be read fails its step, the model is told when a passed step\u0027s files are replaced, and jms step 2 checks that the order stays the body\n\nFrom the r21 analysis (Oct 22 2026):\n\n- read() survives a directory where a file was expected, globbed checks read files only, and a scoring error\n  fails the step instead of ending the example (r21n-7 ai-ticket-classifier stopped after step 1)\n- the checkpoint of a failed step empties the example\u0027s output folders (clear_dirs: tickets-out)\n- after a passed step whose files the checkpoint replaces with the reference, the model is told to read a file\n  again (it went on from memory with files that had changed)\n- jms step 2 checks variableReceive in reserve-order: the answer in a variable, so the order stays the body\n  (r21n-1 passed with the reply replacing the body)\n- summarize_stepwise.py warns when a run recorded fewer steps than the example has\n\nReference passes with the change: new set 19/19, ladder 71/71.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "7a0f6c452913ccff974a1ac32ba59d86e1f6703a",
      "tree": "02f1a5223a13f8619c6213da55ec797d2cfd8801",
      "parents": [
        "91cd5e6c5d9d62a0c4c95804fc507542219e1833"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Wed Oct 21 07:54:31 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Wed Oct 21 07:54:31 2026 +0200"
      },
      "message": "ai-benchmark: enrich step 2 checks that the order stays the body, the REST 200 probe wants one order, and the traces keep more of a tool answer\n\n- route-enrich-and-dedupe step 2: file_regex2 \"Order ${body[orderId]} for\", as the request says to keep the order as\n  the body; in r20 the 8 runs whose log was right had replaced the body with the customer.\n- contracts-rest-code-first step 1: the 200 probe\u0027s body regex starts at a JSON object, so an answer of the whole list\n  ([{...}]) no longer passes.\n- The traces keep 4000 characters of each tool answer (was 800), so the hints in the answers can be seen in the analysis.\n\nReference pass of the new set: 19 of 19.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "91cd5e6c5d9d62a0c4c95804fc507542219e1833",
      "tree": "3bb548b2f4d98e260d6f327d6362ae26381fd8b0",
      "parents": [
        "ede2cf96ade9dcd841bf1dc9ef00d39e9be2dfa5"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Tue Oct 20 08:15:12 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Tue Oct 20 08:15:12 2026 +0200"
      },
      "message": "ai-benchmark: keep the received log in route-filter step 1, no finished script in the data-mapping seed, and the checkpoint after a failed step restores the seed files\n\nFrom the r19 analysis (Oct 20):\n- route-filter-and-multicast step 1 checks for \"ORD-1003 received, status pending\", but the request never said to keep\n  that log: 24 failures in r17-r19 replaced or moved it (all ten r17 passes were false, the line came from the app\n  start). The request now says to keep the received log and add the filter after it.\n- transform-data-mapping seeded the finished shipment-mapping.groovy, so the file check of step 2 passed before the\n  model acted and 14 of 18 failures in r17-r19 reused it instead of writing it. It is now in exclude_seeds.\n- The checkpoint after a failed step restored the route but not the data files its route consumed (8 of 12 enrich\n  runs began step 3 without customers/*.json). It now copies back the seed files that are gone.\n\nReference pass of the two examples: 7 of 7.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "ede2cf96ade9dcd841bf1dc9ef00d39e9be2dfa5",
      "tree": "5c959046e33d76c24b7a60ef91a5fa6f7b0ab6b1",
      "parents": [
        "a16e65ac746092c0a6087eb8e67212314d356073"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Mon Oct 19 09:48:32 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Mon Oct 19 09:48:32 2026 +0200"
      },
      "message": "ai-benchmark: restart after the checkpoint of a restart step, and no kafka pollTimeoutMs workaround\n\nAfter each step the harness writes the reference files, so the next step starts right. For a restart step that was\nonly a reload, which does not apply new camel.beans properties (CAMEL-25767) and keeps a Java file the harness\nremoved, so the next reload fails on it. In r18 the next step then started broken: jms-request-reply steps 2 to 4\nwithout a connection factory (about 99 errors before the model did anything), and rest-code-first step 3 failing on\nthe deleted src/main/java Order.java. The checkpoint of a restart step, or one that removed a file, now restarts the\napp. Checked with one model run of jms-request-reply: step 1 failed, the checkpoint restarted the app, step 2 started\nwith the orders on the queue, and step 4 passed.\n\nkafka-orders needs no pollTimeoutMs\u003d500 any more: since CAMEL-25753 a Kafka consumer stops without waiting for its\ncurrent poll. Reference pass 3/3 without errors on main.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "a16e65ac746092c0a6087eb8e67212314d356073",
      "tree": "77cdf0e6b43f06de93d6790dc70ce58325332f17",
      "parents": [
        "81b7209bd78302eaf909fb2de2e1054855d2fe82"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sun Oct 18 15:33:21 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sun Oct 18 15:33:21 2026 +0200"
      },
      "message": "ai-benchmark: ai/ticket-classifier in the new set, and files checks accept a glob\n\nticket-classifier: a local model (granite4:3b on the host Ollama, next to the agent\u0027s model) names the category of\neach ticket through langchain4j-chat, the ticket is filed in tickets-out/\u003ccategory\u003e/, and a circuit breaker with a\ntimeout files it under unknown. The model writes its own prompt, so the checks accept any of the three categories and\nthe filed ticket in any category folder: a files check name may be a glob (tickets-out/*/T-1.json). The final\nreference is the example\u0027s route file (apache/camel-jbang-examples#119). Reference pass 3/3 twice.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "81b7209bd78302eaf909fb2de2e1054855d2fe82",
      "tree": "a008f4479739c342d64798e960590b65a124e155",
      "parents": [
        "d855af7521bd3caf91a7df7fdbf4df12e41aff39"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sun Oct 18 15:22:38 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sun Oct 18 15:22:38 2026 +0200"
      },
      "message": "ai-benchmark: contracts/rest-code-first in the new set, and probe regexes match the whole body\n\nrest-code-first: GET /orders/{id} with a 404, POST /orders bound to a Java record (restart to compile it) with a\n400, and the generated API description at /openapi (restart, as camel-openapi-java comes from\ncamel.jbang.dependencies). Checked with HTTP probes. The final reference is the example\u0027s route file\n(apache/camel-jbang-examples#118). Reference pass 3/3 twice.\n\nA probe kept the first 600 characters of the answer and matched its regex on them; the /orders/{id} path of the\ngenerated API description comes later. The regex is now matched on the whole body; the result still keeps the start.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "d855af7521bd3caf91a7df7fdbf4df12e41aff39",
      "tree": "8e74db5dea23d7491868547266c092f411519539",
      "parents": [
        "89d6b7988777bb101b330555871cd98e841237ba"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sun Oct 18 15:03:31 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sun Oct 18 15:03:31 2026 +0200"
      },
      "message": "ai-benchmark: route/dynamic-routing in the new set\n\nA recipient list to endpoints computed from the order (warehouse per country, billing per status), a failover load\nbalancer from a primary invoice service that is down to a backup, and a throttle on the US warehouse. The final\nreference is the example\u0027s route file (apache/camel-jbang-examples#117). Reference pass 3/3 twice.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "89d6b7988777bb101b330555871cd98e841237ba",
      "tree": "7187a7fe401b4006327c38f500fd210c68a3b9fc",
      "parents": [
        "95738108d53346e8b2de7f625dd44560f93a20fb"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sun Oct 18 14:59:25 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sun Oct 18 14:59:25 2026 +0200"
      },
      "message": "ai-benchmark: route/enrich-and-dedupe in the new set\n\nThe EIPs the ladder never used: an idempotent consumer with an in-memory repository and a duplicate logged\n(ORD-1001 sent twice), pollEnrich of the customer\u0027s file into a variable, and a wire tap to an audit file. The final\nreference is the example\u0027s route file (apache/camel-jbang-examples#116). Reference pass 3/3 twice.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "95738108d53346e8b2de7f625dd44560f93a20fb",
      "tree": "0da6d4c423f1da5c31f91b90f316526a4fdaa6d9",
      "parents": [
        "7f09ad765e37b233d535a3b3946c6c40b2505b1c"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sun Oct 18 14:50:40 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sun Oct 18 14:50:40 2026 +0200"
      },
      "message": "ai-benchmark: jms-request-reply step 1 restarts the integration\n\nA reload does not apply new camel.beans.* and camel.component.* properties: the jms component it creates has no\nconnection factory (\"connectionFactory must be specified\", jref1), so connecting to Artemis needs a restart, and the\nstep says so, as the Java class steps do. Reference pass 4/4 in three runs.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "7f09ad765e37b233d535a3b3946c6c40b2505b1c",
      "tree": "b299b2377eae5e2647a043c3cb8aea048f7fb1f1",
      "parents": [
        "fa6f787f6afc83f9e4d95825899f9b617da3ba3b"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sun Oct 18 13:11:44 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sun Oct 18 13:11:44 2026 +0200"
      },
      "message": "ai-benchmark: connect-service/jms-request-reply in the new set\n\nTraditional messaging (Claus, Oct 18): the start has no broker connection, so the first request is connecting to\nArtemis and a queue with a consumer; then a stock service asked with request-reply, redelivery with a dead letter\nqueue (ORD-1003: not enough CAMEL-CAP), and a topic with two subscribers. The final reference is the example\u0027s route\nfile (apache/camel-jbang-examples#115). Reference pass pending: the camel infra Artemis blocks producers on a Docker\ndisk over 90% full (CAMEL-25754, apache/camel#28056).\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "fa6f787f6afc83f9e4d95825899f9b617da3ba3b",
      "tree": "6e731aa4154c0be6682e5ef276d952af1e494cb7",
      "parents": [
        "981c7a25abc74951bcd1baba780bf6fc81d6fb17"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sun Oct 18 11:04:40 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sun Oct 18 12:55:20 2026 +0200"
      },
      "message": "ai-benchmark: a new set in steps-new/, with connect-service/kafka-orders as its first example\n\nThe ladder\u0027s 71 steps stay in steps-ladder/ for comparison. The new examples (Oct 18: messaging, the EIPs the ladder\nnever uses, code-first REST, AI) are written to steps-new/ through steps_dir, and run with\nBENCH_STEPS_DIR\u003dsteps-new run-stepwise-ladder.sh \u003ctag\u003e [k].\n\nkafka-orders: Kafka from camel infra, the three README steps after the first: a validation route with choice and\nstop, a multicast to two more topics with a consumer each, and the order id as the record key (the dispatch log\nprints CamelKafkaKey, so the log proves it). Reference pass 3/3 in four runs.\n\nThe project sets camel.component.kafka.pollTimeoutMs\u003d500: a camel-kafka consumer stops only after its current poll,\nup to 5 s each and one route after another, and the 5 s shutdown timeout of camel run --dev is then exceeded on a\nreload with two or more Kafka routes; the forced shutdown logs ERRORs from the interrupted Kafka clients.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "981c7a25abc74951bcd1baba780bf6fc81d6fb17",
      "tree": "416fa83dc9873877daa7d3d8966bbeafa4b4aecc",
      "parents": [
        "dfdd1a34f37e301d9879cfb6a1dca990bf1cb36d"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sun Oct 18 09:57:00 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sun Oct 18 09:57:00 2026 +0200"
      },
      "message": "ai-benchmark: the sql upsert check accepts doTry/doCatch\n\nconnect-service-sql step 1 asks that a customer registered again does not\nfail on a duplicate key. ON CONFLICT or MERGE is the best practice, but an\nINSERT in doTry with an UPDATE in doCatch is how users who think in Java\ntry/catch write it, and it works (r17-9). The log checks stay as they were.\nOf all series, only r17-9 changes: two older doCatch runs failed the log\ncheck as well.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "dfdd1a34f37e301d9879cfb6a1dca990bf1cb36d",
      "tree": "f889ad0a39b1ced67dab010b7be679c778f2edb6",
      "parents": [
        "fe437d55c152a9e2f397045b9ab124dc96956304"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sun Oct 18 08:19:27 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sun Oct 18 08:19:27 2026 +0200"
      },
      "message": "ai-benchmark: a positive log check counts only the records the step produced\n\nThe log window spans the step before, and only log_not_regex was limited to\nthe records after the step\u0027s reload. A log_regex also matched what the step\nbefore had logged: in r17, transform-groovy step 3 passed three times on the\nline step 2 had logged, with a route that rejected both orders. The wait\nalready looked only at the step\u0027s records; the score now does too.\n\nThe reference pass with this change is 71 of 71 (r18ref).\n"
    },
    {
      "commit": "fe437d55c152a9e2f397045b9ab124dc96956304",
      "tree": "6178bf493a381f816c089887a183f1f2632526b7",
      "parents": [
        "6036d633f29526b39d3dc137a3941562b008185b"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Fri Oct 16 23:00:41 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sat Oct 17 08:22:35 2026 +0200"
      },
      "message": "ai-benchmark: camel_catalog_doc answers are cut at 16000 characters, and the trace records each answer\u0027s length\n\nAt 6000 the model never saw most of a component\u0027s options: for file, include, move and sortBy sit past 11000\ncharacters, and in r14b the model asked for all of them 75 times to get the same first 6000. 16000 is the longest\nanswer camel_catalog_doc gives since CAMEL-25541; the other tools stay at 6000, since the harness keeps every answer\nof a step in the conversation. BENCH_CATALOG_CAP\u003d6000 gives the r1-r14 behaviour. The trace records chars (the\nanswer) and shown (what the model got).\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "6036d633f29526b39d3dc137a3941562b008185b",
      "tree": "91ff3a97fbbc152cb0ad88abbf42954b983e174c",
      "parents": [
        "f262f3e8ae396bbc15458a2c8b117798d845e905"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Fri Oct 16 22:48:57 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Fri Oct 16 22:48:57 2026 +0200"
      },
      "message": "ai-benchmark: checks accept quoted values, and the apps scan every 500 ms like camel_run\n\nThree file checks failed a right answer written with quotes: move: \"done/${file:name}\" (4 times in r14a),\nthrowExceptionOnFailure: \"false\" and parallelProcessing: \"true\". They accept single and double quotes now.\n\nThe harness starts the apps itself with camel run --source-dir --dev; it now passes the optional\ncamel.main.?routesReloadInterval\u003d500 that camel_run passes since CAMEL-25661, so an agent\u0027s writes reload as soon as\nthey do with camel_run.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "f262f3e8ae396bbc15458a2c8b117798d845e905",
      "tree": "7b12d82b485f8f4de2c9910fd03d4a52705c9985",
      "parents": [
        "d889c9188c02a39c55984c22f12e432183c87fcf"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Fri Oct 16 22:48:57 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Fri Oct 16 22:48:57 2026 +0200"
      },
      "message": "ai-benchmark: the server restart stops only its own server, and the postgres wait reads the new JSON errors\n\nstart-server.sh stopped every camel-jbang-mcp runner jar on the machine, and Claude Code sessions run such jars as\nstdio MCP servers of their own; it now stops only the server on its port. It also stops the tail that feeds the\nserver: each restart left one behind (26 since Oct 13).\n\nSince CAMEL-25392 a failing `camel infra get \u003csvc\u003e --json` prints a JSON error ({\"status\":\"error\",\"code\":3,...})\nwhile the service starts, and the wait took any JSON for the service being up. It now waits for an answer that is\nnot an error.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "d889c9188c02a39c55984c22f12e432183c87fcf",
      "tree": "f2ff198ba662aea30fd5b3e980b21964c3b46b54",
      "parents": [
        "4fae7f9590ec10dd6e340f1af003135663b31245"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Thu Oct 15 07:25:22 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Thu Oct 15 07:25:22 2026 +0200"
      },
      "message": "ai-benchmark: 25 tool calls per step instead of 20\n\nOf the 78 steps that hit 20 calls in r12-r14, 24 passed anyway and 30 still had an accepted write in their last 5\ncalls, so they were still making progress. The steps that pass need few calls (median 4, p95 13, p99 18), so a higher\ncap mostly gives the ones that were still writing room to finish. Runs before Oct 15 2026 had 20.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "4fae7f9590ec10dd6e340f1af003135663b31245",
      "tree": "a80d6bd2022cd033732ed08da53d63af230811a8",
      "parents": [
        "c46e40a0925db965c7a9b9be4c71f8e77f5df44b"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Wed Oct 14 21:49:49 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Wed Oct 14 21:49:49 2026 +0200"
      },
      "message": "ai-benchmark: BENCH_FAST counts only the errors after a step began, BENCH_SERVER_INSTRUCTIONS, and data dirs for the ladder\n\n- With BENCH_FAST, an error logged before the step began, or an error record with an earlier timestamp, belongs to the\n  step before, however late it came in. The shorter quiet after a reference write let one land in the next step\u0027s count\n  (r13, one case in three runs).\n- BENCH_SERVER_INSTRUCTIONS\u003d1 appends the instructions from the MCP server\u0027s initialize answer (CAMEL-25646) to the\n  system prompt, as agent hosts show them to the model.\n- connect-file-processing, transform-csv-to-json and fail-well-error-handling declare the folders their routes write\n  into as camel.jbang.dataDir (CAMEL-25670). With --source-dir, dev mode reloaded connect-file-processing every 2 s for\n  its own files.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "c46e40a0925db965c7a9b9be4c71f8e77f5df44b",
      "tree": "e371213fff72d53de0c4c4c7dfbaf88ad3d12f86",
      "parents": [
        "927fdb03e119f47a62caa39b2707986f11bfb68d"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Wed Oct 14 20:45:40 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Wed Oct 14 20:45:40 2026 +0200"
      },
      "message": "ai-benchmark: BENCH_FAST waits for what a step checks instead of fixed sleeps, and traces the tool times\n\n22 of a run\u0027s 55 minutes were fixed sleeps (Oct 14 2026). The sleeps are wait_seconds after each check (11 min), 6 s after\neach reference write (7 min), reload polls every 2 s and a 3 s sleep between examples. Dev mode has scanned every 2 s since\nCAMEL-25032, so the waits padded for a delay that is gone. With BENCH_FAST\u003d1:\n\n- the check polls the log every 0.5 s until the step\u0027s log_regex (and files) show up after the reload, then waits\n  BENCH_FAST_GRACE (2 s) for errors that follow. Steps with nothing positive to wait for, min_errors or (by default) a\n  log_not_regex keep the full wait_seconds. Only the waiting changes: score judges the step as before;\n- after a step, the reference files are written only when they differ, the reload is polled every 0.5 s, and the next\n  snapshot waits for BENCH_FAST_QUIET (1.5 s) of quiet log instead of 6 s;\n- every tool line in the trace has its duration (\"ms\"), so the time a write spends waiting for its reload is visible.\n\nMeasured with qwen3.6:35b-mlx and the r11 MCP jar (r13, Oct 14 afternoon):\n- reference pass 71/71 in 13 min (30 with fixed sleeps);\n- three runs 67, 63 and 64 of 71 in 45, 55 and 48 min, against 65, 68 and 66 in 54-57 min with fixed sleeps;\n- time outside the model went from about 33 to about 20 min per run.\nThe aggressive settings (grace 1 s, no full wait for log_not_regex) saved nothing (46 min). Known: a shorter quiet lets\nan error of the step before land in the next step\u0027s count (one case in three runs); counting only the errors after the\nstep began is the next change.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "927fdb03e119f47a62caa39b2707986f11bfb68d",
      "tree": "57df402f3062a50e80f6e8eb4a6baa43ebe87f46",
      "parents": [
        "6485c397dad45af10838850615c479c3bb78ff81"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sat Oct 10 11:08:17 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sat Oct 10 11:08:17 2026 +0200"
      },
      "message": "ai-benchmark: the ladder keeps values in variables, not exchange properties\n\nCamel favours variables for the values a route keeps for itself, and the examples now use them\n(CAMEL-25517, apache/camel-jbang-examples#104-#108). The step requests of http-client, openapi-client\nand openapi-server ask for variables, and their reference solutions use setVariable and\n${variable.x}; Camel\u0027s own exchange properties (CamelTimerCounter, CamelCircuitBreakerState) stay.\nThe reference pass of the three examples passes 10 of 10 steps.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "6485c397dad45af10838850615c479c3bb78ff81",
      "tree": "d19d246c15ce0297e0a34bc8a19b32674caf4fac",
      "parents": [
        "3c0ab1f1ff14aff3c69380b477cbd5b7ea3e2e4f"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sat Oct 10 10:13:29 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sat Oct 10 10:13:29 2026 +0200"
      },
      "message": "ai-benchmark: read the log again when camel_get_log answers with no records\n\nA running app always has log records, so an empty answer is a failed read: one failed a reference\nstep (fail-well-circuit-breaker step 1) that passed on both reruns. Read up to three times, a second\napart, and say so in the run output.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "3c0ab1f1ff14aff3c69380b477cbd5b7ea3e2e4f",
      "tree": "744e188d9b926d309243ac472c17492eb30283ad",
      "parents": [
        "76e26c5389bf865444e8f3a1aa5677859a79ae06"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Fri Oct 09 08:06:20 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Fri Oct 09 08:06:20 2026 +0200"
      },
      "message": "The xslt step names the pieces element it asks for\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "76e26c5389bf865444e8f3a1aa5677859a79ae06",
      "tree": "2995c9473c21957d86ce14078e8d41e7fe70f074",
      "parents": [
        "4933348609636f7067ccfb2164703621ca5f84cb"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Wed Oct 07 07:00:13 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Wed Oct 07 07:00:13 2026 +0200"
      },
      "message": "Ignore the generated Kamelet side check files\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "4933348609636f7067ccfb2164703621ca5f84cb",
      "tree": "454e70d9454ecad118badf77ec720a7edda1f935",
      "parents": [
        "47f3605dcb46c22d64fa7ce550bb4ee23edb479e"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Tue Oct 06 19:33:28 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Tue Oct 06 19:33:28 2026 +0200"
      },
      "message": "The custom Kamelet request spells out the tag it appends\n\n\" [\u003ctag\u003e]\" was read literally by two runs, which logged [\u003cpriority\u003e]: the\nrequest now says a space and the tag in square brackets, with the example.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "47f3605dcb46c22d64fa7ce550bb4ee23edb479e",
      "tree": "d831936920b48e63f8c6178ba088c9b770d6745b",
      "parents": [
        "06327ef8c7f5b1d3f14b146d04c425d323b99f59"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Tue Oct 06 17:08:51 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Tue Oct 06 17:08:51 2026 +0200"
      },
      "message": "A Kamelet side check, a bare mode, and a failed reload no longer passes a step\n\ngen_kamelet.py and run-kamelet-check.sh write the same tasks with Kamelets and with\ncomponents, plus a custom Kamelet the model writes itself. BENCH_BARE\u003d1 offers the\nfile tools only. A step that ends on a failed reload fails: its WARN quotes the\nroute, so a log check on a value matched the failure itself.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "06327ef8c7f5b1d3f14b146d04c425d323b99f59",
      "tree": "3ae1e8f5d54c31a1e4b79a7f81415c26db4ab505",
      "parents": [
        "7ba5bb284f5bec8217e4db2e8f634788b0f73daa"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Tue Oct 06 10:17:33 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Tue Oct 06 10:17:33 2026 +0200"
      },
      "message": "A third score: the last version right, without the errors of attempts the model fixed\n\nok counts every error a step logged, also those of an attempt the model fixed later, or of test data it wrote itself\nan earlier step; ok_final ignores errors altogether. ok_lastwrite is in between: the final state is right and no\nerrors were logged after the model\u0027s last accepted write. The harness snapshots the errors at each accepted write;\nthe summary shows the new column, and counts runs from before it as ok.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "7ba5bb284f5bec8217e4db2e8f634788b0f73daa",
      "tree": "635d0dd8bdf278a518e2df6ea275c0be7401b229",
      "parents": [
        "6c4da4309d9a447d971aa06b914a108c616ad58b"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Tue Oct 06 07:11:13 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Tue Oct 06 07:11:13 2026 +0200"
      },
      "message": "Round 3 results: the r5 baseline on the 4.23.0 candidate\n\n89.6% of the steps strict and 92.7% final on main ba28701069f7, with the four HTTP rungs at 60 of 65.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "6c4da4309d9a447d971aa06b914a108c616ad58b",
      "tree": "cc76c9531074f0b3bcf5ca8bb7e852e522d113e4",
      "parents": [
        "fef38303977b3d0d9feff1dc3515d0424859c261"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Tue Oct 06 07:11:13 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Tue Oct 06 07:11:13 2026 +0200"
      },
      "message": "The ladder stops every integration after an example, not only the one named after it\n\nAn app the model starts itself with camel_run, or renames, was not stopped by name. In r5 one held port 8080 for\nsix hours and failed every later HTTP rung. The runner now stops all integrations after each example and warns\nwhen port 8080 is still in use.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "fef38303977b3d0d9feff1dc3515d0424859c261",
      "tree": "6b5ea778dd5dd2074e5e39ce594df7b4a895fac2",
      "parents": [
        "fcc65ccfdf84d81dcffeb0188ca92900a9e8db71"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Mon Oct 05 16:30:20 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Mon Oct 05 16:30:20 2026 +0200"
      },
      "message": "Results of round 2 and of round 3 so far\n\nRound 2 (2026-09-17 to 09-28): the round-1 set repeated a week later, one-shot on the ladder, and the stepwise\nladder from 76% to 83% of the steps passed. Round 3 (2026-10-02 to 10-05): two full-ladder baselines, 84.5% and\n86.5% strict, and what each change measured on the examples it was meant for.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "fcc65ccfdf84d81dcffeb0188ca92900a9e8db71",
      "tree": "731008a1d84ae4d5fcbb17dc545edf4aab800471",
      "parents": [
        "4389512e5bdd52c898d6e64b5f338ff0182f3a58"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Mon Oct 05 16:07:14 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Mon Oct 05 16:07:14 2026 +0200"
      },
      "message": "The stepwise ladder: HTTP rungs, tool groups and a final-state score\n\n- run-http.sh runs the four HTTP rungs; ref_pass.py and ref-server.sh run the reference pass and the reference stock\n  API server.\n- agent_mcp_stepwise.py: a 64k context by default (BENCH_NUM_CTX); BENCH_TOOL_GROUPS\u003d1 lets the model ask for the\n  tool groups the running app offers (CAMEL-24834); the camel_runtime_* tools get the app\u0027s name when the model\n  leaves it out.\n- summarize_stepwise.py reports \"final state right\" next to the strict score, as a model that tests its own app\n  with HTTP requests logs errors on the way to a right answer.\n- gen_stepwise.py: the stock lookups are written in Groovy instead of JSONPath; the openapi-server, json-transform\n  and order-lines requests are worded so a careful reader cannot misread them.\n- The README describes the stepwise ladder: where the steps come from, what a step is scored on, the tools and\n  model settings, the output and the pitfalls.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01STT6whBgK1AqsSsUKrnE8m\n"
    },
    {
      "commit": "4389512e5bdd52c898d6e64b5f338ff0182f3a58",
      "tree": "78fe0f5f0cc228b35983506a7155fbc01926d372",
      "parents": [
        "a9de890be061a44656b3a0122e45d99bdf0cc11a"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Tue Sep 29 13:40:33 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Tue Sep 29 13:40:33 2026 +0200"
      },
      "message": "Three checks were failing correct answers, and a step\u0027s errors are now recorded\n\nReading the traces of the steps that fail most often, four of the top five were\nthe harness marking correct work wrong rather than the model getting it wrong.\n\nconnect-http-client step 3 asked for throwExceptionOnFailure and checked the\nfile for \"throwExceptionOnFailure\u003dfalse\". Seven of ten passes wrote it as a YAML\nparameter instead, which is the same option and arguably the better style, and\nwere failed for it although their log output was exactly right. The check takes\neither spelling now, and re-scoring the saved route files flips those seven.\n\ncontracts-openapi-client step 1 provokes failures on purpose (errors_ok, 90 to\n108 of them) and then looks for one line in the last 150 log records. The step\u0027s\nown expected errors fill the window and push the line out of it, while it sits\nin the run log the whole time, byte for byte what the check asks for. A step is\nscored on 400 records now, BENCH_LOG_WINDOW.\n\nThe third, route-aggregator step 1, is left failing. Its file, properties and log\nchecks all pass and it fails on two errors that are not in the run log, so they\ncome from the error registry and nothing records what they were. Tolerating them\nwould silence something that cannot be named, so instead the errors of a step are\nnow kept in results.json as error_detail, and the next run can settle it.\n\nconnect-service-sql (H2 for Postgres), the log_not_regex baseline, two stale\nreference files and a reset in a route that ran on every reload were the earlier\nones. Every count so far has been biased against the model.\n\nCo-Authored-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01Bp3538HRBPMQkb5ta9xRaj\n"
    },
    {
      "commit": "a9de890be061a44656b3a0122e45d99bdf0cc11a",
      "tree": "118237a50c922b15d91e032df62fb07883750a29",
      "parents": [
        "39312f27c7c5205caec72a20d17340db8f7df6a7"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Mon Sep 28 09:27:16 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Mon Sep 28 09:27:16 2026 +0200"
      },
      "message": "The sql rung runs on Postgres with camel infra, as the example ships it\n\nThe ladder ran connect-service-sql on H2 to avoid needing a service, kept the\nexample\u0027s route shape, and rewrote its insert into H2\u0027s standard MERGE. The\nexample on main is Postgres and its README teaches ON CONFLICT (\"run twice and\nsee the conflict error, then add ON CONFLICT\"), so the ladder was scoring the\nmodel against an answer the example does not give. Four of eighteen attempts\nwrote the example\u0027s own ON CONFLICT insert and were marked wrong for it; the\nH2-correct MERGE was never written once, and the step was 0/10 in four runs.\n\nThe rung now uses the example\u0027s datasource and its insert verbatim, and declares\ninfra: [\"postgres\"]. The harness starts the services an example declares with\ncamel infra run before the app and waits until camel infra get answers, and the\nrunner stops them when the run is over. Each pass stops the service first, so it\nstarts against an empty database: kept running, its rows would carry over and\nstep 3, which sets C-207 to NL, would pass on what the pass before it left.\n\nThe reset belongs there and not in the route. A DROP in the setup route also\nruns on every reload, and an UPDATE that fires before the file route\u0027s inserts\nis then wiped -- which cost step 3 six of ten passes before it was taken out.\n\nStep 1 goes from 0/10 to 2/10: winnable now, where it was impossible. What holds\nit back is not the database but CAMEL-25075, the model spending its whole budget\non identical camel_catalog_doc(sql) calls in 8 of 10 passes.\n\nCo-Authored-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01Bp3538HRBPMQkb5ta9xRaj\n"
    },
    {
      "commit": "39312f27c7c5205caec72a20d17340db8f7df6a7",
      "tree": "ba09068202a788f0f5b1df033d23252c6c94ae06",
      "parents": [
        "1b947aa79b7a237a7ba3837a4fad8ee3124c8552"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sat Sep 26 15:52:12 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sat Sep 26 15:52:12 2026 +0200"
      },
      "message": "The ladder gives the model 20 tool calls per step, not 12\n\nAt 12, 115 of 720 step-runs hit the ceiling and only 34% of those passed\nagainst 80% overall: the number was partly measuring the budget. Re-running\nthe four examples that hit it most with a ceiling of 24 scored 93 of 130\nagainst 81, so the room was the constraint for three of those steps.\n\n20 rather than 24: of 130 step-runs at a ceiling of 24, 101 used 20 calls or\nfewer and only 3 finished naturally needing 21 to 24. The 26 runs pinned at 24\nare runs that loop -- one asked camel_catalog_doc(sql) six times for a syntax\nthat answer does not contain -- so the last four calls buy looping, not passes.\nCapping at 20 leaves 29 of 130 pinned instead of 26, and the same 130 step-runs\ntook 168 minutes at 24 against 133 at 12.\n\nCo-Authored-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01Bp3538HRBPMQkb5ta9xRaj\n"
    },
    {
      "commit": "1b947aa79b7a237a7ba3837a4fad8ee3124c8552",
      "tree": "b7d8831684729972a4f33416184669cdce1841f7",
      "parents": [
        "eae5b3eac85ad17eaef63ad5c23479c9766a837a"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sat Sep 26 11:23:22 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sat Sep 26 11:23:22 2026 +0200"
      },
      "message": "Round 2 of the one-shot suite: k runs, pass@k and pass^k, a held-out set and services\n\nrun-suite.sh \u003ctag\u003e \u003ck\u003e runs the suite k times and ends with passk.py, which\nprints per-example passes out of k plus pass@k (passed at least once) and\npass^k (passed every time) -- the two consistency measures of the MuleSoft\nintegration-skill post, so the series can be compared with it.\n\nSet B (examples-intermediate.json) is six intermediate examples the model had\nnever been tested on. An entry declares what it needs in the JSON rather than\nin the harness: infra for services started with camel infra run and whose\nconnection data is appended to the prompt as a developer would read it, seed\nfor files copied in before the model\u0027s, hint for one extra sentence, and\npre/post for commands around the example.\n\nCo-Authored-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01Bp3538HRBPMQkb5ta9xRaj\n"
    },
    {
      "commit": "eae5b3eac85ad17eaef63ad5c23479c9766a837a",
      "tree": "dbf74f066f8f36f56518b7cbbaa87a092c756bc3",
      "parents": [
        "8c2ddea9c35e37ecdeb0d1c4be78716bf416a3c2"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sat Sep 26 11:23:09 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sat Sep 26 11:23:09 2026 +0200"
      },
      "message": "The stepwise ladder: the round-2 harness that scores one example step by step\n\nRound 1 gave the model a whole example in one prompt. The ladder gives it the\nexample\u0027s README \"Build it step by step\" sections one request at a time, from\nthe project as it stands after step 1, and scores each step on its own: the\nroute file, the properties, what the app logs after the dev-mode reload, an\nHTTP probe where the README has a curl, and the errors the step caused.\n\n- gen_stepwise.py holds the step definitions and writes steps-ladder/\u003cname\u003e.json\n  and the starting project under stepwise-ladder/ (both generated, both ignored).\n- run-stepwise-ladder.sh \u003ctag\u003e [k] runs every example k times; BENCH_ONLY runs\n  one, BENCH_REFERENCE applies each step\u0027s reference files instead of asking the\n  model, which is how the steps files themselves are checked.\n- summarize_stepwise.py prints passes per step and how many runs cleared every\n  step of an example.\n\nEach step is scored against its own baseline, not the whole log window: the\nwindow holds 150 records and spans the step before, so an earlier step\u0027s output\nwould otherwise count. That holds for the errors, and now for log_not_regex too\n-- a step that forbids ConnectException follows the step whose whole job is to\nprovoke nine of them. What the step forbids is judged from the reload the step\ncaused, so a route still logging it while the model writes does not count\neither.\n\nReference files are written the way a person does, the properties first and the\nroute once that reload has landed: dev mode reloads the routes before the\nproperties, so a route written in the same poll as the property it uses fails to\nstart (CAMEL-25032). With that and a probe that retries until the body matches,\nnot just the status, the reference pass is 72 of 72 steps.\n\nCo-Authored-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01Bp3538HRBPMQkb5ta9xRaj\n"
    },
    {
      "commit": "8c2ddea9c35e37ecdeb0d1c4be78716bf416a3c2",
      "tree": "55054bdb74ae4df44021a14e7b33935d1c9ed047",
      "parents": [
        "0570fd9d4a7f8d9cc87c927c7fc27d68f7e9590f"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Tue Sep 15 23:06:46 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Tue Sep 15 23:06:46 2026 +0200"
      },
      "message": "ai-benchmark: the tool allow-list names the shared authoring tools only (CAMEL-24712 removes the older per-kind ones)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01Bp3538HRBPMQkb5ta9xRaj\n"
    },
    {
      "commit": "0570fd9d4a7f8d9cc87c927c7fc27d68f7e9590f",
      "tree": "64970a050389c8173e54fe0e424d9110187d4d51",
      "parents": [
        "935c9e502d98e56ecfceb509e787265822ad0a5b"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Tue Sep 15 09:42:32 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Tue Sep 15 09:42:32 2026 +0200"
      },
      "message": "README: point at the ai-benchmark harness\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01Bp3538HRBPMQkb5ta9xRaj\n"
    },
    {
      "commit": "935c9e502d98e56ecfceb509e787265822ad0a5b",
      "tree": "bede1b08a380c96de53e0d4174d4163694e386ff",
      "parents": [
        "011828f31ba5f7be866705b8f1c2d758e4ca230b"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Tue Sep 15 09:42:19 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Tue Sep 15 09:42:19 2026 +0200"
      },
      "message": "ai-benchmark: the harness of the local-model benchmark series against the Camel MCP server\n\nOne-shot and stepwise benchmarks scored by what runs, the example and step definitions, the MCP client, the\nsuite and server scripts, the results of the 2026-09 series, and a README for people and agents who want to\nrepeat it with another model or another set of examples. Blog:\nhttps://camel.apache.org/blog/2026/09/camel-local-model-benchmark/\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01Bp3538HRBPMQkb5ta9xRaj\n"
    },
    {
      "commit": "011828f31ba5f7be866705b8f1c2d758e4ca230b",
      "tree": "00934443523d7199549e3f8faaa0f6505bd5290b",
      "parents": [
        "1cf9a05307d9b96955b2fcf3b36c2802e0ffd7c2"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Tue Aug 11 15:10:35 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Tue Aug 11 15:10:35 2026 +0200"
      },
      "message": "Bump for next version\n"
    },
    {
      "commit": "1cf9a05307d9b96955b2fcf3b36c2802e0ffd7c2",
      "tree": "ccb629377a7cf2f7edafb431d117c14c0f314709",
      "parents": [
        "cc3b66ecbfbfa7d8177dd1bdae87f761de759501"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Jul 23 16:35:56 2026 +0000"
      },
      "committer": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Thu Jul 23 19:45:48 2026 +0200"
      },
      "message": "Bump org.postgresql:postgresql in /profiling/kafka/postgresql-kafka\n\nBumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.11 to 42.7.12.\n- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)\n- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.11...REL42.7.12)\n\n---\nupdated-dependencies:\n- dependency-name: org.postgresql:postgresql\n  dependency-version: 42.7.12\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "cc3b66ecbfbfa7d8177dd1bdae87f761de759501",
      "tree": "40e4f18b237fb36e3bdcfa504f8f0137d3ec7151",
      "parents": [
        "c8b652a1ffc3a28d5f2af4477c909bb48895d351"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Thu Jul 02 19:49:21 2026 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Thu Jul 02 19:49:21 2026 +0200"
      },
      "message": "Bump for next version\n"
    },
    {
      "commit": "c8b652a1ffc3a28d5f2af4477c909bb48895d351",
      "tree": "2fa4dea7011d8c790619c9d60f355fd4bf2ac8c5",
      "parents": [
        "a353d5a186ec567a58b1c2ba4dded0a39926e65a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Jun 10 12:16:01 2026 +0000"
      },
      "committer": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Wed Jun 10 14:39:11 2026 +0200"
      },
      "message": "Bump org.codehaus.mojo:exec-maven-plugin from 3.1.1 to 3.6.3\n\nBumps [org.codehaus.mojo:exec-maven-plugin](https://github.com/mojohaus/exec-maven-plugin) from 3.1.1 to 3.6.3.\n- [Release notes](https://github.com/mojohaus/exec-maven-plugin/releases)\n- [Commits](https://github.com/mojohaus/exec-maven-plugin/compare/3.1.1...3.6.3)\n\n---\nupdated-dependencies:\n- dependency-name: org.codehaus.mojo:exec-maven-plugin\n  dependency-version: 3.6.3\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "a353d5a186ec567a58b1c2ba4dded0a39926e65a",
      "tree": "eb0be749c070dce31f076bf00dfd9058ef557b72",
      "parents": [
        "fc5fb397c0934ebd6e7f203caef6b3d80751506a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Jun 10 12:15:01 2026 +0000"
      },
      "committer": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Wed Jun 10 14:38:57 2026 +0200"
      },
      "message": "Bump io.netty:netty-tcnative-boringssl-static\n\nBumps [io.netty:netty-tcnative-boringssl-static](https://github.com/netty/netty-tcnative) from 2.0.43.Final to 2.0.78.Final.\n- [Release notes](https://github.com/netty/netty-tcnative/releases)\n- [Commits](https://github.com/netty/netty-tcnative/compare/netty-tcnative-parent-2.0.43.Final...netty-tcnative-parent-2.0.78.Final)\n\n---\nupdated-dependencies:\n- dependency-name: io.netty:netty-tcnative-boringssl-static\n  dependency-version: 2.0.78.Final\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "fc5fb397c0934ebd6e7f203caef6b3d80751506a",
      "tree": "e20cac490b44f4136689d4377923bff7f2fe415a",
      "parents": [
        "cacccc1bf6ec34ba661ef8ea57b3b623e958d5cc"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Jun 10 12:14:47 2026 +0000"
      },
      "committer": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Wed Jun 10 14:38:40 2026 +0200"
      },
      "message": "Bump org.apache.commons:commons-dbcp2 from 2.8.0 to 2.14.0\n\nBumps org.apache.commons:commons-dbcp2 from 2.8.0 to 2.14.0.\n\n---\nupdated-dependencies:\n- dependency-name: org.apache.commons:commons-dbcp2\n  dependency-version: 2.14.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "cacccc1bf6ec34ba661ef8ea57b3b623e958d5cc",
      "tree": "85b5234ca72319472676fa8facaf05d4abb0931a",
      "parents": [
        "8954bfea5dd77e1a569293da6bedf5f667d7f11e"
      ],
      "author": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Wed Jun 10 11:49:27 2026 +0200"
      },
      "committer": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Wed Jun 10 13:56:07 2026 +0200"
      },
      "message": "Fix compilation from upgrade 4.7 to 4.20\n\nthis wasn\u0027t caught before as the tests were not compile don GitHub\nActions\n\nSigned-off-by: Aurélien Pupier \u003capupier@ibm.com\u003e"
    },
    {
      "commit": "8954bfea5dd77e1a569293da6bedf5f667d7f11e",
      "tree": "71a6eacab0c9d11bfcafd67e86688cd2b23f8799",
      "parents": [
        "faf036c8e36d177ba39451e13495f03d32b28ddb"
      ],
      "author": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Wed Jun 10 11:39:56 2026 +0200"
      },
      "committer": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Wed Jun 10 13:56:07 2026 +0200"
      },
      "message": "Revert \"Bump org.apache.camel.k:camel-k-runtime-bom from 1.9.0 to 3.15.3\"\n\nThis reverts commit 40007af7958fa608ff9535ea1328b26e8b7f72e0.\n"
    },
    {
      "commit": "faf036c8e36d177ba39451e13495f03d32b28ddb",
      "tree": "79b182c59c43afa454214343b29e2c98f353f2be",
      "parents": [
        "1575940b02140bd07845348890f08244fab8d73c"
      ],
      "author": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Wed Jun 10 11:29:07 2026 +0200"
      },
      "committer": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Wed Jun 10 13:56:07 2026 +0200"
      },
      "message": "Play tests on GitHub Actions CI\n\nit also enables the compilation of tests\n\nSigned-off-by: Aurélien Pupier \u003capupier@ibm.com\u003e"
    },
    {
      "commit": "1575940b02140bd07845348890f08244fab8d73c",
      "tree": "59f2ebebb46433875be9044afe1a4b7a89a94431",
      "parents": [
        "f9330593b0a5fc128e3c3f69780c3e68c39cfad1"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Jun 10 08:17:06 2026 +0000"
      },
      "committer": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Wed Jun 10 10:53:42 2026 +0200"
      },
      "message": "Bump org.apache.maven.plugins:maven-compiler-plugin from 3.8.1 to 3.15.0\n\nBumps [org.apache.maven.plugins:maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin) from 3.8.1 to 3.15.0.\n- [Release notes](https://github.com/apache/maven-compiler-plugin/releases)\n- [Commits](https://github.com/apache/maven-compiler-plugin/compare/maven-compiler-plugin-3.8.1...maven-compiler-plugin-3.15.0)\n\n---\nupdated-dependencies:\n- dependency-name: org.apache.maven.plugins:maven-compiler-plugin\n  dependency-version: 3.15.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "f9330593b0a5fc128e3c3f69780c3e68c39cfad1",
      "tree": "d4b9022aa0eb52df112234da2dc6d6cc86328b05",
      "parents": [
        "40007af7958fa608ff9535ea1328b26e8b7f72e0"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Jun 10 07:45:01 2026 +0000"
      },
      "committer": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Wed Jun 10 10:25:07 2026 +0200"
      },
      "message": "Bump camel.version from 4.7.0 to 4.20.0\n\nBumps `camel.version` from 4.7.0 to 4.20.0.\n\nUpdates `org.apache.camel:camel-bom` from 4.7.0 to 4.20.0\n\nUpdates `org.apache.camel:camel-maven-plugin` from 4.7.0 to 4.20.0\n\n---\nupdated-dependencies:\n- dependency-name: org.apache.camel:camel-bom\n  dependency-version: 4.20.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n- dependency-name: org.apache.camel:camel-maven-plugin\n  dependency-version: 4.20.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "40007af7958fa608ff9535ea1328b26e8b7f72e0",
      "tree": "bf131d079f06884c28382c2c258ea2049bcca812",
      "parents": [
        "f745377574b854bf1f7c5807976e71130fa72df5"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Jun 10 07:44:53 2026 +0000"
      },
      "committer": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Wed Jun 10 10:02:16 2026 +0200"
      },
      "message": "Bump org.apache.camel.k:camel-k-runtime-bom from 1.9.0 to 3.15.3\n\nBumps [org.apache.camel.k:camel-k-runtime-bom](https://github.com/apache/camel-k-runtime) from 1.9.0 to 3.15.3.\n- [Changelog](https://github.com/apache/camel-k-runtime/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/apache/camel-k-runtime/compare/camel-k-runtime-project-1.9.0...camel-k-runtime-project-3.15.3)\n\n---\nupdated-dependencies:\n- dependency-name: org.apache.camel.k:camel-k-runtime-bom\n  dependency-version: 3.15.3\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "f745377574b854bf1f7c5807976e71130fa72df5",
      "tree": "311b4a940bc204c0a1ff867feb796d37c5b926d3",
      "parents": [
        "d4eca31abdec7adb399507caf5be74676a864060"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Jun 10 07:45:14 2026 +0000"
      },
      "committer": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Wed Jun 10 10:01:14 2026 +0200"
      },
      "message": "Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.5 to 3.5.6\n\nBumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.2.5 to 3.5.6.\n- [Release notes](https://github.com/apache/maven-surefire/releases)\n- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.2.5...surefire-3.5.6)\n\n---\nupdated-dependencies:\n- dependency-name: org.apache.maven.plugins:maven-surefire-plugin\n  dependency-version: 3.5.6\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "d4eca31abdec7adb399507caf5be74676a864060",
      "tree": "e8d91587ac20a6ef09d333f7401f234ab8782bac",
      "parents": [
        "7481175a2a7e27015b7aac5dae55396603a71edf"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Jun 10 07:45:07 2026 +0000"
      },
      "committer": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Wed Jun 10 10:00:59 2026 +0200"
      },
      "message": "Bump org.postgresql:postgresql from 42.7.2 to 42.7.11\n\nBumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.2 to 42.7.11.\n- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)\n- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.2...REL42.7.11)\n\n---\nupdated-dependencies:\n- dependency-name: org.postgresql:postgresql\n  dependency-version: 42.7.11\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "7481175a2a7e27015b7aac5dae55396603a71edf",
      "tree": "8c9ad3377df7adb9c1c4a6b8b955ebbce9a96170",
      "parents": [
        "843549a1d7743558a9ed579e2b50342dba3f7359"
      ],
      "author": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Tue Jun 09 10:53:13 2026 +0200"
      },
      "committer": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Wed Jun 10 09:32:30 2026 +0200"
      },
      "message": "Create dependabot.yml"
    },
    {
      "commit": "843549a1d7743558a9ed579e2b50342dba3f7359",
      "tree": "5474d2404423d596f3df16b0a14ce1654140d8aa",
      "parents": [
        "afbb5b1fb222dcdb919b90c547f576d9c8cdaf7b"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Jun 09 08:49:48 2026 +0000"
      },
      "committer": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Tue Jun 09 10:59:57 2026 +0200"
      },
      "message": "Bump org.postgresql:postgresql in /profiling/kafka/postgresql-kafka\n\nBumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.2 to 42.7.11.\n- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)\n- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.2...REL42.7.11)\n\n---\nupdated-dependencies:\n- dependency-name: org.postgresql:postgresql\n  dependency-version: 42.7.11\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "afbb5b1fb222dcdb919b90c547f576d9c8cdaf7b",
      "tree": "d3c576b557427a171093cac6d873d8854cdf8e2c",
      "parents": [
        "c49249555f9e4c3ebb3f7e112a212a0abb54e6b4"
      ],
      "author": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Fri Jun 05 15:49:20 2026 +0200"
      },
      "committer": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Tue Jun 09 10:54:03 2026 +0200"
      },
      "message": "Configure GitHub workflow to cancel previous PR check in case of new\ncommits on same PR\n\nIt will save some resources in case of new commit on a branch PR and PR\nchecks were not finished\nApache committers can see recommendations here\nhttps://cwiki.apache.org/confluence/pages/viewpage.action?spaceKey\u003dINFRA\u0026title\u003dGitHub+Actions+Recommended+Practices\n\nSigned-off-by: Aurélien Pupier \u003capupier@ibm.com\u003e"
    },
    {
      "commit": "c49249555f9e4c3ebb3f7e112a212a0abb54e6b4",
      "tree": "aee4f1d080ca6fb177e81263113fe6f5d98fc23f",
      "parents": [
        "ad61a47c1d57b79cd27386530d877cca4f2b97ab"
      ],
      "author": {
        "name": "The Apache Software Foundation",
        "email": "root-asf-gitbox-commits@apache.org",
        "time": "Fri May 15 14:03:50 2026 -0500"
      },
      "committer": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Tue Jun 09 10:50:56 2026 +0200"
      },
      "message": "Set up default protection ruleset for default and release branches"
    },
    {
      "commit": "ad61a47c1d57b79cd27386530d877cca4f2b97ab",
      "tree": "35364fa32db08e45e9e423a0f42a02e9e10dd3ee",
      "parents": [
        "e2607992329028618c7fd2cbf42f43dc30ea2708"
      ],
      "author": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Tue Jun 09 10:18:01 2026 +0200"
      },
      "committer": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Tue Jun 09 10:37:20 2026 +0200"
      },
      "message": "Upgrade from 4.8 to 4.21 of Camel\n\nSigned-off-by: Aurélien Pupier \u003capupier@ibm.com\u003e"
    },
    {
      "commit": "e2607992329028618c7fd2cbf42f43dc30ea2708",
      "tree": "fe2c82c0abf5fcee492fbd6d5ce64400283479af",
      "parents": [
        "f95029672545f70a85d89869982791a71fc88738"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Fri Feb 20 08:33:33 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 20 08:33:33 2026 +0100"
      },
      "message": "Update application.properties"
    },
    {
      "commit": "f95029672545f70a85d89869982791a71fc88738",
      "tree": "0b76bd12a5b7e2a1492c75c7bbcbdd52feee3f50",
      "parents": [
        "9beb635b26902b58d7c4e82ffa2070d7fc086a98"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "angusyoung@gmail.com",
        "time": "Wed Jul 16 14:18:40 2025 +0200"
      },
      "committer": {
        "name": "Otavio Rodolfo Piske",
        "email": "orpiske@users.noreply.github.com",
        "time": "Wed Jul 16 14:46:38 2025 +0200"
      },
      "message": "Added some basic documentation about running these JMH tests\n"
    },
    {
      "commit": "9beb635b26902b58d7c4e82ffa2070d7fc086a98",
      "tree": "8db3a92d243c16caae4044c22fcdc7f35ce56ec2",
      "parents": [
        "af10729a6e86a542229a8ffb56570cbb7a88ec21"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "angusyoung@gmail.com",
        "time": "Thu Aug 29 16:59:50 2024 +0200"
      },
      "committer": {
        "name": "Otavio Rodolfo Piske",
        "email": "angusyoung@gmail.com",
        "time": "Thu Aug 29 16:59:50 2024 +0200"
      },
      "message": "Added last group of missing tests\n"
    },
    {
      "commit": "af10729a6e86a542229a8ffb56570cbb7a88ec21",
      "tree": "5fca8ee840895e7b351bf95459e5d663ef823dc8",
      "parents": [
        "34e6a8eb4992dd88545043e23aafbef49e5b10ba"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "angusyoung@gmail.com",
        "time": "Thu Aug 29 16:42:39 2024 +0200"
      },
      "committer": {
        "name": "Otavio Rodolfo Piske",
        "email": "angusyoung@gmail.com",
        "time": "Thu Aug 29 16:42:39 2024 +0200"
      },
      "message": "Use a fixed class name for the test input\n"
    },
    {
      "commit": "34e6a8eb4992dd88545043e23aafbef49e5b10ba",
      "tree": "1fc4eb8e46ffe75b1aac7c8e47f768ca49715f3a",
      "parents": [
        "975997b606cceb358a541a751c70da7179bfa629"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "angusyoung@gmail.com",
        "time": "Thu Aug 29 15:02:09 2024 +0200"
      },
      "committer": {
        "name": "Otavio Rodolfo Piske",
        "email": "angusyoung@gmail.com",
        "time": "Thu Aug 29 15:02:09 2024 +0200"
      },
      "message": "Add tests for other commonly used methods\n"
    },
    {
      "commit": "975997b606cceb358a541a751c70da7179bfa629",
      "tree": "8a594b35f3615bfb92d81b531e753148f0248ef5",
      "parents": [
        "c126f1ec4d4b0513c4730142b4c7a767e22e95db"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "angusyoung@gmail.com",
        "time": "Wed Aug 28 15:25:20 2024 +0200"
      },
      "committer": {
        "name": "Otavio Rodolfo Piske",
        "email": "angusyoung@gmail.com",
        "time": "Wed Aug 28 15:25:20 2024 +0200"
      },
      "message": "Use the correct method in the StringHelperTest\n"
    },
    {
      "commit": "c126f1ec4d4b0513c4730142b4c7a767e22e95db",
      "tree": "a33c04da73d70c1c6b3e337f3d126fbacf1766b9",
      "parents": [
        "3c9bb66a2b9f242b9561f291e17d27efcc460ec8"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "angusyoung@gmail.com",
        "time": "Tue Aug 27 10:25:36 2024 +0200"
      },
      "committer": {
        "name": "Otavio Rodolfo Piske",
        "email": "orpiske@users.noreply.github.com",
        "time": "Tue Aug 27 10:31:56 2024 +0200"
      },
      "message": "Improve granularity for the CSimple tests\n"
    },
    {
      "commit": "3c9bb66a2b9f242b9561f291e17d27efcc460ec8",
      "tree": "ea7911e66bea1ef946135550a3e423ff9dff13b9",
      "parents": [
        "29cc14d0998b924e0e67cdb576bd3889729f1204"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "angusyoung@gmail.com",
        "time": "Mon Aug 26 11:14:27 2024 +0200"
      },
      "committer": {
        "name": "Otavio Rodolfo Piske",
        "email": "orpiske@users.noreply.github.com",
        "time": "Tue Aug 27 10:31:56 2024 +0200"
      },
      "message": "Improve granularity for the Simple operator tests\n"
    },
    {
      "commit": "29cc14d0998b924e0e67cdb576bd3889729f1204",
      "tree": "0ff41f31da21d8eeab05a17da2449a29874f9daf",
      "parents": [
        "ed0174b6dac1d10b8ffd21bd1a68071b951148f6"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "angusyoung@gmail.com",
        "time": "Mon Aug 26 10:58:19 2024 +0200"
      },
      "committer": {
        "name": "Otavio Rodolfo Piske",
        "email": "orpiske@users.noreply.github.com",
        "time": "Tue Aug 27 10:31:56 2024 +0200"
      },
      "message": "Improve granularity for the CSimple tests\n"
    },
    {
      "commit": "ed0174b6dac1d10b8ffd21bd1a68071b951148f6",
      "tree": "5c80cf9bad90ff0aec2b47c2456dd7a22e2b2123",
      "parents": [
        "93d2e340cc3f27f5d9437ac01e6bf69c8b53865e"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "angusyoung@gmail.com",
        "time": "Tue Aug 20 15:41:47 2024 +0200"
      },
      "committer": {
        "name": "Otavio Rodolfo Piske",
        "email": "angusyoung@gmail.com",
        "time": "Tue Aug 20 15:41:47 2024 +0200"
      },
      "message": "Fix compilation errors with newer Camel versions\n"
    },
    {
      "commit": "93d2e340cc3f27f5d9437ac01e6bf69c8b53865e",
      "tree": "397feebc65cd22c9fb1f3e40c18725e2d744002d",
      "parents": [
        "5062c97d2f5916cfe5c5172a40edca677c5538df"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "angusyoung@gmail.com",
        "time": "Tue Aug 20 14:10:30 2024 +0200"
      },
      "committer": {
        "name": "Otavio Rodolfo Piske",
        "email": "orpiske@users.noreply.github.com",
        "time": "Tue Aug 20 14:33:01 2024 +0200"
      },
      "message": "Upgrade to Camel 4.8.0-SNAPSHOT\n"
    },
    {
      "commit": "5062c97d2f5916cfe5c5172a40edca677c5538df",
      "tree": "c79a980d84b8eb55a4dbe40f572324b817032166",
      "parents": [
        "54d18546315740f41aeecef284a16b74659d23dd"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Thu Aug 08 18:54:07 2024 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Thu Aug 08 18:54:07 2024 +0200"
      },
      "message": "Upgrade to Camel 4.7.0\n"
    },
    {
      "commit": "54d18546315740f41aeecef284a16b74659d23dd",
      "tree": "6916ae62bf970b584c90662f352f159150b0bfb2",
      "parents": [
        "bc7412ecdd35f4621546f463a404078315db4f20"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Fri May 10 16:09:05 2024 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Fri May 10 16:09:05 2024 +0200"
      },
      "message": "Bump for next version\n"
    },
    {
      "commit": "bc7412ecdd35f4621546f463a404078315db4f20",
      "tree": "2cf219897ce6a91e0141fec564c21efb7416ad1a",
      "parents": [
        "0ba2d494d2b1b38222d6e82be6bc93eabf1e04f2"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Fri Apr 12 21:30:48 2024 +0200"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Fri Apr 12 21:30:48 2024 +0200"
      },
      "message": "Upgrade to Camel 4.5.0\n"
    },
    {
      "commit": "0ba2d494d2b1b38222d6e82be6bc93eabf1e04f2",
      "tree": "d1106bb32093dac96235f896f9462abec8ff55a7",
      "parents": [
        "ce46cc46bb5636599d6125c8067c5eb4146e4b3d"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Feb 21 00:21:28 2024 +0000"
      },
      "committer": {
        "name": "Andrea Cosentino",
        "email": "ancosen@gmail.com",
        "time": "Wed Feb 21 06:45:43 2024 +0100"
      },
      "message": "Bump org.postgresql:postgresql in /profiling/kafka/kafka-postgresql\n\nBumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.3.8 to 42.7.2.\n- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)\n- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/pgjdbc/pgjdbc/commits)\n\n---\nupdated-dependencies:\n- dependency-name: org.postgresql:postgresql\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "ce46cc46bb5636599d6125c8067c5eb4146e4b3d",
      "tree": "4d9f89a6e0fc2337bc0bfb33c6d65a3c300db93d",
      "parents": [
        "80782dedf9404f29d763467c31f87d95af4169c6"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Feb 21 00:22:42 2024 +0000"
      },
      "committer": {
        "name": "Andrea Cosentino",
        "email": "ancosen@gmail.com",
        "time": "Wed Feb 21 06:44:07 2024 +0100"
      },
      "message": "Bump org.postgresql:postgresql\n\nBumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.3.8 to 42.7.2.\n- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)\n- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/pgjdbc/pgjdbc/commits)\n\n---\nupdated-dependencies:\n- dependency-name: org.postgresql:postgresql\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "80782dedf9404f29d763467c31f87d95af4169c6",
      "tree": "8b16f365a08d72753ad203da71d9ea5ccc622008",
      "parents": [
        "e2a6131385d4da7b2116acb69251e8f3e24b9861"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Feb 21 00:22:51 2024 +0000"
      },
      "committer": {
        "name": "Andrea Cosentino",
        "email": "ancosen@gmail.com",
        "time": "Wed Feb 21 06:43:28 2024 +0100"
      },
      "message": "Bump org.postgresql:postgresql\n\nBumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.3.8 to 42.7.2.\n- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)\n- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/pgjdbc/pgjdbc/commits)\n\n---\nupdated-dependencies:\n- dependency-name: org.postgresql:postgresql\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "e2a6131385d4da7b2116acb69251e8f3e24b9861",
      "tree": "86aaf2d70c76020164946382174334a1b589414d",
      "parents": [
        "200aa95c35b5077ab2e260d072faf3693f7bde2d"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Feb 21 00:23:08 2024 +0000"
      },
      "committer": {
        "name": "Andrea Cosentino",
        "email": "ancosen@gmail.com",
        "time": "Wed Feb 21 06:42:56 2024 +0100"
      },
      "message": "Bump org.postgresql:postgresql in /profiling/kafka/postgresql-kafka\n\nBumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.3.8 to 42.7.2.\n- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)\n- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/pgjdbc/pgjdbc/commits)\n\n---\nupdated-dependencies:\n- dependency-name: org.postgresql:postgresql\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "200aa95c35b5077ab2e260d072faf3693f7bde2d",
      "tree": "4bd8cd3e0bb1bb0d1d14024fb4c5bc5f2ff1e353",
      "parents": [
        "f3456858a59387fc453142ccfebfcb8e639643fd"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sun Feb 18 08:08:23 2024 +0100"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sun Feb 18 08:08:23 2024 +0100"
      },
      "message": "Upgrade versions\n"
    },
    {
      "commit": "f3456858a59387fc453142ccfebfcb8e639643fd",
      "tree": "f6bc3edcf3bad7377444e114064d4d54118aaf2b",
      "parents": [
        "44d3376f6a1cdd1730a613e34bf3dd9d8d1c54d8"
      ],
      "author": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sun Feb 18 08:03:11 2024 +0100"
      },
      "committer": {
        "name": "Claus Ibsen",
        "email": "claus.ibsen@gmail.com",
        "time": "Sun Feb 18 08:03:11 2024 +0100"
      },
      "message": "Upgrade to Camel 4.4.0 and JDK17\n"
    },
    {
      "commit": "44d3376f6a1cdd1730a613e34bf3dd9d8d1c54d8",
      "tree": "9ec3ec7316f01b7cc4c24e99dad80762140d55e4",
      "parents": [
        "0bf6f4b0c4cedb5b3068612edd6c2a32f6e97096"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "angusyoung@gmail.com",
        "time": "Fri Jan 05 08:41:06 2024 +0100"
      },
      "committer": {
        "name": "Otavio Rodolfo Piske",
        "email": "orpiske@users.noreply.github.com",
        "time": "Fri Jan 05 09:16:00 2024 +0100"
      },
      "message": "Removed unused variables in the ContextStartStopTest\n"
    },
    {
      "commit": "0bf6f4b0c4cedb5b3068612edd6c2a32f6e97096",
      "tree": "d468e926fa428f43c42d998c1f078a5ab7ad628d",
      "parents": [
        "affed667d5d6a57262d844598d79022e89d46927"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "angusyoung@gmail.com",
        "time": "Fri Jan 05 08:38:09 2024 +0100"
      },
      "committer": {
        "name": "Otavio Rodolfo Piske",
        "email": "orpiske@users.noreply.github.com",
        "time": "Fri Jan 05 09:16:00 2024 +0100"
      },
      "message": "Use microsecond units in the blocking seda producer tests\n"
    },
    {
      "commit": "affed667d5d6a57262d844598d79022e89d46927",
      "tree": "7560c39fb028528f8b8c3ca68bf68d3c626f08bf",
      "parents": [
        "6f7a3621b746e8f0dd7f4cd38473823f2989d3fa"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "orpiske@users.noreply.github.com",
        "time": "Wed Dec 20 17:42:04 2023 -0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 20 21:42:04 2023 +0100"
      },
      "message": "Update base versions to Camel 4.3.0 (#132)\n\n"
    },
    {
      "commit": "6f7a3621b746e8f0dd7f4cd38473823f2989d3fa",
      "tree": "4d072972c197a608fe31785125e77858b068fac1",
      "parents": [
        "f9801ef75a0e6123601b23403cb4bbe76e52213c"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "orpiske@users.noreply.github.com",
        "time": "Thu Oct 26 21:15:02 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 26 21:15:02 2023 +0200"
      },
      "message": "Added a simple test for the numeric checks from the ObjectHelper (#131)\n\n"
    },
    {
      "commit": "f9801ef75a0e6123601b23403cb4bbe76e52213c",
      "tree": "b9033bc74e56260d08b5f0c979459e21d66de5bd",
      "parents": [
        "23caae699a0955b5e4370e18d85f89436c3952e4"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "orpiske@users.noreply.github.com",
        "time": "Mon Oct 16 17:49:47 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 16 17:49:47 2023 +0200"
      },
      "message": "Added a simple test with fixed dynamic resolution (#129)\n\n"
    },
    {
      "commit": "23caae699a0955b5e4370e18d85f89436c3952e4",
      "tree": "65331c1b1615caaa5919fa4c71bcd2796fffd664",
      "parents": [
        "1b47fad12b90290d078f46a4c89a640df70031a0"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "orpiske@users.noreply.github.com",
        "time": "Mon Oct 16 17:49:35 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 16 17:49:35 2023 +0200"
      },
      "message": "Added a simple test for the EndpointHelper (#130)\n\n"
    },
    {
      "commit": "1b47fad12b90290d078f46a4c89a640df70031a0",
      "tree": "62be86a40f688508dd18ef17fcc0264202ca02f8",
      "parents": [
        "a4c4d6230207d00aef7a47829b35c34c13cb3011"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "orpiske@users.noreply.github.com",
        "time": "Mon Oct 16 13:53:18 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 16 13:53:18 2023 +0200"
      },
      "message": "(chores) Added tests for the Filter EIP (#128)\n\n"
    },
    {
      "commit": "a4c4d6230207d00aef7a47829b35c34c13cb3011",
      "tree": "593be06451e418d5cf6e7cca3f543d8f0ef04fc9",
      "parents": [
        "d2e10b073404bcea178b029fe2097c13c51b83c1"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "orpiske@users.noreply.github.com",
        "time": "Thu Sep 21 16:17:45 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 21 16:17:45 2023 +0200"
      },
      "message": "(chores) Fixed trying to enable statistics as it was removed on Camel 4.1 (#127)\n\n"
    },
    {
      "commit": "d2e10b073404bcea178b029fe2097c13c51b83c1",
      "tree": "3c507f8daf8d02cc99f64838be2328e1e32034e4",
      "parents": [
        "9b1205450c29a0d48bed6a95729e6bf50b1c1715"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "orpiske@users.noreply.github.com",
        "time": "Thu Sep 14 14:02:48 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 14 14:02:48 2023 +0200"
      },
      "message": "(chores) Added a test for the Aggregator EIP (#126)\n\n"
    },
    {
      "commit": "9b1205450c29a0d48bed6a95729e6bf50b1c1715",
      "tree": "1546db003e1a672e33273c37a3af9f1c79b28571",
      "parents": [
        "3c0fd82c4d25c35a662dff382f13e84fd1a22d1d"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "orpiske@users.noreply.github.com",
        "time": "Tue Sep 05 15:41:10 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 05 15:41:10 2023 +0200"
      },
      "message": "Version bump the default Camel version dependency to Camel 4.0.0 (#125)\n\n"
    },
    {
      "commit": "3c0fd82c4d25c35a662dff382f13e84fd1a22d1d",
      "tree": "632d3f4a556237dff19d853690ba5a7f868fc43d",
      "parents": [
        "d8848ab85abac9437d7b5064c87e36028f88fd29"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "orpiske@users.noreply.github.com",
        "time": "Fri Sep 01 12:01:58 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 01 12:01:58 2023 +0200"
      },
      "message": "Version bump the baseline dependency to Camel 4.0.0 (#124)\n\n"
    },
    {
      "commit": "d8848ab85abac9437d7b5064c87e36028f88fd29",
      "tree": "1d9cebbf54d7bc99c109b0d66b4d681fc72287dc",
      "parents": [
        "565b732790a5bd8fcd53c67adfb753b2386b1bb9"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "orpiske@users.noreply.github.com",
        "time": "Tue Aug 22 20:04:56 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 22 20:04:56 2023 +0200"
      },
      "message": "(chores) performance: add new performance test to verify the StringHelper (#123)\n\n"
    },
    {
      "commit": "565b732790a5bd8fcd53c67adfb753b2386b1bb9",
      "tree": "e7e92d68a2538673ff4abf9b0af86b6cd2187a44",
      "parents": [
        "28c0a5e58927e12eef06e92f27ccc9f125c269bd"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "angusyoung@gmail.com",
        "time": "Mon May 29 11:56:17 2023 +0200"
      },
      "committer": {
        "name": "Otavio Rodolfo Piske",
        "email": "orpiske@users.noreply.github.com",
        "time": "Wed Jun 14 20:44:10 2023 +0200"
      },
      "message": "(chores) performance: add new performance test to verify the content-based-router\n"
    },
    {
      "commit": "28c0a5e58927e12eef06e92f27ccc9f125c269bd",
      "tree": "262c09ea3926e071d980f62701ad8579ec5414a7",
      "parents": [
        "54a8ee1a4a9fbe1b5da7bc07202b1db993f66a1f"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "angusyoung@gmail.com",
        "time": "Tue May 23 17:53:53 2023 +0200"
      },
      "committer": {
        "name": "Otavio Rodolfo Piske",
        "email": "orpiske@users.noreply.github.com",
        "time": "Mon May 29 10:34:23 2023 +0200"
      },
      "message": "(chores) performance: add new performance test to verify the URISupport\n"
    },
    {
      "commit": "54a8ee1a4a9fbe1b5da7bc07202b1db993f66a1f",
      "tree": "0f8c8427ecbfe890a694558004c66f8a22b37493",
      "parents": [
        "1376682277e6b0d5bee9d12fcb535df0c876d3ec"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "angusyoung@gmail.com",
        "time": "Tue May 23 14:34:14 2023 +0200"
      },
      "committer": {
        "name": "Otavio Rodolfo Piske",
        "email": "orpiske@users.noreply.github.com",
        "time": "Tue May 23 16:20:16 2023 +0200"
      },
      "message": "(chores) cleanups: fixed missing copyright notices\n"
    },
    {
      "commit": "1376682277e6b0d5bee9d12fcb535df0c876d3ec",
      "tree": "bf149e6968c6025a8155a7e8d5db4995ca21ce01",
      "parents": [
        "c7f4f8e089b540a452570a655e2a922512d4dfc6"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "angusyoung@gmail.com",
        "time": "Mon May 22 14:43:44 2023 +0200"
      },
      "committer": {
        "name": "Otavio Rodolfo Piske",
        "email": "orpiske@users.noreply.github.com",
        "time": "Tue May 23 16:20:01 2023 +0200"
      },
      "message": "(chores) performance: add new performance test to verify the EndpointRegistry\n\n- EndpointRegistry: this tests specific operations of the Endpoint registry in single-thread scenarios\n- EndpointRegistryScalabilityTest: this tests specific operations of the Endpoint registry in multi-thread scenarios.\u003d\n"
    },
    {
      "commit": "c7f4f8e089b540a452570a655e2a922512d4dfc6",
      "tree": "d37404b906a609e096538ef2afee41306a5c62fe",
      "parents": [
        "f20396a659cbddcb1e2c07e9f8be0645ad6bdb04"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "angusyoung@gmail.com",
        "time": "Mon May 22 14:11:49 2023 +0200"
      },
      "committer": {
        "name": "Otavio Rodolfo Piske",
        "email": "orpiske@users.noreply.github.com",
        "time": "Tue May 23 16:20:01 2023 +0200"
      },
      "message": "(chores) performance: add new performance test to compute the time required to resolve an endpoint\n\nhis test computes the accumulated time of all the operations required to resolve the same route over and over.\n"
    },
    {
      "commit": "f20396a659cbddcb1e2c07e9f8be0645ad6bdb04",
      "tree": "7b991563d6a260617b7ea84c85d960e66ea9db65",
      "parents": [
        "673ac891681df5eddd631bf89f4d01b38c937d98"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "angusyoung@gmail.com",
        "time": "Mon May 22 14:11:29 2023 +0200"
      },
      "committer": {
        "name": "Otavio Rodolfo Piske",
        "email": "orpiske@users.noreply.github.com",
        "time": "Tue May 23 16:20:01 2023 +0200"
      },
      "message": "(chores) performance: add new performance test to compute the time required to create an endpoint\n\nThis test computes the accumulated time of all the operations required to create a given number of routes (500, in this test).\n"
    },
    {
      "commit": "673ac891681df5eddd631bf89f4d01b38c937d98",
      "tree": "a127f935ee3861e6fbf7145f566087df559bd0ff",
      "parents": [
        "d18280655cd742d876dc12bacf811a0e4b9a43d1"
      ],
      "author": {
        "name": "Otavio Rodolfo Piske",
        "email": "angusyoung@gmail.com",
        "time": "Thu May 11 17:51:47 2023 +0200"
      },
      "committer": {
        "name": "Otavio Rodolfo Piske",
        "email": "orpiske@users.noreply.github.com",
        "time": "Thu May 11 19:03:23 2023 +0200"
      },
      "message": "(chores) performance: add new test to evaluate the cost of creating certain core objects\n"
    }
  ],
  "next": "d18280655cd742d876dc12bacf811a0e4b9a43d1"
}
