Skip to content

fix(ci): disable telemetry during browser closure discovery - #2468

Merged
schlessera merged 4 commits into
mainfrom
fix/2465-discovery-telemetry-r4
Oct 21, 2026
Merged

schlessera merged 4 commits into
mainfrom
fix/2465-discovery-telemetry-r4

Conversation

@schlessera

@schlessera schlessera commented Oct 21, 2026 •

Copy link
Copy Markdown
Owner

Refs #2465

Verified delivery — 2026-10-21

2026-10-21 delivery complete: #2468 merged as b393bf4, milestone 0.44.0. Candidate confirmation 39563361981 and automatic main push 39566209688, attempt 1 each, both pass all 17 jobs. Every actual selected job checkout, including verification, packaging and aggregate, was independently read from its checkout log. Candidate checkout 0a97ff4 has parents 419f3a5 and 33fd422; the squash has that main parent and matching tree 307865609240c7de2907d143e6fc668996d9f972. All main jobs checked out the squash. Both aggregates prove all nine selected categories with no retained jobs. Main ancestry and PR/issue milestones are verified; the integration reservation is released.

The original production consumer cases pass on main at 12,358.60 ms and 11,421.13 ms, with unchanged 30-second limits. Candidate/main elapsed costs are 1,355 / 1,255 seconds; summed job time is 10,447 / 10,057 seconds, zero cancellations in these two runs. These are distinct-run observations, not a matched hosted saving. The earlier superseded draft cancellation is preserved separately. The measured local mechanism correction remains 33.653 to 19.543 seconds on its recorded source pair, with actual telemetry-timer red/restored controls, equal inventories/plans and meaningful consumer-selection/fallback mutations. Historical hosted timeout attribution remains explicitly unproven; no historical failure or criterion is erased.

#2465's scoped correction and required local, selected hosted and main proof are complete. #2464 now needs a current-main refresh and its own exact-candidate qualification; #2457/#2279 and the epic are not thereby complete. #2319 activation stays deferred.

What changed

Browser input-closure discovery now sets STORYBOOK_DISABLE_TELEMETRY=1 for its installed Node/Vitest file-listing child, matching the existing browserInventory launch. Storybook no longer starts telemetry requests that retain the completed collector through retry timers. Discovery calls, projects, output validation, conservative fallback, the 15-second child cap and 30-second test cap are unchanged.

Why this shape

Clean installed sources verify the supported core-preset environment → disableTelemetry → addon setTelemetryEnabled → no-submission flow. The same-class audit found exactly two --filesOnly launch sites; both now opt out. This changes only repository proof tooling, with no dependency, lockfile, package, public contract or changeset change.

Proof

Current head: 33fd4227ccd6a6066c5b8d89ab521da01d86a221; tree: 307865609240c7de2907d143e6fc668996d9f972; base: 419f3a51b5017a4705e6fe4dba9982b6fc8de3bc. The #2462 font-probe layout fix and #2470 generated-input audit changes are merged. Fresh required preflight passes 970 fast tests / 6,439 assertions and 219 affected tests / 7,784 assertions, zero failures. Preflight costs 148.361 seconds wall / 166.177 seconds waited-tree CPU. The telemetry correction, dependencies and deadlines remain unchanged. Strict types pass (31.884 seconds wall / 48.090 seconds waited-tree CPU).

Previous refresh 67f1566e / tree f708f467129e5f08dbd93297477003e4bd772309 / base b7f6360a passed 970 fast and 219 affected tests plus strict types (148.906 seconds wall / 166.304 seconds waited-tree CPU). Those receipts remain attached to that earlier combined tree.

On preceding head 35d373e2, run 39554978140 reported all 16 jobs before the aggregate successful, with matching actual checkout 36888663c2b5e7f7addf348d76f9003f26cbeada, tree 307f55d163569fd84c45282af1af876dc8b3adc1, base e1370575. The consumer tests passed at 20.790 / 20.195 seconds. The aggregate correctly refused the now-stale base after #2467 merged. Those results remain tied to their original checkout and are not proof for this refreshed candidate. Its reservation was released. The foreign reservation has since been released. The refreshed candidate subsequently completed exact-head/base confirmation and delivery as recorded above; no older result is reused as current proof.

Earlier refreshed head: 35d373e2f5ccca026c48fe7aaa868876a1021a0d; tree: 307f55d163569fd84c45282af1af876dc8b3adc1; base: e137057574f1f3525621fce01a312a7d5e80269b. Parent review accepted the one-line environment correction and independently verified all 179 implementation archive files. The later main change to tests/frontmatter-parse-gate.test.ts was merged without conflict and fresh combined-source validation passed: 970 fast tests and 219 affected tests, zero failures, plus strict types. Required preflight cost 151.767 seconds wall / 171.782 seconds waited-tree CPU. The opt-out and dependencies are unchanged.

The paired mechanism/inventory/cost receipts below retain original head cfa0132503a873e1a5780765a366287ff042c1b8, tree 6aa814db328a162954965f97bc5b51fa07b357cc, base e2deae1f3c4e18affacc0da45d6202b0ca4378fc. They are not relabeled as combined-tree measurements. Runtime commands used a private frozen copyfile install, one ordinary 19-package build, the original test wrapper/preload, and a network namespace with no egress.

  • Fresh private Bun cache; all 465 published files across Vitest 4.1.11, Vite 8.3.1, Storybook 10.6.0 and its Vitest addon match their registry tarballs. Every tarball matches its lockfile SHA-512. The earlier diagnostic install differs in one Vitest browser-session file containing debug lines; that historical caveat is preserved. The actual collector/telemetry chain otherwise matches, and this round re-established the mechanism on clean bytes.
  • Paired real production calls preserve both original planChecks → unitFiles assertions. Actual raw inventories normalize to 382 records / 234 files / 15 projects, SHA-256 eaa5d2e5fac940ef1a5ed6f7ab5634b370ddaa80a7a8a0e74dd325736ae85297. Full ordered plans and all closure files, unresolved reasons and category fields are exactly equal between observed arms; nonglobal unit inventories remain 837 / 814.
  • Named FILE_ONLY_DISCOVERY_NO_TELEMETRY_RETRY control fails with the opt-out removed: two actual test-run submissions and six referenced 1/2/4-second retry callbacks per listing, all after collector close. Byte-identical restoration passes: zero submissions/retry callbacks, natural exit 0. Post-close lifetime changes from 7.170 / 7.208 seconds to 0.0099 / 0.0092 seconds. This assertion checks the actual path and timer lifecycle, not a shorter timing threshold or a fake runner.
  • All temporary observation patches were hashed and restored; published dependency bytes were reverified before uninstrumented proof. Uninstrumented two-case command wall time is 33.653 → 19.543 seconds (14.110 seconds less); waited-tree CPU is 29.367 → 29.259 seconds. Individual original cases: 16.891 → 9.832 and 16.522 → 9.474 seconds. Instrumented commands cost 34.316 / 19.613 seconds; this fixed order does not isolate observer overhead from cache/host effects. Node self CPU is included in, not added to, waited-tree CPU.
  • Removing additive consumer selection fails both original CROSS_WORKSPACE_CONSUMER assertions. Removing conservative fallback fails FALLBACK_ADDS_MISSING_CONSUMER. Restored focused proof passes 113 tests / 7,087 assertions, including metadata/loaders, exact edges, fallback, floor/category/shards and the independent whole-class census (6,021 assertions).
  • bun run typecheck passes. Required bun run check:pr --base origin/main: passes (970 fast / 6,438 assertions and 219 affected / 7,784 assertions; 151.382 seconds wall / 171.657 seconds waited-tree CPU).
  • System bubblewrap 0.9.0 correctly refused its unchanged setup prerequisite at 480.3 ms against 250 ms. A command-scoped, hash-verified private 0.13.1 binary passed; the original PATH remainder and Node/Bun identities are unchanged. The failed prerequisite receipt is retained. Frozen install / registry verification / full build cost 33.938 / 2.232 / 55.847 seconds wall, separately from qualification.

Raw receipts retain argv, source/tool identities, wall/waited CPU, outputs, JUnit, observer patches/restoration and bounded PID/start cleanup. Every completed command drained both pipes and left no owned survivor. No shared dependency cache or other checkout was edited.

Checklist

  • Focused local preflight, behavioral receipts, complete selected hosted proof and automatic main proof passed; exact delivery evidence is recorded above.
  • Acceptance criteria from the issue are all met, or the gap is named below.
  • The PR and advanced issue retain release milestone 0.44.0.
  • No changeset: repository proof tooling only.
  • Leakage gate clean.
  • No machine-surface change.
  • No documented policy change.
  • No provider-history change.

Anything left open

This is a measured local correction, not a retrospective explanation of the hosted 37.326-second timeout or a valid hosted saving. The historical failed checkout remains 9d70c461bc0a9ce22de12ed158c8f3cad67dae53, tree 3b639c2ddf92125d266dfb762c9c5147e41f14ea, run 39522289975. Later cancellation does not erase that failure. This branch does not incorporate or qualify the separately owned implementation in #2464.

Independent review, exact-candidate selected proof, merge and automatic main proof are complete as recorded above. #2465 is complete; #1849 and the independent #2464 work remain open. No original acceptance criterion was waived.

@schlessera schlessera added this to the 0.44.0 milestone Oct 21, 2026
@schlessera schlessera added type: fix Something is broken and must behave the way it is documented. area: ci CI workflows, the gates they run, release scripts, packaging. labels Oct 21, 2026
@schlessera
schlessera marked this pull request as ready for review October 21, 2026 06:22
@schlessera

Copy link
Copy Markdown
Owner Author

The confirmation controller exited 1 after main advanced from e137057 to b7f6360 (#2467). Its exact-main guard refused further confirmation/merge and released reservation 3045ac5547d6f3eb34bba0ad7a483545; readback confirms no active reservation.

Run 39554978140 remains in progress on the original head 35d373e and base e137057. No failing job was reported at controller exit. It is allowed to complete so its evidence is retained; there is no unchanged retry or premature cancellation. These results will not be relabeled as proof of the newer base.

The main delta adds build-execution.ts to build-repeat observation inputs and extends that observation test. It changes no telemetry opt-out, discovery implementation, dependencies or deadline, but it changes source inputs read by the planner and build observations. Parent will refresh and validate the combined candidate after the current run completes, then reacquire only for the resulting exact head/base. No merge or complete hosted proof is claimed.

@schlessera
schlessera marked this pull request as draft October 21, 2026 06:45
@schlessera

Copy link
Copy Markdown
Owner Author

Run 39554978140 completed with all 16 jobs before the aggregate successful. The proof aggregate correctly refused the stale candidate after main advanced: Candidate became stale: the live PR head, readiness or base changed; request confirmation again. This is not a product/test assertion failure. All actual job checkout logs were retained and match 3688866, tree 307f55d163569fd84c45282af1af876dc8b3adc1, parents e137057 and 35d373e.

The original consumer cases both passed in unit shard 4: application.ts 20,790.32 ms and module-jobs/types.ts 20,194.66 ms, under unchanged 30-second limits. These are measurements on this run, not a matched hosted saving or a retrospective cause for the earlier failure.

The PR is back in draft. The two-file #2467 main delta is merged locally and fresh required preflight is running. Our reservation remains released; the currently live reservation belongs to PR #2462 and will not be disturbed. Parent will request confirmation for a refreshed exact head/base only after that merge window is available. No complete aggregate proof or merge is claimed.

@schlessera
schlessera marked this pull request as ready for review October 21, 2026 07:38
@schlessera
schlessera merged commit b393bf4 into main Oct 21, 2026
19 of 31 checks passed
@schlessera

Copy link
Copy Markdown
Owner Author

PR #2468 merged as b393bf4. All 17 selected confirmation jobs passed in run 39563361981, attempt 1, including the proof aggregate. Every job's checkout log matches 0a97ff4, parents 419f3a5 and 33fd422, tree 307865609240c7de2907d143e6fc668996d9f972. The actual squash has that same tree and expected main parent; remote main ancestry and milestone 0.44.0 are verified. The integration reservation is released.

Both original production consumer cases passed under unchanged 30-second limits: application.ts 20,108.25 ms and module-jobs/types.ts 19,361.22 ms. These are observations on this run, not a matched hosted saving or a retrospective explanation of the historical timeout. Earlier local reduction remains 33.653 to 19.543 seconds on its recorded original source pair.

Automatic main push run 39566209688 is in progress. The issue remains open pending verification of every actual main job and its aggregate. No complete main proof is claimed. The original failure evidence and acceptance criteria remain intact.

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

Labels

area: ci CI workflows, the gates they run, release scripts, packaging. type: fix Something is broken and must behave the way it is documented.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant