)]}'
{
  "commit": "7b7e858c32ea1144d652b6568b4648a257c4b022",
  "tree": "f9b1431146ab28856d7a6a6317411fd83634a7e5",
  "parents": [
    "0c0e1b302bdcc596f7aa9573a8305f4268fafa1f"
  ],
  "author": {
    "name": "Adriano Machado",
    "email": "60320+ammachado@users.noreply.github.com",
    "time": "Wed Sep 02 01:41:31 2026 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Sep 02 07:41:31 2026 +0200"
  },
  "message": "Build: gulp 5 / Antora 3.1.15 / Yarn 4.18, DocSearch v5, and UI preview tooling (#1729)\n\n* Build: upgrade to gulp 5 and Antora 3.1.15\n\nFixes a silent build bug and modernises both gulp pipelines.\n\nThe UI bundle was being produced empty (22 bytes, 0 files). The build task\nin antora-ui-camel is an async function that returned a stream, and gulp\nsettles an async task on its promise; a stream is not a thenable, so\nbundle:pack ran against a dest that had not been written yet. The pipeline\nis now awaited explicitly. This only affected consumers of ui-bundle.zip,\nsince the production playbook reads the staged directory instead.\n\nTheme moved to gulp 5, vinyl-fs 4, undertaker 2, through2 5 and fs-extra 11:\n\n- vinyl-fs 4 is built on streamx, and merge-stream is a node-core\n  PassThrough that silently drops files from streamx sources (93 files in,\n  3 out). Replaced with ordered-read-streams, the streamx-native merge.\n- gulp 5 decodes contents as UTF-8 by default, so binary sources now pass\n  encoding: false. All 58 fonts and images verified byte-identical to the\n  gulp 4 output.\n- Removed the font glob in build.js. src/font has never existed; the fonts\n  are copied into dest/font by the postcssUrl handler. vinyl-fs 3 ignored\n  the missing directory, vinyl-fs 4 raises ENOENT.\n\nPostCSS plugins updated to the PostCSS 8 API. cssnano 8 returns a plugin\nobject rather than a callable, and the bare (css, result) plugins were\nPostCSS 7 style and were no longer being invoked. postcss-custom-properties\n15 keeps the :root block after substitution, so resolved custom properties\nare now dropped explicitly; the generated CSS is 94 bytes smaller than\nbefore with prefixes and media queries unchanged.\n\nRoot gulpfile moved to gulp 5. Replaced del with fs.rm, as del 7+ is ESM\nonly, and fixed generate-markdown signalling completion twice by both\ncalling done() and returning a promise.\n\nAntora 3.1.9 added a warning that fires when an extension\u0027s register\nfunction names its first parameter \u0027registry\u0027. Two of the @djencks\nextensions do, and runtime.log.failure_level is set to warn, so the\nadvisory warning failed the build. Those packages were last published in\n2022 and cannot be fixed upstream, so they are required via thin local\nwrappers in extensions/. Antora now completes with no output at all.\n\nAlso removes max-width: var(--static-max-width) from .blog. The variable\nwas never declared, so the declaration was invalid at computed-value time\nand max-width already resolved to none. This matches .static, which\nconstrains width only in the desktop media query.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n\n* Build: dedupe yarn.lock to fix failing check:dedupe\n\nThe `checks` CI job runs `yarn check:dependencies`, which failed because\n21 transitive packages could be deduped using the highest strategy. The\ndrift is unrelated to the gulp/Antora upgrade; the lockfile simply went\nstale as newer versions of caniuse-lite, nanoid, end-of-stream, fastq,\nfs-extra, postcss, streamx, resolve, readable-stream and svgo published.\n\nRan `yarn update:dedupe`. Both `check:cache` and `check:dedupe` now exit 0.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n\n* Fix PR review comments for gulp 5 upgrade\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e\n\n* Fix CI: disable setup-node auto package-manager-cache in detect-drafts job\n\nThe detect-drafts job never installs dependencies, so setup-node@v5\u0027s\nnew package-manager-cache default (true) fails the post-step with\n\"Path Validation Error\" since there\u0027s no cache folder to save,\nfailing the job despite the draft-detection logic succeeding.\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n\n* Fix CI: bump Node to 22 for cssnano 8\u0027s engines requirement\n\ncssnano 8.x (bumped from ~4.1 as part of the gulp 5 / PostCSS 8\nmigration) declares engines.node \u003e\u003d22.11, since postcss-merge-longhand\nuses Set.prototype.isSubsetOf, which Node only ships unflagged from\nv22. Under Node 20 this threw inside the CSS build stream; the error\nwas swallowed by an unhandled \u0027error\u0027 event on a source stream fed\ninto ordered-read-streams, so the task just hung until gulp-cli\u0027s\n\"did not complete\" exit message, with no visible stack trace in CI.\n\nVerified locally: gulp bundle, yarn build-all, and yarn checks\n(link checker aside, which hardcodes a Linux binary and can\u0027t run on\nmacOS) all pass under Node 22.20.0.\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n\n* Build: upgrade Yarn 4.1.0 to 4.18.0, harden supply-chain settings\n\nFixes the stale compat/typescript patch-hunk warning during install\n(patch hash no longer matched typescript 5.9.3 under the old Yarn).\nAlso tightens approvedGitRepositories to [] (no git-protocol deps in\nthis repo) and sets npmMinimalAgeGate to 4320 minutes (3 days) to\ndelay trusting newly-published npm package versions.\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n\n* Build: migrate Algolia to v5\n\n* Build: replace custom search with DocSearch v5\n\n* Build: restore DocSearch result curation and fix CSS custom property handling\n\nThe DocSearch v5 migration dropped the result curation the previous Algolia\nbundle performed, and routed @docsearch/css through postcss-custom-properties\nwith preserve: false, which flattened away its runtime cascade.\n\nSearch curation (src/js/08-docsearch.js):\n\n* restore the sub-project exclusion via transformItems\n* restore core-docs-over-components ranking; DocSearch groups by hierarchy.lvl0\n  into an insertion-ordered object, so the emitted order decides group order\n* cap each parent page at 2 hits. The original dedupe needed the query to spot a\n  direct parent match and transformItems never receives it, so cap by page\n  instead. Without this a query like \"timer\" fills the first group with anchors\n  from a single document\n* fetch 50 hits rather than the DocSearch default of 20. The index has no\n  attributeForDistinct and no attributesForFaceting, so both filters run after\n  Algolia has picked its window and the default starves the result list\n\nStylesheet delivery (gulp.d/tasks/build.js):\n\n* give @docsearch/css its own build stream that skips the custom property pass,\n  mirroring how the DocSearch UMD bundle already ships as vendor JS. This keeps\n  the mobile --docsearch-spacing overrides and the data-theme\u003ddark block live.\n  Preferred over preserve: true, which costs 3.8 KB gzip site-wide and would\n  reverse a convention predating this branch\n* fail loudly when the @docsearch/js UMD path cannot be resolved\n\nCustom property plugin (gulp.d/lib/drop-resolved-custom-properties.js):\n\n* only drop definitions postcss-custom-properties actually substituted. Matching\n  :root by selector string and recursing into at-rules emptied the @media block\n  @docsearch/css ships, and missed resolved :root, :host list forms\n\nTests: 16 cases covering both the plugin and the search transform. The transform\nsuite evaluates the shipped IIFE against stubbed globals and replays captured\nAlgolia responses, so it exercises the real file rather than a copy.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n\n* Fix: DocSearch modal footer height and header search alignment\n\nBoth found by driving the deployed preview at pr-1729--camel.netlify.app.\n\nDocSearch renders its modal footer as a bare \u003cfooter\u003e element, so the global\n`footer` rule in footer.css applied to it. DocSearch sets `height` but never\n`min-height`, so our `min-height: var(--footer-height)` won outright and\nstretched the modal footer to 23rem (391px) against an expected 52px on desktop\nand 48px on mobile. On mobile the modal is full screen, so the footer took 391px\nof 732px, over half the viewport. Scoped the rule to `body \u003e footer`, which also\nstops the `color` and `font-size` from leaking; verified the site footer is a\nclassless direct child of body on the Antora and Hugo page types.\n\nThe DocSearch button is a fixed 38px, and `.navbar-search` was a block container\nrelying on padding alone to position it. In the 73px desktop bar that left the\nbutton centred at 28px against 36.5px for the nav links. Made the container flex\nwith `align-items: center`, which brings it to 36.5px exactly. `text-align:\nright` no longer applies to a flex container, so it is replaced with\n`justify-content: flex-end`. Mobile is unchanged: the 55px container is exactly\n38px plus padding, so padding alone already centred it there.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n\n* Fix: restore DocSearch result titles and widen the fetch window\n\nSearch results rendered with an empty title, collapsed into a single grey\nbreadcrumb line. DocSearch derives the title attribute as\n`hierarchy.${item.type}`, and this index is not built by DocSearch\u0027s standard\nrecord extractor, so its records carry no `type`. The expression became the\nliteral \u0027hierarchy.undefined\u0027 and resolved to nothing.\n\ntransformItems now assigns the deepest populated hierarchy level as `type`, so\na hit on #_component_option_checkCrcs titles as \"checkCrcs\" with\n\"Camel Components \u003e Components \u003e Kafka\" as subtext. Verified on the deployed\npreview by re-initialising DocSearch with the patched config. This is a\nworkaround; the records should carry `type` and `anchor` - see CAMEL-24396.\n\nRaised hitsPerPage from 50 to 75. Measured against the live index at the\ncurrent cap, this lifts \"timer\" from 5 to 8 distinct pages and \"aggregate\" from\n9 to 13. 100 adds almost nothing beyond 75 (only \"rest dsl\", 8 to 9 pages) but\ndoubles the response from ~18 KB to ~36 KB gzipped.\n\nLeft MAX_HITS_PER_PAGE at 2. Raising it is counterproductive: DocSearch caps\neach lvl0 group at 5 results, so a larger per-page cap spends those slots on\nrepeats from one document and yields fewer distinct pages, not more (\"timer\"\ndrops from 5 pages to 4 at a cap of 3).\n\nNote that thin result sets for \"Kafka\" and \"file\" are not addressable here: 98\nof the top 100 hits for \"Kafka\" are anchors on kafka-component.html, so no\nclient-side window size recovers pages that Algolia never returns. That needs\nserver-side distinct.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n\n* Build: give the DocSearch widget a Camel theme\n\nRestyle the DocSearch v5 widget to match the site palette. Camel orange\ntakes the accents the vendor stylesheet renders in Algolia blue, group\nheadings pick up the ASF dark blue used for page headings, and the\nlaunch button matches the navbar buttons.\n\nThe overrides are declared on .DocSearch rather than :root, and with\nliteral values rather than var(--color-*), because the build resolves\nand then strips every :root custom property from site.css. Both are\nsilent failure modes, so they are covered by tests.\n\nAlso fixes the query text clipping in the search box. The vendor fixes\nthe box at 56px while sizing its padding and font in rem, and this\nsite\u0027s root font-size is 18px rather than the 16px DocSearch assumes,\nwhich left a 19px content box around a 25.2px line. Sizing the box in\nrem keeps it in step with the text.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n\n* Fix: drop table-layout: fixed from admonition tables\n\nThe declaration is inherited from the default Antora UI, which positions\ntd.icon absolutely and so loses nothing when the icon column collapses.\nThis UI keeps the icon in flow as a vertical label bar, which needs the\ncolumn to have width; under fixed layout it gets none, because td.content\nis width: 100%.\n\nIt has never taken effect in production: extensions/table.js wraps every\ntable in a div.table-wrapper, so the table is a grandchild of\n.admonitionblock and the child combinator never matches. Removing it is\na no-op for the built site (verified: the only change to the compiled\nstylesheet is this one declaration) and it fixes gulp preview, which\nrenders with plain Asciidoctor and no Antora extensions.\n\nIt also removes a landmine: any change to extensions/table.js would\notherwise collapse every admonition on the site.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n\n* Build: add UI preview example pages and match the site\u0027s Asciidoctor extensions\n\nThe preview rendered with plain Asciidoctor while the site build registers\npostprocessors through antora-playbook-production.yml, so the two disagreed.\ntable.js is the one that matters: it wraps every table in a div.table-wrapper,\nand without it the preview collapsed the icon column of every admonition.\nRegister table.js and inline-styles.js so preview markup matches the built site.\n\n@asciidoctor/tabs is registered by the playbook but deliberately left out: the\n1.0.0-beta.3 build targets the Opal runtime of asciidoctor.js 2 and throws on\nrequire under the @asciidoctor/core 3 this UI depends on. The site build is\nunaffected, since Antora supplies its own Asciidoctor.\n\nAdd three example pages covering the parts of the UI that needed a closer look:\nadmonitions, source highlighting, and tables. Content is original and\nCamel-flavoured rather than lorem ipsum, so it exercises realistic material.\n\nThe admonitions page documents one finding: the label bar is sized by the\ntable\u0027s auto layout, so it widens from 33px to 63px or 137px once the block\nsits inside a list item or a table cell. No page on the site nests an\nadmonition that way today.\n\nNo change to the shipped UI bundle; preview-src is not packaged.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n\n* Build: run UI tests from gulp, register asciinema and a local media check\n\nMove the unit tests into a gulp task. gulp.d/tasks/test.js drives node:test\nthrough its run() API rather than spawning `node --test`, so gulp settles on the\nreturned promise and a failure fails the task it is sequenced into. The task is\nnow part of the bundle series (clean, lint, test, build, pack), and the package\nscripts delegate to it, so `yarn build` no longer runs the tests separately.\n\nRegister @springio/antora-extensions/asciinema-extension. It supplies the\n[asciinema] block, injects asciinema-player\u0027s JS and CSS into the UI catalog,\nand adds the asciinema-styles, asciinema-load-scripts and\nasciinema-create-scripts partials. asciinema-player arrives as a transitive\ndependency, so it needs no entry of its own.\n\nReplace @bonitasoft/antora-detect-unused-media-extension with a local\nequivalent. That extension logs one warning per unused file and this playbook\nsets runtime.log.failure_level to warn, so a single stray image would have\nfailed the site build. extensions/detect-unused-media.js logs at info instead\nand writes build/unused-media.txt, keeping the report without the failure. It\nstill ignores .cast by default so asciinema recordings are not reported.\n\nAdd preview pages for tabs and asciinema. Neither renders in gulp preview:\n@asciidoctor/tabs 1.0.0-beta.3 targets the Opal runtime of asciidoctor.js 2 and\ncannot load under the @asciidoctor/core 3 the UI depends on, and the asciinema\nblock comes from an Antora extension the standalone preview does not run. Both\npages say so.\n\nAlso drops a committed vim swap file.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n\n* Fix: pagination links, and wire the asciinema partials into the layout\n\nThe prev/next links drew a dashed rule across the full half-width of the\nfooter. .doc a paints its underline with a repeating background-image gradient,\nand nav.pagination span is a column flex container, so the anchor stretched to\nthe container width and the gradient painted all of it. align-items keeps the\nanchor at its text width; the links now sit in bordered boxes.\n\nReference the asciinema partials from head-styles.hbs and footer-scripts.hbs,\nguarded on the page-asciinemacasts attribute the extension sets. The guard\nkeeps the player assets off pages with no recording, and keeps gulp preview\nfrom failing on partials that only exist during an Antora build.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n\n* Build: drop @bonitasoft/antora-detect-unused-media-extension\n\nSuperseded by extensions/detect-unused-media.js, which reports the same thing\nat info level so it cannot trip runtime.log.failure_level: warn.\n\nUpdates the two places that still named the package.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n\n* Build: render asciinema casts in the UI preview\n\nThe [asciinema] block comes from @springio/antora-extensions, an Antora\nextension, so it never ran under gulp preview: the blocks stayed literal\nand the page could not be checked without a full site build.\n\nReproduce the parts of it the preview needs, reusing the extension\u0027s own\npartials, helpers and player assets from node_modules rather than copying\nthem: an image$ include processor so preview pages use the same include\nsyntax a real component does, the asciinema block with the same md5-derived\nid and _asciinema/\u003cid\u003e.cast layout, and registration of the partials the UI\ntemplates already guard on.\n\nThe cast ids are collected into a plain object instead of being set on the\ndocument, mirroring what the extension does with file.asciidoc.attributes.\nAsciidoctor rolls back attributes assigned from the body once parsing ends,\nso a page- attribute set from the block processor is gone by the time\ngetAttributes() runs.\n\nAdd a recorded camel-jbang TUI session as the example cast.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n\n* Fix: re-record the TUI cast without split UTF-8 sequences\n\nThe recorder decoded each read() chunk on its own, so a multi-byte sequence\nsplit across a chunk boundary became U+FFFD. Sixty of them survived into the\ncommitted cast, and each one costs a column: a 2-wide emoji rendered as a\n1-wide replacement box, so every row containing one drifted left and the next\nredraw left stale characters behind. The visible symptom was a ghost row under\nthe tab bar.\n\nRe-recorded with an incremental decoder, which brings it to zero replacement\ncharacters and a clean header.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n\n* Build: drop through2 and raise the Node floor to 22.12\n\nthrough2 5 is ESM only, so require(\u0027through2\u0027) fails below Node 22.12\nwhile antora-ui-camel declared engines.node \u003e\u003d 18.0.0. Rather than pin\nthe dependency back, drop it: all five call sites only ever wanted an\nobject-mode Transform, which node:stream provides directly. gulp.d/lib/map.js\nis that Transform, including the zero-argument passthrough and the\n(transform, flush) form the preview task relies on.\n\ngulp.d/lib/gulp-prettier-eslint.js was still importing through2\u0027s obj()\nafter the gulp 5 upgrade moved the other four call sites to objectTransform,\nso `gulp format` had been calling an undefined map(). It uses the helper now.\n\nNode 18 and 20 are both past end of life, and .nvmrc already pinned 22,\nso engines and the README now say 22.12 rather than claiming support for\ntwo unmaintained runtimes.\n\ndetect-unused-media resolved image targets by string comparison, which\nreported referenced files as unused whenever the target came from an\nattribute. It resolves through contentCatalog.resolveResource now, reads\nattributes from antora.yml and the playbook as well as the page, and when\na target still cannot be resolved it suppresses every image that target\ncould name instead of dropping the reference. The report drives deletion,\nso it has to under-report rather than name a referenced file.\n\nAdds tests for both, and a root `yarn test` script to run them.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n\n* Fix: remove orphaned cancel.svg asset\n\nheader-content.hbs dropped the search-cancel \u003cimg\u003e when DocSearch\nreplaced the hand-rolled search box, but cancel.svg and its\nrev-manifest/asset.js entries were left behind.\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n\n* Fix: pin the DocSearch hitsPerPage test to its actual value\n\nThe test only asserted \u003e\u003d 50, so a regression back down to 50 (or\nany value below the actual HITS_PER_PAGE of 75) would not fail it.\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n\n* Docs: attribute preview-src content adapted from bonita-documentation-theme\n\n404.adoc, ui-model.yml, and multirepo-ssg.svg were adapted from\nbonitasoft/bonita-documentation-theme (MPL-2.0), the same license\nantora-ui-camel already ships under.\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n\n---------\n\nCo-authored-by: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "dd2c103df48a0c2fe684ee941cf2eef5628338d0",
      "old_mode": 33188,
      "old_path": ".github/workflows/main-push-ui-bundle.yml",
      "new_id": "d9fd6d109a264dc041b69e2851a8a6426f1ab967",
      "new_mode": 33188,
      "new_path": ".github/workflows/main-push-ui-bundle.yml"
    },
    {
      "type": "modify",
      "old_id": "f3316addc212eac5b4e9aa2797a26de62a54914a",
      "old_mode": 33188,
      "old_path": ".github/workflows/offline-bundle.yml",
      "new_id": "80d5d51b1e16efab586566cd0e9aa943e848b85f",
      "new_mode": 33188,
      "new_path": ".github/workflows/offline-bundle.yml"
    },
    {
      "type": "modify",
      "old_id": "35ee6af218c9c8b9ab733fbc1e39baa502d22fdc",
      "old_mode": 33188,
      "old_path": ".github/workflows/pr.yaml",
      "new_id": "766fce0904e54353e37508131f6d49657a8791c0",
      "new_mode": 33188,
      "new_path": ".github/workflows/pr.yaml"
    },
    {
      "type": "modify",
      "old_id": "07b09c5dd05ac9e4c2c69957c9c135e441ea2b3e",
      "old_mode": 33188,
      "old_path": ".github/workflows/preview.yaml",
      "new_id": "a44bb780149146143757ce87034ccd6386746d0b",
      "new_mode": 33188,
      "new_path": ".github/workflows/preview.yaml"
    },
    {
      "type": "modify",
      "old_id": "e8fdeac98cf862820ea35297659042024147849f",
      "old_mode": 33188,
      "old_path": ".gitignore",
      "new_id": "b08e079841107a675b306944cd2f54671fe5efd7",
      "new_mode": 33188,
      "new_path": ".gitignore"
    },
    {
      "type": "modify",
      "old_id": "8351c19397f4fcd5238d10034fa7fa384f14d580",
      "old_mode": 33188,
      "old_path": ".nvmrc",
      "new_id": "2bd5a0a98a36cc08ada88b804d3be047e6aa5b8a",
      "new_mode": 33188,
      "new_path": ".nvmrc"
    },
    {
      "type": "delete",
      "old_id": "738adce5914a0e193f2e1255e4dcf7042256a1c1",
      "old_mode": 33261,
      "old_path": ".yarn/releases/yarn-4.1.0.cjs",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "57ec26f4e2d6731486039d80c41af9f8c8757cfc",
      "new_mode": 33261,
      "new_path": ".yarn/releases/yarn-4.18.0.cjs"
    },
    {
      "type": "modify",
      "old_id": "4bdffbee11c0315f56160c404620f3acda30a79a",
      "old_mode": 33188,
      "old_path": ".yarnrc.yml",
      "new_id": "49519f867e0de8e92b67e165cde7d13d1f9f2d07",
      "new_mode": 33188,
      "new_path": ".yarnrc.yml"
    },
    {
      "type": "modify",
      "old_id": "864be423b184c35ec92b42d8be2dbe42a9cdcff5",
      "old_mode": 33188,
      "old_path": "README.md",
      "new_id": "449b3b35678f28441c2a21c43fe6eee3ea5d1a59",
      "new_mode": 33188,
      "new_path": "README.md"
    },
    {
      "type": "modify",
      "old_id": "9f54a932073585fc5f4f837654ac9cccc329441b",
      "old_mode": 33188,
      "old_path": "antora-playbook-snippets/antora-playbook.yml",
      "new_id": "9eb9d3f4fb36d7a6057a34fbed249d592e6046e8",
      "new_mode": 33188,
      "new_path": "antora-playbook-snippets/antora-playbook.yml"
    },
    {
      "type": "modify",
      "old_id": "43013d008469ff4ff04824a2d337b425eb6f1537",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/README.adoc",
      "new_id": "626f8e8cb8cb47fd00fe074040b6d0d3de5755bb",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/README.adoc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2b05cd994a0c775733aac6552718023009dfec02",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/gulp.d/lib/drop-resolved-custom-properties.js"
    },
    {
      "type": "modify",
      "old_id": "552df28ed9d845e99765a58a2fd7984a85f4b728",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/gulp.d/lib/gulp-prettier-eslint.js",
      "new_id": "9acf6d4ab7b1949df1321bc6b66b0a06c21777f5",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/gulp.d/lib/gulp-prettier-eslint.js"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "87bd31fdc9fb549cfb3ecdfb8c1fa0e5f1c1cabd",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/gulp.d/lib/map.js"
    },
    {
      "type": "delete",
      "old_id": "87fcb9d0d16821bacf7fdc886567e2190d2c9d96",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/gulp.d/tasks/.build.js.swp",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "1737c1418706d155625b90e7d0c512753996ba25",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/gulp.d/tasks/build-preview-pages.js",
      "new_id": "3d9ca588f2709eae50e3406fb05e3c49972919af",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/gulp.d/tasks/build-preview-pages.js"
    },
    {
      "type": "modify",
      "old_id": "c0d0a3f544c9ab0b1864d1bd04e12eed74849935",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/gulp.d/tasks/build.js",
      "new_id": "35002a0d8fe41a515a6d35c69a96985a12d9c9a1",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/gulp.d/tasks/build.js"
    },
    {
      "type": "modify",
      "old_id": "5baecb37a5363eab9bff32071ecef332ef700b9f",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/gulp.d/tasks/pack.js",
      "new_id": "efffe9390a512863932b284c42479cc6eddb318c",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/gulp.d/tasks/pack.js"
    },
    {
      "type": "modify",
      "old_id": "3f71eeca92f1d88fa7c18f0b2e09302b54ed912b",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/gulp.d/tasks/remove.js",
      "new_id": "69e73374f3754e936fbcc40ad712044e0baa2664",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/gulp.d/tasks/remove.js"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7ff432a0ffda546c8aa56d225dfd746b5a62e310",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/gulp.d/tasks/test.js"
    },
    {
      "type": "modify",
      "old_id": "44bc95410dd1e9d9fe899e9e575d882890150a4e",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/gulpfile.js",
      "new_id": "3047682be6cc7a4c291d5e5c5570b66e3334928b",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/gulpfile.js"
    },
    {
      "type": "modify",
      "old_id": "655bfbf27fa57af1156f18ed01fe76a482dcb5f0",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/package.json",
      "new_id": "475c39c614f1ed01a3e908231557ff2c068b9312",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/package.json"
    },
    {
      "type": "modify",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/preview-src/404.adoc",
      "new_id": "5dca32c326011945490abf7c4bff5d0f12ae387c",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/preview-src/404.adoc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6a126262eece66676915876bfa432591721c6ba5",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/preview-src/admonitions.adoc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6518c7cd13c04e8d5e3ea148bdb54e3dd6965c14",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/preview-src/asciinema.adoc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "542662a7eadd2ad0bd7129e6253de750f3769c4b",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/preview-src/camel-tui-demo.cast"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "305e45852c1660c469e115eb49716c0ac8ab7051",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/preview-src/code.adoc"
    },
    {
      "type": "modify",
      "old_id": "1b06ec06555c45b78ec7dca848a54a7d964f14d5",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/preview-src/index.adoc",
      "new_id": "a26910a0c2c67c5cbd9f35da468116b617235cc7",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/preview-src/index.adoc"
    },
    {
      "type": "modify",
      "old_id": "e3b4429315d089eda6eb4c206e01c47b48a93756",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/preview-src/multirepo-ssg.svg",
      "new_id": "bfd10acf96e988a475d97f26b42435ae97f27688",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/preview-src/multirepo-ssg.svg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7f22d48cde2b098a881234715658b9f54e2bdb98",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/preview-src/tables.adoc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f07489b249c81f15561e5abadffe8a20f96e4274",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/preview-src/tabs.adoc"
    },
    {
      "type": "modify",
      "old_id": "f874b8a943e978bc79468daf9ab194c407f797a3",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/preview-src/ui-model.yml",
      "new_id": "e84b779dd3d934e58632e793ed1ca509bd8e5cd9",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/preview-src/ui-model.yml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9c4378654cd57dfec2024c78335e86d4d42702a8",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/public/_/css/site-74543f5b13.css"
    },
    {
      "type": "delete",
      "old_id": "1829f97c31034c5184a8949309c00522e11ff56e",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/public/_/css/site-f06a797174.css",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "af3b05717f30d8fbf58f12345812eabce75f4d4f",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/public/_/css/vendor/docsearch-7619faa207.css"
    },
    {
      "type": "modify",
      "old_id": "9ea17570c09797e4a1afa57534221ab0f8c58ef7",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/public/_/data/rev-manifest.json",
      "new_id": "97424f23291ed3762eeae9658af8ac4ab2cf1442",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/public/_/data/rev-manifest.json"
    },
    {
      "type": "modify",
      "old_id": "e73fd8efdd0e6c506beabf84b980bd52f6087ceb",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/public/_/helpers/asset.js",
      "new_id": "8ecd65dbf251221a15314b0acdf85f8227c941c9",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/public/_/helpers/asset.js"
    },
    {
      "type": "delete",
      "old_id": "1bf6bdcadddd95d9496a636e76cfbf017a74226c",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/public/_/img/cancel-1ed239489b.svg",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "rename",
      "old_id": "6263252c2c0eb0c085a2491ccb4756115a73b715",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/public/_/js/site-8f57dbea6b.js",
      "new_id": "6d2e8a742d8c7b7051b5f7e1245b36d5e3e05e13",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/public/_/js/site-72c5696123.js",
      "score": 88
    },
    {
      "type": "delete",
      "old_id": "f6febd85f49ccdef7e7f0e67eff7a6f601f9d33d",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/public/_/js/vendor/algoliasearch-6711ef4b37.js",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "83d3b6ec6c1f72b7c279e1359b93d544bd709157",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/public/_/js/vendor/docsearch-f8ce9408ec.js"
    },
    {
      "type": "modify",
      "old_id": "91db7c57e9ed637e742035f435483f10546eea5e",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/public/_/partials/footer-scripts.hbs",
      "new_id": "3b0ab6266e32c362fc5bc4b08659fb39fdaef744",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/public/_/partials/footer-scripts.hbs"
    },
    {
      "type": "modify",
      "old_id": "f8a414a3b23404f3657d6a2dbd3bbf2c422faad5",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/public/_/partials/head-styles.hbs",
      "new_id": "c8c25b1e59ddb5d828c4eb8329b6da2095224e85",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/public/_/partials/head-styles.hbs"
    },
    {
      "type": "modify",
      "old_id": "7d80f01d8bb67188399f09e905809d1193c44b56",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/public/_/partials/header-content.hbs",
      "new_id": "c7607ed53f164e9c12a863307cd1dcdec3378d4a",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/public/_/partials/header-content.hbs"
    },
    {
      "type": "modify",
      "old_id": "9ea17570c09797e4a1afa57534221ab0f8c58ef7",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/public/_/rev-manifest",
      "new_id": "97424f23291ed3762eeae9658af8ac4ab2cf1442",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/public/_/rev-manifest"
    },
    {
      "type": "modify",
      "old_id": "ea6decf133cba8e0e8952f863f537fa0083f4209",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/src/css/blog.css",
      "new_id": "91f40cc48c7cd762c4651bfae071ac890e8c40e4",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/src/css/blog.css"
    },
    {
      "type": "modify",
      "old_id": "f7e1d9239f4742a4a3d0e71711f14eac18e53552",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/src/css/doc.css",
      "new_id": "60f406e0043ec534eea196fceb1a27a81abf18ff",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/src/css/doc.css"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a509a45d17507cd71a6550e7ab9f10197801f6cc",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/src/css/docsearch.css"
    },
    {
      "type": "modify",
      "old_id": "d5c22be58d4259daa189726e623260b32e2bf5a3",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/src/css/footer.css",
      "new_id": "93682bbcbcb6443bc4b2a81b59ba8cbc5a2bba6f",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/src/css/footer.css"
    },
    {
      "type": "modify",
      "old_id": "9eccac2bd0afa54d8a4727ed1a46394a53bb1f96",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/src/css/header.css",
      "new_id": "fadee33f0b6da60d45a69fad47ad86e53e3a3aba",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/src/css/header.css"
    },
    {
      "type": "modify",
      "old_id": "db9a9b50d4d4c177f141b3776a53bb1966272110",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/src/css/pagination.css",
      "new_id": "f9391ad238d5fe6ebae439f1fd864beb4b953c8e",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/src/css/pagination.css"
    },
    {
      "type": "modify",
      "old_id": "a827e82c055cf2af26f857bc54ed755270316887",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/src/css/site.css",
      "new_id": "e08051bf395d0a42cc6808e1afee75c626ca2bc0",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/src/css/site.css"
    },
    {
      "type": "modify",
      "old_id": "d8765b3a3d7e61f7643ef3d5879c73ce0f89e4da",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/src/css/vars.css",
      "new_id": "6a9c0460834fc11969554e7a759e5379ed021a18",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/src/css/vars.css"
    },
    {
      "type": "delete",
      "old_id": "8e04ea0b288b964e5ffc8c3c8ce28609d04f1ad7",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/src/img/cancel.svg",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "45515b644cbe0a15563b69fbc704e2cf6629f692",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/src/js/08-docsearch.js"
    },
    {
      "type": "delete",
      "old_id": "5951d366b5c98e8d2fa6da5c777e4226286f6a00",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/src/js/vendor/algoliasearch.bundle.js",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "8d80f0162ead2022b05b9aee4d01bc946253b4dc",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/src/partials/footer-scripts.hbs",
      "new_id": "bca81c55d3d4d8935ef9f6e3c7fee6d0ca713ff3",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/src/partials/footer-scripts.hbs"
    },
    {
      "type": "modify",
      "old_id": "c1df1aeb27b1d6d621a668c879aa293f3022dd0a",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/src/partials/head-styles.hbs",
      "new_id": "0dbb7ceacd47d84d2559371216a110462e59334a",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/src/partials/head-styles.hbs"
    },
    {
      "type": "modify",
      "old_id": "4ae105d550cc09fb17ec33242d9421df0201cebc",
      "old_mode": 33188,
      "old_path": "antora-ui-camel/src/partials/header-content.hbs",
      "new_id": "20718b9716d065e862d9d1a2aafb2672e148dcd3",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/src/partials/header-content.hbs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "16cadcf8d72934a2fa322107147d1288e0dfc69b",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/test/docsearch-config-test.js"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "02a56c08069cae720db3191d85a54e846706a771",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/test/docsearch-theme-test.js"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "793528cfd75bc41e6e2007a2e99eadcae25fb99c",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/test/drop-resolved-custom-properties-test.js"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "44ab6d3b43fa215e8aab4daed4ab72097c4e0042",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/test/fixtures/algolia-kamelet.json"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "62e5aa1e8297071bdabf5806a1b5c8f17935a822",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/test/fixtures/algolia-routing.json"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "508c5876cd54fc0ae0f0a984c5f5078b25cb5799",
      "new_mode": 33188,
      "new_path": "antora-ui-camel/test/fixtures/algolia-timer.json"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2139246ac7e684502bcdd75b8f2e0e7e5a79a6e3",
      "new_mode": 33188,
      "new_path": "extensions/asciidoctor-antora-indexer.js"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "034cbec068caae9fd898017bb465be49a0a512c4",
      "new_mode": 33188,
      "new_path": "extensions/asciidoctor-jsonpath.js"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6c781285e03b1f31d185dd359811a9d0f0e6feb6",
      "new_mode": 33188,
      "new_path": "extensions/detect-unused-media.js"
    },
    {
      "type": "modify",
      "old_id": "cc5964e8fe54c5bf31f90cd22b501853ef93ca06",
      "old_mode": 33188,
      "old_path": "gulp/tasks/generate-markdown.js",
      "new_id": "c4c935341b474b629005142b0c8013901edfb6c1",
      "new_mode": 33188,
      "new_path": "gulp/tasks/generate-markdown.js"
    },
    {
      "type": "modify",
      "old_id": "b3871c9910adbcc11fedacc18e46bcbd301adaf5",
      "old_mode": 33188,
      "old_path": "gulpfile.js",
      "new_id": "ab94f0f5e46728111ead315e2a799bd643d823d2",
      "new_mode": 33188,
      "new_path": "gulpfile.js"
    },
    {
      "type": "modify",
      "old_id": "05b643bf459c6a430bb14874679d2f300f441f6c",
      "old_mode": 33188,
      "old_path": "layouts/partials/footer.html",
      "new_id": "953a85f43db3e6937a708d06301e90e8290fbbbd",
      "new_mode": 33188,
      "new_path": "layouts/partials/footer.html"
    },
    {
      "type": "modify",
      "old_id": "ab8ab306e0a1ade1f07f0e19cfa9997a018a326e",
      "old_mode": 33188,
      "old_path": "layouts/partials/header.html",
      "new_id": "bd7799c7da3fe1f6bf38dccb3514ea03fc515d91",
      "new_mode": 33188,
      "new_path": "layouts/partials/header.html"
    },
    {
      "type": "modify",
      "old_id": "02b76f0b38ed2f87490d716c32f6c6223e4d2b30",
      "old_mode": 33188,
      "old_path": "package.json",
      "new_id": "de097a353fe364d699aa8d36c96412ee64a98442",
      "new_mode": 33188,
      "new_path": "package.json"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ecdd5bcf0abd9bf96ca05017b4e68cc1087249a6",
      "new_mode": 33188,
      "new_path": "test/detect-unused-media-test.js"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "97813cac8a1f4da24c26800cd36f0bdbed311989",
      "new_mode": 33188,
      "new_path": "test/record-cast-test.js"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "acfe1649c93e8127404a21bf4e2d79e65d5611f8",
      "new_mode": 33188,
      "new_path": "tools/asciinema/camel-tui-demo.tape"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fd50cf1f2c2808c8bec9550e3f50f93d1ea14c83",
      "new_mode": 33188,
      "new_path": "tools/asciinema/record_cast.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "aee7156930241e8d1ad95159d35974c2266c3f8b",
      "new_mode": 33188,
      "new_path": "tools/asciinema/timer-log.yaml"
    },
    {
      "type": "modify",
      "old_id": "0a6086f2913d689f3fc2667c6b9050e606a7fd9c",
      "old_mode": 33188,
      "old_path": "yarn.lock",
      "new_id": "89d65150d03a622eadcbbf7c5946a8ef14e83d00",
      "new_mode": 33188,
      "new_path": "yarn.lock"
    }
  ]
}
