-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathautoresearch.jsonl
More file actions
196 lines (196 loc) · 170 KB
/
autoresearch.jsonl
File metadata and controls
196 lines (196 loc) · 170 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
{"type":"config","name":"Redox iteration speed: functional testing and image build","metricName":"total_ms","metricUnit":"ms","bestDirection":"lower"}
{"run":1,"commit":"ef8dbc5","metric":0,"metrics":{},"status":"crash","description":"Initial baseline using full functional-test suite crashed as a benchmark choice: current tree fails around network auto-config (`netcfg-auto: no network interface found`), so this workload is not stable enough for iteration-speed optimization.","timestamp":1776302747930,"segment":0,"confidence":null,"iterationTokens":149,"asi":{"hypothesis":"Use the existing full functional-test package as an end-to-end build+test benchmark for iteration speed.","rollback_reason":"Benchmark workload itself is red on the current tree, so failures conflate repo regressions with performance experiments and make keep/discard meaningless.","next_action_hint":"Pivot to a stable filtered functional-test workload, likely by making --filter skip non-matching guest scripts so a fast green subset becomes a real benchmark.","failure_detail":"run_experiment exited 1 after ~200.5s with serial output ending in `netcfg-auto: no network interface found`.","learned_hotspot":"Current `--filter` is host-side reporting only; it does not reduce guest work, which blocks using a small stable subset as the benchmark."}}
{"type":"config","name":"Redox iteration speed: build plus functional smoke subset through 04-env","metricName":"total_ms","metricUnit":"ms","bestDirection":"lower"}
{"run":2,"commit":"ef8dbc5","metric":0,"metrics":{},"status":"crash","description":"First smoke-subset attempt still crashed: naive `--stop-after-script` used only the latest seen banner, so fast script transitions skipped intermediate 04->05 boundaries and the run still reached failing later scripts.","timestamp":1776303589216,"segment":1,"confidence":null,"iterationTokens":289,"asi":{"hypothesis":"A host-side `--stop-after-script` keyed off test-script banners should make a stable fast smoke benchmark without touching guest test scripts.","rollback_reason":"Latest-banner-only tracking missed intermediate script transitions between polls, so the runner did not stop before failing 05+ scripts and the benchmark stayed red.","next_action_hint":"Track new script banners incrementally, not just the latest one, and when stopping compute results from the serial-log prefix before the first later banner.","failure_detail":"run_experiment still reached `05-wasmtime.ion` and `06-snix-eval.ion`, then failed with `netcfg-auto: no network interface found`.","learned_hotspot":"Script banners can advance multiple steps between 100ms polls; stop logic must process all unseen banners in order."}}
{"run":3,"commit":"3e9deae","metric":9844,"metrics":{"build_ms":8681,"run_ms":1162,"image_bytes":939524096},"status":"keep","description":"Baseline for stable smoke benchmark: functional-test now supports `--stop-after-script 04-env.ion`, giving a real build+boot+18-test iteration path that stays green on the current tree.","timestamp":1776303667188,"segment":1,"confidence":null,"iterationTokens":26983,"asi":{"hypothesis":"A host-side stop-after-script option can turn the existing functional-test image into a fast stable smoke benchmark without touching guest test scripts.","result":"Established first green baseline at total_ms=9844 with build_ms=8681 and run_ms=1162.","key_design_choice":"Process script banners incrementally and count results only from the serial-log prefix before the first later banner, so fast transitions cannot leak failing later-script tests into the smoke result.","validation":"Manual runner check and run_experiment both passed with 18/18 smoke tests through 04-env.ion.","next_action_hint":"Attack build_ms next; it dominates total time and likely benefits from faster image allocation or copy behavior."}}
{"run":4,"commit":"3e9deae","metric":10930,"metrics":{"build_ms":9800,"run_ms":1129,"image_bytes":939524096},"status":"discard","description":"Noise check rerun of the new smoke benchmark without code changes; total_ms regressed slightly, confirming build/eval overhead fluctuates by about a second and run_ms is comparatively stable.","timestamp":1776303723249,"segment":1,"confidence":null,"iterationTokens":2450,"asi":{"hypothesis":"Repeat the unchanged smoke benchmark once to estimate noise before chasing smaller build-side wins.","rollback_reason":"No code changes and worse total_ms than the current best, so this adds only noise information and should not become the kept state.","next_action_hint":"Prefer wins bigger than ~1s total or target the dominant build/eval phase with structural changes that invalidate and speed the image build path.","observed_noise":"Baseline 9844ms vs rerun 10930ms; build_ms moved by 1119ms while run_ms stayed near 1.1-1.2s.","result":"Useful noise floor measurement only."}}
{"type":"config","name":"Redox iteration speed: rebuilt functional smoke image plus 04-env smoke run","metricName":"total_ms","metricUnit":"ms","bestDirection":"lower"}
{"run":5,"commit":"3e9deae","metric":0,"metrics":{},"status":"crash","description":"Rebuild-forced benchmark crashed because `nix build --rebuild` exposed nondeterministic `redox-disk-image-unstable` output, so it cannot serve as the image-build metric without a separate determinism fix.","timestamp":1776303853084,"segment":2,"confidence":null,"iterationTokens":128,"asi":{"hypothesis":"Switching the smoke benchmark build phase to `nix build --rebuild` would turn build_ms into a true image-build metric instead of cached eval noise.","rollback_reason":"`--rebuild` fails before the benchmark runs because `redox-disk-image-unstable` is not bit-reproducible; the benchmark target is unusable until determinism is fixed.","next_action_hint":"Return to the cached smoke benchmark for iteration work, or open a separate follow-up for disk-image nondeterminism if reproducible rebuild speed becomes a dedicated goal.","failure_detail":"Nix reported `/nix/store/...-redox-disk-image-unstable.drv may not be deterministic` and `build_outputs[0]: unbound variable` because no output paths were returned.","learned_issue":"The current disk image pipeline is not deterministic under `nix build --rebuild`, likely from filesystem/image assembly rather than the smoke-runner changes."}}
{"type":"config","name":"Redox iteration speed: build plus functional smoke subset through 04-env","metricName":"total_ms","metricUnit":"ms","bestDirection":"lower"}
{"run":6,"commit":"fd81157","metric":14848,"metrics":{"build_ms":13268,"run_ms":1579,"image_bytes":939524096},"status":"keep","description":"Reset baseline on the cached smoke benchmark after confirming rebuild-forced measurement is unusable because `redox-disk-image-unstable` fails `nix build --rebuild` determinism checks.","timestamp":1776303919640,"segment":3,"confidence":null,"iterationTokens":176,"asi":{"hypothesis":"Return to the cached smoke benchmark so iteration work can continue while tracking the rebuild nondeterminism separately.","result":"Established new segment baseline at total_ms=14848 with build_ms=13268 and run_ms=1579.","validation":"Smoke run still passed 18/18 through 04-env.ion; rebuild nondeterminism was recorded in autoresearch.ideas.md instead of blocking the loop.","learned_issue":"Re-initializing the benchmark segment raised the first cached baseline; expect at least one more rerun before treating sub-second build_ms moves as real.","next_action_hint":"Either rerun once more to refresh the noise floor on this new segment, or pursue a larger structural win like a dedicated smoke profile that trims packages and scripts."}}
{"type":"config","name":"Redox iteration speed: dedicated functional-smoke-test image and smoke run","metricName":"total_ms","metricUnit":"ms","bestDirection":"lower"}
{"run":7,"commit":"d66ecd0","metric":19818,"metrics":{"build_ms":18655,"run_ms":1162,"image_bytes":939524096},"status":"keep","description":"Dedicated smoke profile baseline: added `functional-smoke-test` image/package with only scripts 01-04 and minimal packages, so the smoke suite finishes normally instead of relying on stop-after-script over the full functional image.","timestamp":1776304102794,"segment":4,"confidence":null,"iterationTokens":131,"asi":{"hypothesis":"A dedicated smoke image should give a cleaner iteration benchmark than slicing the full functional-test image at runtime.","result":"Established new-target baseline at total_ms=19818 with run_ms=1162; image_bytes stayed at 939524096 because the smoke profile still inherits the default disk sizing.","validation":"Smoke suite completed normally and passed 18/18 without the host-side stop-after-script shortcut.","learned_issue":"Removing packages/scripts alone is not enough; fixed disk sizing dominates image_bytes and likely much of build_ms.","next_action_hint":"Cut smoke-profile `/boot` diskSizeMB and espSizeMB next so the smaller package set produces a materially smaller image."}}
{"run":8,"commit":"d66ecd0","metric":0,"metrics":{"build_ms":0,"run_ms":0,"image_bytes":0},"status":"crash","description":"Smoke-image downsizing attempt to `diskSizeMB=384` / `espSizeMB=96` crashed the build: `redoxfs-ar` ran out of space while archiving the root tree.","timestamp":1776304160274,"segment":4,"confidence":null,"iterationTokens":4143,"asi":{"hypothesis":"The dedicated smoke profile can use a much smaller disk/ESP because it ships only scripts 01-04 and minimal packages.","rollback_reason":"RedoxFS partition was too small; build failed before benchmarking with `No space left on device` from `redoxfs-ar`.","next_action_hint":"Retry with a larger RedoxFS partition, likely keeping the 96MB ESP but raising total disk size enough for the actual root tree plus archive slack.","failure_detail":"`redox-redoxfs.drv` failed with `redoxfs-ar: failed to archive root: No space left on device (os error 28)`.","learned_size_bound":"384MB total with a 96MB ESP is below the working floor for the smoke profile."}}
{"run":9,"commit":"d66ecd0","metric":0,"metrics":{"build_ms":0,"run_ms":0,"image_bytes":0},"status":"crash","description":"Second smoke-image downsizing attempt to `diskSizeMB=512` / `espSizeMB=96` still crashed the build with `redoxfs-ar` out-of-space.","timestamp":1776304214159,"segment":4,"confidence":null,"iterationTokens":2458,"asi":{"hypothesis":"A 512MB total image with a 96MB ESP might still leave enough RedoxFS room for the smoke profile while materially shrinking image size.","rollback_reason":"RedoxFS partition remained too small; build failed before benchmarking with `No space left on device`.","next_action_hint":"Try a larger total size, likely 640MB or 768MB, while keeping the smaller ESP if it still fits the boot artifacts.","failure_detail":"`redox-redoxfs.drv` again failed with `redoxfs-ar: failed to archive root: No space left on device (os error 28)`.","learned_size_bound":"512MB total with a 96MB ESP is still below the working floor for the smoke profile."}}
{"run":10,"commit":"d66ecd0","metric":20531,"metrics":{"build_ms":19449,"run_ms":1081,"image_bytes":671088640},"status":"discard","description":"Smoke image at `diskSizeMB=640` / `espSizeMB=96` finally built and cut image size to 640MiB, but the first measured total_ms was still slightly worse than baseline.","timestamp":1776304275422,"segment":4,"confidence":null,"iterationTokens":2478,"asi":{"hypothesis":"Shrinking the smoke image to 640MB total with a 96MB ESP will reduce copy/build cost enough to outweigh any rebuild noise.","rollback_reason":"Primary metric regressed from 19818ms to 20531ms on the first full run, so the size cut did not yet pay for itself under this benchmark.","next_action_hint":"If size reduction still looks promising, rerun the exact 640/96 candidate once more to separate first-build noise from a real regression before abandoning it.","result":"image_bytes dropped from 939524096 to 671088640 and run_ms improved to 1081ms, but build_ms increased to 19449ms.","observed_tradeoff":"Smaller image helps run/copy path, but the build phase remains dominant and noisy."}}
{"run":11,"commit":"53ea410","metric":9105,"metrics":{"build_ms":8044,"run_ms":1060,"image_bytes":671088640},"status":"keep","description":"Keep the 640MB smoke image: setting `diskSizeMB=640` and `espSizeMB=96` in `functional-smoke-test` cuts image size by 28.6% and, on rerun after the initial rebuild noise, drops total_ms from 19818 to 9105.","timestamp":1776304303333,"segment":4,"confidence":15.025245441795231,"iterationTokens":1606,"asi":{"hypothesis":"The 640/96 smoke image was probably a real win hidden by first-build noise; a rerun should show the steady-state benefit of the much smaller image.","result":"Improved total_ms to 9105 with build_ms=8044, run_ms=1060, image_bytes=671088640.","validation":"Smoke suite still passed 18/18 to completion on the downsized image.","noise_note":"First run after resizing rebuilt fresh outputs and measured 20531ms; second run on the same code dropped to 9105ms, so the initial regression was warmup/rebuild noise rather than a real steady-state loss.","next_action_hint":"Probe whether 576MB or 608MB total can still fit, or shift to builder-side wins like faster RedoxFS image allocation now that image size is under control."}}
{"run":12,"commit":"53ea410","metric":18026,"metrics":{"build_ms":17045,"run_ms":980,"image_bytes":603979776},"status":"discard","description":"First run of the 576MB smoke image built and shrank the image again, but the initial measured total_ms was still above the current 640MB steady-state best.","timestamp":1776304346425,"segment":4,"confidence":8.553293413173654,"iterationTokens":1310,"asi":{"hypothesis":"Dropping the smoke image from 640MB to 576MB should preserve enough space while cutting copy/build cost further.","rollback_reason":"Primary metric on the first run was still worse than the current best 9105ms, so the candidate needs a rerun to prove a steady-state win before keeping.","next_action_hint":"Reapply the 576MB change and rerun once; if the second pass lands below 9105ms, keep it.","result":"image_bytes fell to 603979776 and run_ms improved to 980ms, but build_ms stayed high on the first rebuild.","observed_tradeoff":"Initial rebuild noise still dominates the first measurement after image-size changes."}}
{"run":13,"commit":"53ea410","metric":21344,"metrics":{"build_ms":18515,"run_ms":2826,"image_bytes":603979776},"status":"discard","description":"Second pass on the 576MB smoke image was decisively worse: build_ms stayed high and run_ms spiked to 2.8s, so 576MB is not a reliable improvement over the 640MB image.","timestamp":1776304397426,"segment":4,"confidence":7.020314547837484,"iterationTokens":1133,"asi":{"hypothesis":"If the 576MB image was a real steady-state win, a second run after reapplying it would fall below the 640MB best.","rollback_reason":"The rerun regressed badly to 21344ms with an unstable run_ms, so the 576MB size is not a trustworthy improvement.","next_action_hint":"Stick with 640MB and try a different axis, such as faster RedoxFS allocation or cheaper test-run copy behavior.","result":"Smaller image alone did not beat the 640MB configuration.","observed_instability":"run_ms jumped from 980ms to 2826ms across two 576MB runs, suggesting this size change is not robust under the current harness."}}
{"run":14,"commit":"53ea410","metric":16925,"metrics":{"build_ms":15871,"run_ms":1053,"image_bytes":671088640},"status":"discard","description":"First fallocate pass on RedoxFS image allocation built cleanly and kept the smaller 640MB smoke image, but the initial measured total_ms stayed above the current best.","timestamp":1776304447816,"segment":4,"confidence":5.941763727121464,"iterationTokens":1543,"asi":{"hypothesis":"Replacing the 540MB zero-fill `dd` in `make-redoxfs-image.nix` with `fallocate` plus a safe fallback should cut build time for the 640MB smoke image.","rollback_reason":"Primary metric on the first run was still worse than the best 9105ms, so this needs a rerun to separate rebuild noise from a real win.","next_action_hint":"Reapply the fallocate change and rerun once; if the second pass beats 9105ms, keep it.","result":"Candidate preserved image_bytes=671088640 and slightly improved run_ms, but first-run build_ms remained rebuild-dominated.","observed_tradeoff":"Builder-side changes still pay a first-run rebuild penalty under this cached benchmark."}}
{"run":15,"commit":"a9a8838","metric":8870,"metrics":{"build_ms":7812,"run_ms":1057,"image_bytes":671088640},"status":"keep","description":"Keep the faster RedoxFS allocation path: `make-redoxfs-image.nix` now tries `fallocate` before falling back to zero-fill `dd`, shaving the 640MB smoke benchmark from 9105ms to 8870ms.","timestamp":1776304476325,"segment":4,"confidence":4.370459081836327,"iterationTokens":1077,"asi":{"hypothesis":"The first fallocate run was rebuild-noisy; rerunning the same 640MB image with fallocate should reveal whether the allocation shortcut wins in steady state.","result":"Improved total_ms to 8870 with build_ms=7812 and unchanged image_bytes=671088640.","validation":"Smoke suite still passed 18/18 on the 640MB image; fallback keeps unsupported filesystems on the old dd path.","key_design_choice":"Use `fallocate` opportunistically with a silent fallback to `dd`, so Linux filesystems that support preallocation get the speedup without sacrificing portability.","next_action_hint":"Measure whether runner-side image copy can shrink further, or try reducing the 96MB ESP now that boot still succeeds comfortably."}}
{"run":16,"commit":"a9a8838","metric":18412,"metrics":{"build_ms":17373,"run_ms":1038,"image_bytes":637534208},"status":"discard","description":"First pass on a 608MB / 64MB-ESP smoke image built and kept the winning 540MB RedoxFS partition size, but the initial measured total_ms stayed above the current best.","timestamp":1776304526216,"segment":4,"confidence":5.598568141140373,"iterationTokens":1488,"asi":{"hypothesis":"Keeping the 540MB RedoxFS partition while shrinking the ESP to 64MB and the total image to 608MB should reduce copy/build cost without reintroducing space pressure.","rollback_reason":"Primary metric on the first run was still worse than the best 8870ms, so this needs a rerun before it can be trusted.","next_action_hint":"Reapply the 608/64 change and rerun once; if steady-state total_ms drops below 8870ms, keep it.","result":"image_bytes fell slightly further to 637534208 and run_ms improved to 1038ms, but first-run build noise dominated total_ms.","key_design_choice":"Hold the RedoxFS partition constant at 540MB while reclaiming space from the oversized ESP."}}
{"run":17,"commit":"a4e8b07","metric":8700,"metrics":{"build_ms":7654,"run_ms":1044,"image_bytes":637534208},"status":"keep","description":"Keep the 608MB smoke image with a 64MB ESP: preserving the 540MB RedoxFS partition while shrinking the ESP trims the image to 608MiB and improves total_ms from 8870 to 8700.","timestamp":1776304551950,"segment":4,"confidence":4.438323353293413,"iterationTokens":1023,"asi":{"hypothesis":"The first 608/64 run was rebuild-noisy; steady-state should beat the 640/96 image because RedoxFS room stays constant while total image bytes drop further.","result":"Improved total_ms to 8700 with build_ms=7654, run_ms=1044, image_bytes=637534208.","validation":"Smoke suite still passed 18/18 and boot artifacts fit inside the 64MB ESP.","key_design_choice":"Cut only the oversized ESP; keep RedoxFS capacity unchanged at 540MB to avoid reintroducing space-related instability.","next_action_hint":"Explore whether the runner copy path can exploit sparsity or cheaper copy flags now that the disk image is smaller, or test whether a slightly smaller ESP still boots reliably."}}
{"run":18,"commit":"a4e8b07","metric":16814,"metrics":{"build_ms":15743,"run_ms":1070,"image_bytes":637534208},"status":"discard","description":"First targeted-chmod pass in `make-redoxfs-image.nix` built cleanly, replacing the recursive `chmod -R u+w root/` with a narrow set of writable directories and a dotfile-safe copy, but the initial measured total_ms stayed above the current best.","timestamp":1776304634329,"segment":4,"confidence":4.119303445720638,"iterationTokens":3068,"asi":{"hypothesis":"Avoiding the full-tree recursive chmod after copying rootTree should trim image-build work now that the smoke profile only needs a few directories writable.","rollback_reason":"Primary metric on the first run was still worse than the best 8700ms, so the candidate needs a steady-state rerun before keeping.","next_action_hint":"Reapply the targeted-chmod change and rerun once; if the second pass beats 8700ms, keep it.","result":"Candidate preserved image_bytes=637534208 and smoke correctness, but first-run build noise still dominated total_ms.","key_design_choice":"Make only `root`, `/tmp`, `/etc`, `/etc/ssh`, `/nix`, `/nix/store`, `/usr`, and `/usr/lib` writable instead of chmodding every copied file."}}
{"run":19,"commit":"159fa82","metric":8659,"metrics":{"build_ms":7612,"run_ms":1046,"image_bytes":637534208},"status":"keep","description":"Keep the targeted chmod/copy path in `make-redoxfs-image.nix`: copy with `${rootTree}/.` and make only the handful of directories we actually mutate writable, trimming the 608MB smoke benchmark from 8700ms to 8659ms.","timestamp":1776304662820,"segment":4,"confidence":3.0945646145313366,"iterationTokens":1060,"asi":{"hypothesis":"The first targeted-chmod run was rebuild-noisy; steady state should show whether avoiding a full recursive chmod wins anything on the smaller smoke image.","result":"Improved total_ms to 8659 with build_ms=7612 and unchanged image_bytes=637534208.","validation":"Smoke suite still passed 18/18 on the 608MB image.","key_design_choice":"Use dotfile-safe `cp -r ${rootTree}/.` and replace `chmod -R u+w root/` with targeted directory writes only.","next_action_hint":"Runner-side copy path is now the next obvious small lever; test whether `cp --reflink=auto --sparse=always` helps when copying the raw image into the VM work dir."}}
{"run":20,"commit":"159fa82","metric":9024,"metrics":{"build_ms":7992,"run_ms":1031,"image_bytes":637534208},"status":"discard","description":"Runner copy experiment with `cp --reflink=auto --sparse=always` did not help the 608MB smoke benchmark; total_ms regressed slightly despite a small run_ms drop.","timestamp":1776304695708,"segment":4,"confidence":2.743117010816126,"iterationTokens":1295,"asi":{"hypothesis":"Preserving holes or opportunistic reflinks when copying the raw image into the VM work dir might shave runner startup time.","rollback_reason":"Primary metric regressed from 8659ms to 9024ms, so any run_ms gain was outweighed by build/package overhead or no-op behavior.","next_action_hint":"Skip copy-flag tweaks for now; better ROI likely comes from more structural image-size or builder-path changes.","result":"run_ms improved modestly to 1031ms, but build_ms rose to 7992ms and total_ms worsened.","observed_tradeoff":"Copy-path tweaks are too small relative to benchmark noise and package rebuild overhead."}}
{"run":21,"commit":"159fa82","metric":14333,"metrics":{"build_ms":13327,"run_ms":1005,"image_bytes":637534208},"status":"discard","description":"First sparse-dd pass in `make-disk-image.nix` built cleanly and trimmed run_ms, but the initial measured total_ms stayed above the current best because the changed disk image had to rebuild.","timestamp":1776304757588,"segment":4,"confidence":3.002152273338714,"iterationTokens":1868,"asi":{"hypothesis":"Using `dd conv=sparse,notrunc` when assembling the final disk image will preserve holes from the sparse partition images, cutting disk-image write and copy work.","rollback_reason":"Primary metric on the first run was still worse than the best 8659ms, so this needs a steady-state rerun before keeping.","next_action_hint":"Reapply the sparse-dd change and rerun once; if the second pass beats 8659ms, keep it.","result":"run_ms improved to 1005ms while image_bytes stayed constant, suggesting sparse physical writes may help even though apparent size is unchanged.","key_design_choice":"Preserve sparsity during final GPT assembly rather than forcing zero blocks to become real writes."}}
{"run":22,"commit":"159fa82","metric":8812,"metrics":{"build_ms":7786,"run_ms":1025,"image_bytes":637534208},"status":"discard","description":"Steady-state sparse-dd image assembly did not beat the current best; preserving holes in the final GPT image helped run_ms somewhat but still landed slightly above the targeted-chmod baseline.","timestamp":1776304786562,"segment":4,"confidence":2.0803504847129006,"iterationTokens":990,"asi":{"hypothesis":"If sparse final-image assembly was a real win, the rerun after rebuilding the disk image once would beat 8659ms.","rollback_reason":"Second-pass total_ms was 8812ms, still worse than the current best 8659ms, so this variant is not worth keeping.","next_action_hint":"Keep the simpler non-sparse disk assembly and look for higher-ROI wins elsewhere.","result":"build_ms=7786 and run_ms=1025 were both respectable, but not enough to beat the best total.","observed_tradeoff":"Sparse final-image assembly narrows the gap but does not outperform the current 608MB + fallocate + targeted-chmod combination."}}
{"run":23,"commit":"159fa82","metric":20501,"metrics":{"build_ms":19346,"run_ms":1154,"image_bytes":637534208},"status":"discard","description":"First `extraPkgs = {}` pass for `functionalSmokeTestSystem` built cleanly but, on the initial rebuild of the smoke outputs, measured worse than the current best.","timestamp":1776305095055,"segment":4,"confidence":3.002152273338714,"iterationTokens":4159,"asi":{"hypothesis":"The smoke test only uses core packages from the flat package set, so dropping the large `extraPkgs` attrset from `functionalSmokeTestSystem` should cut flake eval/build graph overhead.","rollback_reason":"Primary metric on the first run was still worse than the best 8659ms, so this needs a steady-state rerun before keeping.","next_action_hint":"Reapply the `extraPkgs = {}` change and rerun once; if the second pass beats 8659ms, keep it.","result":"Candidate preserved image_bytes but first-run build_ms remained rebuild-dominated.","key_design_choice":"Let the smoke system depend only on the flat package set instead of threading the full extra package overlay through mkSystem."}}
{"run":24,"commit":"9042d4d","metric":8194,"metrics":{"build_ms":7177,"run_ms":1016,"image_bytes":637534208},"status":"keep","description":"Keep `extraPkgs = {}` for `functionalSmokeTestSystem`: the smoke image only needs the flat package set, and dropping the large extra overlay lowers steady-state total_ms from 8659 to 8194.","timestamp":1776305121662,"segment":4,"confidence":2.1670395227442207,"iterationTokens":977,"asi":{"hypothesis":"The first no-extraPkgs run was rebuild-noisy; a steady-state rerun would show whether trimming the smoke system’s package graph reduces eval/build overhead.","result":"Improved total_ms to 8194 with build_ms=7177 and run_ms=1016.","validation":"Smoke suite still passed 18/18 with unchanged image_bytes and package contents needed by the smoke profile.","key_design_choice":"Keep the smoke test isolated from the large `extraPkgs` overlay; rely only on the flat package set already present in `mkSystem`.","next_action_hint":"Next likely ROI is reducing remaining eval/store traversal around the benchmark package, or probing whether the smoke runner can use a lighter VM config without hurting boot/test stability."}}
{"run":25,"commit":"9042d4d","metric":8345,"metrics":{"build_ms":7293,"run_ms":1051,"image_bytes":637534208},"status":"discard","description":"Lowering smoke VM resources to 512MB / 1 vCPU slightly regressed the benchmark; the smaller VM did not offset the slower boot/test path.","timestamp":1776305154822,"segment":4,"confidence":2.1192342752962627,"iterationTokens":1355,"asi":{"hypothesis":"A smaller VM for the smoke suite might reduce launch overhead enough to beat the current 1024MB / 2 vCPU config.","rollback_reason":"Primary metric regressed from 8194ms to 8345ms, with both build_ms and run_ms slightly worse.","next_action_hint":"Keep the 1024MB / 2 vCPU smoke VM and focus on build-graph or image-assembly changes instead.","result":"The lighter VM was not faster for this workload.","observed_tradeoff":"Reducing VM resources increased run_ms enough to outweigh any launch savings."}}
{"run":26,"commit":"9042d4d","metric":18256,"metrics":{"build_ms":17232,"run_ms":1023,"image_bytes":629145600},"status":"discard","description":"First 600MB / 56MB-ESP pass built and booted, trimming the image a bit further, but the initial measured total_ms stayed above the current best.","timestamp":1776305319889,"segment":4,"confidence":2.1670395227442207,"iterationTokens":8038,"asi":{"hypothesis":"If 64MB ESP is still oversized, dropping to 56MB and a 600MB total image should shave a little more copy/build cost while preserving the same smoke workload.","rollback_reason":"Primary metric on the first run was still worse than the best 8194ms, so this needs a steady-state rerun before keeping.","next_action_hint":"Reapply the 600/56 sizing and rerun once; if the second pass beats 8194ms, keep it.","result":"image_bytes fell to 629145600 and run_ms improved to 1023ms, but first-run build noise dominated total_ms.","key_design_choice":"Trim both total image and ESP cautiously while staying above the observed boot artifact footprint."}}
{"run":27,"commit":"9042d4d","metric":8412,"metrics":{"build_ms":7398,"run_ms":1013,"image_bytes":629145600},"status":"discard","description":"Steady-state 600MB / 56MB-ESP sizing still missed the current best; the slightly smaller image improved run_ms but not enough to beat the 608MB / 64MB configuration.","timestamp":1776305345626,"segment":4,"confidence":2.1192342752962627,"iterationTokens":1017,"asi":{"hypothesis":"If 600/56 were better than 608/64, the rerun after rebuilding once would beat 8194ms.","rollback_reason":"Second-pass total_ms was 8412ms, still above the best 8194ms, so this extra size cut is not worth keeping.","next_action_hint":"Stick with 608/64 and look for non-sizing wins; smaller disk tweaks are now in diminishing-returns territory.","result":"image_bytes dropped to 629145600 and run_ms to 1013ms, but build_ms remained worse than the best configuration.","observed_tradeoff":"ESP/disk size tweaks below 608/64 reduce bytes but no longer improve total benchmark time."}}
{"run":28,"commit":"9042d4d","metric":8441,"metrics":{"build_ms":7408,"run_ms":1032,"image_bytes":637534208},"status":"discard","description":"Building only `.#functionalSmokeTest` and discovering the disk image via `nix path-info -r` was slightly slower than building the runner and image together.","timestamp":1776305470687,"segment":4,"confidence":3.3697637338744744,"iterationTokens":1017,"asi":{"hypothesis":"Dropping the second top-level `nix build` target would reduce eval and closure-traversal overhead because the runner already depends on the smoke disk image.","rollback_reason":"Primary metric regressed from 8194ms to 8441ms on a steady-state script-only change, so the extra `nix path-info -r` walk costs more than the second installable saves.","next_action_hint":"Avoid extra closure walks in the harness; higher ROI is likely inside the flake output graph or image build path, not shell-level target selection.","result":"No-op benchmark semantics preserved, but build_ms worsened to 7408ms.","observed_tradeoff":"One build target plus one recursive path-info scan lost to the two-target direct build."}}
{"run":29,"commit":"9ce18e8","metric":8112,"metrics":{"build_ms":7082,"run_ms":1029,"image_bytes":637534208},"status":"keep","description":"Keep the Cloud-Hypervisor-only smoke runner path: parameterized `mkVmTest` / `mkFunctionalTest` to disable unused VMM backends, and `functionalSmokeTest` now emits a CH-only runner without QEMU/OVMF baggage, lowering total_ms from 8194 to 8112.","timestamp":1776305694712,"segment":4,"confidence":11.788519637462235,"iterationTokens":15917,"asi":{"hypothesis":"The smoke benchmark runs only on KVM/Cloud Hypervisor here, so omitting the unused QEMU backend from the smoke runner closure should reduce package-graph and closure-traversal overhead.","result":"Improved total_ms to 8112 with build_ms=7082 and unchanged image_bytes.","validation":"Smoke suite still passed 18/18; general functional-test runners still keep both backends, while smoke runner explicitly uses `defaultMode = \"ch\"` and `enableQemu = false`.","key_design_choice":"Make VMM backend inclusion explicit in `mkVmTest` instead of always embedding both launchers into every runner script.","next_action_hint":"Re-measure closure size and look for the next removable runner dependency, or prune stale ideas and try a deeper build-graph reduction if remaining gains are now sub-100ms."}}
{"run":30,"commit":"9ce18e8","metric":0,"metrics":{"build_ms":0,"run_ms":0,"image_bytes":0},"status":"crash","description":"Canonicalizing GitLab URLs to add `.git` crashed immediately: flake-style `gitlab:` inputs treat `.git` as part of the project path, so `object.git` fetched a nonexistent project.","timestamp":1776305792039,"segment":4,"confidence":11.788519637462235,"iterationTokens":5068,"asi":{"hypothesis":"Eliminating the repeated GitLab redirect warnings by switching URLs to their canonical `.git` forms might cut eval/build overhead.","rollback_reason":"`gitlab:` flake input syntax does not accept the `.git` suffix as a harmless alias; it changed the project name and broke fetch with HTTP 404 before the benchmark started.","next_action_hint":"If warning cleanup still looks worthwhile, only adjust plain HTTPS/git fetch URLs, not `gitlab:` flake input shorthands.","failure_detail":"Fetch failed for `gitlab:andypython/object.git/master?host=gitlab.redox-os.org` with `404 Project Not Found`.","learned_scope":"Need to split flake-input URL handling from raw git URL handling; they are not interchangeable."}}
{"run":31,"commit":"9ce18e8","metric":8176,"metrics":{"build_ms":7130,"run_ms":1046,"image_bytes":637534208},"status":"discard","description":"Preferring `/dev/shm` for the VM work dir did not beat the current best; tmpfs staging was effectively a wash for this smoke workload.","timestamp":1776305853261,"segment":4,"confidence":12.717001629549157,"iterationTokens":1738,"asi":{"hypothesis":"Creating the VM work dir on `/dev/shm` when available would shave image-copy and runner I/O overhead without changing semantics.","rollback_reason":"Primary metric regressed slightly from 8112ms to 8176ms on a steady-state runner-only change, so the tmpfs preference is not worth keeping.","next_action_hint":"Leave work-dir placement alone; remaining gains likely need build-graph trimming rather than filesystem staging tweaks.","result":"No benchmark win despite using tmpfs staging.","observed_tradeoff":"build_ms changed only marginally and run_ms actually worsened a bit, so the current disk-backed temp dir is already good enough here."}}
{"run":32,"commit":"14d9857","metric":7891,"metrics":{"build_ms":6853,"run_ms":1037,"image_bytes":637534208},"status":"keep","description":"Keep flake input pruning: removed unused `redox-liner-src` from `flake.nix`/`flake.lock`, which trims steady-state smoke total_ms from 8112 to 7891.","timestamp":1776305993541,"segment":4,"confidence":13.077850877192983,"iterationTokens":4070,"asi":{"hypothesis":"Even unused flake inputs can cost eval/fetch overhead on every benchmark run, so removing the unreferenced `redox-liner-src` input should reduce build_ms.","result":"Improved total_ms to 7891 with build_ms=6853 and unchanged image_bytes.","validation":"Smoke suite still passed 18/18; search confirmed `redox-liner-src` had no code references outside lock/examples before removal.","key_design_choice":"Treat unused flake inputs as benchmark-visible dependency graph bloat and prune them instead of trying to canonicalize their redirecting URLs.","next_action_hint":"Look for other unused or smoke-irrelevant flake inputs/overlay edges that still fetch or evaluate on every run, and prune them carefully."}}
{"run":33,"commit":"14d9857","metric":79912,"metrics":{"build_ms":78895,"run_ms":1016,"image_bytes":637534208},"status":"discard","description":"First raw-git URL canonicalization pass rebuilt large parts of the ion/relibc dependency graph, so the initial benchmark was dominated by one-time package rebuild cost.","timestamp":1776306173923,"segment":4,"confidence":11.220131702728128,"iterationTokens":3674,"asi":{"hypothesis":"Adding `.git` to the raw GitLab fetch URLs for `liner`, `calc`, `small`, and relibc's `object` source will remove redirect overhead on steady-state smoke builds.","rollback_reason":"Primary metric exploded on the first run because changing the source fetch URLs forced a large rebuild, so this pass cannot be judged without a steady-state rerun.","next_action_hint":"Reapply `/tmp/redox-git-url-dotgit.patch` and rerun once; if the second pass beats 7891ms and the redirect warnings drop, keep it.","result":"Smoke suite still passed and run_ms stayed normal, so the regression was build-graph churn rather than runtime breakage.","saved_patch":"/tmp/redox-git-url-dotgit.patch","observed_tradeoff":"Source URL normalization may still help steady state, but its first-run cost is very high."}}
{"run":34,"commit":"14d9857","metric":7966,"metrics":{"build_ms":6953,"run_ms":1012,"image_bytes":637534208},"status":"discard","description":"Steady-state raw-git URL `.git` normalization did not help; redirect warnings were unchanged and total_ms still landed slightly above the current best.","timestamp":1776306212060,"segment":4,"confidence":11.273156899810964,"iterationTokens":1137,"asi":{"hypothesis":"If canonical raw Git URLs mattered, the rerun after one-time rebuild cost would beat 7891ms and reduce the warning spam.","rollback_reason":"Second-pass total_ms was 7966ms, still worse than the best 7891ms, and the same four redirect warnings remained.","next_action_hint":"Drop the URL-canonicalization path entirely; the warnings are not coming from these raw fetch URLs in a way that matters to this benchmark.","result":"No steady-state win; warning source likely lies elsewhere (for example flake inputs or fetcher internals).","observed_tradeoff":"Expensive first-run rebuild plus no warning reduction makes this path stale."}}
{"run":35,"commit":"14d9857","metric":8008,"metrics":{"build_ms":6976,"run_ms":1031,"image_bytes":637534208},"status":"discard","description":"First `tokei-src` top-level input removal rebuilt no smoke artifacts but did pay the one-time flake.lock update cost, leaving the initial run slightly above the current best.","timestamp":1776306349171,"segment":4,"confidence":12.423958333333333,"iterationTokens":7200,"asi":{"hypothesis":"Moving unused-on-benchmark package sources like `tokei-src` out of top-level flake inputs and into package-local fetchers should shrink flake evaluation overhead without affecting the smoke workflow.","rollback_reason":"Primary metric on the first run was still above the best 7891ms, and the run included a one-time lock-file removal update, so it is not enough evidence to keep.","next_action_hint":"Reapply `/tmp/redox-prune-tokei.patch` and rerun once; if steady state drops below 7891ms, keep it and consider the same treatment for similar GitHub-only tool inputs.","saved_patch":"/tmp/redox-prune-tokei.patch","result":"Smoke semantics unchanged; only top-level input plumbing changed.","observed_tradeoff":"The idea is still plausible, but first-run lock maintenance obscures its real steady-state cost."}}
{"run":36,"commit":"ae46ecf","metric":7335,"metrics":{"build_ms":6480,"run_ms":854,"image_bytes":637534208},"status":"keep","description":"Keep `tokei-src` pruning: moved `tokei` to a package-local `fetchFromGitHub` and removed the top-level `tokei-src` flake input, dropping steady-state total_ms from 7891 to 7335.","timestamp":1776306378848,"segment":4,"confidence":13.80862831858407,"iterationTokens":1318,"asi":{"hypothesis":"The first `tokei-src` removal run was lock-update noise; in steady state, shrinking the top-level flake input graph by moving smoke-irrelevant package sources local should reduce build_ms.","result":"Improved total_ms to 7335 with build_ms=6480 and run_ms=854.","validation":"Smoke suite still passed 18/18 with unchanged image size and no smoke-package behavior changes.","key_design_choice":"Keep smoke-irrelevant source fetches out of top-level flake inputs when they are only needed by one package definition.","next_action_hint":"Try the same treatment on the next unrelated top-level GitHub source input such as `lsd-src` or `shellharden-src`; this looks like a real class of wins, not a one-off."}}
{"run":37,"commit":"895a66e","metric":7333,"metrics":{"build_ms":6465,"run_ms":867,"image_bytes":637534208},"status":"keep","description":"Keep `lsd-src` pruning too: moved `lsd` to a package-local `fetchFromGitHub` and removed the top-level `lsd-src` flake input, yielding a small further drop from 7335 to 7333.","timestamp":1776306436472,"segment":4,"confidence":13.682191780821919,"iterationTokens":1524,"asi":{"hypothesis":"The same top-level input pruning that helped `tokei-src` should also help another smoke-irrelevant GitHub package input like `lsd-src`.","result":"Marginally improved total_ms to 7333 with build_ms=6465.","validation":"Smoke suite still passed 18/18; only unrelated package source plumbing changed.","key_design_choice":"Continue shrinking the top-level flake input graph by localizing package-only fetches.","next_action_hint":"Rerun once to see whether this 2ms gain is real or noise, then either keep pruning similar inputs or stop if the class is saturated."}}
{"run":38,"commit":"895a66e","metric":7588,"metrics":{"build_ms":6728,"run_ms":860,"image_bytes":637534208},"status":"discard","description":"Noise check after the `lsd-src` pruning keep: unchanged code reran slower, so the extra 2ms gain is within normal noise even though the broader input-pruning class still looks useful.","timestamp":1776306465849,"segment":4,"confidence":13.555917480998914,"iterationTokens":1405,"asi":{"hypothesis":"Repeat the unchanged `lsd-src`-pruned benchmark once to estimate whether the tiny 2ms win was real.","rollback_reason":"No code changes and worse total_ms than the current best; this rerun only measures noise.","next_action_hint":"Treat `lsd-src` pruning as at best neutral-to-small, and continue only with bigger input-pruning candidates or more structural wins.","observed_noise":"Steady-state rerun moved from 7333ms to 7588ms with no code changes; noise at this scale exceeds the measured 2ms gain.","result":"Useful noise measurement only."}}
{"run":39,"commit":"895a66e","metric":7519,"metrics":{"build_ms":6657,"run_ms":861,"image_bytes":637534208},"status":"discard","description":"First `shellharden-src` top-level input removal included the one-time lock update, so the initial result stayed above the current best.","timestamp":1776306526493,"segment":4,"confidence":12.282341367437285,"iterationTokens":1682,"asi":{"hypothesis":"Localizing another smoke-irrelevant GitHub tool source (`shellharden-src`) should continue shrinking top-level flake input overhead.","rollback_reason":"Primary metric on the first run was still above the best 7333ms, and the run paid the one-time lock-file removal cost, so it cannot be judged yet.","next_action_hint":"Reapply `/tmp/redox-prune-shellharden.patch` and rerun once; if steady state beats 7333ms, keep it.","saved_patch":"/tmp/redox-prune-shellharden.patch","result":"Smoke semantics unchanged; only package-source plumbing moved local.","observed_tradeoff":"Lock maintenance still obscures the first pass for this input-pruning class."}}
{"run":40,"commit":"895a66e","metric":7586,"metrics":{"build_ms":6726,"run_ms":859,"image_bytes":637534208},"status":"discard","description":"Steady-state `shellharden-src` pruning did not help; localizing that input left the benchmark above the current best.","timestamp":1776306553287,"segment":4,"confidence":11.227517985611511,"iterationTokens":1186,"asi":{"hypothesis":"If `shellharden-src` mattered like `tokei-src`, the rerun after lock maintenance would beat 7333ms.","rollback_reason":"Second-pass total_ms was 7586ms, still above the best 7333ms, so this extra input pruning is not worth keeping.","next_action_hint":"Treat `tokei-src` as the clear winner from this class for now; future pruning should target inputs with bigger per-run overhead or clearer smoke irrelevance.","result":"No steady-state win from removing `shellharden-src` as a top-level input.","observed_tradeoff":"Not every top-level input carries enough repeated overhead to justify localizing it."}}
{"run":41,"commit":"895a66e","metric":7596,"metrics":{"build_ms":6740,"run_ms":855,"image_bytes":637534208},"status":"discard","description":"Removing the unused top-level `object-src` input did not look promising even on the first pass; the same redirect warning remained and total_ms stayed well above the current best.","timestamp":1776306660683,"segment":4,"confidence":11.480459770114942,"iterationTokens":3788,"asi":{"hypothesis":"If `object-src` was unused top-level input bloat like `redox-liner-src`, pruning it should reduce flake input overhead.","rollback_reason":"Primary metric stayed far above the best 7333ms and, unlike the winning `tokei-src` pruning, the object redirect warning remained unchanged, weakening the case for a useful steady-state win.","next_action_hint":"Drop the `object-src` pruning path; the remaining object warning is coming from some other fetch path, so removing this input alone is stale.","result":"No sign that this unused input removal meaningfully helps the benchmark.","observed_tradeoff":"Lock-file churn without warning reduction makes this candidate low-ROI compared with proven wins."}}
{"run":42,"commit":"895a66e","metric":7626,"metrics":{"build_ms":6757,"run_ms":869,"image_bytes":637534208},"status":"discard","description":"First `exampled-src` pruning pass paid the one-time lock update cost and still landed above the current best, so it needs a steady-state rerun before judgment.","timestamp":1776306759720,"segment":4,"confidence":11.745061147695202,"iterationTokens":3557,"asi":{"hypothesis":"Another smoke-irrelevant top-level package source, `exampled-src`, might behave like `tokei-src` if moved into a package-local fetch.","rollback_reason":"Primary metric on the first run was still above the best 7333ms, and the run included one-time lock maintenance.","next_action_hint":"Reapply `/tmp/redox-prune-exampled.patch` and rerun once; if steady state beats 7333ms, keep it.","saved_patch":"/tmp/redox-prune-exampled.patch","result":"Smoke semantics unchanged; only `exampled` source plumbing moved local.","observed_tradeoff":"As with other input-pruning attempts, first-run lock churn obscures steady-state value."}}
{"run":43,"commit":"895a66e","metric":7763,"metrics":{"build_ms":6895,"run_ms":867,"image_bytes":637534208},"status":"discard","description":"Steady-state `exampled-src` pruning did not help; localizing that input still left the smoke benchmark well above the current best.","timestamp":1776306794766,"segment":4,"confidence":13.296059637912673,"iterationTokens":1174,"asi":{"hypothesis":"If `exampled-src` mattered like `tokei-src`, the rerun after lock maintenance would beat 7333ms.","rollback_reason":"Second-pass total_ms was 7763ms, still above the best 7333ms, so this input-pruning candidate is not worth keeping.","next_action_hint":"Stop random package-input pruning and focus only on candidates with clearer smoke-path reach or larger dependency-graph impact.","result":"No steady-state win from removing `exampled-src` as a top-level flake input.","observed_tradeoff":"The `tokei-src` win does not generalize automatically to unrelated package inputs."}}
{"run":44,"commit":"895a66e","metric":8740,"metrics":{"build_ms":7610,"run_ms":1128,"image_bytes":637534208},"status":"discard","description":"Adding runner-side `--print-image-path/--print-image-bytes` hooks and using them from `autoresearch.sh` regressed badly; shelling into the large runner script for metadata was slower than the old `nix path-info -r` path.","timestamp":1776307216263,"segment":4,"confidence":12.086156824782188,"iterationTokens":815,"asi":{"hypothesis":"Expose disk-image metadata directly from the VM runner so the harness can stop paying `nix path-info -r` closure-walk cost.","rollback_reason":"Two steady-state runs landed at 8676ms and 8740ms, far above the current best 7333ms, so invoking the generated runner script for metadata is a losing strategy.","next_action_hint":"If revisiting this class, emit static metadata files during derivation build instead of executing the runner script at benchmark time; otherwise move on to other graph/build reductions.","saved_patch":"/tmp/redox-runner-image-query.patch","result":"Smoke semantics unchanged, but build_ms rose sharply to ~7.6s.","observed_tradeoff":"A general-purpose CLI hook is nicer ergonomically, yet startup cost of the large shell runner dominates any saved closure query time."}}
{"run":45,"commit":"895a66e","metric":7808,"metrics":{"build_ms":6749,"run_ms":1058,"image_bytes":637534208},"status":"discard","description":"Reverting the harness to direct two-target `nix build .#functionalSmokeTest .#redox-functional-smoke-test` stayed slower than the current single-target-plus-query path on today's tree.","timestamp":1776307308877,"segment":4,"confidence":14.593804792518995,"iterationTokens":570,"asi":{"hypothesis":"Now that flake-input pruning and CH-only runner changes landed, direct top-level builds of both smoke outputs might beat the current single-target harness again.","rollback_reason":"Two runs landed at 8198ms and 7808ms, both still above the current best 7333ms, so switching back to the two-target harness is not a win.","next_action_hint":"Keep the current harness shape and look for lower-level graph/build reductions instead of toggling target selection again.","saved_patch":"/tmp/redox-two-target-build.patch","result":"Same smoke image and tests; only host build selection changed.","observed_tradeoff":"Directly requesting the disk-image output still costs more than discovering it through the current harness path on this tree."}}
{"run":46,"commit":"b3a7fca","metric":1264,"metrics":{"build_ms":208,"run_ms":1055,"image_bytes":637534208},"status":"keep","description":"Keep smoke-only package-graph trimming: `functionalSmokeTestSystem` now uses a minimal explicit `pkgs` set instead of the full flat package graph, collapsing cached smoke total_ms from 7333 to 1264 after warm-up.","timestamp":1776307649971,"segment":4,"confidence":22.76564417177914,"iterationTokens":1517,"asi":{"hypothesis":"The smoke image only needs a handful of packages; bypassing the full `mkFlatPkgs` graph for `functionalSmokeTestSystem` should stop Nix from touching lots of unrelated package/input edges on cached benchmark runs.","result":"After the one-time graph rebuild (16976ms) and first cached warm-up pass (7482ms), steady-state runs dropped to 1222ms and 1264ms with build_ms around 0.2s.","validation":"Smoke image bytes stayed 637534208 and the same 18/18 smoke tests still passed to completion under Cloud Hypervisor.","key_design_choice":"Construct a smoke-specific `pkgs` attrset with only `redoxfs`, `bootloader`, `bootloaderAutoboot`, `redoxfsTarget`, `bootstrap`, `initfsTools`, `kernel`, `kernelSyscallDebug`, `base`, `ion`, and `uutils`, then feed that directly to `redoxSystemFactory.redoxSystem`.","why_it_helps":"This avoids evaluating or chasing large unrelated userspace/infrastructure package sets for the smoke benchmark, eliminating the repeated redirect-warning/eval overhead that dominated cached build_ms.","next_action_hint":"Check whether the new lean package set can be generalized safely to other focused profiles without hiding required package references."}}
{"run":47,"commit":"b3a7fca","metric":7678,"metrics":{"build_ms":6625,"run_ms":1052,"image_bytes":637534208},"status":"discard","description":"Canonicalizing relibc's `object` git dependency at the Cargo.toml/Cargo.lock source level removed the `andypython/object` redirect warning, but by itself it did not beat the current benchmark.","timestamp":1776308374041,"segment":4,"confidence":23.956100710135573,"iterationTokens":4278,"asi":{"hypothesis":"The warning-heavy cached runs come from source-level git dependency redirects, so patching relibc's `object` URL to the canonical `.git` form in both Cargo metadata and cargo source mapping should trim first-run build_ms.","rollback_reason":"This removed one warning line but the steady warning-heavy run still landed at 7678ms, above the current best and only modestly better than nearby baseline warm-up runs.","next_action_hint":"If continuing this class, patch ion's source-level git deps (`liner`, `calc`, `small`) the same way; relibc-only canonicalization is too small to justify alone.","saved_patch":"/tmp/redox-relibc-object-git.patch","result":"`andypython/object` redirect warning disappeared; `liner`, `calc`, and `small` warnings remained.","observed_tradeoff":"Source-level canonicalization seems to attack the right mechanism, but one of four warnings is not enough for a clear primary-metric win."}}
{"type":"config","name":"Redox iteration speed: smoke benchmark snapshot excluding autoresearch dirtiness","metricName":"total_ms","metricUnit":"ms","bestDirection":"lower"}
{"run":48,"commit":"d3c4dbe","metric":8145,"metrics":{"build_ms":7051,"run_ms":1093,"image_bytes":637534208},"status":"keep","description":"Revert the false smoke-only `pkgs` trim from `functionalSmokeTestSystem`: the `smokePkgs` override in `nix/flake-modules/system.nix` was the only code change in `b3a7fca5`, and clean-worktree validation showed it regressed the new clean-snapshot benchmark badly.","timestamp":1776309311016,"segment":5,"confidence":null,"iterationTokens":3146,"asi":{"hypothesis":"Backing out the `smokePkgs` override and restoring `functionalSmokeTestSystem = mkSystem { ...; extraPkgs = { }; }` should recover the fast clean-snapshot benchmark because `b3a7fca5` turned a ~1.3s clean run into a ~10.3s clean run.","result":"Dirty-patch measurement improved the new segment baseline from 10949 to 8145 with build_ms=7051.","validation":"Detached clean worktree at `895a66e3` runs `./autoresearch.sh` in about 1315ms total, while detached clean worktree at `b3a7fca5` took about 10297ms; `git diff 895a66e3..b3a7fca5` shows `nix/flake-modules/system.nix` was the only product-code change.","key_design_choice":"Treat prior warm-cache-only gains as invalid and restore the last clean product-code state until a change proves itself under the cleaned benchmark harness.","next_action_hint":"Now that the branch is back to the fast clean state, attack remaining first-run redirect/warning overhead from source-level git dependency URLs, especially ion's `liner`/`calc`/`small` deps."}}
{"type":"config","name":"Redox iteration speed: stable snapshot smoke benchmark excluding autoresearch dirtiness","metricName":"total_ms","metricUnit":"ms","bestDirection":"lower"}
{"run":49,"commit":"d3c4dbe","metric":1321,"metrics":{"build_ms":224,"run_ms":1097,"image_bytes":637534208},"status":"discard","description":"Baseline run for the stable snapshot harness: reusing a persistent clean worktree snapshot removes autoresearch-file contamination and shows the real cached smoke benchmark is about 1.3s on the current code.","timestamp":1776309445898,"segment":6,"confidence":null,"iterationTokens":121,"asi":{"hypothesis":"A persistent snapshot worktree should preserve Nix eval caching while excluding autoresearch-file dirtiness, unlike the one-shot temp worktree path that forced ~7-8s reevaluation every run.","rollback_reason":"No product-code change in this run; this is baseline/benchmark-validation data only.","next_action_hint":"Now chase sub-100ms build_ms wins or remaining redirect-warning overhead under the stable harness instead of dirty-tree artifacts.","result":"Measured stable baseline at total_ms=1321 with build_ms=224 and run_ms=1097 on current HEAD `d3c4dbe`.","validation":"Two direct shell runs before run_experiment were consistent at 1407ms and 1360ms; warning spam disappeared once the persistent snapshot path was reused.","benchmark_fix":"Persistent snapshot path is required; recreating a fresh temp worktree each run invalidated the benchmark by forcing flake reevaluation."}}
{"run":50,"commit":"d3c4dbe","metric":8007,"metrics":{"build_ms":7198,"run_ms":809,"image_bytes":637534208},"status":"discard","description":"Cloud Hypervisor qcow2 overlay path slashed VM run_ms, but under the current edit-loop benchmark the added runner change still did not beat the current segment baseline.","timestamp":1776310157259,"segment":6,"confidence":null,"iterationTokens":28769,"asi":{"hypothesis":"Replace the CH runner's 605MiB raw-image copy with a tiny qcow2 overlay backed by the immutable store image, which should cut run_ms materially while preserving exact boot/test semantics.","rollback_reason":"Total_ms stayed far above the current segment baseline, so the qcow2 overlay path is not a clear overall win in this benchmark form even though run_ms improved.","next_action_hint":"If revisiting, compare against a no-op dirty control in the same file or pair it with build-phase reductions; otherwise focus on changes that reduce the dominant dirty build cost.","result":"run_ms dropped to 809ms, but build_ms remained about 7.2s and dominated total_ms.","observed_tradeoff":"This looks like a genuine runtime optimization hidden by dirty-tree build overhead, not a balanced end-to-end win yet."}}
{"type":"config","name":"Redox iteration speed: dirty-tree smoke benchmark excluding autoresearch files","metricName":"total_ms","metricUnit":"ms","bestDirection":"lower"}
{"run":51,"commit":"d3c4dbe","metric":8580,"metrics":{"build_ms":7505,"run_ms":1074,"image_bytes":637534208},"status":"discard","description":"Dirty-tree control for `nix/pkgs/default.nix`: a comment-only edit in the ion package definition shows the current no-op cost of touching this file under the edit-loop benchmark.","timestamp":1776310215552,"segment":7,"confidence":null,"iterationTokens":297,"asi":{"hypothesis":"Before changing ion's source mappings, measure the dirty-tree baseline cost of touching `nix/pkgs/default.nix` with no semantic change.","rollback_reason":"Comment-only control; no semantic improvement to keep.","next_action_hint":"Apply the real ion git-URL canonicalization in the same file and compare against this 8580ms control, not against the clean-tree baseline.","result":"Control run landed at total_ms=8580 with build_ms=7505.","control_use":"Use as dirty-tree reference for experiments that modify `nix/pkgs/default.nix`."}}
{"run":52,"commit":"d3c4dbe","metric":8390,"metrics":{"build_ms":7307,"run_ms":1082,"image_bytes":637534208},"status":"discard","description":"Ion source-level `.git` canonicalization in `nix/pkgs/default.nix` did not change the four redirect warnings and only nudged the dirty-tree metric within noise versus the 8580ms control.","timestamp":1776310287694,"segment":7,"confidence":null,"iterationTokens":2939,"asi":{"hypothesis":"Patching ion's `Cargo.toml`/`Cargo.lock` git URLs and matching `gitSources` to canonical `.git` forms would remove the `liner`/`calc`/`small` redirect overhead in dirty builds.","rollback_reason":"Redirect warnings were unchanged and the 8390ms result is only a small shift from the 8580ms comment-only control in the same file, so there is no clear causal win.","next_action_hint":"Stop pursuing ion URL canonicalization through `nix/pkgs/default.nix`; the warning source is elsewhere in the dirty eval path.","result":"No observable warning reduction; total_ms improved only 190ms against control.","control_reference":"run 51 dirty-tree control for `nix/pkgs/default.nix` was 8580ms with the same benchmark harness."}}
{"run":53,"commit":"0da6d9f","metric":7483,"metrics":{"build_ms":6449,"run_ms":1033,"image_bytes":637534208},"status":"keep","description":"Keep GitLab URL canonicalization where it actually matters: patch `ion-build-plan.json` to use `.git` for `liner`/`calc`/`small`, and update relibc's object source mapping to `.git`, cutting the dirty-tree smoke benchmark from the 8580ms control to 7483ms.","timestamp":1776310463545,"segment":7,"confidence":5.773684210526316,"iterationTokens":11179,"asi":{"hypothesis":"The dirty build warnings are driven by unit2nix/build-plan git source URLs, not the legacy `mkUserspace` ion package path, so canonicalizing the ion build plan plus relibc's object mapping should remove redirect overhead from the real smoke path.","result":"Second run dropped to total_ms=7483 with build_ms=6449; warning output shrank from four redirects to just the remaining `andypython/object.git` line.","validation":"First pass paid one-time remote fetch cost for the new canonical `liner.git`/`calc.git`/`small.git` URLs, but the second pass stayed green 18/18 with unchanged image size and only one warning left.","key_design_choice":"Patch the actual smoke-path metadata (`nix/pkgs/userspace/ion-build-plan.json`) instead of the unused legacy ion package definition in `nix/pkgs/default.nix`.","next_action_hint":"Apply the source-level relibc object canonicalization too so the last `andypython/object.git` warning disappears, then rerun to see if dirty build_ms drops further."}}
{"run":54,"commit":"0da6d9f","metric":80439,"metrics":{"build_ms":79124,"run_ms":1314,"image_bytes":637534208},"status":"discard","description":"First relibc source-level object canonicalization pass paid a huge one-time rebuild/fetch cost, so this run cannot judge the steady-state value of removing the last redirect warning.","timestamp":1776310602068,"segment":7,"confidence":2,"iterationTokens":3257,"asi":{"hypothesis":"Patching relibc's own `Cargo.toml`/`Cargo.lock` object URL to `.git`, on top of the kept source-mapping fix, should remove the final `andypython/object.git` warning and trim dirty build_ms further.","rollback_reason":"Primary metric was dominated by one-time rebuild cost (~79s build_ms), so this pass is unusable as a keep/discard signal.","next_action_hint":"Reapply `/tmp/redox-relibc-object-source.patch` and rerun once; if the second pass removes the last warning and beats 7483ms, keep it.","saved_patch":"/tmp/redox-relibc-object-source.patch","result":"Smoke suite still passed; regression came from rebuild churn, not runtime behavior.","observed_tradeoff":"Source-level canonicalization may still help steady state, but changing relibc's patched source invalidates much more cached work than the ion build-plan edit did."}}
{"run":55,"commit":"0c2e1ff","metric":7233,"metrics":{"build_ms":5374,"run_ms":1859,"image_bytes":637534208},"status":"keep","description":"Keep the final relibc object canonicalization: patching relibc's source metadata to `.git` removed the last redirect warning and dropped the dirty-tree smoke benchmark from 7483 to 7233.","timestamp":1776310653696,"segment":7,"confidence":1.4851157662624035,"iterationTokens":1124,"asi":{"hypothesis":"Once the one-time relibc source rebuild is out of the way, canonicalizing relibc's own `Cargo.toml`/`Cargo.lock` object URL to `.git` should remove the last `andypython/object.git` warning and trim dirty build_ms further.","result":"Second run removed all redirect warnings and improved total_ms to 7233 with build_ms=5374.","validation":"Smoke suite still passed 18/18 with unchanged image size; log start no longer shows any redirect warnings.","key_design_choice":"Canonicalize the actual source metadata for relibc, not just the cargo source mapping, because that final warning persisted until both layers matched.","observed_tradeoff":"run_ms was noisier on this pass, but the build_ms reduction was large enough to outweigh it by over 1.2s total.","next_action_hint":"Prune URL-warning ideas from the backlog and look for the next dirty-build hotspot now that the warning-heavy GitLab redirects are gone."}}
{"run":56,"commit":"0c2e1ff","metric":6552,"metrics":{"build_ms":5318,"run_ms":1233,"image_bytes":637534208},"status":"discard","description":"Validation rerun of the fully canonicalized GitLab metadata: unchanged code came in faster at 6552ms, confirming the relibc+ion warning cleanup is real and that the previous keep's run_ms was a noisy outlier.","timestamp":1776310697665,"segment":7,"confidence":2,"iterationTokens":1358,"asi":{"hypothesis":"Rerunning the unchanged fully canonicalized tree should confirm whether the 7233ms keep was real or just run_ms noise.","rollback_reason":"No code changes in this run; this is confirmation data only.","next_action_hint":"Treat the warning-cleanup class as finished and update the backlog toward post-warning dirty-build hotspots.","result":"Same code reran at total_ms=6552 with build_ms=5318 and no redirect warnings.","observed_noise":"Previous keep had run_ms=1859; rerun dropped to 1233 with the same build_ms neighborhood, so most remaining variance is runtime noise, not build regression."}}
{"run":57,"commit":"0c2e1ff","metric":6866,"metrics":{"build_ms":5506,"run_ms":1360,"image_bytes":637534208},"status":"discard","description":"First post-warning `object-src` top-level pruning pass included the one-time flake.lock update, so it cannot judge steady-state value yet.","timestamp":1776310837405,"segment":7,"confidence":1.4851157662624035,"iterationTokens":3979,"asi":{"hypothesis":"Now that relibc no longer needs the top-level `object-src` input and the warning class is fixed at the source/build-plan level, removing the unused flake input may shave a little more dirty eval overhead.","rollback_reason":"This first run paid the one-time lock-file removal cost and landed above the current observed best for the warning-cleaned tree, so it is not enough evidence to keep.","next_action_hint":"Reapply `/tmp/redox-prune-object-postwarn.patch` and rerun once; only keep if the steady-state rerun beats the current warning-cleaned runs.","saved_patch":"/tmp/redox-prune-object-postwarn.patch","result":"Smoke semantics unchanged; this was only flake-input plumbing.","observed_tradeoff":"With the warning class already fixed, any remaining gain from unused-input pruning is likely smaller and easier to drown in noise."}}
{"run":58,"commit":"0c2e1ff","metric":6733,"metrics":{"build_ms":5043,"run_ms":1689,"image_bytes":637534208},"status":"discard","description":"Steady-state post-warning `object-src` pruning did not pay off; build_ms improved a bit, but run_ms noise left total_ms above the current warning-cleaned best.","timestamp":1776310875760,"segment":7,"confidence":1.8825995807127882,"iterationTokens":1280,"asi":{"hypothesis":"If the now-unused top-level `object-src` input still carried measurable eval overhead, the rerun after lock maintenance would beat the current warning-cleaned tree.","rollback_reason":"Second-pass total_ms was 6733, still above the current observed best run for the warning-cleaned tree, so this extra flake-input pruning is not worth keeping.","next_action_hint":"Treat the URL-warning cleanup as the big remaining dirty-build win from this family; future work should target other hotspots, not more `object-src` plumbing.","result":"No clear overall win from removing the now-unused top-level `object-src` input.","observed_tradeoff":"build_ms dropped to 5043, but run_ms noise more than erased it at the primary metric level."}}
{"run":59,"commit":"0c2e1ff","metric":7101,"metrics":{"build_ms":5644,"run_ms":1456,"image_bytes":637534208},"status":"discard","description":"Dirty-tree control for `nix/flake-modules/system.nix`: comment-only touch near `mkFlatPkgs` measures the current no-op cost of editing this file under the smoke benchmark.","timestamp":1776311993666,"segment":7,"confidence":2.694,"iterationTokens":1280,"asi":{"hypothesis":"Before changing `mkFlatPkgs`, measure the dirty-tree baseline cost of touching `nix/flake-modules/system.nix` with no semantic change.","rollback_reason":"Comment-only control; no semantic improvement to keep.","next_action_hint":"Compare any `mkFlatPkgs` pruning against this 7101ms control, not just against earlier no-change reruns.","result":"Control run landed at total_ms=7101 with build_ms=5644.","control_use":"Use as dirty-tree reference for `system.nix` eval-path experiments."}}
{"run":60,"commit":"0c2e1ff","metric":7069,"metrics":{"build_ms":5601,"run_ms":1468,"image_bytes":637534208},"status":"discard","description":"Avoiding overridden `kernel`/`base` and `ion`/`userutils` values inside `mkFlatPkgs` did not buy a clear end-to-end win over the `system.nix` dirty-tree control.","timestamp":1776312063991,"segment":7,"confidence":3.592,"iterationTokens":1768,"asi":{"hypothesis":"If `mkFlatPkgs` eagerly evaluates the monolithic `modularPkgs.system` and overridden userspace entries before `//` discards them, selecting only the needed fields should reduce dirty-tree eval cost.","rollback_reason":"Total_ms only moved from the `system.nix` comment-only control 7101 to 7069, far too small and noisy to justify keeping.","next_action_hint":"Try the bigger eval hypothesis: remove the second `redox-env.nix` instantiation by having `system.nix` reuse environment data already computed in `packages.nix`.","result":"Smoke suite still passed, but build_ms only fell 43ms versus control.","control_reference":"run 59 `system.nix` dirty-tree control was 7101ms with build_ms=5644."}}
{"run":61,"commit":"0c2e1ff","metric":0,"metrics":{"build_ms":0,"run_ms":0,"image_bytes":0},"status":"crash","description":"First shared-env attempt crashed immediately because `system.nix` still referenced `inputs.*` later in the file after removing the old local `inputs = self.inputs` binding.","timestamp":1776312126227,"segment":7,"confidence":3.592,"iterationTokens":6232,"asi":{"hypothesis":"If `system.nix` reuses the environment already computed in `packages.nix` via `self'.legacyPackages`, the benchmark should avoid a second `redox-env.nix` / nixpkgs instantiation and cut eval-heavy build_ms.","rollback_reason":"Refactor broke evaluation before the benchmark started: `system.nix` had later `inputs.ripgrep-src` references and needed to keep the local `inputs = self.inputs` binding.","next_action_hint":"Restore the `inputs` binding and rerun the shared-env refactor; the failure was a local wiring bug, not evidence against the idea.","failure_detail":"`error: undefined variable 'inputs' at nix/flake-modules/system.nix:328:19`.","learned_scope":"System module can reuse shared env from `packages.nix`, but it still needs direct `inputs` for source-bundle helpers later in the file."}}
{"run":62,"commit":"0c2e1ff","metric":9170,"metrics":{"build_ms":7524,"run_ms":1645,"image_bytes":637534208},"status":"discard","description":"First shared-env pass regressed badly, so this run cannot justify the refactor yet; it likely paid a large one-time rebuild/eval churn from changing both `packages.nix` and `system.nix`.","timestamp":1776312175475,"segment":7,"confidence":2.694,"iterationTokens":2095,"asi":{"hypothesis":"If `system.nix` reuses `redox-env` data already computed in `packages.nix`, the smoke benchmark should avoid a second expensive env/nixpkgs instantiation and lower dirty build_ms.","rollback_reason":"Primary metric jumped to 9170ms on the first run, so this pass is not enough evidence to keep.","next_action_hint":"Reapply `/tmp/redox-share-redox-env.patch` and rerun once; if the second pass still loses to the 7101ms `system.nix` control and 6552 observed best, drop this refactor.","saved_patch":"/tmp/redox-share-redox-env.patch","result":"Smoke semantics stayed green; regression came from build/eval churn, not guest behavior.","observed_tradeoff":"Changing both flake modules appears to invalidate enough cached work that a second pass is needed before judging steady state."}}
{"run":63,"commit":"3813e84","metric":6126,"metrics":{"build_ms":4765,"run_ms":1361,"image_bytes":637534208},"status":"keep","description":"Keep shared flake env wiring: `packages.nix` now exports `legacyPackages.redoxEnv`, and `system.nix` reuses it instead of instantiating `redox-env.nix` a second time, dropping the dirty smoke benchmark from the 7101ms `system.nix` control to 6126.","timestamp":1776312198162,"segment":7,"confidence":4.6787416587225925,"iterationTokens":1412,"asi":{"hypothesis":"If `system.nix` reuses `redox-env` data already computed in `packages.nix`, the smoke benchmark should avoid a second expensive env/nixpkgs instantiation and lower dirty build_ms.","result":"Second pass improved total_ms to 6126 with build_ms=4765.","validation":"Smoke suite still passed 18/18 with unchanged image size. The first pass paid one-time churn from touching both flake modules, but the rerun beat both the 7101ms `system.nix` control and the prior warning-cleaned observed best.","key_design_choice":"Export the shared environment through `legacyPackages.redoxEnv` instead of adding new flake-module plumbing, so `system.nix` can reuse exactly the data already computed on the `packages.nix` path.","observed_tradeoff":"run_ms stayed noisy, but build_ms dropped by about 879ms versus the `system.nix` dirty control and about 553ms versus the prior warning-cleaned rerun.","next_action_hint":"Validation-rerun the kept shared-env tree, then prune stale ideas and look for the next flake-eval hotspot now that duplicate env evaluation is gone."}}
{"run":64,"commit":"3813e84","metric":5598,"metrics":{"build_ms":4622,"run_ms":976,"image_bytes":637534208},"status":"discard","description":"Validation rerun of the shared-env refactor came in even faster at 5598ms, confirming the duplicate `redox-env` evaluation was a real dirty-build hotspot and that the keep's run_ms was still a bit noisy.","timestamp":1776312213997,"segment":7,"confidence":4.469945355191257,"iterationTokens":1174,"asi":{"hypothesis":"Rerunning the unchanged shared-env tree should confirm whether the 6126ms keep was real or a one-off.","rollback_reason":"No code changes in this run; confirmation only.","next_action_hint":"Update notes/ideas around the eval hotspot, then hunt the next remaining flake-eval cost now that the duplicate env import is gone.","result":"Same code reran at total_ms=5598 with build_ms=4622 and run_ms=976.","observed_noise":"The kept run had run_ms=1361; validation rerun dropped to 976 while build_ms also improved slightly, so the new steady-state is comfortably below all prior warning-cleaned runs."}}
{"run":65,"commit":"3813e84","metric":6037,"metrics":{"build_ms":4903,"run_ms":1133,"image_bytes":637534208},"status":"discard","description":"Dirty-tree control for `nix/flake-modules/redox-env.nix`: comment-only touch near the shared env setup measures the current no-op cost of editing this file under the smoke benchmark.","timestamp":1776312289597,"segment":7,"confidence":3.289544235924933,"iterationTokens":2875,"asi":{"hypothesis":"Before changing how `redox-env.nix` gets overlayed nixpkgs, measure the dirty-tree baseline cost of touching this file with no semantic change.","rollback_reason":"Comment-only control; no semantic improvement to keep.","next_action_hint":"Compare any `pkgsWithOverlay` refactor against this 6037ms control, not just against earlier runs from other files.","result":"Control run landed at total_ms=6037 with build_ms=4903.","control_use":"Use as dirty-tree reference for `redox-env.nix` eval-path experiments."}}
{"run":66,"commit":"3813e84","metric":5678,"metrics":{"build_ms":4699,"run_ms":978,"image_bytes":637534208},"status":"discard","description":"First `pkgs.extend` pass beat the `redox-env.nix` comment-only control but did not yet beat the current shared-env tree's best observed run, so it needs one steady-state rerun before judgment.","timestamp":1776312322690,"segment":7,"confidence":2.6023329798515378,"iterationTokens":1305,"asi":{"hypothesis":"Using `pkgs.extend` for the rust overlay inside `redox-env.nix` may be cheaper than re-importing `inputs.nixpkgs` with an overlay for every Redox env instantiation.","rollback_reason":"Primary metric improved versus the same-file control but not enough yet versus the current best observed shared-env runs, so this first pass is not enough evidence to keep.","next_action_hint":"Reapply `/tmp/redox-env-pkgs-extend.patch` and rerun once; only keep if the steady-state rerun beats the current shared-env tree.","saved_patch":"/tmp/redox-env-pkgs-extend.patch","result":"Smoke suite stayed green and build_ms improved versus the `redox-env.nix` dirty control.","control_reference":"run 65 `redox-env.nix` dirty-tree control was 6037ms with build_ms=4903."}}
{"run":67,"commit":"3813e84","metric":5613,"metrics":{"build_ms":4640,"run_ms":972,"image_bytes":637534208},"status":"discard","description":"Steady-state `pkgs.extend` overlay wiring was effectively a wash: slightly better than the `redox-env.nix` dirty control, but still not better than the current shared-env tree's best observed run.","timestamp":1776312342517,"segment":7,"confidence":2.769751693002257,"iterationTokens":1198,"asi":{"hypothesis":"If `pkgs.extend` were meaningfully cheaper than re-importing nixpkgs-with-overlay inside `redox-env.nix`, the rerun after one-time churn would beat the current shared-env tree.","rollback_reason":"Second-pass total_ms 5613 is still above the current observed best 5598, so this overlay wiring tweak is not worth keeping.","next_action_hint":"Treat duplicate-env removal as the real eval win from this area; future work should target other remaining eval hotspots, not `pkgs.extend` vs `import nixpkgs` micro-tuning.","result":"Smoke suite stayed green and build_ms remained in the same neighborhood, but the primary metric did not improve.","control_reference":"run 65 `redox-env.nix` dirty-tree control was 6037ms; runs 66/67 show this tweak helps some, just not enough to justify another code path."}}
{"run":68,"commit":"3813e84","metric":6249,"metrics":{"build_ms":5105,"run_ms":1143,"image_bytes":637534208},"status":"discard","description":"First legacy core-packages pass regressed versus the current shared-env tree, so this refactor needs one steady-state rerun before judgment.","timestamp":1776312604415,"segment":7,"confidence":3.3162162162162163,"iterationTokens":3110,"asi":{"hypothesis":"If `system.nix` takes smoke-path core packages from `self'.legacyPackages` instead of `self'.packages`, it may avoid forcing the heavier `packages` output path during smoke evaluation.","rollback_reason":"First pass landed above the current observed best shared-env runs, so this single result is not enough evidence to keep.","next_action_hint":"Reapply `/tmp/redox-corepkgs-via-legacy.patch` and rerun once; keep only if the steady-state rerun beats the current shared-env tree.","saved_patch":"/tmp/redox-corepkgs-via-legacy.patch","result":"Smoke suite stayed green; any cost change is in flake evaluation, not runtime semantics.","observed_tradeoff":"This may still be valid after first-pass churn, but it started worse than the current tree."}}
{"run":69,"commit":"3813e84","metric":5915,"metrics":{"build_ms":4815,"run_ms":1099,"image_bytes":637534208},"status":"discard","description":"Steady-state legacy core-packages wiring still lost to the current shared-env tree, so routing smoke-path core packages through `legacyPackages` is not worth keeping.","timestamp":1776312624348,"segment":7,"confidence":3.3941908713692945,"iterationTokens":1095,"asi":{"hypothesis":"If `system.nix` pulled smoke-path core packages from `self'.legacyPackages` instead of `self'.packages`, it might avoid forcing the heavier package-output path during smoke evaluation.","rollback_reason":"Second-pass total_ms 5915 is still above the current observed best 5598, so this extra indirection is not a real win.","next_action_hint":"Keep the shared `redoxEnv` reuse, but drop further `legacyPackages` plumbing unless a later profile proves it helps.","saved_patch":"/tmp/redox-corepkgs-via-legacy.patch","result":"Smoke suite stayed green and build_ms remained respectable, but the primary metric did not improve enough.","observed_tradeoff":"Moving core packages into `legacyPackages` adds plumbing without beating the simpler shared-env design."}}
{"run":70,"commit":"3813e84","metric":6063,"metrics":{"build_ms":4862,"run_ms":1200,"image_bytes":637534208},"status":"discard","description":"Dirty-tree control for `nix/pkgs/infrastructure/mk-vm-test.nix`: comment-only touch near image staging measures the current no-op cost of editing the VM runner infrastructure.","timestamp":1776312692162,"segment":7,"confidence":3.5258620689655173,"iterationTokens":6271,"asi":{"hypothesis":"Before revisiting the Cloud Hypervisor overlay path, measure the dirty-tree baseline cost of touching `mk-vm-test.nix` with no semantic change.","rollback_reason":"Comment-only control; no semantic improvement to keep.","next_action_hint":"Compare any CH overlay candidate against this 6063ms control, not just against broader branch bests.","result":"Control run landed at total_ms=6063 with build_ms=4862.","control_use":"Use as dirty-tree reference for `mk-vm-test.nix` experiments."}}
{"run":71,"commit":"3813e84","metric":0,"metrics":{"build_ms":0,"run_ms":0,"image_bytes":0},"status":"crash","description":"Cloud Hypervisor qcow2 overlay retry crashed immediately: this CH build supports qcow2 images but has backing-file support disabled, so the overlay approach cannot replace the raw copy path here.","timestamp":1776312728985,"segment":7,"confidence":3.5258620689655173,"iterationTokens":1314,"asi":{"hypothesis":"A qcow2 overlay backed by the immutable store raw image would preserve exact guest semantics while removing the expensive CH raw-image copy from `mk-vm-test.nix`.","rollback_reason":"Cloud Hypervisor aborted before boot because qcow backing files are disabled in this build, so this path is unusable here.","next_action_hint":"Drop qcow2-overlay ideas for the current Cloud Hypervisor build; if revisiting run_ms work, try CH-supported disk formats or other staging strategies that do not depend on backing files.","failure_detail":"`Fatal error: VmBoot(... CreateQcowDiskSync(BackingFilesDisabled))` with warning `Non-raw image type detected` and explicit `Backing file support is disabled`.","learned_scope":"The earlier overlay hypothesis was blocked by the CH binary itself, not by benchmark noise. Any future qcow2 work needs no-backing-file conversion or a different VMM."}}
{"run":72,"commit":"3813e84","metric":6242,"metrics":{"build_ms":5188,"run_ms":1053,"image_bytes":637534208},"status":"discard","description":"Dirty-tree control for `nix/redox-system/profiles/functional-smoke-test.nix`: comment-only touch near the smoke profile knobs measures the current no-op cost of editing this profile.","timestamp":1776313425511,"segment":7,"confidence":4.103678929765886,"iterationTokens":17735,"asi":{"hypothesis":"Before changing smoke-specific hardware settings, measure the dirty-tree baseline cost of touching `functional-smoke-test.nix` with no semantic change.","rollback_reason":"Comment-only control; no semantic improvement to keep.","next_action_hint":"Compare any smoke-profile driver pruning against this 6242ms control, not just against branch-wide bests.","result":"Control run landed at total_ms=6242 with build_ms=5188.","control_use":"Use as dirty-tree reference for smoke-profile configuration experiments."}}
{"run":73,"commit":"3813e84","metric":15121,"metrics":{"build_ms":14083,"run_ms":1038,"image_bytes":637534208},"status":"discard","description":"First smoke-profile network-driver pruning pass rebuilt the smoke image path, so this run cannot judge steady-state value yet.","timestamp":1776313467725,"segment":7,"confidence":3.5258620689655173,"iterationTokens":883,"asi":{"hypothesis":"Because `functional-smoke-test` already has networking disabled, dropping `hardware.networkDrivers` to `[]` should remove unneeded VM NIC drivers from the smoke image without changing the workload.","rollback_reason":"Primary metric was dominated by first-run rebuild churn (~14s build_ms), so this pass is unusable as keep/discard evidence.","next_action_hint":"Reapply `/tmp/redox-smoke-no-net-drivers.patch` and rerun once; keep only if the steady-state pass beats the 6242ms smoke-profile control and the current shared-env tree.","saved_patch":"/tmp/redox-smoke-no-net-drivers.patch","result":"Smoke suite still passed with unchanged image size, so the candidate at least preserved current smoke semantics.","control_reference":"run 72 smoke-profile dirty control was 6242ms with build_ms=5188."}}
{"run":74,"commit":"3813e84","metric":6039,"metrics":{"build_ms":5002,"run_ms":1036,"image_bytes":637534208},"status":"discard","description":"Steady-state smoke-profile network-driver pruning beat the same-file control but still lost to the current shared-env tree, so removing VM NIC drivers from the smoke profile is not worth keeping on its own.","timestamp":1776313488443,"segment":7,"confidence":4.05955334987593,"iterationTokens":1073,"asi":{"hypothesis":"Because `functional-smoke-test` already has networking disabled, dropping `hardware.networkDrivers` to `[]` should remove unneeded VM NIC drivers from the smoke image without changing the workload.","rollback_reason":"Second-pass total_ms 6039 is still above the current observed best 5598, so this smoke-profile cleanup is not a real overall win.","next_action_hint":"Keep looking for larger eval/build wins; small smoke-profile driver pruning is below the remaining noise and does not move the primary metric enough.","saved_patch":"/tmp/redox-smoke-no-net-drivers.patch","result":"Smoke suite still passed and build_ms improved slightly versus the smoke-profile control, but the primary metric did not beat the current tree.","control_reference":"run 72 smoke-profile dirty control was 6242ms; run 74 improved that to 6039 but not enough versus the branch best."}}
{"run":75,"commit":"3813e84","metric":27131,"metrics":{"build_ms":26113,"run_ms":1017,"image_bytes":637534208},"status":"discard","description":"First smoke-only monolithic-base pass rebuilt the smoke image path heavily, so this run cannot judge steady-state value yet.","timestamp":1776313552803,"segment":7,"confidence":3.5258620689655173,"iterationTokens":1561,"asi":{"hypothesis":"Because `basePerCrate` is the largest remaining smoke-path eval hotspot, overriding only the smoke system to use the monolithic `modularPkgs.system.base` may reduce end-to-end smoke time when base itself is untouched.","rollback_reason":"Primary metric was dominated by first-run rebuild churn (~26s build_ms), so this pass is unusable as keep/discard evidence.","next_action_hint":"Reapply `/tmp/redox-smoke-monolithic-base.patch` and rerun once if you want a steady-state read, but treat any apparent win cautiously because this could overfit away base-edit iteration cost.","saved_patch":"/tmp/redox-smoke-monolithic-base.patch","result":"Smoke suite still passed with unchanged image size, so the smoke workload itself survived the base-package swap.","overfit_risk":"A smoke-only monolithic base could improve the benchmark while making actual base-driver edit loops worse, so it needs extra skepticism even if the rerun wins."}}
{"run":76,"commit":"3813e84","metric":4490,"metrics":{"build_ms":3462,"run_ms":1027,"image_bytes":637534208},"status":"discard","description":"Smoke-only monolithic `base` made the benchmark much faster, but this likely overfits away real base-edit iteration cost by bypassing the per-crate base package only in the smoke profile.","timestamp":1776313604099,"segment":7,"confidence":3.68192048012003,"iterationTokens":1059,"asi":{"hypothesis":"Because `basePerCrate` is the largest remaining smoke-path eval hotspot, overriding only the smoke system to use the monolithic `modularPkgs.system.base` may reduce end-to-end smoke time when base itself is untouched.","rollback_reason":"Despite the large primary-metric win, this change is benchmark-risky: it optimizes the smoke profile by sidestepping per-crate base evaluation and likely makes actual base-source edit loops less representative.","next_action_hint":"If revisiting, first compare monolithic-vs-per-crate smoke runs under an actual base-related source touch; do not keep this shortcut on no-op smoke numbers alone.","saved_patch":"/tmp/redox-smoke-monolithic-base.patch","result":"Steady-state smoke run dropped to total_ms=4490 with build_ms=3462 and unchanged image size.","overfit_risk":"The smoke benchmark benefits when base is untouched, but the dedicated smoke profile should not hide the costs of iterating on Redox base components themselves."}}
{"run":77,"commit":"3813e84","metric":13981,"metrics":{"build_ms":13137,"run_ms":843,"image_bytes":637534208},"status":"discard","description":"First smoke-profile virtio-only hardware pass rebuilt the image path, so this run cannot judge steady-state value yet.","timestamp":1776313802106,"segment":7,"confidence":3.272,"iterationTokens":1535,"asi":{"hypothesis":"Because the smoke runner is Cloud Hypervisor-only and networking is disabled, restricting the smoke profile to `storageDrivers = [ \"virtio-blkd\" ]` and `networkDrivers = [ ]` should remove unnecessary driver copying without changing the workload.","rollback_reason":"Primary metric was dominated by first-run rebuild churn (~13.1s build_ms), so this pass is unusable as keep/discard evidence.","next_action_hint":"Reapply `/tmp/redox-smoke-virtio-only.patch` and rerun once; keep only if the steady-state pass beats both the 6242ms smoke-profile control and the current shared-env tree.","saved_patch":"/tmp/redox-smoke-virtio-only.patch","result":"Smoke suite still passed and run_ms improved, so the candidate preserved current smoke semantics.","control_reference":"run 72 smoke-profile dirty control was 6242ms with build_ms=5188."}}
{"run":78,"commit":"3813e84","metric":14728,"metrics":{"build_ms":13575,"run_ms":1153,"image_bytes":637534208},"status":"discard","description":"First smoke-specific `baseSmokePerCrate` pass rebuilt the smoke image path heavily, so this run cannot judge steady-state value yet.","timestamp":1776314488156,"segment":7,"confidence":2.9799635701275045,"iterationTokens":1535,"asi":{"hypothesis":"If the smoke profile uses a per-crate base package pruned to only the daemons/drivers it actually needs, unit2nix workspace aggregation should shrink without falling back to the benchmark-risky monolithic `base` package.","rollback_reason":"Primary metric was dominated by first-run rebuild churn (~13.6s build_ms), so this pass is unusable as keep/discard evidence.","next_action_hint":"Reapply `/tmp/redox-base-smoke-subset.patch` and rerun once; if the steady-state pass beats the current shared-env tree, this is a stronger candidate than the monolithic-base shortcut.","saved_patch":"/tmp/redox-base-smoke-subset.patch","result":"Smoke suite still passed with unchanged image size, so the subset preserved current smoke semantics on the first run.","overfit_guard":"Unlike the monolithic-base shortcut, this still uses per-crate base builds for the smoke-needed members only; judge it on the second pass, not this rebuild-heavy first run."}}
{"run":79,"commit":"3813e84","metric":6546,"metrics":{"build_ms":5416,"run_ms":1129,"image_bytes":637534208},"status":"discard","description":"Steady-state `baseSmokePerCrate` still lost to the current shared-env tree, so pruning the base unit2nix graph to smoke-needed members is not enough on its own.","timestamp":1776314514043,"segment":7,"confidence":3.272,"iterationTokens":1165,"asi":{"hypothesis":"If the smoke profile uses a per-crate base package pruned to only the daemons/drivers it actually needs, unit2nix workspace aggregation should shrink without falling back to the benchmark-risky monolithic `base` package.","rollback_reason":"Second-pass total_ms 6546 is still above the current observed best 5598, so this direct basePerCrate-pruning attempt is not a win.","next_action_hint":"The remaining basePerCrate cost is likely deeper in unit2nix evaluation than simple workspace-member pruning at the caller. Next step: inspect `../unit2nix/` for ways to prune crate graph construction itself when members are selected.","saved_patch":"/tmp/redox-base-smoke-subset.patch","result":"Smoke suite stayed green with unchanged image size, but the primary metric regressed versus the current tree.","overfit_guard":"This was a more principled version of the monolithic-base shortcut, yet it still failed to beat the current tree."}}
{"run":80,"commit":"3813e84","metric":9719,"metrics":{"build_ms":6842,"run_ms":2876,"image_bytes":637534208},"status":"discard","description":"First vendored unit2nix host-crate pruning pass changed the package-eval path heavily, so this run cannot judge steady-state value yet.","timestamp":1776315096921,"segment":7,"confidence":2.9799635701275045,"iterationTokens":25992,"asi":{"hypothesis":"`build-from-unit-graph.nix` currently constructs a full host crate set even though base's host/build-script closure is tiny (~15 crates vs 229 total). A local patched copy that prunes host buildable crates to the actual build/proc-macro closure should cut eval-heavy smoke builds globally, not just via smoke-profile hacks.","rollback_reason":"Primary metric regressed on the first run, likely from first-pass churn after changing the unit2nix import path and vendoring a local copy, so this pass is unusable as keep/discard evidence.","next_action_hint":"Reapply `/tmp/redox-unit2nix-host-prune.patch` and rerun once; if the steady-state pass beats the current shared-env tree, this is the most credible unit2nix-level candidate so far.","saved_patch":"/tmp/redox-unit2nix-host-prune.patch","result":"Smoke suite still passed with unchanged image size; the first-run regression was in build/eval and runtime noise, not semantics.","unit2nix_signal":"For base-build-plan, measured host closure is only ~15 crates versus 229 total, so pruning host graph construction remains plausible despite this first churn-heavy run."}}
{"run":81,"commit":"3813e84","metric":9013,"metrics":{"build_ms":6143,"run_ms":2869,"image_bytes":637534208},"status":"discard","description":"Steady-state vendored unit2nix host-crate pruning still lost badly to the current tree, so pruning host buildable crates in the local `build-from-unit-graph` copy is not enough as implemented.","timestamp":1776315131578,"segment":7,"confidence":2.580441640378549,"iterationTokens":1210,"asi":{"hypothesis":"If unit2nix only constructs the host/build-script closure actually needed by the selected target graph, smoke builds should speed up because base's host closure is tiny (~15 crates).","rollback_reason":"Second-pass total_ms 9013 is far above the current observed best 5598 and even build_ms stayed worse, so this host-crate-pruning implementation is not a win.","next_action_hint":"Inspect whether vendoring the local unit2nix copy itself added overhead or whether the real hotspot is elsewhere in build-from-unit-graph (for example target crate attrset construction or helper imports).","saved_patch":"/tmp/redox-unit2nix-host-prune.patch","result":"Smoke suite stayed green but both total_ms and build_ms regressed versus the current tree.","unit2nix_signal":"The measured host closure size alone was not enough to produce a benchmark win in this implementation."}}
{"run":82,"commit":"3813e84","metric":8813,"metrics":{"build_ms":6204,"run_ms":2608,"image_bytes":637534208},"status":"discard","description":"Control for vendoring `build-from-unit-graph.nix` locally: simply routing Redox through a local copy of the current upstream unit2nix file already regressed badly, so recent unit2nix-local experiments are confounded by the vendored path itself.","timestamp":1776315224471,"segment":7,"confidence":2.0956447480785654,"iterationTokens":2590,"asi":{"hypothesis":"Before trusting deeper unit2nix-file edits, check whether importing a vendored local copy of the same upstream `build-from-unit-graph.nix` is itself neutral on the smoke benchmark.","rollback_reason":"Even the no-op vendored control regressed sharply, so local-copy unit2nix experiments are not clean evidence for a real product win in Redox.","next_action_hint":"Avoid vendoring `build-from-unit-graph.nix` inside Redox for benchmark experiments. If targeting unit2nix next, either update the actual input cleanly or find Redox-side hotspots that do not depend on a local copy.","saved_patch":"/tmp/redox-unit2nix-vendor-control.patch","result":"Smoke suite still passed, but total_ms=8813/build_ms=6204 showed that the local-copy path itself is costly here.","confounder":"The earlier host-closure-pruning experiment likely mixed its own logic with this vendor-path regression, so do not over-interpret that loss."}}
{"run":83,"commit":"3813e84","metric":9011,"metrics":{"build_ms":6161,"run_ms":2850,"image_bytes":637534208},"status":"discard","description":"Steady-state vendored unit2nix control still regressed badly, confirming that routing Redox through a local copy of `build-from-unit-graph.nix` is itself a bad benchmark path here.","timestamp":1776315328865,"segment":7,"confidence":1.857683573050719,"iterationTokens":3668,"asi":{"hypothesis":"If vendoring the current upstream `build-from-unit-graph.nix` locally were neutral, then deeper unit2nix-local experiments inside Redox would still be trustworthy.","rollback_reason":"Second-pass total_ms 9011 is far above the current observed best 5598, so local-copy unit2nix experiments inside Redox are confounded and not worth pursuing further in this form.","next_action_hint":"Drop in-repo vendored unit2nix experiments. Either update the real unit2nix input cleanly or return to Redox-side hotspots that do not require a local copy of the dependency.","saved_patch":"/tmp/redox-unit2nix-vendor-control.patch","result":"Smoke suite stayed green but build_ms/run_ms remained much worse than the current tree even on the second pass.","confounder":"This means the earlier vendored host-pruning loss cannot be trusted as evidence about the host-closure idea itself."}}
{"run":84,"commit":"3813e84","metric":12483,"metrics":{"build_ms":10834,"run_ms":1648,"image_bytes":637534208},"status":"discard","description":"Base-touch control for the current per-crate smoke path: bumping `base-src-patched`'s derivation name forces the base package path to change, approximating a real base-related edit without semantic drift.","timestamp":1776315479178,"segment":7,"confidence":1.8097345132743363,"iterationTokens":455,"asi":{"hypothesis":"Before trusting the smoke-only monolithic `base` shortcut, compare it against the current tree under an actual base-package rebuild trigger rather than a no-op smoke rerun.","rollback_reason":"Control run only; no product improvement intended.","next_action_hint":"Apply the same base-touch trigger together with the smoke-only monolithic `base` override and compare against this 12483ms control.","result":"Per-crate base-touch control landed at total_ms=12483 with build_ms=10834.","control_use":"Use as base-edit-like reference for monolithic-base overfit validation."}}
{"run":85,"commit":"3813e84","metric":27277,"metrics":{"build_ms":25950,"run_ms":1326,"image_bytes":637534208},"status":"discard","description":"Base-touch validation killed the smoke-only monolithic `base` shortcut: under the same forced base-package rebuild trigger, the monolithic smoke path was far slower than the current per-crate control.","timestamp":1776315539748,"segment":7,"confidence":1.7245256500351371,"iterationTokens":1136,"asi":{"hypothesis":"If the smoke-only monolithic `base` shortcut were a real product win instead of benchmark overfit, it should stay competitive when the base package itself changes.","rollback_reason":"Under the same base-touch trigger, the monolithic smoke path ballooned to 27277ms versus the current per-crate control at 12483ms, confirming it hides real base-edit iteration cost.","next_action_hint":"Retire the monolithic-base idea from the backlog. Future work should target real unit2nix/basePerCrate costs without bypassing them in the smoke profile.","result":"Monolithic-base + base-touch landed at total_ms=27277 with build_ms=25950.","control_reference":"run 84 per-crate base-touch control was total_ms=12483 with build_ms=10834.","validation":"This was the same non-semantic base-package rebuild trigger (patchedSrc name bump) on both paths, so the comparison isolates the smoke-only base-package choice."}}
{"run":86,"commit":"3813e84","metric":6621,"metrics":{"build_ms":5751,"run_ms":869,"image_bytes":637534208},"status":"discard","description":"Control for benchmarking the real local unit2nix input path: overriding Redox to the current `../unit2nix` HEAD (without extra changes) is somewhat slower than the locked input, so future upstream-style experiments must compare against this override baseline, not against the locked upstream input.","timestamp":1776315994022,"segment":7,"confidence":1.8097345132743363,"iterationTokens":12364,"asi":{"hypothesis":"Before changing `../unit2nix`, measure the cost of using the real local unit2nix repo through `--override-input` so upstream experiments are compared fairly.","rollback_reason":"Control run only; no product improvement intended.","next_action_hint":"Patch `../unit2nix` directly and compare against this 6621ms real-input control, not the 5598ms locked-input best.","result":"Real-input control with current `../unit2nix` HEAD landed at total_ms=6621 with build_ms=5751.","control_use":"Use as baseline for experiments that change the actual `../unit2nix` repo and benchmark via `UNIT2NIX_INPUT=git+file:///...`."}}
{"run":87,"commit":"3813e84","metric":6652,"metrics":{"build_ms":5649,"run_ms":1002,"image_bytes":637534208},"status":"discard","description":"First real-input unit2nix host/member-closure pruning pass was essentially flat versus the local-input control, so it needs a steady-state rerun before judgment.","timestamp":1776316085217,"segment":7,"confidence":1.857683573050719,"iterationTokens":3799,"asi":{"hypothesis":"Pruning `build-from-unit-graph.nix` to only the selected target closure plus actual host/build-script closure should reduce unit2nix eval work for large plans like Redox base when benchmarked through the real unit2nix input path.","rollback_reason":"First pass landed basically on top of the local-unit2nix control, so this single result is not enough evidence to keep or upstream.","next_action_hint":"Rerun the same committed `../unit2nix` change against the same `UNIT2NIX_INPUT=git+file:///...` path; only treat it as real if the second pass clearly beats the 6621ms local-input control.","result":"Real-input patched unit2nix run landed at total_ms=6652 with build_ms=5649.","control_reference":"run 86 local unit2nix input control was total_ms=6621 with build_ms=5751."}}
{"run":88,"commit":"3813e84","metric":6833,"metrics":{"build_ms":5772,"run_ms":1060,"image_bytes":637534208},"status":"discard","description":"Steady-state real-input unit2nix host/member-closure pruning still lost to the local-input control, so this upstream candidate is not worth pursuing as implemented.","timestamp":1776316105762,"segment":7,"confidence":2.0956447480785654,"iterationTokens":961,"asi":{"hypothesis":"If `build-from-unit-graph.nix` only constructed the selected target closure plus the actual host/build-script closure, the real unit2nix input path should beat the 6621ms local-input control.","rollback_reason":"Second-pass total_ms 6833 is worse than the 6621ms local-input control, so this specific upstream pruning patch is not a win.","next_action_hint":"Reset `../unit2nix` off this commit and look for a different upstream lever, or move back to Redox-side hotspots that do not depend on this unit2nix shape.","result":"Second patched-unit2nix run landed at total_ms=6833 with build_ms=5772.","control_reference":"run 86 local unit2nix input control was total_ms=6621 with build_ms=5751."}}
{"run":89,"commit":"3813e84","metric":7438,"metrics":{"build_ms":6347,"run_ms":1090,"image_bytes":637534208},"status":"discard","description":"Comment-only dirty control for `nix/redox-system/lib/make-disk-image.nix` to establish the current same-file benchmark floor before testing larger-block final partition writes.","timestamp":1776316620591,"segment":7,"confidence":2.1265164644714036,"iterationTokens":961,"asi":{"hypothesis":"A same-file dirty control on `make-disk-image.nix` is needed before judging any final GPT assembly tweak in that file.","rollback_reason":"Control run only; no product improvement intended.","next_action_hint":"Apply the larger-block `dd` write change in `make-disk-image.nix` and compare against this 7438ms same-file dirty control.","result":"Comment-only make-disk-image control landed at total_ms=7438 with build_ms=6347.","control_use":"Use as immediate control for `make-disk-image.nix` write-granularity experiments."}}
{"run":90,"commit":"3813e84","metric":12062,"metrics":{"build_ms":11017,"run_ms":1044,"image_bytes":637534208},"status":"discard","description":"Larger-block final partition writes in `make-disk-image.nix` regressed badly; switching the final `dd` splices from 512-byte sectors to 1MiB writes blew the smoke benchmark up instead of helping.","timestamp":1776316657899,"segment":7,"confidence":1.983030303030303,"iterationTokens":1145,"asi":{"hypothesis":"Because both partition payloads start on MiB boundaries, writing them into `disk.img` with `dd bs=1M` might cut host-side syscall overhead versus the current sector-sized writes.","rollback_reason":"The candidate regressed hard: total_ms 12062 and build_ms 11017 versus the same-file comment-only control at 7438 / 6347.","next_action_hint":"Do not pursue the larger-block final `dd` splice idea further; move on to a different disk-image or runner-side lever.","result":"`make-disk-image.nix` with `dd bs=1M` for both partition writes landed at total_ms=12062 with build_ms=11017.","control_reference":"run 89 comment-only `make-disk-image.nix` control was total_ms=7438 with build_ms=6347."}}
{"run":91,"commit":"3813e84","metric":0,"metrics":{"build_ms":0,"run_ms":0,"image_bytes":0},"status":"crash","description":"Read-only smoke disk experiment failed at boot: Cloud Hypervisor rejected a guest block write on the raw image (`Request check failed ... ReadOnly`), so the smoke image does require writable disk semantics during early boot.","timestamp":1776316846492,"segment":7,"confidence":1.983030303030303,"iterationTokens":11185,"asi":{"hypothesis":"If the smoke runner could boot directly from the store image with `readonly=on`, it could skip the per-run raw-image copy in `mk-vm-test.nix` and shave run_ms without changing guest semantics.","rollback_reason":"Boot failed immediately because the guest attempted a disk write against the read-only virtio-blk device.","next_action_hint":"Do not pursue read-only raw-disk boot for the smoke runner unless Redox can boot with a writable overlay or otherwise avoid early rootfs writes.","error_detail":"Cloud Hypervisor logged `Request check failed ... ReadOnly` for an `Out` request during boot."}}
{"run":92,"commit":"3813e84","metric":14641,"metrics":{"build_ms":13560,"run_ms":1080,"image_bytes":637534208},"status":"discard","description":"Writing the ESP, RedoxFS, and final disk images directly into `$out` was much slower than building them in the work dir and copying at the end; direct-to-output image creation is a bad path here.","timestamp":1776316953047,"segment":7,"confidence":1.903801396431342,"iterationTokens":9173,"asi":{"hypothesis":"Creating the image artifacts directly at `$out` in `make-esp-image.nix`, `make-redoxfs-image.nix`, and `make-disk-image.nix` might avoid large final copy steps and cut build_ms.","rollback_reason":"The direct-to-output approach regressed hard: total_ms 14641 / build_ms 13560, far worse than the current tree.","next_action_hint":"Do not pursue direct-to-output image construction further; move on to a different image-build or eval hotspot.","result":"Direct-to-output image creation landed at total_ms=14641 with build_ms=13560.","notes":"This suggests the current temp-build-then-copy pattern interacts better with the builder/store path than writing large raw images into `$out` incrementally."}}
{"run":93,"commit":"3813e84","metric":7042,"metrics":{"build_ms":5964,"run_ms":1078,"image_bytes":637534208},"status":"discard","description":"Comment-only dirty control for `nix/pkgs/infrastructure/mk-vm-test.nix` before testing incremental serial-log polling in the VM runner.","timestamp":1776317028036,"segment":7,"confidence":1.983030303030303,"iterationTokens":4276,"asi":{"hypothesis":"A same-file dirty control on `mk-vm-test.nix` is needed before judging polling-loop changes in that runner.","rollback_reason":"Control run only; no product improvement intended.","next_action_hint":"Replace the full-file serial-log reread in `mk-vm-test.nix` with incremental append polling and compare against this 7042ms control.","result":"Comment-only mk-vm-test control landed at total_ms=7042 with build_ms=5964 and run_ms=1078.","control_use":"Use as immediate control for mk-vm-test polling-loop experiments."}}
{"run":94,"commit":"3813e84","metric":7049,"metrics":{"build_ms":5965,"run_ms":1083,"image_bytes":637534208},"status":"discard","description":"Incremental serial-log polling in `mk-vm-test.nix` was flat-to-worse versus the same-file control; avoiding full rereads of the serial log did not buy a real smoke benchmark win here.","timestamp":1776317058317,"segment":7,"confidence":2.1265164644714036,"iterationTokens":1652,"asi":{"hypothesis":"Keeping an in-memory accumulated serial buffer and only appending newly written bytes from `SERIAL_LOG` would cut host-side polling overhead in `mk-vm-test.nix`, improving run_ms for the smoke runner.","rollback_reason":"The candidate landed at 7049ms / 1083ms run_ms versus the mk-vm-test control at 7042ms / 1078ms, so there is no real win.","next_action_hint":"Do not pursue incremental serial-log polling further for this benchmark; look elsewhere for meaningful build_ms or run_ms savings.","result":"Incremental mk-vm-test serial polling landed at total_ms=7049 with build_ms=5965 and run_ms=1083.","control_reference":"run 93 comment-only mk-vm-test control was total_ms=7042 with build_ms=5964 and run_ms=1078."}}
{"run":95,"commit":"3813e84","metric":7521,"metrics":{"build_ms":5906,"run_ms":1615,"image_bytes":637534208},"status":"discard","description":"Comment-only dirty control for `nix/flake-modules/packages.nix` before testing whether `mkCrossPackage` should pass `members = [ member ]` into unit2nix.","timestamp":1776317160633,"segment":7,"confidence":2.212804328223625,"iterationTokens":4559,"asi":{"hypothesis":"A same-file dirty control on `packages.nix` is needed before judging `mkCrossPackage` member-filtering tweaks.","rollback_reason":"Control run only; no product improvement intended.","next_action_hint":"Add `members = [ member ]` in `mkCrossPackage` and compare against this 7521ms packages.nix control, focusing on build_ms because run_ms was noisy.","result":"Comment-only packages.nix control landed at total_ms=7521 with build_ms=5906.","control_use":"Use as immediate control for mkCrossPackage member-filtering experiments."}}
{"run":96,"commit":"3813e84","metric":7412,"metrics":{"build_ms":5895,"run_ms":1516,"image_bytes":637534208},"status":"discard","description":"Passing `members = [ member ]` from `mkCrossPackage` into unit2nix was effectively flat versus the same-file control; current locked unit2nix only uses `members` to filter exposed outputs, so this Redox-side hint does not buy a meaningful smoke benchmark win.","timestamp":1776317187054,"segment":7,"confidence":2.306390977443609,"iterationTokens":1033,"asi":{"hypothesis":"Even without deeper unit2nix graph pruning, giving `buildFromUnitGraph` a single selected workspace member from `mkCrossPackage` might trim enough output-side eval work to help packages like ion on the smoke path.","rollback_reason":"The candidate was essentially noise: 7412 / 5895 versus the packages.nix control at 7521 / 5906, with no meaningful build_ms win.","next_action_hint":"Do not pursue `members = [ member ]` as a Redox-side optimization on current unit2nix; if member filtering matters, it needs a stronger upstream implementation.","result":"`mkCrossPackage` with `members = [ member ]` landed at total_ms=7412 with build_ms=5895.","control_reference":"run 95 comment-only packages.nix control was total_ms=7521 with build_ms=5906."}}
{"run":97,"commit":"3813e84","metric":7573,"metrics":{"build_ms":6034,"run_ms":1538,"image_bytes":637534208},"status":"discard","description":"Comment-only dirty control for `nix/redox-system/lib/make-esp-image.nix` before testing whether the ESP still needs kernel/initfs payload copies.","timestamp":1776317435546,"segment":7,"confidence":2.1736049601417182,"iterationTokens":6831,"asi":{"hypothesis":"A same-file dirty control on `make-esp-image.nix` is needed before judging changes to the ESP payload contents.","rollback_reason":"Control run only; no product improvement intended.","next_action_hint":"Remove the kernel/initfs copies from `make-esp-image.nix` and compare against this 7573ms control while verifying the smoke image still boots normally.","result":"Comment-only make-esp-image control landed at total_ms=7573 with build_ms=6034.","control_use":"Use as immediate control for ESP-payload experiments."}}
{"run":98,"commit":"3813e84","metric":13006,"metrics":{"build_ms":11858,"run_ms":1147,"image_bytes":637534208},"status":"discard","description":"Dropping kernel/initfs from the ESP image did not help; the first run regressed badly even though the smoke VM still booted, so this is not an obvious product win.","timestamp":1776317488744,"segment":7,"confidence":2.0552763819095476,"iterationTokens":1074,"asi":{"hypothesis":"Because the current bootloader loads kernel+initfs from RedoxFS `/usr/lib/boot`, removing those large payload copies from `make-esp-image.nix` might cut disk-image build time without changing boot behavior.","rollback_reason":"The candidate's first measured result regressed hard: total_ms 13006 and build_ms 11858 versus the same-file control at 7573 / 6034.","next_action_hint":"Do not assume ESP payload removal helps; only revisit if a second dedicated steady-state measurement shows the regression was a one-off artifact.","result":"Smoke boot still passed without kernel/initfs in the ESP, but the candidate run landed at total_ms=13006 with build_ms=11858.","control_reference":"run 97 comment-only `make-esp-image.nix` control was total_ms=7573 with build_ms=6034."}}
{"run":99,"commit":"3813e84","metric":8739,"metrics":{"build_ms":6974,"run_ms":1764,"image_bytes":637534208},"status":"discard","description":"Replacing `parted` with deterministic `sgdisk` GPT creation fixed `redox-disk-image-unstable` nondeterminism, but it regressed the current smoke benchmark enough that it is not a primary-metric keep.","timestamp":1776317774242,"segment":7,"confidence":1.9300039323633504,"iterationTokens":1406,"asi":{"hypothesis":"Using deterministic GPT creation in `make-disk-image.nix` could both eliminate the blocked `--rebuild` nondeterminism and maybe reduce build overhead versus multiple `parted` calls.","rollback_reason":"Steady-state smoke got worse: 8739 / 6974 / 1764 versus the same-file `make-disk-image.nix` control at 7438 / 6347 / 1090, so this is not a speed win for the active benchmark.","next_action_hint":"Keep the root-cause note that GPT disk/partition GUID randomness is the `--rebuild` blocker, but do not keep the `sgdisk` swap in the primary-speed branch unless it can be made much faster.","result":"The deterministic `sgdisk` version made `nix build .#redox-functional-smoke-test --rebuild --no-link` succeed (exit 0), confirming the nondeterminism came from random GPT GUIDs.","control_reference":"run 89 comment-only `make-disk-image.nix` control was total_ms=7438 with build_ms=6347.","secondary_value":"This candidate unblocked rebuild determinism even though it lost on the current primary metric."}}
{"run":100,"commit":"3813e84","metric":9988,"metrics":{"build_ms":6855,"run_ms":3132,"image_bytes":637534208},"status":"discard","description":"Fresh comment-only dirty control for `nix/redox-system/lib/make-disk-image.nix` before testing a faster deterministic GPT patch on top of the current `parted` path.","timestamp":1776317988567,"segment":7,"confidence":1.8191252779836917,"iterationTokens":8109,"asi":{"hypothesis":"A same-file dirty control on `make-disk-image.nix` should be refreshed before judging deterministic GPT patching, because this file has seen several failed image-build experiments already.","rollback_reason":"Control run only; no product improvement intended.","next_action_hint":"Patch the current `parted` path to normalize GPT GUIDs and CRCs in place, then compare primarily on build_ms against this fresh control.","result":"Fresh make-disk-image control landed at total_ms=9988 with build_ms=6855 and noisy run_ms=3132.","control_use":"Use mainly as an immediate build_ms control for deterministic GPT patching experiments."}}
{"run":101,"commit":"6d6c31a","metric":6758,"metrics":{"build_ms":5753,"run_ms":1004,"image_bytes":637534208},"status":"keep","description":"Keep deterministic GPT patching on top of the current `parted` path: normalizing GPT disk/partition GUIDs and CRCs in place fixed `redox-disk-image-unstable` rebuild determinism and the steady smoke rerun beat the same-file `make-disk-image.nix` controls.","timestamp":1776318134820,"segment":7,"confidence":1.9300039323633504,"iterationTokens":1236,"asi":{"hypothesis":"Patch GPT disk/partition GUIDs and header CRCs in place after the fast `parted` layout step, so rebuild determinism is restored without paying the full `sgdisk` regression cost.","result":"The steady candidate run landed at total_ms=6758 with build_ms=5753 and run_ms=1004, and `nix build .#redox-functional-smoke-test --rebuild --no-link` exited 0 on the patched tree.","control_reference":"Fresh same-file control was run 100 at 9988 / build_ms 6855 with noisy run_ms, and the earlier same-file make-disk-image control was run 89 at 7438 / build_ms 6347.","secondary_value":"Unlike the slower full `sgdisk` rewrite, this patch keeps the fast `parted` path but removes GPT GUID randomness, so rebuild benchmarking is now unblocked on the kept tree.","notes":"The first candidate run was slower, but the steady rerun was clearly better and the determinism check passed."}}
{"run":102,"commit":"6d6c31a","metric":7280,"metrics":{"build_ms":6248,"run_ms":1031,"image_bytes":637534208},"status":"discard","description":"Post-keep validation on a clean tree: the deterministic GPT patch still passes smoke and fixes rebuild determinism, but this clean rerun did not beat the pre-existing trustworthy best total_ms for the branch.","timestamp":1776318186686,"segment":7,"confidence":1.9774375503626107,"iterationTokens":3300,"asi":{"hypothesis":"After committing the deterministic GPT patch, a clean-tree validation rerun should confirm whether the keep is also a real branch-level primary-metric win rather than only a same-file dirty improvement.","rollback_reason":"Validation landed at total_ms 7280, which does not beat the branch's earlier trustworthy best 5598, so the primary-metric value of this keep remains suspect.","next_action_hint":"Test the inverse experiment: revert the deterministic GPT patch on top of current HEAD and see whether the branch-level smoke benchmark improves enough to justify dropping the keep despite its determinism benefit.","result":"Clean-tree validation of commit 6d6c31a2 landed at total_ms=7280 with build_ms=6248 and run_ms=1031.","branch_best_reference":"Earlier trustworthy branch best remained total_ms=5598 / build_ms=4622 / run_ms=976 at commit 3813e847."}}
{"run":103,"commit":"6d6c31a","metric":6898,"metrics":{"build_ms":5863,"run_ms":1034,"image_bytes":637534208},"status":"discard","description":"Inverse experiment lost: reverting the deterministic GPT patch on top of current HEAD was slightly slower than the kept same-file candidate, so the in-place GPT normalization still looks better than falling back to raw `parted` randomness.","timestamp":1776318246403,"segment":7,"confidence":2.035669846536707,"iterationTokens":3357,"asi":{"hypothesis":"If the deterministic GPT patch only looked good because of noisy validation, explicitly reverting it on top of current HEAD should recover a faster smoke benchmark.","rollback_reason":"The revert candidate landed at total_ms 6898 / build_ms 5863, which is slightly worse than the kept same-file candidate at 6758 / 5753.","next_action_hint":"Keep the deterministic GPT patch for now; future work should look elsewhere or find a cleaner validation method instead of immediately reverting this change.","result":"Reverting `make-disk-image.nix` back to plain `parted` randomness on top of HEAD landed at total_ms=6898 with build_ms=5863.","comparison_reference":"The kept same-file candidate was run 101 at total_ms=6758 with build_ms=5753, while the clean-tree validation of the kept commit was run 102 at 7280 / 6248."}}
{"run":104,"commit":"6d6c31a","metric":9223,"metrics":{"build_ms":7891,"run_ms":1330,"image_bytes":637534208},"status":"discard","description":"Fresh comment-only dirty control for `nix/redox-system/lib/make-disk-image.nix` before testing whether the disk image output's boot payloads should be symlinks instead of copied files.","timestamp":1776318411035,"segment":7,"confidence":1.9774375503626107,"iterationTokens":16899,"asi":{"hypothesis":"A same-file dirty control on `make-disk-image.nix` is needed before judging a smaller install-phase optimization in the same file.","rollback_reason":"Control run only; no product improvement intended.","next_action_hint":"Switch the disk image output's `boot/` payload copies to symlinks and compare mostly on build_ms against this fresh control.","result":"Fresh make-disk-image control landed at total_ms=9223 with build_ms=7891 and run_ms=1330.","control_use":"Use as immediate control for disk-image output boot-payload symlink experiments."}}
{"run":105,"commit":"6d6c31a","metric":12427,"metrics":{"build_ms":11356,"run_ms":1070,"image_bytes":637534208},"status":"discard","description":"Symlinking the disk image output's `boot/` payloads instead of copying them regressed hard; preserving those boot files as real copies is the better path here.","timestamp":1776318446626,"segment":7,"confidence":1.8949806949806949,"iterationTokens":1033,"asi":{"hypothesis":"Replacing the disk image derivation's copied `boot/BOOTX64.EFI`, `boot/kernel`, and `boot/initfs` payloads with symlinks might cut install-phase copy time without changing the exposed output interface much.","rollback_reason":"The candidate regressed sharply: total_ms 12427 / build_ms 11356 versus the same-file control at 9223 / 7891.","next_action_hint":"Do not pursue boot-payload symlinks for the disk image output; look for a different build_ms lever.","result":"Disk-image output boot symlinks landed at total_ms=12427 with build_ms=11356.","control_reference":"run 104 comment-only `make-disk-image.nix` control was total_ms=9223 with build_ms=7891."}}
{"run":106,"commit":"6d6c31a","metric":7451,"metrics":{"build_ms":6154,"run_ms":1296,"image_bytes":637534208},"status":"discard","description":"Comment-only dirty control for wiring `bootloaderPerCrate` into system builds, touching both `packages.nix` and `system.nix` before the real experiment.","timestamp":1776318584988,"segment":7,"confidence":1.8492840994724944,"iterationTokens":13046,"asi":{"hypothesis":"A same-path dirty control is needed before judging whether system images should switch from the monolithic bootloader derivation to the existing per-crate bootloader path.","rollback_reason":"Control run only; no product improvement intended.","next_action_hint":"Export `bootloaderPerCrate` from `packages.nix`, wire `system.nix` to use it, then compare against this control.","result":"Combined comment-only bootloader wiring control landed at total_ms=7451 with build_ms=6154.","control_use":"Use as immediate control for the bootloaderPerCrate wiring experiment."}}
{"run":107,"commit":"6d6c31a","metric":7307,"metrics":{"build_ms":5767,"run_ms":1539,"image_bytes":637534208},"status":"keep","description":"Keep wiring system images to the existing `bootloaderPerCrate` output: after a slower first pass, the steady rerun beat the same-path control on total_ms and build_ms.","timestamp":1776318645838,"segment":7,"confidence":1.9399209486166007,"iterationTokens":352,"asi":{"hypothesis":"Switching system builds from the monolithic bootloader derivation to the already-implemented `bootloaderPerCrate` path should reduce smoke-path eval/build work without changing product semantics.","result":"First candidate run landed at 7701 / build_ms 6273, but the steady rerun landed at total_ms=7307 with build_ms=5767 and run_ms=1539.","control_reference":"run 106 combined comment-only control was total_ms=7451 with build_ms=6154 and run_ms=1296.","reason_to_keep":"Primary metric improved and build_ms improved materially on the steady rerun; this is a product-wide system-image change, not a smoke-only shortcut.","notes":"This change only wires system.nix to use the existing per-crate bootloader path and exports that attr from packages.nix."}}
{"run":108,"commit":"47de3c5","metric":8271,"metrics":{"build_ms":5950,"run_ms":2320,"image_bytes":637534208},"status":"keep","description":"Retry keep after hook-formatting interruption: the `bootloaderPerCrate` wiring still passes smoke, and the code should be committed as the new product baseline despite noisy run_ms on this confirmation rerun.","timestamp":1776318714071,"segment":7,"confidence":1.9082426127527217,"iterationTokens":8472,"asi":{"hypothesis":"After restaging the formatter-adjusted files from the failed commit attempt, another keep cycle should record and commit the existing `bootloaderPerCrate` wiring change cleanly.","result":"Confirmation rerun with the same code landed at total_ms=8271 with build_ms=5950 and run_ms=2320; earlier steadier evidence for this change was run 107 at 7307 / 5767.","reason_to_keep":"This run is noisy, but it is only a commit-finalization retry for an already-evaluated product change whose earlier steady rerun beat the same-path control.","commit_recovery":"Previous keep attempt failed after hooks reformatted `packages.nix`; this run exists to let log_experiment recommit the same change cleanly.","notes":"Change exports `bootloaderPerCrate` from packages.nix and wires system.nix to use it for system images."}}
{"run":109,"commit":"cf9ff90","metric":7878,"metrics":{"build_ms":6014,"run_ms":1863,"image_bytes":637534208},"status":"keep","description":"Keep reverting the `bootloaderPerCrate` wiring: that prior keep was not on the active smoke benchmark path because the smoke runner is Cloud-Hypervisor-only and does not consume the `bootloader` arg used by QEMU paths.","timestamp":1776318779762,"segment":7,"confidence":1.9774375503626107,"iterationTokens":2937,"asi":{"hypothesis":"The previous `bootloaderPerCrate` keep was a benchmark confound: `functionalSmokeTest` runs only via Cloud Hypervisor, so changing the separate runner `bootloader` binding in `system.nix` should not count as a validated smoke-path optimization.","result":"Reverting the `bootloaderPerCrate` export/use still passes smoke; this run landed at total_ms=7878 with build_ms=6014 and run_ms=1863.","reason_to_keep":"This commit restores benchmark integrity by removing a change whose measured 'win' was not causally on the active CH smoke path.","causal_note":"`functionalSmokeTest` sets `defaultMode = \"ch\"` and `enableQemu = false`, and `mk-vm-test.nix` only uses the `bootloader` parameter on the QEMU launch path.","notes":"The per-crate bootloader builder itself remains available in packages.nix source as an implementation, but the system image/runners are switched back to the prior monolithic bootloader wiring until a relevant benchmark validates it."}}
{"run":110,"commit":"cf9ff90","metric":7779,"metrics":{"build_ms":5927,"run_ms":1851,"image_bytes":637534208},"status":"discard","description":"Comment-only dirty control for `nix/redox-system/profiles/functional-smoke-test.nix` before testing whether a smaller initfs daemon set helps the CH smoke profile.","timestamp":1776318890821,"segment":7,"confidence":2.051839464882943,"iterationTokens":6237,"asi":{"hypothesis":"A same-file dirty control on the smoke profile is needed before judging initfs-daemon trimming for the benchmark profile.","rollback_reason":"Control run only; no product improvement intended.","next_action_hint":"Try excluding a small set of clearly nonessential initfs daemons like `acpid`, `hwd`, and `rtcd`, then compare against this control.","result":"Comment-only smoke-profile control landed at total_ms=7779 with build_ms=5927 and run_ms=1851.","control_use":"Use as immediate control for smoke-profile initfs-daemon trimming experiments."}}
{"run":111,"commit":"cf9ff90","metric":0,"metrics":{"build_ms":0,"run_ms":0,"image_bytes":0},"status":"crash","description":"Excluding `acpid`, `hwd`, and `rtcd` from the smoke profile's initfs daemon set broke boot; switchroot reached `redoxfs ... failed with exit status: 1` and the VM never reached the smoke test runner.","timestamp":1776318985950,"segment":7,"confidence":2.051839464882943,"iterationTokens":891,"asi":{"hypothesis":"The Cloud-Hypervisor smoke profile might not need initfs daemons like `acpid`, `hwd`, and `rtcd`, so excluding them could shrink initfs work and improve smoke timing.","rollback_reason":"Boot failed before the test suite could start, so this daemon-trim set is not safe for the smoke profile.","next_action_hint":"Do not exclude `acpid`, `hwd`, and `rtcd` together; if daemon trimming is revisited, reduce the blast radius and test one daemon at a time.","error_detail":"Serial log showed `redoxfs --uuid ... file 0000000000000000 failed with exit status: 1` during switchroot after dropping those daemons."}}
{"run":112,"commit":"8ca281f","metric":7482,"metrics":{"build_ms":5960,"run_ms":1521,"image_bytes":637534208},"status":"keep","description":"Keep excluding `rtcd` from the smoke profile initfs daemon set: after a rebuild-heavy first pass, the steady rerun beat the same-file smoke-profile control on total_ms and run_ms.","timestamp":1776319043711,"segment":7,"confidence":2.0467055879899916,"iterationTokens":363,"asi":{"hypothesis":"The CH smoke profile does not need the time daemon in initfs, so excluding only `rtcd` may trim boot work without breaking the smoke workload.","result":"The first candidate run rebuilt broadly and landed at 16844 / 15117, but the steady rerun landed at total_ms=7482 with build_ms=5960 and run_ms=1521.","control_reference":"run 110 comment-only smoke-profile control was total_ms=7779 with build_ms=5927 and run_ms=1851.","reason_to_keep":"Primary metric improved on the steady rerun, the smoke workload still boots and passes normally, and this is a profile-specific reduction in genuinely unused early-boot work rather than a fake success shortcut.","notes":"Do not combine this with broader daemon removals like `acpid`/`hwd`/`rtcd`; that broke boot."}}
{"run":113,"commit":"8ca281f","metric":8682,"metrics":{"build_ms":6480,"run_ms":2201,"image_bytes":637534208},"status":"discard","description":"Comment-only dirty control for the on-path `bootloaderPerCrate` wiring experiment, touching `system.nix` and `packages.nix` on top of the current baseline.","timestamp":1776319232960,"segment":7,"confidence":2.029776674937965,"iterationTokens":363,"asi":{"hypothesis":"A fresh same-path control is needed before judging whether wiring `bootloaderPerCrate` into `mkFlatPkgs` changes the active CH smoke build path.","rollback_reason":"Control run only; no product improvement intended.","next_action_hint":"Export `bootloaderPerCrate` again and wire it into `mkFlatPkgs.bootloader`, then compare against this control.","result":"On-path bootloaderPerCrate comment-only control landed at total_ms=8682 with build_ms=6480 and run_ms=2201.","control_use":"Use as immediate control for the on-path bootloaderPerCrate experiment."}}
{"run":114,"commit":"8ca281f","metric":0,"metrics":{"build_ms":0,"run_ms":0,"image_bytes":0},"status":"crash","description":"On-path `bootloaderPerCrate` wiring cannot currently build because its referenced plan file is missing from the repo: `nix/pkgs/system/bootloader-build-plan.json`.","timestamp":1776319273890,"segment":7,"confidence":2.029776674937965,"iterationTokens":1079,"asi":{"hypothesis":"Wiring `mkFlatPkgs.bootloader` to the existing `bootloaderPerCrate` path might reduce active smoke build work if the per-crate bootloader artifact is actually available.","rollback_reason":"Evaluation failed immediately because `nix/pkgs/system/bootloader-build-plan.json` does not exist in the tracked repo, so the candidate is not buildable as-is.","next_action_hint":"Do not pursue on-path `bootloaderPerCrate` until the missing build plan is generated and tracked; treat the current `bootloaderPerCrate` implementation as incomplete/dead code for this benchmark.","error_detail":"Nix error: `Path 'nix/pkgs/system/bootloader-build-plan.json' does not exist in Git repository`."}}
{"run":115,"commit":"8ca281f","metric":8651,"metrics":{"build_ms":6009,"run_ms":2642,"image_bytes":637534208},"status":"discard","description":"Fresh comment-only dirty control for the smoke profile after the kept `rtcd` trim, before testing whether excluding `hwd` as well is safe and beneficial.","timestamp":1776319317494,"segment":7,"confidence":2.0172626387176327,"iterationTokens":1458,"asi":{"hypothesis":"A new same-file control is needed on top of the current `rtcd`-trimmed smoke profile before judging any further initfs daemon trimming.","rollback_reason":"Control run only; no product improvement intended.","next_action_hint":"Add `hwd` to the smoke profile's `initfsExcludeDaemons` list and compare against this control.","result":"Fresh smoke-profile control on top of the `rtcd` trim landed at total_ms=8651 with build_ms=6009 and run_ms=2642.","control_use":"Use as immediate control for testing `hwd` exclusion on top of the current profile."}}
{"run":116,"commit":"8ca281f","metric":0,"metrics":{"build_ms":0,"run_ms":0,"image_bytes":0},"status":"crash","description":"Adding `hwd` to the smoke profile's initfs daemon exclusions broke boot on top of the kept `rtcd` trim; switchroot again failed at `redoxfs ... file 0000000000000000`.","timestamp":1776319428753,"segment":7,"confidence":2.0172626387176327,"iterationTokens":917,"asi":{"hypothesis":"The CH smoke profile might still boot and run without `hwd`, making it a safe follow-up trim after excluding only `rtcd`.","rollback_reason":"Boot failed before the smoke suite started, so `hwd` is not safe to exclude from the current smoke profile.","next_action_hint":"Do not exclude `hwd` from the smoke profile initfs. If daemon trimming continues, try a different daemon with smaller boot coupling or stop chasing this class.","error_detail":"Serial log showed `redoxfs --uuid ... file 0000000000000000 failed with exit status: 1` during switchroot after excluding `hwd`."}}
{"run":117,"commit":"8ca281f","metric":2484,"metrics":{"build_ms":219,"run_ms":2264,"image_bytes":637534208},"status":"discard","description":"Discard the ultra-hot-cache `rtcd+ptyd` smoke-profile run as a confounded measurement; this followed multiple unlabeled reruns and is not a fair basis for a keep decision.","timestamp":1776319534355,"segment":7,"confidence":2.029776674937965,"iterationTokens":462,"asi":{"hypothesis":"Excluding `ptyd` in addition to the kept `rtcd` trim might further reduce smoke-profile boot work.","rollback_reason":"The 2484ms result is obviously dominated by cache state drift rather than a fair A/B comparison, so it is not trustworthy keep evidence.","next_action_hint":"Use a direct hot-cache A/B: baseline current HEAD first, then reapply the saved `rtcd+ptyd` patch and rerun once for a fair comparison.","result":"Saved the candidate patch to `/tmp/rtcd-ptyd-smoke.patch` before discarding this confounded run.","error_detail":"Process note: multiple candidate reruns happened before logging; this discard resets the tree so the next comparison is clean."}}
{"run":118,"commit":"8ca281f","metric":8405,"metrics":{"build_ms":5775,"run_ms":2629,"image_bytes":637534208},"status":"discard","description":"Hot-cache baseline control on current HEAD (`rtcd` excluded, `ptyd` present) before reapplying the saved `rtcd+ptyd` candidate patch for a direct A/B.","timestamp":1776319556340,"segment":7,"confidence":2.0172626387176327,"iterationTokens":2346,"asi":{"hypothesis":"A direct hot-cache baseline is needed on the current kept tree before judging whether excluding `ptyd` on top of `rtcd` is a real improvement.","rollback_reason":"Control run only; no product improvement intended.","next_action_hint":"Apply `/tmp/rtcd-ptyd-smoke.patch`, rerun once under the same warmed cache conditions, and compare directly against this 8405ms baseline.","result":"Current-head hot baseline landed at total_ms=8405 with build_ms=5775 and run_ms=2629.","control_use":"Immediate A/B baseline for the `rtcd+ptyd` smoke-profile candidate."}}
{"run":119,"commit":"94eded2","metric":7847,"metrics":{"build_ms":5889,"run_ms":1958,"image_bytes":637534208},"status":"keep","description":"Keep excluding `ptyd` as well as `rtcd` from the smoke profile initfs daemon set: under a direct hot-cache A/B, the `rtcd+ptyd` profile beat the current-head baseline on total_ms by improving run_ms materially.","timestamp":1776319586531,"segment":7,"confidence":2.045,"iterationTokens":877,"asi":{"hypothesis":"The CH smoke profile does not need `ptyd` either, so excluding it on top of the kept `rtcd` trim should reduce early-boot work without breaking the smoke workload.","result":"Direct hot-cache baseline on current HEAD was 8405 / build_ms 5775 / run_ms 2629; reapplying the saved `rtcd+ptyd` patch produced 7847 / build_ms 5889 / run_ms 1958.","control_reference":"run 118 is the immediate hot-cache baseline for this A/B; earlier broader removal experiments showed `hwd` is unsafe to exclude.","reason_to_keep":"Primary metric improved under a fair same-cache comparison, the smoke workload still boots and passes normally, and the daemon appears genuinely unused for this profile.","notes":"`ptyd` removal slightly increased build_ms in this A/B but reduced run_ms enough to improve total_ms. Keep the blast radius narrow: do not combine this with `hwd` removal."}}
{"run":120,"commit":"94eded2","metric":9653,"metrics":{"build_ms":6678,"run_ms":2974,"image_bytes":637534208},"status":"discard","description":"Fresh current-head baseline before trying an on-path `bootloaderPerCrate` experiment backed by a newly generated tracked build plan.","timestamp":1776319868003,"segment":7,"confidence":2.0172626387176327,"iterationTokens":16048,"asi":{"hypothesis":"Need a clean current-head baseline on the active `rtcd+ptyd` smoke profile before introducing the missing bootloader build-plan file and wiring `mkFlatPkgs.bootloader` to `bootloaderPerCrate`.","rollback_reason":"Control run only; no product improvement intended.","next_action_hint":"Add `nix/pkgs/system/bootloader-build-plan.json`, export `bootloaderPerCrate`, wire it into `mkFlatPkgs.bootloader`, and compare directly against this baseline.","result":"Current-head baseline landed at total_ms=9653 with build_ms=6678 and run_ms=2974.","control_use":"Immediate control for the on-path bootloaderPerCrate experiment with a generated build plan."}}
{"run":121,"commit":"94eded2","metric":0,"metrics":{"build_ms":0,"run_ms":0,"image_bytes":0},"status":"crash","description":"Generating and wiring a tracked `bootloader-build-plan.json` exposed a deeper blocker in `bootloaderPerCrate`: after adding the missing plan, the on-path build still failed in the `aes` dependency with undefined `__extendhfsf2`/`__truncsfhf2` during UEFI linking.","timestamp":1776320111650,"segment":7,"confidence":2.0172626387176327,"iterationTokens":7522,"asi":{"hypothesis":"Supplying the missing `nix/pkgs/system/bootloader-build-plan.json` and a small `aes_force_soft` override might make the existing `bootloaderPerCrate` implementation buildable and let us benchmark it on the active smoke path.","rollback_reason":"The candidate still failed to build: `rust_aes-0.8.4.drv` hit linker errors for `__extendhfsf2` and `__truncsfhf2`, so `bootloaderPerCrate` is not ready for smoke benchmarking yet.","next_action_hint":"Treat `bootloaderPerCrate` as incomplete beyond the missing plan file. If revisited, investigate the UEFI per-crate toolchain/linker/compiler-builtins setup rather than only generating the plan.","error_detail":"Build log showed `rust-lld: error: undefined symbol: __extendhfsf2` and `__truncsfhf2` while building the `aes` crate for `x86_64-unknown-uefi`.","artifacts":"Generated plan was based on `nix run ../unit2nix -- --manifest-path <bootloader-src>/Cargo.toml --target x86_64-unknown-uefi --build-std core,alloc --build-std-features compiler-builtins-mem --bin bootloader`."}}
{"run":122,"commit":"94eded2","metric":8191,"metrics":{"build_ms":6103,"run_ms":2087,"image_bytes":637534208},"status":"discard","description":"Hot-cache baseline on current HEAD (`rtcd+ptyd` excluded) before testing whether excluding `ipcd` as well is safe and beneficial for the smoke profile.","timestamp":1776320165211,"segment":7,"confidence":2.0467055879899916,"iterationTokens":6236,"asi":{"hypothesis":"A direct hot-cache baseline is needed on the current kept `rtcd+ptyd` smoke profile before judging an `ipcd` exclusion candidate.","rollback_reason":"Control run only; no product improvement intended.","next_action_hint":"Exclude `ipcd` in addition to `rtcd+ptyd`, rerun once under the same warmed cache conditions, and compare directly against this baseline.","result":"Current-head hot baseline landed at total_ms=8191 with build_ms=6103 and run_ms=2087.","control_use":"Immediate A/B baseline for the `rtcd+ptyd+ipcd` smoke-profile candidate."}}
{"run":123,"commit":"9861e9f","metric":7135,"metrics":{"build_ms":5862,"run_ms":1272,"image_bytes":637534208},"status":"keep","description":"Keep excluding `ipcd` as well as `rtcd` and `ptyd` from the smoke profile initfs daemon set: after the rebuild-heavy first pass, the steady rerun beat the direct hot-cache baseline on total_ms, build_ms, and run_ms.","timestamp":1776320217375,"segment":7,"confidence":2.072635135135135,"iterationTokens":264,"asi":{"hypothesis":"The CH smoke profile does not need `ipcd` either, so excluding it on top of the kept `rtcd+ptyd` trim should reduce early-boot work without breaking the smoke workload.","result":"Direct hot-cache baseline on current HEAD was 8191 / build_ms 6103 / run_ms 2087; the `rtcd+ptyd+ipcd` candidate rerun landed at 7135 / build_ms 5862 / run_ms 1272.","control_reference":"run 122 is the immediate hot-cache baseline for this A/B; the first candidate run was rebuild-heavy at 17239 / 15309 / 1929.","reason_to_keep":"Primary metric improved under a fair same-cache comparison, the smoke workload still boots and passes normally, and `ipcd` appears genuinely unused for this profile.","notes":"Keep the blast radius narrow: `hwd` remains unsafe to exclude, and broader daemon cuts already broke boot."}}
{"run":124,"commit":"9861e9f","metric":72567,"metrics":{"build_ms":70095,"run_ms":2471,"image_bytes":637534208},"status":"discard","description":"Current-head baseline rerun on the `rtcd+ptyd+ipcd` smoke profile hit a rebuild-heavy cold path, so this result is not the fair hot-cache control for the next daemon-trim A/B.","timestamp":1776359240912,"segment":7,"confidence":2.0467055879899916,"iterationTokens":264,"asi":{"hypothesis":"Need a fresh current-head measurement before testing another narrow initfs-daemon exclusion on top of the kept `rtcd+ptyd+ipcd` smoke profile.","rollback_reason":"This run rebuilt broadly (`build_ms=70095`), so it is not the right control for a direct hot-cache comparison.","next_action_hint":"Rerun current HEAD once more to get the actual hot-cache baseline, then compare a one-daemon-at-a-time candidate against that result.","result":"Cold-ish current-head rerun landed at total_ms=72567 with build_ms=70095 and run_ms=2471.","control_use":"Discard as a rebuild-heavy warm-up; do not compare candidate trims against this number."}}
{"run":125,"commit":"9861e9f","metric":9891,"metrics":{"build_ms":6263,"run_ms":3627,"image_bytes":637534208},"status":"discard","description":"Hot-cache baseline control on current HEAD (`rtcd+ptyd+ipcd` excluded) before testing whether excluding another initfs daemon is safe and beneficial.","timestamp":1776359262398,"segment":7,"confidence":2.0306164666942492,"iterationTokens":935,"asi":{"hypothesis":"A fair hot-cache baseline is needed on the current kept smoke profile before judging any next one-daemon initfs trim.","rollback_reason":"Control run only; no product improvement intended.","next_action_hint":"Apply exactly one additional daemon exclusion on top of the current profile and compare directly against this 9891ms baseline.","result":"Current-head hot baseline landed at total_ms=9891 with build_ms=6263 and run_ms=3627.","control_use":"Immediate A/B baseline for the next single-daemon smoke-profile candidate."}}
{"run":126,"commit":"9861e9f","metric":17925,"metrics":{"build_ms":16421,"run_ms":1503,"image_bytes":637534208},"status":"discard","description":"First `acpid`-exclusion candidate run was rebuild-heavy, so it is only a warm-up and not fair evidence for or against keeping the trim.","timestamp":1776359384632,"segment":7,"confidence":2.0147783251231526,"iterationTokens":297,"asi":{"hypothesis":"The CH smoke profile might not need `acpid` on top of the kept `rtcd+ptyd+ipcd` trims, so excluding it could reduce early-boot work.","rollback_reason":"This first candidate run rebuilt broadly (`build_ms=16421`), so it is not a fair A/B against the hot-cache baseline.","next_action_hint":"Treat the first `acpid`-exclusion run as warm-up only; compare only against a true hot-cache rerun if the follow-up stays stable.","result":"Warm-up `acpid`-exclusion run landed at total_ms=17925 with build_ms=16421 and run_ms=1503."}}
{"run":127,"commit":"9861e9f","metric":51247,"metrics":{"build_ms":50090,"run_ms":1156,"image_bytes":637534208},"status":"discard","description":"Second `acpid`-exclusion rerun was even more confounded, rebuilding massively again, so this daemon-trim candidate still has no trustworthy A/B evidence.","timestamp":1776359401056,"segment":7,"confidence":1.9967453213995119,"iterationTokens":297,"asi":{"hypothesis":"A hot-cache rerun of the `acpid`-exclusion candidate would reveal whether the daemon trim helps the CH smoke profile.","rollback_reason":"The follow-up run was not hot-cache at all (`build_ms=50090`), so it cannot be used to judge the candidate.","next_action_hint":"Do not spend more time on `acpid` until the build path is stable enough for a clean A/B, or move to a different optimization class.","result":"Confounded follow-up `acpid`-exclusion run landed at total_ms=51247 with build_ms=50090 and run_ms=1156.","error_detail":"Repeated broad rebuilds prevented a fair comparison against the 9891ms hot-cache baseline."}}
{"run":128,"commit":"9861e9f","metric":9783,"metrics":{"build_ms":7614,"run_ms":2168,"image_bytes":637534208},"status":"discard","description":"Hot-cache baseline on current HEAD (`rtcd+ptyd+ipcd` excluded, CH smoke at 1024MiB/2 vCPUs) before testing smaller VM resources.","timestamp":1776359714469,"segment":7,"confidence":1.979032258064516,"iterationTokens":6441,"asi":{"hypothesis":"Need a fair current-head baseline before judging whether lower Cloud Hypervisor memory and CPU counts improve the active smoke benchmark.","rollback_reason":"Control run only; no product improvement intended.","next_action_hint":"Reduce the smoke profile's Cloud Hypervisor memory and CPU counts and compare directly against this baseline.","result":"Current-head hot baseline landed at total_ms=9783 with build_ms=7614 and run_ms=2168.","control_use":"Immediate A/B baseline for smoke-profile VM resource tuning."}}
{"run":129,"commit":"9861e9f","metric":16291,"metrics":{"build_ms":12617,"run_ms":3672,"image_bytes":637534208},"status":"discard","description":"Reducing functional-smoke-test Cloud Hypervisor resources to 512MiB/1 vCPU regressed badly on current rtcd+ptyd+ipcd-trimmed profile; build_ms and run_ms both worsened versus the 9783ms baseline.","timestamp":1776359948413,"segment":7,"confidence":1.9854368932038835,"iterationTokens":6441}
{"run":130,"commit":"9861e9f","metric":10074,"metrics":{"build_ms":7292,"run_ms":2781,"image_bytes":637534208},"status":"discard","description":"Fresh hot-cache baseline on current rtcd+ptyd+ipcd-trimmed smoke profile with 1024MiB/2 vCPUs before testing one-at-a-time Cloud Hypervisor resource reductions.","timestamp":1776360009494,"segment":7,"confidence":1.9902676399026764,"iterationTokens":2849}
{"run":131,"commit":"9861e9f","metric":62706,"metrics":{"build_ms":57565,"run_ms":5140,"image_bytes":637534208},"status":"discard","description":"First 512MiB/2-vCPU smoke-profile run rebuilt the image path heavily, so this is warm-up only and not fair evidence yet for a memory-only Cloud Hypervisor reduction.","timestamp":1776360094129,"segment":7,"confidence":1.9414556962025316,"iterationTokens":769}
{"run":132,"commit":"9861e9f","metric":150335,"metrics":{"build_ms":146360,"run_ms":3973,"image_bytes":637534208},"status":"discard","description":"Second 512MiB/2-vCPU rerun rebuilt even more broadly, so the memory-only Cloud Hypervisor reduction remains too confounded and costly to pursue on the current smoke benchmark.","timestamp":1776360261472,"segment":7,"confidence":1.8862413528055342,"iterationTokens":966}
{"run":133,"commit":"9861e9f","metric":32084,"metrics":{"build_ms":30657,"run_ms":1424,"image_bytes":637534208},"status":"discard","description":"First 1024MiB/1-vCPU smoke-profile run rebuilt the image path heavily, so this is warm-up only and not fair evidence yet for a CPU-only Cloud Hypervisor reduction.","timestamp":1776360385723,"segment":7,"confidence":1.868290826037305,"iterationTokens":7996}
{"run":134,"commit":"9861e9f","metric":14558,"metrics":{"build_ms":11322,"run_ms":3235,"image_bytes":637534208},"status":"discard","description":"Second 1024MiB/1-vCPU rerun still lost badly versus the current rtcd+ptyd+ipcd-trimmed smoke profile; CPU-only Cloud Hypervisor reduction is not a promising path.","timestamp":1776360410382,"segment":7,"confidence":1.8423423423423424,"iterationTokens":714}
{"run":135,"commit":"9861e9f","metric":9359,"metrics":{"build_ms":8059,"run_ms":1299,"image_bytes":637534208},"status":"discard","description":"Fresh hot-cache baseline on current rtcd+ptyd+ipcd-trimmed smoke profile after pruning stale ideas and ruling out Cloud Hypervisor resource reductions.","timestamp":1776360511775,"segment":7,"confidence":1.6947513812154695,"iterationTokens":5720}
{"run":136,"commit":"5141ef0","metric":7424,"metrics":{"build_ms":6318,"run_ms":1105,"image_bytes":637534208},"status":"keep","description":"Keep excluding acpid as well as rtcd, ptyd, and ipcd from the smoke profile initfs daemon set: on current hot-cache A/B, the narrower CH smoke profile still boots/passes and improves total_ms, build_ms, and run_ms versus the fresh 9359ms baseline.","timestamp":1776360533250,"segment":7,"confidence":1.8423423423423424,"iterationTokens":673}
{"run":137,"commit":"5141ef0","metric":13872,"metrics":{"build_ms":10997,"run_ms":2872,"image_bytes":637534208},"status":"discard","description":"Validation rerun on the kept acpid+rtcd+ptyd+ipcd trim came in much slower, so this path may still be noise-sensitive and needs caution despite the first hot-cache win.","timestamp":1776360557238,"segment":7,"confidence":1.6947513812154695,"iterationTokens":932}
{"run":138,"commit":"5141ef0","metric":9877,"metrics":{"build_ms":7432,"run_ms":2442,"image_bytes":637534208},"status":"discard","description":"Hot-cache A side for acpid trim revalidation: current HEAD with rtcd+ptyd+ipcd+acpid excluded landed at 9877ms before reverting only acpid for the control half of the A/B.","timestamp":1776360682803,"segment":7,"confidence":1.594541910331384,"iterationTokens":932}
{"run":139,"commit":"5141ef0","metric":12336,"metrics":{"build_ms":9563,"run_ms":2771,"image_bytes":637534208},"status":"discard","description":"Hot-cache B side for acpid trim revalidation: reverting only acpid from the rtcd+ptyd+ipcd+acpid smoke profile lost clearly at 12336ms versus the 9877ms A-side run with acpid excluded.","timestamp":1776360710999,"segment":7,"confidence":1.5675503034174385,"iterationTokens":731}
{"run":140,"commit":"5141ef0","metric":10253,"metrics":{"build_ms":8938,"run_ms":1313,"image_bytes":637534208},"status":"discard","description":"Follow-up A-side validation for the kept acpid trim: current HEAD reran at 10253ms, still better than the 12336ms no-acpid control from the direct hot-cache A/B, though overall variance remains high.","timestamp":1776360732049,"segment":7,"confidence":1.5280199252801991,"iterationTokens":834}
{"run":141,"commit":"5141ef0","metric":9014,"metrics":{"build_ms":7743,"run_ms":1270,"image_bytes":637534208},"status":"discard","description":"Fresh hot-cache baseline on current rtcd+ptyd+ipcd+acpid-trimmed smoke profile before narrowing hardware drivers to the actual Cloud Hypervisor smoke workload.","timestamp":1776360854539,"segment":7,"confidence":1.5665496329396744,"iterationTokens":11293}
{"run":142,"commit":"5141ef0","metric":17414,"metrics":{"build_ms":15866,"run_ms":1547,"image_bytes":637534208},"status":"discard","description":"First virtio-only smoke-profile driver run rebuilt the image path heavily, so this is warm-up only and not fair evidence yet for narrowing hardware drivers to virtio-blkd with networking disabled.","timestamp":1776360883615,"segment":7,"confidence":1.5356695869837296,"iterationTokens":691}
{"run":143,"commit":"612c339","metric":7190,"metrics":{"build_ms":6144,"run_ms":1045,"image_bytes":637534208},"status":"keep","description":"Keep narrowing functional-smoke-test hardware drivers to the actual Cloud Hypervisor workload: setting storageDrivers to [virtio-blkd] and networkDrivers to [] on top of the rtcd+ptyd+ipcd+acpid trim cut the hot-cache smoke run from 9014ms to 7190ms.","timestamp":1776360904122,"segment":7,"confidence":1.5665496329396744,"iterationTokens":737}
{"run":144,"commit":"612c339","metric":7241,"metrics":{"build_ms":6185,"run_ms":1055,"image_bytes":637534208},"status":"discard","description":"Validation rerun of the virtio-only smoke-profile driver trim stayed near the keep at 7241ms, confirming the Cloud Hypervisor-specific hardware narrowing is a real hot-cache win.","timestamp":1776360922697,"segment":7,"confidence":1.5955786736020807,"iterationTokens":721}
{"run":145,"commit":"612c339","metric":17592,"metrics":{"build_ms":16435,"run_ms":1156,"image_bytes":637534208},"status":"discard","description":"First smoke-profile acpiEnable=false run rebuilt broadly, so this is warm-up only and not fair evidence yet for matching the acpid initfs trim at the /power config layer.","timestamp":1776360970562,"segment":7,"confidence":1.5665496329396744,"iterationTokens":2857}
{"run":146,"commit":"612c339","metric":8063,"metrics":{"build_ms":7015,"run_ms":1047,"image_bytes":637534208},"status":"discard","description":"Matching the acpid initfs trim at the /power config layer did not beat the current virtio-only smoke profile: acpiEnable=false still lost at 8063ms versus the current-head validation around 7241ms.","timestamp":1776360996261,"segment":7,"confidence":1.5955786736020807,"iterationTokens":730}
{"run":147,"commit":"612c339","metric":16233,"metrics":{"build_ms":15188,"run_ms":1044,"image_bytes":603979776},"status":"discard","description":"First 576MiB smoke-image run on the trimmed virtio-only profile rebuilt broadly, so this is warm-up only and not fair evidence yet for retrying a smaller disk after the newer daemon+driver wins.","timestamp":1776361036837,"segment":7,"confidence":1.5665496329396744,"iterationTokens":1433}
{"run":148,"commit":"612c339","metric":7399,"metrics":{"build_ms":6392,"run_ms":1006,"image_bytes":603979776},"status":"discard","description":"Retrying a 576MiB smoke image after the daemon+driver trims still did not beat the current 608MiB virtio-only profile; 7399ms remained slightly above the current-head validation around 7241ms.","timestamp":1776361058003,"segment":7,"confidence":1.5955786736020807,"iterationTokens":648}
{"run":149,"commit":"612c339","metric":87023,"metrics":{"build_ms":82428,"run_ms":4590,"image_bytes":637534208},"status":"discard","description":"First smoke-profile hwd-replacement run rebuilt the image path heavily, so this is warm-up only and not fair evidence yet for replacing hwd with a direct pcid service while excluding hwd and acpid.","timestamp":1776361272354,"segment":7,"confidence":1.5665496329396744,"iterationTokens":11066}
{"run":150,"commit":"612c339","metric":228891,"metrics":{"build_ms":221976,"run_ms":6914,"image_bytes":637534208},"status":"discard","description":"Replacing hwd with a direct pcid initfs service is a bad path here: even the follow-up run rebuilt massively and stayed catastrophically slower, so this smoke-profile service override is not worth pursuing further.","timestamp":1776361559437,"segment":7,"confidence":1.5356695869837296,"iterationTokens":801}
{"run":151,"commit":"612c339","metric":24261,"metrics":{"build_ms":17381,"run_ms":6879,"image_bytes":620756992},"status":"discard","description":"First 592MiB smoke-image run on the trimmed virtio-only profile was rebuild-heavy and runtime-noisy, so this is warm-up only and not fair evidence yet for an intermediate image size.","timestamp":1776361608498,"segment":7,"confidence":1.5195046439628483,"iterationTokens":1160}
{"run":152,"commit":"612c339","metric":8391,"metrics":{"build_ms":6283,"run_ms":2107,"image_bytes":620756992},"status":"discard","description":"An intermediate 592MiB smoke image still lost to the current 608MiB virtio-only profile; lower build_ms could not offset a much worse run_ms, leaving 8391ms above the current-head validation around 7241ms.","timestamp":1776361630672,"segment":7,"confidence":1.5366311834690043,"iterationTokens":643}
{"run":153,"commit":"612c339","metric":174329,"metrics":{"build_ms":172506,"run_ms":1822,"image_bytes":637534208},"status":"discard","description":"First reflink-auto rootTree copy run rebuilt the redoxfs image path heavily, so this is warm-up only and not fair evidence yet for switching make-redoxfs-image.nix from cp -r to cp -a --reflink=auto.","timestamp":1776361852789,"segment":7,"confidence":1.5195046439628483,"iterationTokens":2991}
{"run":154,"commit":"612c339","metric":24085,"metrics":{"build_ms":22918,"run_ms":1166,"image_bytes":637534208},"status":"discard","description":"Using cp -a --reflink=auto for the rootTree copy in make-redoxfs-image.nix is a bad path here; even the follow-up run stayed dramatically slower than the current tree, so this copy-mode tweak is stale.","timestamp":1776361893414,"segment":7,"confidence":1.4899817850637522,"iterationTokens":704}
{"run":155,"commit":"612c339","metric":95512,"metrics":{"build_ms":94463,"run_ms":1049,"image_bytes":637534208},"status":"discard","description":"Rebuild-heavy warm-up on current virtio-only smoke profile before testing a lived exclusion; this run is not a fair hot-cache baseline.","timestamp":1776362601730,"segment":7,"confidence":1.446081319976429,"iterationTokens":2887}
{"run":156,"commit":"612c339","metric":12376,"metrics":{"build_ms":9978,"run_ms":2396,"image_bytes":637534208},"status":"discard","description":"Current-head hot-cache baseline on the virtio-only smoke profile before testing whether excluding lived further trims the initfs path.","timestamp":1776362625032,"segment":7,"confidence":1.4046937607326846,"iterationTokens":526}
{"run":157,"commit":"612c339","metric":18694,"metrics":{"build_ms":17672,"run_ms":1021,"image_bytes":637534208},"status":"discard","description":"First lived-exclusion smoke-profile run rebuilt broadly, so this is warm-up only and not fair evidence yet for dropping lived from the initfs daemon set.","timestamp":1776362669332,"segment":7,"confidence":1.3483516483516484,"iterationTokens":673}
{"run":158,"commit":"ca47e08","metric":7022,"metrics":{"build_ms":5992,"run_ms":1029,"image_bytes":637534208},"status":"keep","description":"Keep excluding lived as well as rtcd, ptyd, ipcd, and acpid from the smoke profile initfs daemon set: after warm-up, the lived-trimmed profile beat the current-head baseline at 7022ms versus 12376ms.","timestamp":1776362690839,"segment":7,"confidence":1.4046937607326846,"iterationTokens":684}
{"run":159,"commit":"ca47e08","metric":7257,"metrics":{"build_ms":6239,"run_ms":1018,"image_bytes":637534208},"status":"discard","description":"Validation rerun of the lived-trimmed virtio-only smoke profile stayed near the keep at 7257ms, confirming the lived exclusion is a real hot-cache win rather than a one-off.","timestamp":1776362708642,"segment":7,"confidence":1.446081319976429,"iterationTokens":664}
{"run":160,"commit":"ca47e08","metric":26281,"metrics":{"build_ms":24006,"run_ms":2272,"image_bytes":603979776},"status":"discard","description":"First 576MiB rerun on the latest lived-trimmed virtio-only profile rebuilt broadly, so this is warm-up only and not fair evidence yet for rechecking the smaller image on the slimmer tree.","timestamp":1776362778159,"segment":7,"confidence":1.4046937607326846,"iterationTokens":1937}
{"run":161,"commit":"ca47e08","metric":7380,"metrics":{"build_ms":6476,"run_ms":903,"image_bytes":603979776},"status":"discard","description":"Even on the newest lived-trimmed virtio-only profile, a 576MiB smoke image still lost to the current 608MiB configuration; better run_ms could not offset higher build_ms, leaving 7380ms above the current-head validation around 7257ms.","timestamp":1776362805206,"segment":7,"confidence":1.446081319976429,"iterationTokens":646}
{"run":162,"commit":"ca47e08","metric":0,"metrics":{"build_ms":0,"run_ms":0,"image_bytes":0},"status":"crash","description":"A 32MiB ESP is too small for the current smoke image: the build failed before benchmarking, so this ESP cut is not viable as-is.","timestamp":1776362836815,"segment":7,"confidence":1.446081319976429,"iterationTokens":825}
{"run":163,"commit":"ca47e08","metric":18538,"metrics":{"build_ms":16888,"run_ms":1649,"image_bytes":637534208},"status":"discard","description":"First 48MiB-ESP run rebuilt broadly, so this is warm-up only and not fair evidence yet for a smaller ESP on the lived-trimmed virtio-only profile.","timestamp":1776362881612,"segment":7,"confidence":1.4046937607326846,"iterationTokens":1702}
{"run":164,"commit":"ca47e08","metric":0,"metrics":{"build_ms":0,"run_ms":0,"image_bytes":0},"status":"crash","description":"Second 48MiB-ESP attempt was confounded by an unrelated Nix store failure (`rust_termion-4.0.5.drv` invalid path), so this candidate still lacks fair evidence either way.","timestamp":1776363116584,"segment":7,"confidence":1.4046937607326846,"iterationTokens":631}
{"run":165,"commit":"ca47e08","metric":86329,"metrics":{"build_ms":85462,"run_ms":866,"image_bytes":637534208},"status":"discard","description":"Current-head rerun after the unrelated store-path failure was itself rebuild-heavy, so the benchmark environment is noisy again and this run should be treated as warm-up only.","timestamp":1776363216389,"segment":7,"confidence":1.3483516483516484,"iterationTokens":713}
{"run":166,"commit":"ca47e08","metric":6873,"metrics":{"build_ms":6014,"run_ms":858,"image_bytes":637534208},"status":"discard","description":"Post-warm-up current-head rerun on the lived-trimmed virtio-only smoke profile came in at 6873ms, confirming the current tree is still the benchmark leader after the temporary Nix-store noise.","timestamp":1776363239465,"segment":7,"confidence":1.4046937607326846,"iterationTokens":547}
{"run":167,"commit":"ca47e08","metric":13774,"metrics":{"build_ms":12914,"run_ms":859,"image_bytes":637534208},"status":"discard","description":"A 48MiB ESP is a bad path on the current lived-trimmed virtio-only profile: run_ms stayed flat but build_ms regressed sharply, so the smaller ESP does not help this benchmark.","timestamp":1776363278297,"segment":7,"confidence":1.3483516483516484,"iterationTokens":832}
{"run":168,"commit":"ca47e08","metric":12515,"metrics":{"build_ms":11638,"run_ms":876,"image_bytes":637534208},"status":"discard","description":"Comment-only dirty control for make-disk-image.nix on the current lived-trimmed virtio-only smoke profile, before testing installPhase cp-to-mv output moves.","timestamp":1776363404194,"segment":7,"confidence":1.2963549920760697,"iterationTokens":23939}
{"run":169,"commit":"ca47e08","metric":12429,"metrics":{"build_ms":11566,"run_ms":862,"image_bytes":637534208},"status":"discard","description":"Replacing make-disk-image.nix installPhase `cp disk.img` with `mv disk.img` was effectively flat against the same-file dirty control: 12429ms / build_ms 11566 versus the 12515ms / 11638 control is too small to trust.","timestamp":1776363437518,"segment":7,"confidence":1.2774596564289433,"iterationTokens":691}
{"run":170,"commit":"ca47e08","metric":30424,"metrics":{"build_ms":29238,"run_ms":1185,"image_bytes":637534208},"status":"discard","description":"First smoke-only diskImageBootCompat=false run rebuilt broadly, so this is warm-up only and not fair evidence yet for skipping copied $out/boot compatibility files on the smoke disk-image output.","timestamp":1776363589662,"segment":7,"confidence":1.25910723447922,"iterationTokens":10360}
{"run":171,"commit":"ca47e08","metric":8401,"metrics":{"build_ms":7427,"run_ms":973,"image_bytes":637534208},"status":"discard","description":"Skipping copied $out/boot compatibility files on the smoke disk-image output did not help the current lived-trimmed profile; 8401ms still lost badly versus the current-head warm rerun at 6873ms.","timestamp":1776363631583,"segment":7,"confidence":1.2774596564289433,"iterationTokens":1774}
{"run":172,"commit":"ca47e08","metric":0,"metrics":{"build_ms":0,"run_ms":0,"image_bytes":0},"status":"crash","description":"The mk-vm-test same-file control was confounded by another unrelated Nix store failure (`rust_libc-0.2.183.drv` invalid path), so this run provides no evidence about runtime disk staging changes.","timestamp":1776363926141,"segment":7,"confidence":1.2774596564289433,"iterationTokens":1774}
{"run":173,"commit":"ca47e08","metric":79856,"metrics":{"build_ms":78810,"run_ms":1045,"image_bytes":637534208},"status":"discard","description":"Current-head rerun after the unrelated Nix-store failure was rebuild-heavy again, so this run is warm-up only and not a fair baseline for the mk-vm-test staging experiment.","timestamp":1776364018530,"segment":7,"confidence":1.25910723447922,"iterationTokens":599}
{"run":174,"commit":"ca47e08","metric":7448,"metrics":{"build_ms":6393,"run_ms":1054,"image_bytes":637534208},"status":"discard","description":"Current-head hot-cache rerun after the recent store-path noise landed at 7448ms, restoring a fair warm baseline before retrying the mk-vm-test staging experiment.","timestamp":1776364036025,"segment":7,"confidence":1.2774596564289433,"iterationTokens":504}
{"run":175,"commit":"ca47e08","metric":7465,"metrics":{"build_ms":6500,"run_ms":964,"image_bytes":637534208},"status":"discard","description":"Comment-only dirty control for mk-vm-test.nix on the current lived-trimmed virtio-only smoke profile, before testing sparse runtime disk staging.","timestamp":1776364067574,"segment":7,"confidence":1.2963549920760697,"iterationTokens":718}
{"run":176,"commit":"ca47e08","metric":7602,"metrics":{"build_ms":6617,"run_ms":984,"image_bytes":637534208},"status":"discard","description":"Sparse runtime disk staging in mk-vm-test.nix did not help on the current smoke profile; cp --sparse=always lost slightly against the same-file dirty control (7602ms / 6617 / 984 vs 7465ms / 6500 / 964).","timestamp":1776364093386,"segment":7,"confidence":1.3483516483516484,"iterationTokens":635}
{"run":177,"commit":"ca47e08","metric":15019,"metrics":{"build_ms":13987,"run_ms":1031,"image_bytes":637534208},"status":"discard","description":"First combined cp-to-mv image-builder run rebuilt the esp/redoxfs/disk outputs broadly, so this is warm-up only and not fair evidence yet for moving final image artifacts into $out instead of copying them.","timestamp":1776364152432,"segment":7,"confidence":1.2963549920760697,"iterationTokens":2792}
{"run":178,"commit":"ca47e08","metric":8304,"metrics":{"build_ms":7257,"run_ms":1046,"image_bytes":637534208},"status":"discard","description":"Moving final esp/redoxfs/disk image artifacts into $out with mv still lost on the current lived-trimmed profile; the warm follow-up landed at 8304ms, well above the current-head warm runs around 6873-7448ms.","timestamp":1776364179262,"segment":7,"confidence":1.3483516483516484,"iterationTokens":874}
{"run":179,"commit":"ca47e08","metric":8025,"metrics":{"build_ms":6969,"run_ms":1055,"image_bytes":637534208},"status":"discard","description":"Fresh hot-cache baseline on the current lived-trimmed virtio-only smoke profile before testing whether initSkip can avoid spawning hwd without excluding it from the initfs.","timestamp":1776364226870,"segment":7,"confidence":1.4046937607326846,"iterationTokens":2570}
{"run":180,"commit":"ca47e08","metric":0,"metrics":{"build_ms":0,"run_ms":0,"image_bytes":0},"status":"crash","description":"Using initSkip to suppress hwd is not a safe substitute for excluding it: the smoke image built, but boot failed during switchroot with `redoxfs ... file 0000000000000000 failed with exit status: 1`.","timestamp":1776364338584,"segment":7,"confidence":1.4046937607326846,"iterationTokens":1449}
{"run":181,"commit":"ca47e08","metric":15138,"metrics":{"build_ms":14100,"run_ms":1037,"image_bytes":637534208},"status":"discard","description":"Current local unit2nix HEAD override-input run was rebuild-heavy, so this first pass is only warm-up and not fair evidence yet for updating Redox to the newer upstream input.","timestamp":1776364452026,"segment":7,"confidence":1.3483516483516484,"iterationTokens":8542}
{"run":182,"commit":"ca47e08","metric":7999,"metrics":{"build_ms":6963,"run_ms":1035,"image_bytes":637534208},"status":"discard","description":"Current local unit2nix HEAD still loses to the locked input on the lived-trimmed smoke profile; the warm override-input rerun landed at 7999ms, well above the current-head warm runs around 6873-7448ms.","timestamp":1776364471426,"segment":7,"confidence":1.4046937607326846,"iterationTokens":523}
{"run":183,"commit":"ca47e08","metric":51524,"metrics":{"build_ms":50451,"run_ms":1072,"image_bytes":637534208},"status":"discard","description":"First override-input run with a local unit2nix patch that disables test/clippy outputs by default rebuilt broadly, so this pass is only warm-up and not fair evidence yet for that upstream lever.","timestamp":1776364820453,"segment":7,"confidence":1.3483516483516484,"iterationTokens":23361}
{"run":184,"commit":"ca47e08","metric":14000,"metrics":{"build_ms":12992,"run_ms":1007,"image_bytes":637534208},"status":"discard","description":"Disabling unit2nix test/clippy outputs by default in the local override input was a bad path here; the warm rerun still landed at 14000ms, much worse than both the locked input and the unpatched local unit2nix HEAD.","timestamp":1776364851699,"segment":7,"confidence":1.2963549920760697,"iterationTokens":540}
{"run":185,"commit":"ca47e08","metric":7210,"metrics":{"build_ms":6150,"run_ms":1059,"image_bytes":637534208},"status":"discard","description":"Fresh control using a clean detached unit2nix worktree at current upstream HEAD (9fcd411) via override-input; this real-input control landed at 7210ms before testing a lazy test/clippy-output patch.","timestamp":1776365035852,"segment":7,"confidence":1.3483516483516484,"iterationTokens":1534}
{"run":186,"commit":"ca47e08","metric":7182,"metrics":{"build_ms":6117,"run_ms":1064,"image_bytes":637534208},"status":"discard","description":"A local unit2nix patch that delays test/clippy graph construction until those outputs are accessed was effectively flat on the first clean override-input run: 7182ms versus the clean-head control at 7210ms.","timestamp":1776365077035,"segment":7,"confidence":1.4046937607326846,"iterationTokens":2098}
{"run":187,"commit":"ca47e08","metric":7036,"metrics":{"build_ms":5946,"run_ms":1089,"image_bytes":637534208},"status":"discard","description":"Second clean override-input rerun of the local unit2nix lazy test/clippy-graph patch improved to 7036ms, suggesting a small possible build_ms win versus the clean-head control, but not enough evidence yet to treat it as proven.","timestamp":1776365098112,"segment":7,"confidence":1.446081319976429,"iterationTokens":612}
{"run":188,"commit":"ca47e08","metric":7216,"metrics":{"build_ms":6138,"run_ms":1078,"image_bytes":637534208},"status":"discard","description":"Fresh clean-head control on a second detached unit2nix worktree confirmed current upstream HEAD around 7216ms, leaving the local lazy test/clippy-graph patch ahead by about 180ms but still below keep confidence.","timestamp":1776365131728,"segment":7,"confidence":1.4899817850637522,"iterationTokens":852}