Skip to content

Catalog: Storybook 10.5.10 for per-theme test projects, plus the Tailwind->StyleX converter - #1173

Closed
schickling-assistant wants to merge 4 commits into
mainfrom
schickling-assistant/2026-09-01-stylex-catalog-pins
Closed

schickling-assistant wants to merge 4 commits into
mainfrom
schickling-assistant/2026-09-01-stylex-catalog-pins

Conversation

@schickling-assistant

Copy link
Copy Markdown
Collaborator

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.6 dist/vitest-plugin/index.d.ts absent
@storybook/addon-vitest@10.5.10 dist/vitest-plugin/index.d.ts present, documented as "define one Vitest project per theme"

Added 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 (next is 10.6.0-beta.1; not taken).

Breaking changes between 10.4 and 10.5

Upstream MIGRATION.md has exactly one entry for From version 10.4.0 to 10.5.0: ExternalDocs and ExternalDocsContainer are deprecated. grep finds no use of either in this repo. Nothing to absorb.

Why the whole cohort moves at once

@storybook/addon-vitest@10.5.10 peers storybook@^10.5.10. Pinning the addon without the cohort would fail strictPeerDependencies, so this is not a matter of taste.

@storybook/addon-a11y is on the list because parameters.a11y.test is 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.

package factory storybook:build resolved stories in index.json
@overeng/effect-schema-form-aria DOM (stylex: true) exit 0 10.5.10 39
@overeng/tui-stories TUI exit 0 10.5.10 11

Zero 10.4.6 references remain in pnpm-lock.yaml or any generated file. (An orphaned storybook@10.4.6 directory lingers in node_modules/.pnpm; zero live symlinks resolve into it — pnpm just has not pruned it.)

Durable constraint introduced by this PR

@vitest/browser, @vitest/browser-playwright and playwright are now welded to the vitest pin. @vitest/browser@4.1.9 peers vitest at exactly 4.1.9 — a literal version, not a range — and @vitest/browser-playwright@4.1.9 peers vitest 4.1.9 plus a non-optional playwright.

A future vitest bump 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.9 ships pixelmatch defaults of threshold: 0.1 and includeAA: false (read from dist/index.js), which is the silent-pass trap the gate exists to close.

playwright does not download browsers at install, on three independent grounds:

  1. The published playwright@1.61.0 tarball's package.json has scripts: null — no hook exists. Same for playwright-core@1.61.0.
  2. ignoreScripts: true is set fleet-wide in the generated pnpm-workspace.yaml.
  3. It is already in pnpm-lock.yaml today, pulled transitively by the existing @playwright/test@1.61.0 pin. Naming it changes no resolution.

Browsers keep coming from the Nix closure. No nativeDependencyPolicy entry needed.

Reported, not fixed: the deprecated @vitest/browser/context import

The 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.10 dist/vitest-plugin/test-utils.js:54 imports the legacy @vitest/browser/context specifier. But @vitest/browser@4.1.9 dist/index.js:855 handles it like this:

if (id === DEPRECATED_ID_CONTEXT) {
  if (importer && !importer.includes("/node_modules/")) {
    globalServer.vitest.logger.deprecate(`... Please, use "vitest/browser" instead.`)
  }
  return VIRTUAL_ID_CONTEXT
}

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/browser specifier, 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.1 on npm, published 2026-02-20 by mellyeliu — the same Meta StyleX maintainer — with gitHead: 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:

  • The fork's .gitignore ends with lib — the build output is gitignored, so it is in no git ref.
  • package.json has prebuild/build but no prepare, which is the only script pnpm runs for a git dependency.

Measured, twice:

$ pnpm add "tw-to-stylex@github:mellyeliu/tw-to-stylex#a150f9e…"      # ignoreScripts: true
[WARN] The git-hosted package … has to be built but the build scripts were ignored.
[WARN] Failed to create bin at …/node_modules/.bin/tw-to-stylex. ENOENT: … 'lib/tw-to-stylex.js'
Done in 4s                                                            # exits 0!

$ node -e "import('tw-to-stylex')"
FAIL: ERR_MODULE_NOT_FOUND Cannot find module '…/tw-to-stylex/lib/index.js'

Repeated with lifecycle scripts fully enabled: identical result, no lib/. There is no prepare for pnpm to run, so relaxing ignoreScripts fixes 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-typescript is declared as a dependency of tw-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:

Error: Cannot find package '@babel/plugin-syntax-jsx' imported from /tmp/twbare/babel-virtual-resolve-base.js
# after adding it:
Error: Cannot find package '@babel/plugin-syntax-typescript' imported from /tmp/twbare/babel-virtual-resolve-base.js

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@7 peers @babel/core@^7, and Babel 8 trips strictPeerDependencies (pnpm peers check confirms).

Clean install under this repo's actual policy (ignoreScripts: true, strictPeerDependencies: true) — no warnings.

Converter evidence, with logging on

logUnsupported defaults to false in every entry point. Same input, both ways:

Default (off) — three classes vanish, zero diagnostics:

----- OUTPUT -----
const _styles = _stylex.create({ … })

{ logUnsupported: true }:

[TW→StyleX] Unsupported Tailwind pattern: group-*
  Class: group-hover:text-blue-600
  Reason: requires parent element state
[TW→StyleX] Unsupported Tailwind pattern: peer-*
  Class: peer-checked:block
[TW→StyleX] Unsupported Tailwind pattern: [&...] arbitrary selectors
  Class: [&>svg]:size-4

It does emit the pattern the spec specifies:

color: { default: "#111827", [_stylex.when.ancestor(":hover")]: "#2563eb" }
// …
<div {..._stylex.props(_stylex.defaultMarker(), _styles.$1)}>

Three traps found while wiring it, all recorded in the catalog comment

  1. The CLI can never log. tailwindToStylex() passes the plugin bare, so pluginOptions is undefined and logUnsupported is permanently false. The tw-to-stylex binary uses that function. Only tw-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.

  2. React Aria data-[*] state is dropped with logging ON. This contradicts the brief, which listed data-[*] among what the flag surfaces. It does not — UNSUPPORTED_CLASS_PATTERNS only matches group-, peer-, *: and [&. Measured:

    input:  bg-white data-[selected]:bg-blue-500 data-[disabled]:opacity-50 data-[focus-visible]:outline-2
    output: { backgroundColor: "#fff" }        # with logUnsupported: true — zero warnings
    

    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.

  3. The warnings over-report. It warns that group-hover: "will be ignored" and then converts it correctly via when.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

packageExtensions restated the framework version as a literal 10.4.6 in genie/internal.ts, which would have left a second @storybook/react-vite resolving. 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:

[ERR_PNPM_LOCKFILE_CONFIG_MISMATCH] … "packageExtensionsChecksum" … doesn't match the value found in the lockfile

Fixed with pnpm install --no-frozen-lockfile --lockfile-only. Worth knowing for anyone touching packageExtensions: 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-going over all eight *-pnpm-deps attrs, 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 unplugin duplicate exception was re-checked rather than assumed to be retired by the bump: @storybook/csf-plugin@10.5.10 still declares unplugin ^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.5 merely resolves to 2.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 evaluates import <build.nix> { inherit pkgs; } while this repo's build.nix files require a src argument, so every refresh warns could not evaluate … called without required argument 'src'. The hash is right; the check is inoperable. I re-verified all eight independently with a batch nix build.

nix/oxc-config-plugin.nix is worse: evergreen fod reconcile/refresh cannot address it at all (could not determine --hash-source for oxc-config-plugin), and evergreen fod cli-packages-values reports 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:build green for one DOM and one TUI package, both on 10.5.10
  • Converter runs from the published package under this repo's pnpm policy, with unsupported-class logging visible
  • All eight pnpm-deps FODs rebuild clean

Not run: project-wide formatters or the full test suite, per instructions.

Posted on behalf of @schickling
field value
agent_identity dev3.direct.omp.6xjdfab7
session dev3.6xjdfab7
agent_persona generalist
agent_supervisor unavailable
agent_tool OMP
agent_tool_version 18.0.11
agent_runtime OMP 18.0.11
tooling_profile dotfiles@5a8d579-dirty

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.
@schickling-assistant schickling-assistant added origin:agent Filed or primarily produced by an AI agent · Set: AI agent or manual area:storybook Storybook configuration and stories · Set: manual type:chore Maintenance, cleanup, dependencies, or CI · Set: manual area:nix-hash Nix hash determinism/staleness (pnpmDepsHash, lockfileHash, FOD cache) · Set: manual area:genie genie config generator runtime + CLI · Set: manual labels Sep 1, 2026
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Storybook Previews

Subject Status Report Details Updated
effect-react success effect-react preview deployed Preview is ready 2026-09-01 17:26 UTC
notion-md success notion-md preview deployed Preview is ready 2026-09-01 17:26 UTC
react-inspector success react-inspector preview deployed Preview is ready 2026-09-01 17:26 UTC
notion-cli success notion-cli preview deployed Preview is ready 2026-09-01 17:26 UTC
effect-schema-form-aria success effect-schema-form-aria preview deployed Preview is ready 2026-09-01 17:26 UTC
genie success genie preview deployed Preview is ready 2026-09-01 17:26 UTC
tui-react success tui-react preview deployed Preview is ready 2026-09-01 17:26 UTC
megarepo success megarepo preview deployed Preview is ready 2026-09-01 17:26 UTC
notion-react success notion-react preview deployed Preview is ready 2026-09-01 17:26 UTC
Report history

PR 1173 · 2026-09-01 17:27 UTC

Subject Status Report Details Updated
effect-react success effect-react preview deployed Preview is ready 2026-09-01 17:26 UTC
notion-md success notion-md preview deployed Preview is ready 2026-09-01 17:26 UTC
react-inspector success react-inspector preview deployed Preview is ready 2026-09-01 17:26 UTC
notion-cli success notion-cli preview deployed Preview is ready 2026-09-01 17:26 UTC
effect-schema-form-aria success effect-schema-form-aria preview deployed Preview is ready 2026-09-01 17:26 UTC
genie success genie preview deployed Preview is ready 2026-09-01 17:26 UTC
tui-react success tui-react preview deployed Preview is ready 2026-09-01 17:26 UTC
megarepo success megarepo preview deployed Preview is ready 2026-09-01 17:26 UTC
notion-react success notion-react preview deployed Preview is ready 2026-09-01 17:26 UTC

github-actions Bot added a commit that referenced this pull request Sep 1, 2026
github-actions Bot added a commit that referenced this pull request Sep 1, 2026
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

CI Measurements

partial - advisory gate - readiness partial (17/26 enabled observations gateable) - commit 6003e7d - protocol devenv-perf-warm-median-v2

No regressions. Comparable movement is below the semantic impact threshold; neutral rows are collapsed below.

Measurement change vs baseline chart

SVG source

nix / closures / packages

What changed? Group Probe Baseline -> current Raw change Impact Confidence
unchanged nix / closures / packages Nix sources closure size 0 B -> 0 B +0 B / n/a n/a unknown, baseline n=26, current n=1
unchanged nix / closures / packages Nix sources closure size 0 B -> 0 B +0 B / n/a n/a unknown, baseline n=26, current n=1
unchanged nix / closures / packages Nix sources closure size 0 B -> 0 B +0 B / n/a n/a unknown, baseline n=26, current n=1
unchanged nix / closures / packages Node / pnpm closure size 0 B -> 0 B +0 B / n/a n/a unknown, baseline n=26, current n=1
unchanged nix / closures / packages Node / pnpm closure size 0 B -> 0 B +0 B / n/a n/a unknown, baseline n=26, current n=1
unchanged nix / closures / packages Node / pnpm closure size 0 B -> 0 B +0 B / n/a n/a unknown, baseline n=26, current n=1
unchanged nix / closures / packages Rust closure size 0 B -> 0 B +0 B / n/a n/a unknown, baseline n=26, current n=1
unchanged nix / closures / packages Rust closure size 0 B -> 0 B +0 B / n/a n/a unknown, baseline n=26, current n=1
unchanged nix / closures / packages Rust closure size 0 B -> 0 B +0 B / n/a n/a unknown, baseline n=26, current n=1
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

Group Probe Baseline -> current Raw change Impact Gate Evidence Why hidden
devenv / devenv cli devenv tasks list 0.119 s -> 0.123 s +0.004 s / 3.4% 0.00x yes paired n=9, 25-75% delta -0.015 s..0.009 s Too small to matter
devenv / devenv cli devenv processes --help 0.055 s -> 0.058 s +0.003 s / 5.5% 0.00x yes paired n=9, 25-75% delta -0.011 s..0.022 s Too small to matter

devenv / devenv shell

Group Probe Baseline -> current Raw change Impact Gate Evidence Why hidden
devenv / devenv shell Warm shell eval 11.371 s -> 11.311 s -0.06 s / -0.5% 0.00x yes paired n=5, 25-75% delta -0.194 s..-0.049 s Too small to matter

devenv / genie

Group Probe Baseline -> current Raw change Impact Gate Evidence Why hidden
devenv / genie Genie check task 7.085 s -> 6.93 s -0.155 s / -2.2% 0.00x yes paired n=5, 25-75% delta -0.114 s..-0.036 s Unchanged
devenv / genie Genie run task 3.65 s -> 3.583 s -0.067 s / -1.8% 0.00x yes paired n=5, 25-75% delta -0.279 s..-0.031 s Too small to matter

devenv / quality gates

Group Probe Baseline -> current Raw change Impact Gate Evidence Why hidden
devenv / quality gates Forced check:quick 24.332 s -> 23.525 s -0.807 s / -3.3% 0.00x yes paired n=3, 25-75% delta -1.106 s..-0.558 s Unchanged
devenv / quality gates Warm cached check:quick 10.041 s -> 10.215 s +0.174 s / 1.7% 0.00x yes paired n=5, 25-75% delta -0.071 s..0.319 s Unchanged

devenv / workspace setup

Group Probe Baseline -> current Raw change Impact Gate Evidence Why hidden
devenv / workspace setup pnpm install task 2.438 s -> 2.434 s -0.004 s / -0.2% 0.00x yes paired n=5, 25-75% delta -0.047 s..0.061 s Too small to matter

nix / closures / packages

Group Probe Baseline -> current Raw change Impact Gate Evidence Why hidden
nix / closures / packages Total closure path count 83 count -> 83 count +0 count / 0% 0.00x yes noise_floor, baseline n=26, current n=1 Too small to matter
nix / closures / packages Total closure path count 5 count -> 5 count +0 count / 0% 0.00x yes noise_floor, baseline n=26, current n=1 Too small to matter
nix / closures / packages Total closure path count 8 count -> 8 count +0 count / 0% 0.00x yes noise_floor, baseline n=26, current n=1 Too small to matter
nix / closures / packages Total closure size 583.2 MiB -> 583.2 MiB +0 B / 0% 0.00x yes noise_floor, baseline n=26, current n=1 Too small to matter
nix / closures / packages Total closure size 165.3 MiB -> 165.3 MiB +0 B / 0% 0.00x yes noise_floor, baseline n=26, current n=1 Too small to matter
nix / closures / packages Total closure size 151.7 MiB -> 151.7 MiB +0 B / 0% 0.00x yes noise_floor, baseline n=26, current n=1 Too small to matter
nix / closures / packages Total serialized NAR size 583.2 MiB -> 583.2 MiB +0 B / 0% 0.00x yes noise_floor, baseline n=26, current n=1 Too small to matter
nix / closures / packages Total serialized NAR size 165.3 MiB -> 165.3 MiB +0 B / 0% 0.00x yes noise_floor, baseline n=26, current n=1 Too small to matter
nix / closures / packages Total serialized NAR size 151.7 MiB -> 151.7 MiB +0 B / 0% 0.00x yes noise_floor, baseline n=26, current n=1 Too small to matter
Diagnostic / ungated measurements (7)

source / effect-utils

Group Probe Current Baseline Impact Gate Reason Evidence
source / effect-utils Genie runtime lines 28031 lines 27825 lines diagnostic disabled Diagnostic only diagnostic, baseline n=26, current n=97
source / effect-utils Genie runtime files 97 count 95 count diagnostic disabled Diagnostic only diagnostic, baseline n=26, current n=97
source / effect-utils Genie CI workflow helpers files 11 count 11 count diagnostic disabled Diagnostic only diagnostic, baseline n=26, current n=11
source / effect-utils Genie CI workflow helpers lines 8863 lines 8863 lines diagnostic disabled Diagnostic only diagnostic, baseline n=26, current n=11
source / effect-utils Nix workspace tools files 16 count 16 count diagnostic disabled Diagnostic only diagnostic, baseline n=26, current n=16
source / effect-utils Nix workspace tools lines 4585 lines 4585 lines diagnostic disabled Diagnostic only diagnostic, baseline n=26, current n=16

devenv / devenv shell

Group Probe Current Baseline Impact Gate Reason Evidence
devenv / devenv shell Shell eval with OTEL trace 79.005 s n/a n/a missing_baseline No baseline yet missing_baseline, baseline n=0, current n=1
All measurements
Status Gate Target Observation Dimensions Baseline Current Delta Ratio Impact
pass disabled effect-utils repository Genie runtime lines scope=genie_runtime 27825 lines 28031 lines +206 lines 0.7% diagnostic
pass disabled effect-utils repository Genie runtime files scope=genie_runtime 95 count 97 count +2 count 2.1% diagnostic
pass yes Dev shell Forced check:quick aggregation=median
devenvRev=2cf62a010000b70f15c78a72761fad7c9e6fb47a
measuredSampleCount=3
measurementProtocol=devenv-perf-warm-median-v2
otelServiceName=devenv-perf-ci
pairedOrderProtocol=balanced-seeded-alternating-v1
pairedOrderSeed=33537447458-1-ec136e17a8dbe483041a9fada52494c9fe58c317
pairedSampleCount=3
phase=warm
probe=task_check_quick_forced
probeLabel=Forced check:quick
sampleCount=6
status=0
taskCacheMode=refresh
warmupCount=0
workload=forced-task-cache
24.332 s 23.525 s -0.807 s -3.3% 0.00x
pass yes Dev shell Warm cached check:quick aggregation=median
devenvRev=2cf62a010000b70f15c78a72761fad7c9e6fb47a
measuredSampleCount=5
measurementProtocol=devenv-perf-warm-median-v2
otelServiceName=devenv-perf-ci
pairedOrderProtocol=balanced-seeded-alternating-v1
pairedOrderSeed=33537447458-1-ec136e17a8dbe483041a9fada52494c9fe58c317
pairedSampleCount=5
phase=warm
probe=task_check_quick_warm
probeLabel=Warm cached check:quick
sampleCount=11
status=0
taskCacheMode=warm
warmupCount=1
workload=cached-no-op
10.041 s 10.215 s +0.174 s 1.7% 0.00x
pass yes Dev shell Genie check task aggregation=median
devenvRev=2cf62a010000b70f15c78a72761fad7c9e6fb47a
measuredSampleCount=5
measurementProtocol=devenv-perf-warm-median-v2
otelServiceName=devenv-perf-ci
pairedOrderProtocol=balanced-seeded-alternating-v1
pairedOrderSeed=33537447458-1-ec136e17a8dbe483041a9fada52494c9fe58c317
pairedSampleCount=5
phase=warm
probe=genie_check_task
probeLabel=Genie check task
sampleCount=11
status=0
warmupCount=1
7.085 s 6.93 s -0.155 s -2.2% 0.00x
pass yes Dev shell Genie run task aggregation=median
devenvRev=2cf62a010000b70f15c78a72761fad7c9e6fb47a
measuredSampleCount=5
measurementProtocol=devenv-perf-warm-median-v2
otelServiceName=devenv-perf-ci
pairedOrderProtocol=balanced-seeded-alternating-v1
pairedOrderSeed=33537447458-1-ec136e17a8dbe483041a9fada52494c9fe58c317
pairedSampleCount=5
phase=warm
probe=task_genie_run
probeLabel=Genie run task
sampleCount=11
status=0
warmupCount=1
3.65 s 3.583 s -0.067 s -1.8% 0.00x
pass yes Dev shell Warm shell eval aggregation=median
devenvRev=2cf62a010000b70f15c78a72761fad7c9e6fb47a
measuredSampleCount=5
measurementProtocol=devenv-perf-warm-median-v2
otelServiceName=devenv-perf-ci
pairedOrderProtocol=balanced-seeded-alternating-v1
pairedOrderSeed=33537447458-1-ec136e17a8dbe483041a9fada52494c9fe58c317
pairedSampleCount=5
phase=warm
probe=shell_eval_warm
probeLabel=Warm shell eval
sampleCount=11
status=0
warmupCount=1
11.371 s 11.311 s -0.06 s -0.5% 0.00x
pass yes Dev shell devenv tasks list aggregation=median
devenvRev=2cf62a010000b70f15c78a72761fad7c9e6fb47a
measuredSampleCount=9
measurementProtocol=devenv-perf-warm-median-v2
otelServiceName=devenv-perf-ci
pairedOrderProtocol=balanced-seeded-alternating-v1
pairedOrderSeed=33537447458-1-ec136e17a8dbe483041a9fada52494c9fe58c317
pairedSampleCount=9
phase=warm
probe=tasks_list
probeLabel=devenv tasks list
sampleCount=19
status=0
warmupCount=1
0.119 s 0.123 s +0.004 s 3.4% 0.00x
pass yes Dev shell pnpm install task aggregation=median
devenvRev=2cf62a010000b70f15c78a72761fad7c9e6fb47a
measuredSampleCount=5
measurementProtocol=devenv-perf-warm-median-v2
otelServiceName=devenv-perf-ci
pairedOrderProtocol=balanced-seeded-alternating-v1
pairedOrderSeed=33537447458-1-ec136e17a8dbe483041a9fada52494c9fe58c317
pairedSampleCount=5
phase=warm
probe=task_pnpm_install
probeLabel=pnpm install task
sampleCount=11
status=0
warmupCount=1
2.438 s 2.434 s -0.004 s -0.2% 0.00x
pass yes Dev shell devenv processes --help aggregation=median
devenvRev=2cf62a010000b70f15c78a72761fad7c9e6fb47a
measuredSampleCount=9
measurementProtocol=devenv-perf-warm-median-v2
otelServiceName=devenv-perf-ci
pairedOrderProtocol=balanced-seeded-alternating-v1
pairedOrderSeed=33537447458-1-ec136e17a8dbe483041a9fada52494c9fe58c317
pairedSampleCount=9
phase=warm
probe=processes_help
probeLabel=devenv processes --help
sampleCount=19
status=0
warmupCount=1
0.055 s 0.058 s +0.003 s 5.5% 0.00x
pass disabled effect-utils repository Genie CI workflow helpers files scope=genie_ci_workflow 11 count 11 count +0 count 0% diagnostic
pass disabled effect-utils repository Genie CI workflow helpers lines scope=genie_ci_workflow 8863 lines 8863 lines +0 lines 0% diagnostic
unknown missing_baseline Genie package Nix sources closure size bucket=nix-sources 0 B 0 B +0 B n/a n/a
unknown missing_baseline Megarepo package Nix sources closure size bucket=nix-sources 0 B 0 B +0 B n/a n/a
unknown missing_baseline oxlint npm package Nix sources closure size bucket=nix-sources 0 B 0 B +0 B n/a n/a
pass disabled effect-utils repository Nix workspace tools files scope=nix_workspace_tools 16 count 16 count +0 count 0% diagnostic
pass disabled effect-utils repository Nix workspace tools lines scope=nix_workspace_tools 4585 lines 4585 lines +0 lines 0% diagnostic
unknown missing_baseline Genie package Node / pnpm closure size bucket=node 0 B 0 B +0 B n/a n/a
unknown missing_baseline Megarepo package Node / pnpm closure size bucket=node 0 B 0 B +0 B n/a n/a
unknown missing_baseline oxlint npm package Node / pnpm closure size bucket=node 0 B 0 B +0 B n/a n/a
unknown missing_baseline Genie package Rust closure size bucket=rust 0 B 0 B +0 B n/a n/a
unknown missing_baseline Megarepo package Rust closure size bucket=rust 0 B 0 B +0 B n/a n/a
unknown missing_baseline oxlint npm package Rust closure size bucket=rust 0 B 0 B +0 B n/a n/a
pass yes Genie package Total closure path count bucket=total 83 count 83 count +0 count 0% 0.00x
pass yes Megarepo package Total closure path count bucket=total 5 count 5 count +0 count 0% 0.00x
pass yes oxlint npm package Total closure path count bucket=total 8 count 8 count +0 count 0% 0.00x
pass yes Genie package Total closure size bucket=total 583.2 MiB 583.2 MiB +0 B 0% 0.00x
pass yes Megarepo package Total closure size bucket=total 165.3 MiB 165.3 MiB +0 B 0% 0.00x
pass yes oxlint npm package Total closure size bucket=total 151.7 MiB 151.7 MiB +0 B 0% 0.00x
pass yes Genie package Total serialized NAR size bucket=total
sizeKind=nar
583.2 MiB 583.2 MiB +0 B 0% 0.00x
pass yes Megarepo package Total serialized NAR size bucket=total
sizeKind=nar
165.3 MiB 165.3 MiB +0 B 0% 0.00x
pass yes oxlint npm package Total serialized NAR size bucket=total
sizeKind=nar
151.7 MiB 151.7 MiB +0 B 0% 0.00x
missing_baseline missing_baseline Dev shell Shell eval with OTEL trace aggregation=median
devenvRev=2cf62a010000b70f15c78a72761fad7c9e6fb47a
measuredSampleCount=1
measurementProtocol=devenv-perf-warm-median-v2
otelServiceName=devenv-perf-ci
pairedOrderProtocol=balanced-seeded-alternating-v1
pairedOrderSeed=33537447458-1-ec136e17a8dbe483041a9fada52494c9fe58c317
pairedSampleCount=1
phase=warm
probe=shell_eval_traced
probeLabel=Shell eval with OTEL trace
sampleCount=2
status=0
warmupCount=0
n/a 79.005 s n/a n/a n/a
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.
@schickling-assistant

Copy link
Copy Markdown
Collaborator Author

Superseded by #1191, which collapses this stack onto main as one tree.

Closing rather than merging: propagating main through eight stacked branches meant re-reconciling the lockfile, the fixed-output hashes and the Buck projection once per branch. Branch 2 alone produced 11 conflicts, a semantically broken auto-merged lockfile, a BUCK admission rename and a circular tooling block. On one tree each of those happens once.

This PR's content is in #1191, verified with git merge-base --is-ancestor over all eight heads — #1184 was found missing that way and merged in, because a gh stack base does not make a branch contain that base.

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
field value
agent_identity dev3.direct.omp.mhx73ur2
session dev3.mhx73ur2
agent_persona generalist
agent_supervisor unavailable
agent_tool OMP
agent_tool_version 18.0.11
agent_runtime OMP 18.0.11
tooling_profile dotfiles@e8f0615-dirty

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:genie genie config generator runtime + CLI · Set: manual area:nix-hash Nix hash determinism/staleness (pnpmDepsHash, lockfileHash, FOD cache) · Set: manual area:storybook Storybook configuration and stories · Set: manual origin:agent Filed or primarily produced by an AI agent · Set: AI agent or manual type:chore Maintenance, cleanup, dependencies, or CI · Set: manual

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant