Repository navigation
Catalog: Storybook 10.5.10 for per-theme test projects, plus the Tailwind->StyleX converter - #1173
schickling-assistant wants to merge 4 commits into
Conversation
Both are catalog-only: nothing declares them yet, so no generated file or lockfile entry moves. Consumers opt in per package, which is the point for the converter — it must never reach a shared component package. @stylexjs/eslint-plugin rides at 0.19.0 rather than its own latest so it stays in lockstep with the compiler pins; its dependency closure pins @stylexjs/shared 0.19.0, so a split would be silently incoherent. The converter is pinned to the published 0.1.0-alpha.1 rather than a git rev of the maintainer's fork. The fork is where the useful work is, but its build output is gitignored and it declares no `prepare` script, so a git-rev install resolves to a package with no lib/ at all and every import dies with ERR_MODULE_NOT_FOUND. That is true even with lifecycle scripts fully enabled, so it is not a policy question. alpha.1 carries gitHead a150f9e, the exact fork revision that was wanted, and ships the built output, so we get the intended code through an integrity-pinned npm version instead of an unbuildable git reference. The three @babel/* pins are load-bearing, not incidental. Babel resolves plugin names relative to the calling package, so the consumer must declare the syntax plugins even though the converter lists one of them as its own dependency; without them every invocation fails. Babel 7 because @babel/plugin-syntax-typescript@7 peers @babel/core@^7 and Babel 8 trips strictPeerDependencies.
The gate needs light and dark covered as separate Vitest projects. That
is `storybookTest({ initialGlobals })`, added in 10.5.0 (#35226) and
absent from 10.4.6 — verified by diffing the shipped plugin option types,
not by reading release notes: 10.4.6's UserOptions has no such field,
10.5.10's documents it as "define one Vitest project per theme". Without
the bump the gate cannot express the requirement at all.
10.5.10 is current stable across the whole cohort. Checked upstream
MIGRATION.md for 10.4->10.5: one entry, the deprecation of ExternalDocs
and ExternalDocsContainer, which this repo does not use. No breaking
change to absorb.
@storybook/addon-vitest peers `storybook@^10.5.10`, so the cohort has to
move together rather than one package at a time. addon-a11y is here
because parameters.a11y.test is inert unless the addon is registered, and
it defaults to warn-only.
genie/internal.ts had the framework version restated as a literal in
packageExtensions, which would have left a second @storybook/react-vite
resolving after this bump. It now derives from the catalog so it cannot
drift again. The unplugin duplicate exception was re-checked rather than
assumed: @storybook/csf-plugin@10.5.10 still declares unplugin ^2.3.5, so
the exception is still required. Its reason now names the constraint
instead of a consumer package, because the consumer is moving.
The pnpm-lock regeneration invalidated eight pnpm-deps FODs; those hashes
are the measured values, refreshed in one batch.
Proof: storybook:build green for one DOM package
(effect-schema-form-aria, 39 stories) and one TUI package (tui-stories,
11 stories), both resolving 10.5.10, since the two share a factory but
not a code path. check:quick green.
Storybook Previews
Report historyPR 1173 · 2026-09-01 17:27 UTC
|
CI Measurementspartial - advisory gate - readiness
nix / closures / packages
Unchanged / 0-impact measurements (17)These rows had compatible baseline data, but their semantic impact rounded to 0.00x because the movement was below the configured budget, below the noise floor, or inside the robust noise band. devenv / devenv cli
devenv / devenv shell
devenv / genie
devenv / quality gates
devenv / workspace setup
nix / closures / packages
Diagnostic / ungated measurements (7)source / effect-utils
devenv / devenv shell
All measurements
Source-of-truth JSON{
"schemaVersion": 1,
"title": "CI Measurements",
"status": "partial",
"gate": "advisory",
"readiness": "partial (17/26 enabled observations gateable)",
"commit": {
"shortSha": "6003e7d",
"sha": "6003e7dd5de14ec4b6223337fcf77e01a41c4740"
},
"run": {
"id": "33537447458",
"attempt": "1",
"url": "https://github.com/overengineeringstudio/effect-utils/actions/runs/33537447458"
},
"baseline": null,
"protocol": "devenv-perf-warm-median-v2",
"chart": {
"meaning": "semantic-impact",
"zeroImpactMeaning": "no actionable PR impact after budgets, noise floor, and robust evidence checks",
"svg": "https://raw.githubusercontent.com/overengineeringstudio/effect-utils/ci-measurement-assets/ci-measurements/pr-1173/6003e7dd5de14ec4b6223337fcf77e01a41c4740/run-33537447458-attempt-1/ci-measurements.svg",
"lightPng": "https://raw.githubusercontent.com/overengineeringstudio/effect-utils/ci-measurement-assets/ci-measurements/pr-1173/6003e7dd5de14ec4b6223337fcf77e01a41c4740/run-33537447458-attempt-1/ci-measurements.png",
"darkPng": "https://raw.githubusercontent.com/overengineeringstudio/effect-utils/ci-measurement-assets/ci-measurements/pr-1173/6003e7dd5de14ec4b6223337fcf77e01a41c4740/run-33537447458-attempt-1/ci-measurements-dark.png"
},
"measurements": [
{
"id": "source.lines",
"label": "Genie runtime lines",
"group": "source / effect-utils",
"path": [
"source",
"effect-utils",
"packages",
"genie",
"source / genie"
],
"groupPath": [
"source",
"effect-utils"
],
"status": "pass",
"direction": "regressed",
"gateable": false,
"gateReason": "disabled",
"confidence": "diagnostic",
"comparisonMode": "budget",
"unit": "lines",
"baseline": 27825,
"current": 28031,
"delta": 206,
"ratio": 1.007403414195867,
"semanticImpactScore": null,
"semanticImpactKind": "diagnostic",
"baselineSources": 26,
"currentSamples": 97,
"pairedSamples": 0,
"evidenceDeltaLower": -2576.5,
"evidenceDeltaUpper": 2988.5,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"scope": "genie_runtime"
}
},
{
"id": "source.files",
"label": "Genie runtime files",
"group": "source / effect-utils",
"path": [
"source",
"effect-utils",
"packages",
"genie",
"source / genie"
],
"groupPath": [
"source",
"effect-utils"
],
"status": "pass",
"direction": "regressed",
"gateable": false,
"gateReason": "disabled",
"confidence": "diagnostic",
"comparisonMode": "budget",
"unit": "count",
"baseline": 95,
"current": 97,
"delta": 2,
"ratio": 1.0210526315789474,
"semanticImpactScore": null,
"semanticImpactKind": "diagnostic",
"baselineSources": 26,
"currentSamples": 97,
"pairedSamples": 0,
"evidenceDeltaLower": -7.5,
"evidenceDeltaUpper": 11.5,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"scope": "genie_runtime"
}
},
{
"id": "task_check_quick_forced",
"label": "Forced check:quick",
"group": "devenv / quality gates",
"path": [
"devenv",
"quality gates",
"check:quick"
],
"groupPath": [
"devenv",
"quality gates"
],
"status": "pass",
"direction": "unchanged",
"gateable": true,
"gateReason": "eligible",
"confidence": "within_budget",
"comparisonMode": "paired",
"unit": "seconds",
"baseline": 24.332,
"current": 23.525,
"delta": -0.8070000000000022,
"ratio": 0.9668337991122801,
"semanticImpactScore": 0,
"semanticImpactKind": "neutral",
"baselineSources": 3,
"currentSamples": 3,
"pairedSamples": 3,
"evidenceDeltaLower": -1.106,
"evidenceDeltaUpper": -0.558,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"workload": "forced-task-cache",
"taskCacheMode": "refresh",
"probe": "task_check_quick_forced",
"probeLabel": "Forced check:quick",
"status": 0,
"sampleCount": 6,
"warmupCount": 0,
"measuredSampleCount": 3,
"pairedSampleCount": 3,
"pairedOrderProtocol": "balanced-seeded-alternating-v1",
"pairedOrderSeed": "33537447458-1-ec136e17a8dbe483041a9fada52494c9fe58c317",
"measurementProtocol": "devenv-perf-warm-median-v2",
"aggregation": "median",
"phase": "warm",
"devenvRev": "2cf62a010000b70f15c78a72761fad7c9e6fb47a",
"otelServiceName": "devenv-perf-ci"
}
},
{
"id": "task_check_quick_warm",
"label": "Warm cached check:quick",
"group": "devenv / quality gates",
"path": [
"devenv",
"quality gates",
"check:quick"
],
"groupPath": [
"devenv",
"quality gates"
],
"status": "pass",
"direction": "unchanged",
"gateable": true,
"gateReason": "eligible",
"confidence": "within_budget",
"comparisonMode": "paired",
"unit": "seconds",
"baseline": 10.041,
"current": 10.215,
"delta": 0.1739999999999995,
"ratio": 1.0173289512996713,
"semanticImpactScore": 0,
"semanticImpactKind": "neutral",
"baselineSources": 5,
"currentSamples": 5,
"pairedSamples": 5,
"evidenceDeltaLower": -0.071,
"evidenceDeltaUpper": 0.319,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"workload": "cached-no-op",
"taskCacheMode": "warm",
"probe": "task_check_quick_warm",
"probeLabel": "Warm cached check:quick",
"status": 0,
"sampleCount": 11,
"warmupCount": 1,
"measuredSampleCount": 5,
"pairedSampleCount": 5,
"pairedOrderProtocol": "balanced-seeded-alternating-v1",
"pairedOrderSeed": "33537447458-1-ec136e17a8dbe483041a9fada52494c9fe58c317",
"measurementProtocol": "devenv-perf-warm-median-v2",
"aggregation": "median",
"phase": "warm",
"devenvRev": "2cf62a010000b70f15c78a72761fad7c9e6fb47a",
"otelServiceName": "devenv-perf-ci"
}
},
{
"id": "genie_check_task",
"label": "Genie check task",
"group": "devenv / genie",
"path": [
"devenv",
"genie"
],
"groupPath": [
"devenv",
"genie"
],
"status": "pass",
"direction": "unchanged",
"gateable": true,
"gateReason": "eligible",
"confidence": "within_budget",
"comparisonMode": "paired",
"unit": "seconds",
"baseline": 7.085,
"current": 6.93,
"delta": -0.15500000000000025,
"ratio": 0.978122794636556,
"semanticImpactScore": 0,
"semanticImpactKind": "neutral",
"baselineSources": 5,
"currentSamples": 5,
"pairedSamples": 5,
"evidenceDeltaLower": -0.114,
"evidenceDeltaUpper": -0.036,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"probe": "genie_check_task",
"probeLabel": "Genie check task",
"status": 0,
"sampleCount": 11,
"warmupCount": 1,
"measuredSampleCount": 5,
"pairedSampleCount": 5,
"pairedOrderProtocol": "balanced-seeded-alternating-v1",
"pairedOrderSeed": "33537447458-1-ec136e17a8dbe483041a9fada52494c9fe58c317",
"measurementProtocol": "devenv-perf-warm-median-v2",
"aggregation": "median",
"phase": "warm",
"devenvRev": "2cf62a010000b70f15c78a72761fad7c9e6fb47a",
"otelServiceName": "devenv-perf-ci"
}
},
{
"id": "task_genie_run",
"label": "Genie run task",
"group": "devenv / genie",
"path": [
"devenv",
"genie"
],
"groupPath": [
"devenv",
"genie"
],
"status": "pass",
"direction": "unchanged",
"gateable": true,
"gateReason": "eligible",
"confidence": "noise_floor",
"comparisonMode": "paired",
"unit": "seconds",
"baseline": 3.65,
"current": 3.583,
"delta": -0.06699999999999973,
"ratio": 0.9816438356164384,
"semanticImpactScore": 0,
"semanticImpactKind": "neutral",
"baselineSources": 5,
"currentSamples": 5,
"pairedSamples": 5,
"evidenceDeltaLower": -0.279,
"evidenceDeltaUpper": -0.031,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"probe": "task_genie_run",
"probeLabel": "Genie run task",
"status": 0,
"sampleCount": 11,
"warmupCount": 1,
"measuredSampleCount": 5,
"pairedSampleCount": 5,
"pairedOrderProtocol": "balanced-seeded-alternating-v1",
"pairedOrderSeed": "33537447458-1-ec136e17a8dbe483041a9fada52494c9fe58c317",
"measurementProtocol": "devenv-perf-warm-median-v2",
"aggregation": "median",
"phase": "warm",
"devenvRev": "2cf62a010000b70f15c78a72761fad7c9e6fb47a",
"otelServiceName": "devenv-perf-ci"
}
},
{
"id": "shell_eval_warm",
"label": "Warm shell eval",
"group": "devenv / devenv shell",
"path": [
"devenv",
"devenv shell"
],
"groupPath": [
"devenv",
"devenv shell"
],
"status": "pass",
"direction": "unchanged",
"gateable": true,
"gateReason": "eligible",
"confidence": "noise_floor",
"comparisonMode": "paired",
"unit": "seconds",
"baseline": 11.371,
"current": 11.311,
"delta": -0.0600000000000005,
"ratio": 0.9947234192243426,
"semanticImpactScore": 0,
"semanticImpactKind": "neutral",
"baselineSources": 5,
"currentSamples": 5,
"pairedSamples": 5,
"evidenceDeltaLower": -0.194,
"evidenceDeltaUpper": -0.049,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"probe": "shell_eval_warm",
"probeLabel": "Warm shell eval",
"status": 0,
"sampleCount": 11,
"warmupCount": 1,
"measuredSampleCount": 5,
"pairedSampleCount": 5,
"pairedOrderProtocol": "balanced-seeded-alternating-v1",
"pairedOrderSeed": "33537447458-1-ec136e17a8dbe483041a9fada52494c9fe58c317",
"measurementProtocol": "devenv-perf-warm-median-v2",
"aggregation": "median",
"phase": "warm",
"devenvRev": "2cf62a010000b70f15c78a72761fad7c9e6fb47a",
"otelServiceName": "devenv-perf-ci"
}
},
{
"id": "tasks_list",
"label": "devenv tasks list",
"group": "devenv / devenv cli",
"path": [
"devenv",
"devenv cli"
],
"groupPath": [
"devenv",
"devenv cli"
],
"status": "pass",
"direction": "unchanged",
"gateable": true,
"gateReason": "eligible",
"confidence": "noise_floor",
"comparisonMode": "paired",
"unit": "seconds",
"baseline": 0.119,
"current": 0.123,
"delta": 0.0040000000000000036,
"ratio": 1.0336134453781514,
"semanticImpactScore": 0,
"semanticImpactKind": "neutral",
"baselineSources": 9,
"currentSamples": 9,
"pairedSamples": 9,
"evidenceDeltaLower": -0.015,
"evidenceDeltaUpper": 0.009,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"probe": "tasks_list",
"probeLabel": "devenv tasks list",
"status": 0,
"sampleCount": 19,
"warmupCount": 1,
"measuredSampleCount": 9,
"pairedSampleCount": 9,
"pairedOrderProtocol": "balanced-seeded-alternating-v1",
"pairedOrderSeed": "33537447458-1-ec136e17a8dbe483041a9fada52494c9fe58c317",
"measurementProtocol": "devenv-perf-warm-median-v2",
"aggregation": "median",
"phase": "warm",
"devenvRev": "2cf62a010000b70f15c78a72761fad7c9e6fb47a",
"otelServiceName": "devenv-perf-ci"
}
},
{
"id": "task_pnpm_install",
"label": "pnpm install task",
"group": "devenv / workspace setup",
"path": [
"devenv",
"workspace setup"
],
"groupPath": [
"devenv",
"workspace setup"
],
"status": "pass",
"direction": "unchanged",
"gateable": true,
"gateReason": "eligible",
"confidence": "noise_floor",
"comparisonMode": "paired",
"unit": "seconds",
"baseline": 2.438,
"current": 2.434,
"delta": -0.0040000000000000036,
"ratio": 0.9983593109105825,
"semanticImpactScore": 0,
"semanticImpactKind": "neutral",
"baselineSources": 5,
"currentSamples": 5,
"pairedSamples": 5,
"evidenceDeltaLower": -0.047,
"evidenceDeltaUpper": 0.061,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"probe": "task_pnpm_install",
"probeLabel": "pnpm install task",
"status": 0,
"sampleCount": 11,
"warmupCount": 1,
"measuredSampleCount": 5,
"pairedSampleCount": 5,
"pairedOrderProtocol": "balanced-seeded-alternating-v1",
"pairedOrderSeed": "33537447458-1-ec136e17a8dbe483041a9fada52494c9fe58c317",
"measurementProtocol": "devenv-perf-warm-median-v2",
"aggregation": "median",
"phase": "warm",
"devenvRev": "2cf62a010000b70f15c78a72761fad7c9e6fb47a",
"otelServiceName": "devenv-perf-ci"
}
},
{
"id": "processes_help",
"label": "devenv processes --help",
"group": "devenv / devenv cli",
"path": [
"devenv",
"devenv cli"
],
"groupPath": [
"devenv",
"devenv cli"
],
"status": "pass",
"direction": "unchanged",
"gateable": true,
"gateReason": "eligible",
"confidence": "noise_floor",
"comparisonMode": "paired",
"unit": "seconds",
"baseline": 0.055,
"current": 0.058,
"delta": 0.0030000000000000027,
"ratio": 1.0545454545454547,
"semanticImpactScore": 0,
"semanticImpactKind": "neutral",
"baselineSources": 9,
"currentSamples": 9,
"pairedSamples": 9,
"evidenceDeltaLower": -0.011,
"evidenceDeltaUpper": 0.022,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"probe": "processes_help",
"probeLabel": "devenv processes --help",
"status": 0,
"sampleCount": 19,
"warmupCount": 1,
"measuredSampleCount": 9,
"pairedSampleCount": 9,
"pairedOrderProtocol": "balanced-seeded-alternating-v1",
"pairedOrderSeed": "33537447458-1-ec136e17a8dbe483041a9fada52494c9fe58c317",
"measurementProtocol": "devenv-perf-warm-median-v2",
"aggregation": "median",
"phase": "warm",
"devenvRev": "2cf62a010000b70f15c78a72761fad7c9e6fb47a",
"otelServiceName": "devenv-perf-ci"
}
},
{
"id": "source.files",
"label": "Genie CI workflow helpers files",
"group": "source / effect-utils",
"path": [
"source",
"effect-utils",
"genie",
"ci-workflow",
"source / ci"
],
"groupPath": [
"source",
"effect-utils"
],
"status": "pass",
"direction": "unchanged",
"gateable": false,
"gateReason": "disabled",
"confidence": "diagnostic",
"comparisonMode": "budget",
"unit": "count",
"baseline": 11,
"current": 11,
"delta": 0,
"ratio": 1,
"semanticImpactScore": null,
"semanticImpactKind": "diagnostic",
"baselineSources": 26,
"currentSamples": 11,
"pairedSamples": 0,
"evidenceDeltaLower": -1.1,
"evidenceDeltaUpper": 1.1,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"scope": "genie_ci_workflow"
}
},
{
"id": "source.lines",
"label": "Genie CI workflow helpers lines",
"group": "source / effect-utils",
"path": [
"source",
"effect-utils",
"genie",
"ci-workflow",
"source / ci"
],
"groupPath": [
"source",
"effect-utils"
],
"status": "pass",
"direction": "unchanged",
"gateable": false,
"gateReason": "disabled",
"confidence": "diagnostic",
"comparisonMode": "budget",
"unit": "lines",
"baseline": 8863,
"current": 8863,
"delta": 0,
"ratio": 1,
"semanticImpactScore": null,
"semanticImpactKind": "diagnostic",
"baselineSources": 26,
"currentSamples": 11,
"pairedSamples": 0,
"evidenceDeltaLower": -886.3000000000001,
"evidenceDeltaUpper": 886.3000000000001,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"scope": "genie_ci_workflow"
}
},
{
"id": "nix.closure.bucket.nar_size",
"label": "Nix sources closure size",
"group": "nix / closures / packages",
"path": [
"nix",
"closures",
"packages",
"genie",
"buckets",
"nix-sources",
"nix closure buckets"
],
"groupPath": [
"nix",
"closures",
"packages"
],
"status": "unknown",
"direction": "unknown",
"gateable": false,
"gateReason": "missing_baseline",
"confidence": "unknown",
"comparisonMode": "budget",
"unit": "bytes",
"baseline": 0,
"current": 0,
"delta": 0,
"ratio": null,
"semanticImpactScore": null,
"semanticImpactKind": "unknown",
"baselineSources": 26,
"currentSamples": 1,
"pairedSamples": 0,
"evidenceDeltaLower": -10485760,
"evidenceDeltaUpper": 10485760,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"bucket": "nix-sources"
}
},
{
"id": "nix.closure.bucket.nar_size",
"label": "Nix sources closure size",
"group": "nix / closures / packages",
"path": [
"nix",
"closures",
"packages",
"megarepo",
"buckets",
"nix-sources",
"nix closure buckets"
],
"groupPath": [
"nix",
"closures",
"packages"
],
"status": "unknown",
"direction": "unknown",
"gateable": false,
"gateReason": "missing_baseline",
"confidence": "unknown",
"comparisonMode": "budget",
"unit": "bytes",
"baseline": 0,
"current": 0,
"delta": 0,
"ratio": null,
"semanticImpactScore": null,
"semanticImpactKind": "unknown",
"baselineSources": 26,
"currentSamples": 1,
"pairedSamples": 0,
"evidenceDeltaLower": -10485760,
"evidenceDeltaUpper": 10485760,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"bucket": "nix-sources"
}
},
{
"id": "nix.closure.bucket.nar_size",
"label": "Nix sources closure size",
"group": "nix / closures / packages",
"path": [
"nix",
"closures",
"packages",
"oxlint-npm",
"buckets",
"nix-sources",
"nix closure buckets"
],
"groupPath": [
"nix",
"closures",
"packages"
],
"status": "unknown",
"direction": "unknown",
"gateable": false,
"gateReason": "missing_baseline",
"confidence": "unknown",
"comparisonMode": "budget",
"unit": "bytes",
"baseline": 0,
"current": 0,
"delta": 0,
"ratio": null,
"semanticImpactScore": null,
"semanticImpactKind": "unknown",
"baselineSources": 26,
"currentSamples": 1,
"pairedSamples": 0,
"evidenceDeltaLower": -10485760,
"evidenceDeltaUpper": 10485760,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"bucket": "nix-sources"
}
},
{
"id": "source.files",
"label": "Nix workspace tools files",
"group": "source / effect-utils",
"path": [
"source",
"effect-utils",
"nix",
"workspace-tools",
"source / nix"
],
"groupPath": [
"source",
"effect-utils"
],
"status": "pass",
"direction": "unchanged",
"gateable": false,
"gateReason": "disabled",
"confidence": "diagnostic",
"comparisonMode": "budget",
"unit": "count",
"baseline": 16,
"current": 16,
"delta": 0,
"ratio": 1,
"semanticImpactScore": null,
"semanticImpactKind": "diagnostic",
"baselineSources": 26,
"currentSamples": 16,
"pairedSamples": 0,
"evidenceDeltaLower": -1.6,
"evidenceDeltaUpper": 1.6,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"scope": "nix_workspace_tools"
}
},
{
"id": "source.lines",
"label": "Nix workspace tools lines",
"group": "source / effect-utils",
"path": [
"source",
"effect-utils",
"nix",
"workspace-tools",
"source / nix"
],
"groupPath": [
"source",
"effect-utils"
],
"status": "pass",
"direction": "unchanged",
"gateable": false,
"gateReason": "disabled",
"confidence": "diagnostic",
"comparisonMode": "budget",
"unit": "lines",
"baseline": 4585,
"current": 4585,
"delta": 0,
"ratio": 1,
"semanticImpactScore": null,
"semanticImpactKind": "diagnostic",
"baselineSources": 26,
"currentSamples": 16,
"pairedSamples": 0,
"evidenceDeltaLower": -458.5,
"evidenceDeltaUpper": 458.5,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"scope": "nix_workspace_tools"
}
},
{
"id": "nix.closure.bucket.nar_size",
"label": "Node / pnpm closure size",
"group": "nix / closures / packages",
"path": [
"nix",
"closures",
"packages",
"genie",
"buckets",
"node",
"nix closure buckets"
],
"groupPath": [
"nix",
"closures",
"packages"
],
"status": "unknown",
"direction": "unknown",
"gateable": false,
"gateReason": "missing_baseline",
"confidence": "unknown",
"comparisonMode": "budget",
"unit": "bytes",
"baseline": 0,
"current": 0,
"delta": 0,
"ratio": null,
"semanticImpactScore": null,
"semanticImpactKind": "unknown",
"baselineSources": 26,
"currentSamples": 1,
"pairedSamples": 0,
"evidenceDeltaLower": -10485760,
"evidenceDeltaUpper": 10485760,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"bucket": "node"
}
},
{
"id": "nix.closure.bucket.nar_size",
"label": "Node / pnpm closure size",
"group": "nix / closures / packages",
"path": [
"nix",
"closures",
"packages",
"megarepo",
"buckets",
"node",
"nix closure buckets"
],
"groupPath": [
"nix",
"closures",
"packages"
],
"status": "unknown",
"direction": "unknown",
"gateable": false,
"gateReason": "missing_baseline",
"confidence": "unknown",
"comparisonMode": "budget",
"unit": "bytes",
"baseline": 0,
"current": 0,
"delta": 0,
"ratio": null,
"semanticImpactScore": null,
"semanticImpactKind": "unknown",
"baselineSources": 26,
"currentSamples": 1,
"pairedSamples": 0,
"evidenceDeltaLower": -10485760,
"evidenceDeltaUpper": 10485760,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"bucket": "node"
}
},
{
"id": "nix.closure.bucket.nar_size",
"label": "Node / pnpm closure size",
"group": "nix / closures / packages",
"path": [
"nix",
"closures",
"packages",
"oxlint-npm",
"buckets",
"node",
"nix closure buckets"
],
"groupPath": [
"nix",
"closures",
"packages"
],
"status": "unknown",
"direction": "unknown",
"gateable": false,
"gateReason": "missing_baseline",
"confidence": "unknown",
"comparisonMode": "budget",
"unit": "bytes",
"baseline": 0,
"current": 0,
"delta": 0,
"ratio": null,
"semanticImpactScore": null,
"semanticImpactKind": "unknown",
"baselineSources": 26,
"currentSamples": 1,
"pairedSamples": 0,
"evidenceDeltaLower": -10485760,
"evidenceDeltaUpper": 10485760,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"bucket": "node"
}
},
{
"id": "nix.closure.bucket.nar_size",
"label": "Rust closure size",
"group": "nix / closures / packages",
"path": [
"nix",
"closures",
"packages",
"genie",
"buckets",
"rust",
"nix closure buckets"
],
"groupPath": [
"nix",
"closures",
"packages"
],
"status": "unknown",
"direction": "unknown",
"gateable": false,
"gateReason": "missing_baseline",
"confidence": "unknown",
"comparisonMode": "budget",
"unit": "bytes",
"baseline": 0,
"current": 0,
"delta": 0,
"ratio": null,
"semanticImpactScore": null,
"semanticImpactKind": "unknown",
"baselineSources": 26,
"currentSamples": 1,
"pairedSamples": 0,
"evidenceDeltaLower": -10485760,
"evidenceDeltaUpper": 10485760,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"bucket": "rust"
}
},
{
"id": "nix.closure.bucket.nar_size",
"label": "Rust closure size",
"group": "nix / closures / packages",
"path": [
"nix",
"closures",
"packages",
"megarepo",
"buckets",
"rust",
"nix closure buckets"
],
"groupPath": [
"nix",
"closures",
"packages"
],
"status": "unknown",
"direction": "unknown",
"gateable": false,
"gateReason": "missing_baseline",
"confidence": "unknown",
"comparisonMode": "budget",
"unit": "bytes",
"baseline": 0,
"current": 0,
"delta": 0,
"ratio": null,
"semanticImpactScore": null,
"semanticImpactKind": "unknown",
"baselineSources": 26,
"currentSamples": 1,
"pairedSamples": 0,
"evidenceDeltaLower": -10485760,
"evidenceDeltaUpper": 10485760,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"bucket": "rust"
}
},
{
"id": "nix.closure.bucket.nar_size",
"label": "Rust closure size",
"group": "nix / closures / packages",
"path": [
"nix",
"closures",
"packages",
"oxlint-npm",
"buckets",
"rust",
"nix closure buckets"
],
"groupPath": [
"nix",
"closures",
"packages"
],
"status": "unknown",
"direction": "unknown",
"gateable": false,
"gateReason": "missing_baseline",
"confidence": "unknown",
"comparisonMode": "budget",
"unit": "bytes",
"baseline": 0,
"current": 0,
"delta": 0,
"ratio": null,
"semanticImpactScore": null,
"semanticImpactKind": "unknown",
"baselineSources": 26,
"currentSamples": 1,
"pairedSamples": 0,
"evidenceDeltaLower": -10485760,
"evidenceDeltaUpper": 10485760,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"bucket": "rust"
}
},
{
"id": "nix.closure.path_count",
"label": "Total closure path count",
"group": "nix / closures / packages",
"path": [
"nix",
"closures",
"packages",
"genie",
"total",
"path-count",
"nix closure"
],
"groupPath": [
"nix",
"closures",
"packages"
],
"status": "pass",
"direction": "unchanged",
"gateable": true,
"gateReason": "eligible",
"confidence": "noise_floor",
"comparisonMode": "budget",
"unit": "count",
"baseline": 83,
"current": 83,
"delta": 0,
"ratio": 1,
"semanticImpactScore": 0,
"semanticImpactKind": "neutral",
"baselineSources": 26,
"currentSamples": 1,
"pairedSamples": 0,
"evidenceDeltaLower": -10,
"evidenceDeltaUpper": 10,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"bucket": "total"
}
},
{
"id": "nix.closure.path_count",
"label": "Total closure path count",
"group": "nix / closures / packages",
"path": [
"nix",
"closures",
"packages",
"megarepo",
"total",
"path-count",
"nix closure"
],
"groupPath": [
"nix",
"closures",
"packages"
],
"status": "pass",
"direction": "unchanged",
"gateable": true,
"gateReason": "eligible",
"confidence": "noise_floor",
"comparisonMode": "budget",
"unit": "count",
"baseline": 5,
"current": 5,
"delta": 0,
"ratio": 1,
"semanticImpactScore": 0,
"semanticImpactKind": "neutral",
"baselineSources": 26,
"currentSamples": 1,
"pairedSamples": 0,
"evidenceDeltaLower": -10,
"evidenceDeltaUpper": 10,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"bucket": "total"
}
},
{
"id": "nix.closure.path_count",
"label": "Total closure path count",
"group": "nix / closures / packages",
"path": [
"nix",
"closures",
"packages",
"oxlint-npm",
"total",
"path-count",
"nix closure"
],
"groupPath": [
"nix",
"closures",
"packages"
],
"status": "pass",
"direction": "unchanged",
"gateable": true,
"gateReason": "eligible",
"confidence": "noise_floor",
"comparisonMode": "budget",
"unit": "count",
"baseline": 8,
"current": 8,
"delta": 0,
"ratio": 1,
"semanticImpactScore": 0,
"semanticImpactKind": "neutral",
"baselineSources": 26,
"currentSamples": 1,
"pairedSamples": 0,
"evidenceDeltaLower": -10,
"evidenceDeltaUpper": 10,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"bucket": "total"
}
},
{
"id": "nix.closure.nar_size",
"label": "Total closure size",
"group": "nix / closures / packages",
"path": [
"nix",
"closures",
"packages",
"genie",
"total",
"closure-size",
"nix closure"
],
"groupPath": [
"nix",
"closures",
"packages"
],
"status": "pass",
"direction": "unchanged",
"gateable": true,
"gateReason": "eligible",
"confidence": "noise_floor",
"comparisonMode": "budget",
"unit": "bytes",
"baseline": 611519432,
"current": 611519432,
"delta": 0,
"ratio": 1,
"semanticImpactScore": 0,
"semanticImpactKind": "neutral",
"baselineSources": 26,
"currentSamples": 1,
"pairedSamples": 0,
"evidenceDeltaLower": -12230388.64,
"evidenceDeltaUpper": 12230388.64,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"bucket": "total"
}
},
{
"id": "nix.closure.nar_size",
"label": "Total closure size",
"group": "nix / closures / packages",
"path": [
"nix",
"closures",
"packages",
"megarepo",
"total",
"closure-size",
"nix closure"
],
"groupPath": [
"nix",
"closures",
"packages"
],
"status": "pass",
"direction": "unchanged",
"gateable": true,
"gateReason": "eligible",
"confidence": "noise_floor",
"comparisonMode": "budget",
"unit": "bytes",
"baseline": 173277520,
"current": 173277520,
"delta": 0,
"ratio": 1,
"semanticImpactScore": 0,
"semanticImpactKind": "neutral",
"baselineSources": 26,
"currentSamples": 1,
"pairedSamples": 0,
"evidenceDeltaLower": -10485760,
"evidenceDeltaUpper": 10485760,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"bucket": "total"
}
},
{
"id": "nix.closure.nar_size",
"label": "Total closure size",
"group": "nix / closures / packages",
"path": [
"nix",
"closures",
"packages",
"oxlint-npm",
"total",
"closure-size",
"nix closure"
],
"groupPath": [
"nix",
"closures",
"packages"
],
"status": "pass",
"direction": "unchanged",
"gateable": true,
"gateReason": "eligible",
"confidence": "noise_floor",
"comparisonMode": "budget",
"unit": "bytes",
"baseline": 159040112,
"current": 159040112,
"delta": 0,
"ratio": 1,
"semanticImpactScore": 0,
"semanticImpactKind": "neutral",
"baselineSources": 26,
"currentSamples": 1,
"pairedSamples": 0,
"evidenceDeltaLower": -10485760,
"evidenceDeltaUpper": 10485760,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"bucket": "total"
}
},
{
"id": "nix.closure.serialized_nar_size",
"label": "Total serialized NAR size",
"group": "nix / closures / packages",
"path": [
"nix",
"closures",
"packages",
"genie",
"total",
"serialized-nar-size",
"nix closure diagnostics"
],
"groupPath": [
"nix",
"closures",
"packages"
],
"status": "pass",
"direction": "unchanged",
"gateable": true,
"gateReason": "eligible",
"confidence": "noise_floor",
"comparisonMode": "diagnostic",
"unit": "bytes",
"baseline": 611519432,
"current": 611519432,
"delta": 0,
"ratio": 1,
"semanticImpactScore": 0,
"semanticImpactKind": "neutral",
"baselineSources": 26,
"currentSamples": 1,
"pairedSamples": 0,
"evidenceDeltaLower": -61151943.2,
"evidenceDeltaUpper": 61151943.2,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"bucket": "total",
"sizeKind": "nar"
}
},
{
"id": "nix.closure.serialized_nar_size",
"label": "Total serialized NAR size",
"group": "nix / closures / packages",
"path": [
"nix",
"closures",
"packages",
"megarepo",
"total",
"serialized-nar-size",
"nix closure diagnostics"
],
"groupPath": [
"nix",
"closures",
"packages"
],
"status": "pass",
"direction": "unchanged",
"gateable": true,
"gateReason": "eligible",
"confidence": "noise_floor",
"comparisonMode": "diagnostic",
"unit": "bytes",
"baseline": 173277520,
"current": 173277520,
"delta": 0,
"ratio": 1,
"semanticImpactScore": 0,
"semanticImpactKind": "neutral",
"baselineSources": 26,
"currentSamples": 1,
"pairedSamples": 0,
"evidenceDeltaLower": -17327752,
"evidenceDeltaUpper": 17327752,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"bucket": "total",
"sizeKind": "nar"
}
},
{
"id": "nix.closure.serialized_nar_size",
"label": "Total serialized NAR size",
"group": "nix / closures / packages",
"path": [
"nix",
"closures",
"packages",
"oxlint-npm",
"total",
"serialized-nar-size",
"nix closure diagnostics"
],
"groupPath": [
"nix",
"closures",
"packages"
],
"status": "pass",
"direction": "unchanged",
"gateable": true,
"gateReason": "eligible",
"confidence": "noise_floor",
"comparisonMode": "diagnostic",
"unit": "bytes",
"baseline": 159040112,
"current": 159040112,
"delta": 0,
"ratio": 1,
"semanticImpactScore": 0,
"semanticImpactKind": "neutral",
"baselineSources": 26,
"currentSamples": 1,
"pairedSamples": 0,
"evidenceDeltaLower": -15904011.200000001,
"evidenceDeltaUpper": 15904011.200000001,
"pairedEvidenceQuantile": 0.25,
"dimensions": {
"bucket": "total",
"sizeKind": "nar"
}
},
{
"id": "shell_eval_traced",
"label": "Shell eval with OTEL trace",
"group": "devenv / devenv shell",
"path": [
"devenv",
"devenv shell"
],
"groupPath": [
"devenv",
"devenv shell"
],
"status": "missing_baseline",
"direction": "unknown",
"gateable": false,
"gateReason": "missing_baseline",
"confidence": "missing_baseline",
"comparisonMode": "historical",
"unit": "seconds",
"baseline": null,
"current": 79.005,
"delta": null,
"ratio": null,
"semanticImpactScore": null,
"semanticImpactKind": null,
"baselineSources": 0,
"currentSamples": 1,
"pairedSamples": null,
"evidenceDeltaLower": null,
"evidenceDeltaUpper": null,
"pairedEvidenceQuantile": null,
"dimensions": {
"probe": "shell_eval_traced",
"probeLabel": "Shell eval with OTEL trace",
"status": 0,
"sampleCount": 2,
"warmupCount": 0,
"measuredSampleCount": 1,
"pairedSampleCount": 1,
"pairedOrderProtocol": "balanced-seeded-alternating-v1",
"pairedOrderSeed": "33537447458-1-ec136e17a8dbe483041a9fada52494c9fe58c317",
"measurementProtocol": "devenv-perf-warm-median-v2",
"aggregation": "median",
"phase": "warm",
"devenvRev": "2cf62a010000b70f15c78a72761fad7c9e6fb47a",
"otelServiceName": "devenv-perf-ci"
}
}
]
} |
Resolves eight conflicts, all in Nix derivation files, all taking main's side. Seven are fixed-output hash collisions on mkSharedHash: both branches changed dependency topology, so both recorded a different pnpm closure hash and NEITHER is correct for the merged tree. Taking a side here is not the resolution -- it just picks a starting point. The hashes are refreshed as a batch in the next commit, which is Evergreen's layer ordering: authority and semantics first, derived artifacts after, never one hash per cycle. The eighth, nix/oxc-config-plugin.nix, is structural rather than a hash collision and main's side is strictly better: main derives pnpmDepsHash from a shared depsBuilds entry where this branch still carried a literal sha256, so taking main removes a hand-maintained hash outright.
The merge of main brought a third dependency state, so neither side's hash was correct: measured, genie's merged closure hashes to vtu2jnhz... where this branch carried BdWDmLT9... and main carried H5i7Vtl.... Refreshed as one batch through evergreen rather than one hash per cycle. Two independent corroborations rather than one: - genie's written value exactly matches what a plain 'nix build' printed as 'got:' before the refresh ran, so the tool measured rather than merely wrote. - All seven build to real store paths. That is a POSITIVE assertion, not an absent error: evergreen skipped its own post-write verification on npm-release and tui-stories because its verifier imports build.nix with only 'pkgs' while these files require 'src', so a silent pass there would have been indistinguishable from an unverified write.
|
Superseded by #1191, which collapses this stack onto Closing rather than merging: propagating This PR's content is in #1191, verified with This body stays as the record of the per-change evidence, which #1191 summarises but does not reproduce in full. Posted on behalf of @schickling
|
Two catalog changes in
genie/external.ts, both prerequisites for the StyleX migration. They are small in source and large in fallout, so the evidence is below rather than in a follow-up.Two of the brief's premises turned out to be wrong. Both corrections are in here with measurements, because a corrected record is worth more than a green one.
1. Storybook 10.4.6 → 10.5.10
The visual gate needs light and dark covered as separate Vitest projects. That is
storybookTest({ initialGlobals }).Verified by diffing the shipped plugin option types rather than trusting release notes:
UserOptions.initialGlobals@storybook/addon-vitest@10.4.6dist/vitest-plugin/index.d.ts@storybook/addon-vitest@10.5.10dist/vitest-plugin/index.d.tsAdded in 10.5.0 via #35226. Without the bump the gate cannot express the requirement at all.
10.5.10 is current stable for the whole cohort (
nextis10.6.0-beta.1; not taken).Breaking changes between 10.4 and 10.5
Upstream
MIGRATION.mdhas exactly one entry forFrom version 10.4.0 to 10.5.0:ExternalDocsandExternalDocsContainerare deprecated.grepfinds no use of either in this repo. Nothing to absorb.Why the whole cohort moves at once
@storybook/addon-vitest@10.5.10peersstorybook@^10.5.10. Pinning the addon without the cohort would failstrictPeerDependencies, so this is not a matter of taste.@storybook/addon-a11yis on the list becauseparameters.a11y.testis inert unless the addon is registered, and it defaults to warn-only. Pinning the vitest addon alone would have produced a gate that silently passes accessibility regressions.Build evidence — one DOM package and one TUI package
The two go through different factories (
createDomStorybookConfig/createTuiStorybookConfig), so one build does not cover the other.storybook:buildindex.json@overeng/effect-schema-form-ariastylex: true)@overeng/tui-storiesZero
10.4.6references remain inpnpm-lock.yamlor any generated file. (An orphanedstorybook@10.4.6directory lingers innode_modules/.pnpm; zero live symlinks resolve into it — pnpm just has not pruned it.)Durable constraint introduced by this PR
@vitest/browser,@vitest/browser-playwrightandplaywrightare now welded to thevitestpin.@vitest/browser@4.1.9peersvitestat exactly4.1.9— a literal version, not a range — and@vitest/browser-playwright@4.1.9peersvitest 4.1.9plus a non-optionalplaywright.A future
vitestbump is therefore a four-package move, not a one-line change. Whoever hits that next: this is the PR that introduced the coupling. It is also recorded in the catalog comment.The versions matter, not just the names:
@vitest/browser@4.1.9ships pixelmatch defaults ofthreshold: 0.1andincludeAA: false(read fromdist/index.js), which is the silent-pass trap the gate exists to close.playwrightdoes not download browsers at install, on three independent grounds:playwright@1.61.0tarball'spackage.jsonhasscripts: null— no hook exists. Same forplaywright-core@1.61.0.ignoreScripts: trueis set fleet-wide in the generatedpnpm-workspace.yaml.pnpm-lock.yamltoday, pulled transitively by the existing@playwright/test@1.61.0pin. Naming it changes no resolution.Browsers keep coming from the Nix closure. No
nativeDependencyPolicyentry needed.Reported, not fixed: the deprecated
@vitest/browser/contextimportThe brief expected this to "emit a deprecation warning but work via fallback". The second half is right; the first is not, and the difference matters.
@storybook/addon-vitest@10.5.10dist/vitest-plugin/test-utils.js:54imports the legacy@vitest/browser/contextspecifier. But@vitest/browser@4.1.9dist/index.js:855handles it like this:The warning is suppressed for importers inside
node_modules, which the addon always is. So we get no warning at all — it resolves silently to the same virtual module. Upstream even comments the constant with "for libraries that use an older import but are not type checked".Practical consequence: this is not noise to live with, it is a silent Vitest 5 hazard. The message says the import "will stop working in the next major version", and nothing in our output will remind us. Not fixed here — it is upstream's import, in a dependency, and the addon's Vitest-4 setup file already uses the correct
vitest/browserspecifier, so the blast radius is one call site.2. Tailwind → StyleX converter
Pinned as an opt-in dev tool: catalog entry only, no package declares it. A target that wants the first pass picks it up deliberately. This is the mechanism that keeps it away from shared component packages.
Correction: it is published, and a git-rev pin would not have worked
The brief said to pin an unpublished fork at a git rev. Both halves need correcting.
It is published.
tw-to-stylex@0.1.0-alpha.1on npm, published 2026-02-20 bymellyeliu— the same Meta StyleX maintainer — withgitHead: a150f9e514762c9bab92385e9c0370abda5bc9e6. That is the exact fork revision the brief asked me to pin. We get the intended code through an integrity-pinned npm version instead.A git-rev pin would have been broken, not merely policy-blocked. This is the part worth keeping, because it is the reason not to re-attempt the original approach:
.gitignoreends withlib— the build output is gitignored, so it is in no git ref.package.jsonhasprebuild/buildbut noprepare, which is the only script pnpm runs for a git dependency.Measured, twice:
Repeated with lifecycle scripts fully enabled: identical result, no
lib/. There is nopreparefor pnpm to run, so relaxingignoreScriptsfixes nothing. This was never a dependency-policy question. Install succeeds, and every invocation dies.So the answer to "is pinning an unpublished fork acceptable under repo policy" is that the question dissolved: the fork is published, and the git-rev route was not viable under any policy.
The undeclared Babel deps are subtler than "two missing peers"
@babel/plugin-syntax-typescriptis declared as a dependency oftw-to-stylex. It still fails, because Babel resolves plugin names relative to the calling package, not the plugin's own tree. Reproduced from a clean install:npm's hoisting masks this half the time; pnpm's strict layout will not. All three (
@babel/core,@babel/plugin-syntax-jsx,@babel/plugin-syntax-typescript) are pinned at 7.29.7. Babel 7, not 8:@babel/plugin-syntax-typescript@7peers@babel/core@^7, and Babel 8 tripsstrictPeerDependencies(pnpm peers checkconfirms).Clean install under this repo's actual policy (
ignoreScripts: true,strictPeerDependencies: true) — no warnings.Converter evidence, with logging on
logUnsupporteddefaults tofalsein every entry point. Same input, both ways:Default (off) — three classes vanish, zero diagnostics:
{ logUnsupported: true }:It does emit the pattern the spec specifies:
Three traps found while wiring it, all recorded in the catalog comment
The CLI can never log.
tailwindToStylex()passes the plugin bare, sopluginOptionsisundefinedandlogUnsupportedis permanentlyfalse. Thetw-to-stylexbinary uses that function. Onlytw-to-stylex/sync(or the default export used as a Babel plugin with options) accepts the flag. Use of the CLI is ruled out in the comment.React Aria
data-[*]state is dropped with logging ON. This contradicts the brief, which listeddata-[*]among what the flag surfaces. It does not —UNSUPPORTED_CLASS_PATTERNSonly matchesgroup-,peer-,*:and[&. Measured:Three React Aria states gone, silently, with the safety flag on. This is exactly why the spec forbids pointing it at a shared component package, and the flag does not make that safe.
The warnings over-report. It warns that
group-hover:"will be ignored" and then converts it correctly viawhen.ancestor. Treat the log as a review prompt, not a defect list.Output also carries raw values (
#111827,.5rem) and leaks Tailwind internals (--tw-font-weight), so the hand-pass the spec requires is unavoidable.Fallout
packageExtensionsrestated the framework version as a literal10.4.6ingenie/internal.ts, which would have left a second@storybook/react-viteresolving. It now derives from the catalog so it cannot drift again.Changing it moved
packageExtensionsChecksum, which broke the Nix build before devenv could enter the shell:Fixed with
pnpm install --no-frozen-lockfile --lockfile-only. Worth knowing for anyone touchingpackageExtensions: the repo task cannot bootstrap itself out of this.Regenerating the lockfile then invalidated eight pnpm-deps FODs, cascading one per ~20-minute cycle. Batched instead with a single
nix build --keep-goingover all eight*-pnpm-depsattrs, then refreshed and re-verified in one pass. All hashes here are values Nix measured.For anyone rebasing onto this branch: your own dependency changes will invalidate these hashes again. Take the
got:value Nix prints for your build. Do not carry a hash forward from this PR — a carried-forward hash is the classic way these go subtly wrong, because it looks plausible and fails somewhere else.The
unpluginduplicate exception was re-checked rather than assumed to be retired by the bump:@storybook/csf-plugin@10.5.10still declaresunplugin ^2.3.5, so it is still required. Its reason now describes the constraint rather than naming a consumer package, since the consumer is moving in a sibling PR — and the old text's claim of an "exact pin" was wrong (^2.3.5merely resolves to2.3.11).Tooling gap
evergreen fod refresh --name <pkg>writes the correct hash for the seven CLI-shaped attrs, but its post-write verification always fails here: it evaluatesimport <build.nix> { inherit pkgs; }while this repo'sbuild.nixfiles require asrcargument, so every refresh warnscould not evaluate … called without required argument 'src'. The hash is right; the check is inoperable. I re-verified all eight independently with a batchnix build.nix/oxc-config-plugin.nixis worse:evergreen fod reconcile/refreshcannot address it at all (could not determine --hash-source for oxc-config-plugin), andevergreen fod cli-packages-valuesreports 0 known attrs in this repo. That hash had to be written by hand from the measured value — in a tool we are told to reach for before hand-editing.Verification
devenv tasks run check:quick— green (exit 0)storybook:buildgreen for one DOM and one TUI package, both on 10.5.10Not run: project-wide formatters or the full test suite, per instructions.
Posted on behalf of @schickling
agent_identitysessionagent_personaagent_supervisoragent_toolagent_tool_versionagent_runtimetooling_profile