The identity of the dependency sets that decide what licenses/inventory.zon has to cover. This file is a snapshot, not a source: src/licenses_drift_test.zig recomputes each section from build.zig.zon and admin/package-lock.json and fails when it disagrees with what is recorded here. Prose before the first section header is ignored by the guard. Updating a section without reviewing licenses/inventory.zon defeats the point of the guard. When a section changes, work out what the change means for the shipped bytes first, then record it. The runtime closure is every lockfile package not marked `dev`. That is a superset of what the bundler emits — the guard cannot run rollup — so packages tree-shaken out of admin/dist appear here too; the inventory explains each of them instead of carrying its licence. The bundled-packages section is the one the Zig guard cannot compute: it is the set of npm packages that actually contribute a module to admin/dist, read off the sourcemap `sources` lists of a `vite build --sourcemap`. Only the frontend gate can produce it, so gates.yml recomputes it there and fails on a difference. It is what closes the hole the runtime-closure section leaves open — a package already in the closure that application code starts importing changes no lockfile and no version, but it does change this list. The base image section is here for the same reason: the container image is a released artifact, and the one third-party file it carries that the binary does not — the Mozilla CA bundle — comes out of that base. A new tag or a rebuilt digest both change the line, which forces somebody to re-read what the new base ships before the inventory can claim it. The generators section is the other direction: packages the lockfile marks `dev` whose own output nevertheless ends up in admin/dist, and so in the binary. Its membership is a judgement, not a query — it was settled by reading a `vite build --sourcemap` of admin/, both the sourcemap `sources` lists and the regions of each chunk no sourcemap segment maps back to a source file. The versions here are read from the lockfile like any other section. [build.zig.zon dependencies] mbedtls url=https://github.com/Mbed-TLS/mbedtls/archive/refs/tags/mbedtls-3.6.7.tar.gz hash=N-V-__8AALrvlQKVtYlvv9dpBnbrJfdwR_F0wAgwsvZhAF1Y sqlite url=https://sqlite.org/2026/sqlite-amalgamation-3530400.zip hash=N-V-__8AAGVtrgCcOcmjrOJnagmnRyMrcKaOo09KbU-vu8w8 [npm runtime closure] @internationalized/date 3.12.3 Apache-2.0 @internationalized/number 3.6.7 Apache-2.0 @internationalized/string 3.2.10 Apache-2.0 @react-types/shared 3.36.1 Apache-2.0 @stylexjs/stylex 0.19.0 MIT @swc/helpers 0.5.23 Apache-2.0 @tanstack/history 1.162.0 MIT @tanstack/query-core 5.101.4 MIT @tanstack/react-query 5.101.4 MIT @tanstack/react-router 1.170.18 MIT @tanstack/react-store 0.9.3 MIT @tanstack/router-core 1.171.15 MIT @tanstack/store 0.9.3 MIT @types/d3-array 3.0.3 MIT @types/d3-color 3.1.0 MIT @types/d3-delaunay 6.0.1 MIT @types/d3-format 3.0.1 MIT @types/d3-geo 3.1.0 MIT @types/d3-interpolate 3.0.1 MIT @types/d3-path 3.1.1 MIT @types/d3-scale 4.0.2 MIT @types/d3-shape 3.1.7 MIT @types/d3-time 3.0.0 MIT @types/d3-time-format 2.1.0 MIT @types/geojson 7946.0.16 MIT @types/react 19.2.17 MIT @types/react-dom 19.2.3 MIT @visx/axis 4.0.0 MIT @visx/bounds 4.0.0 MIT @visx/curve 4.0.0 MIT @visx/grid 4.0.0 MIT @visx/group 4.0.0 MIT @visx/point 4.0.0 MIT @visx/scale 4.0.0 MIT @visx/shape 4.0.0 MIT @visx/text 4.0.0 MIT @visx/tooltip 4.0.0 MIT @visx/vendor 4.0.0 MIT and ISC aria-hidden 1.2.6 MIT balanced-match 0.4.2 MIT classnames 2.5.1 MIT client-only 0.0.1 MIT clsx 2.1.1 MIT cookie-es 3.1.1 MIT css-mediaquery 0.1.2 BSD csstype 3.2.3 MIT d3-array 3.2.1 ISC d3-color 3.1.0 ISC d3-delaunay 6.0.2 ISC d3-format 3.1.0 ISC d3-geo 3.1.0 ISC d3-interpolate 3.0.1 ISC d3-path 3.1.0 ISC d3-scale 4.0.2 ISC d3-shape 3.2.0 ISC d3-time 3.1.0 ISC d3-time-format 4.1.0 ISC delaunator 5.1.0 ISC internmap 2.0.3 ISC invariant 2.2.4 MIT isbot 5.2.1 Unlicense js-tokens 4.0.0 MIT loose-envify 1.4.0 MIT math-expression-evaluator 1.4.0 MIT react 19.2.8 MIT react-aria 3.51.0 Apache-2.0 react-aria-components 1.20.0 Apache-2.0 react-dom 19.2.8 MIT react-stately 3.49.0 Apache-2.0 react-use-measure 2.1.7 MIT reduce-css-calc 1.3.0 MIT reduce-function-call 1.0.3 MIT balanced-match 1.0.2 MIT robust-predicates 3.0.3 Unlicense scheduler 0.27.0 MIT seroval 1.5.6 MIT seroval-plugins 1.5.6 MIT styleq 0.2.1 MIT tslib 2.8.1 0BSD use-sync-external-store 1.6.0 MIT [npm build-time generators whose output ships] rolldown 1.1.5 MIT vite 8.1.5 MIT [container base image] alpine:3.22@sha256:14358309a308569c32bdc37e2e0e9694be33a9d99e68afb0f5ff33cc1f695dce [npm packages bundled into admin/dist] @internationalized/string @stylexjs/stylex @tanstack/history @tanstack/query-core @tanstack/react-query @tanstack/react-router @tanstack/react-store @tanstack/router-core @tanstack/store @visx/axis @visx/bounds @visx/grid @visx/group @visx/point @visx/scale @visx/shape @visx/text @visx/tooltip balanced-match classnames clsx d3-array d3-color d3-format d3-interpolate d3-path d3-scale d3-shape d3-time internmap math-expression-evaluator react react-aria react-aria-components react-dom react-stately reduce-css-calc reduce-function-call scheduler use-sync-external-store