Skip to content

tests: split navigation-reach pointer cases so one file no longer floors every browser shard #2417

Closed

Description

@schlessera

2026-10-22 implementation handoff: draft #2434 integrates main 7b8a755ea329bd48a11b790e916c417b6f608eee at head 49cb2970de26574d640fdb3b54fba7637bfcca37, tree 9965372add6ccd9b9b8a946009d0b43580de7bd5. Both integration conflicts are resolved. The prior worker’s exact-head browser receipt is recovered and independently reconciled: all 24 split file/project instances and 2,151 cases pass, with no skips or unhandled errors and a local maximum file time of 177.180 seconds. This is local proof, not a successful hosted confirmation or an admitted timing-weight source.

The maintainer’s 2026-10-22 ruling removed the #2350 dependency. No declared blocker remains. Remaining acceptance is coordinator-owned: a successful complete hosted run containing the split, browser-weight refresh through the unchanged admission tool, recorded per-file costs below 250 seconds and per-shard whole-job durations, followed by confirmation of the final weight-bearing head. The PR stays draft with Refs #2417; milestone 0.44.0 is retained. The implementation worker does not request readiness, confirmation, a reservation or merge.

Context

After #2414 / #2415, three browser shards are scored by fresh weights (main run 39109891338). Each shard's slowest project is bounded by one file, packages/ui-react/tests/browser/navigation-reach.pointer.tsx. It runs once per rail pointer project:

Project Measured file seconds
rail-fine 481
rail-mixed 428
rail-coarse 411

Together that is about 1,320 s, roughly a quarter of all browser file-seconds. At source 90a95123cfceb169bd2ecf7c213544db742eaed7, the original file is 693 lines with seven direct parameterized test declarations (605 expanded cases per pointer) and a side-effect import of 112 durable Actions cases per pointer. Because Vitest runs each project's files one at a time, no shard count can bring a browser shard's critical path below about 480 s while this file stays whole. A fourth shard would not reduce the peak.

Scope

Split the file's cases into independently scheduled files along their existing case boundaries, as #2393 did for the narrow callout cases. Keep every assertion, pointer variant, deadline and capture identifier. Then refresh browser weights from a successful run that includes the split.

Out of scope: removing cases, changing pointer projects, or changing deadlines.

Acceptance criteria

  • Every original case and assertion is retained, with an assertion-to-file mapping in the PR.
  • Refreshed weights show each new file's per-project cost below 250 s.
  • Complete candidate confirmation passes; per-shard whole-job durations are recorded.

Contract impact

None; test structure only.

Verification and preservation

The draft PR contains the exact current-main mapping of all 42 navigation assertion sites and retains all 62 original non-import/export statements, every parameter loop, and all 139 durable Actions assertion sites. Independent installed discovery still finds eight leaves in all three rail pointer projects. Positive document/command/worker fixtures use independently delivered source owner 419f3a51b5017a4705e6fe4dba9982b6fc8de3bc; production pins and guards remain unchanged.

Fresh mutation controls fail for the claimed reason and restore byte for byte: document configuration-digest bypass, corrupt independent fixture ownership, discovery-leaf omission, and assertion omission. Strict types, lint, focused audit/citation tests and local preflight pass. The case report SHA-256 is e2a45f02cd75a260ec04fdf07f08c34351299481c82cd6d01237a054417493c6.

Historical hosted run 39217736277 remains failed overall. Its successful browser jobs and 186.961-second maximum are historical observations; the refresh tool correctly refuses the run. No timing admission rule, case, assertion, timeout or scheduling bound has been weakened. Prior source and runtime handoffs remain in the issue/PR comments with their original identities.

Contributor weight-refresh documentation drift found during this continuation is tracked separately in #2550.

2026-10-22 correction: consolidated the current handoff, integrated-source evidence, removed dependency and still-open timing/hosted acceptance. Local browser proof does not complete those acceptance criteria.

2026-10-22 status: #2434 merged as 9af45a81; main run 39757864766 passed and is admitted by the refresh tool with all 24 new file/project costs below 250 s (max 185.047 s). Remaining: commit the refreshed scripts/browser-shard-costs.json and record per-shard durations from its main-push run. Details in the latest comment.

2026-10-22 closure: #2624 (3125574b) committed the refreshed weights; all 24 split file/project costs are below 250 s (max 185.047 s). Its main-push run 39766877611 passed every selected job; per-shard browser durations 720/689/692 s (before: 893/418/888 s) are recorded in the closing comment. All criteria met.

Activity

  1. added
    type: testCoverage, harness or proof work with no behaviour change.
    area: ui-reactReact chat/files/voice components, stores, WebSocket transport.
    area: ciCI workflows, the gates they run, release scripts, packaging.
    priority: p2Wanted, not scheduled. Pulled in when a milestone has room.
    agent-readyContext and acceptance criteria are complete enough for an agent to take this unattended.
    on Oct 18, 2026
  2. self-assigned this
    on Oct 19, 2026
  3. schlessera commented on Oct 19, 2026

    @schlessera
    OwnerAuthor

    Claim e1849-2417-20261019-r1 on branch as/split-navigation-browser-tests, starting from fetched main 90a95123cfceb169bd2ecf7c213544db742eaed7. Sole implementation worker under the epic coordinator. Preserve all cases, assertions, pointer projects, deadlines and cleanup; prepare a draft with equivalence and focused proof. The coordinator owns hosted confirmation, measured weight refresh and merge. Assignment will transfer to the coordinator at successful handoff.

  4. added this to the 0.44.0 milestone on Oct 19, 2026
  5. schlessera commented on Oct 19, 2026

    @schlessera
    OwnerAuthor

    Implementation handoff to the epic coordinator: draft #2434 at 17766e9a065e1e8dfb58c33c36af7f27991ed77e, based on 90a95123cfceb169bd2ecf7c213544db742eaed7, tree 07874b2132e08cde15e0e0b8d743f483a1f59fba.

    All seven original declaration families and their 42 assertion sites are retained exactly; the entire additional 112-case durable Actions suite retains its own hooks and captures. Discovery selects eight leaves × three unchanged pointer projects. Native proof passes 2,151/2,151 cases, 24/24 file/project instances, no skips/errors; the source-bound report reconciles against independent discovery. The report SHA-256 is a306971c7318634d7b0ef2ff52eae754fda6b9af5acaaabd55227187229faa8e. Omitting a leaf fails the inventory guard; removing the Sessions uniqueness assertion fails equivalence; both restore cleanly. Types and required preflight pass (235 tests / 2,315 assertions).

    Local focused browser cost: 332.28 s outer wall, 331.86 s inner wall / 89.32 s accounted process CPU; suite 328.70 s, maximum file/project 160.354 s. Setup costs, each file’s three pointer timings, measurement scope and diagnostic failures are recorded in the PR. No matched speedup or whole-CI gain is claimed.

    Remaining: coordinator-run complete hosted confirmation, successful-run weight refresh, every new file/project below 250 s in refreshed hosted evidence, per-shard whole-job durations, and qualification of the final refreshed source. No ready event, hosted retry or merge was requested. Issue and draft PR retain verified 0.44.0.

    Claim e1849-2417-20261019-r1 transfers with the existing assignment intact to the coordinating parent under the explicit session instruction; this is a successful implementation handoff, not claim release or issue completion.

  6. schlessera commented on Oct 19, 2026

    @schlessera
    OwnerAuthor

    2026-10-19 coordinating review and initial hosted measurement request: #2434 is ready at head 17766e9a065e1e8dfb58c33c36af7f27991ed77e. Independent review reran source equivalence: all 62 direct top-level statements / 42 direct assertion sites and all 43 imported durable-suite statements / 138 assertion sites remain. Verified receipt hashes and actual browser case report establish 2,151 passing cases across 24 file/project instances, no skipped or failed cases. Required preflight and strict types pass; local measurements retain their limited scope.

    REST base, independently queried live main, fetched synthetic merge and immutable Git API agree: base 90a95123cfceb169bd2ecf7c213544db742eaed7, requested checkout 4e2448ea8ab6402f64413e1080738eb09fd27b8e, parents base/head above, tree 07874b2132e08cde15e0e0b8d743f483a1f59fba. Actual selected hosted checkouts and aggregate remain to be inspected.

    This first complete candidate run must supply successful hosted per-file/per-project timings. Required remaining work: prove each new file is below 250 seconds, refresh the scheduling weights from successful hosted evidence, record all shard whole-job durations, then qualify that final updated candidate before merge. New files currently use the existing positive default cost; no measured weight or whole-CI improvement is invented. No merge is authorized by this measurement request. Parent retains claim e1849-2417-20261019-r1 and milestone 0.44.0; #2417 stays open.

  7. added
    blockedWaiting on another issue or an upstream dependency. Say which in the body.
    on Oct 19, 2026
  8. schlessera commented on Oct 19, 2026

    @schlessera
    OwnerAuthor

    2026-10-19 — hosted mount-inspector ENOENT observation from #2417 / PR #2434.

    Run 39217736277 attempt 1, runtime_host job 117945823758 fails the first separate-UID broker case, nested server-owned 0700 parent masks launch and conceal private files and sockets, at NESTED_PRIVATE_PARENT_LAUNCH_governed (packages/ui-sdk/tests/identity-broker-qualification.native.ts:55-98, assertion at line 84). The launch throws WorkerHostError: the mount inspector cannot open /proc/96/root/tmp/brain-worker-state (ENOENT). The existing mounts inspector opens and validates the worker root in packages/ui-sdk/tests/fixtures/identity-helper.py:397-439. This is a governed broker launch, distinct from this issue's original strict SDK bootstrap observation; it shares the mount-inspector refusal signature, but common causality is not established. No worker-exit cause can be inferred from the missing path alone.

    Actual checkout: synthetic 4e2448ea8ab6402f64413e1080738eb09fd27b8e, tree 07874b2132e08cde15e0e0b8d743f483a1f59fba, parents base 90a95123cfceb169bd2ecf7c213544db742eaed7 and head 17766e9a065e1e8dfb58c33c36af7f27991ed77e. The PR only splits navigation browser tests and changes their Vitest include; native helper, launcher, fixture, identity test and driver are unchanged from base. This is an external blocker for the browser-test redistribution, not evidence of a navigation regression.

    Artifact runtime-host-proof, 12170891852 is 495431 bytes; downloaded ZIP SHA256 verified as 0b579c67f8a7c9d68db6eba0413ab5737b37ba7dd55788ee045e29acf98a43a0. run-38IeBv/stderr.log preserves the assertion/refusal; stdout records zero owned records, source directories and workers. cleanup.json confirms container removal. Later identity cases did not execute; no complete identity proof is claimed.

    The preceding native managed hosted phase passed (426.780 s), including its expected automatic-index-failure negative control. That control's logged test failure is not the job's unexpected failure. The separate-UID phase failed after 2.258 s. Resource receipt: 429.039 s total proof elapsed, 678.62 VM-active CPU seconds, sampled peak used memory 1996492800 bytes on a 4-CPU / 16765378560-byte VM. Job wall time was 516 s including setup. These are failed-run costs, not improvements or process-specific memory measurements.

    Retain needs: repro on #2350. A bounded phase/identity/exit reproduction and guard-preserving failing-first correction remain required. No unchanged rerun, deadline increase, fallback or inspection relaxation was applied. The original CI run remains intact while other selected jobs finish.

  9. schlessera commented on Oct 19, 2026

    @schlessera
    OwnerAuthor

    2026-10-19 — initial run 39217736277 has completed. PR #2434 is back in draft; no unchanged rerun is requested.

    Unit (3), job 117945823883, fails seven cases in tests/bound-browser-documents.test.ts; unit (2), job 117945823884, also fails one case each in tests/browser-worker-audit.test.ts and tests/browser-command-activation.test.ts. The failed positive controls expect reviewed browser bindings/audits, while this PR changes the pinned Vitest configuration. These are relevant to the change and require correction; they are not being dismissed as the independent native blocker. A focused GPT-6-Astra continuation is now investigating the fixtures and will retain positive controls, source-drift refusal and production qualification boundaries. No production pin relaxation or removal of assertions is authorized by this diagnosis.

    All three browser shards, both layout shards, endurance, captures, verify, runtime and unit (1)/(4) succeeded. Packaging was intentionally excluded for this tests-only change. Aggregate job 117951272188 emitted the matching candidate identity and correctly refused the failed unit and runtime_host categories. The separate native mount-inspection blocker remains #2350.

    The same continuation will retain immutable browser case and shard measurements, check all 24 split file/project instances and all 2,151 cases, and assess whether the existing weight refresh policy accepts successful browser jobs from a failed overall run. It must not describe this run as passing. Claim e1849-2417-20261019-r1 remains parent-owned with delegated continuation e1849-2417-20261019-r2; final confirmation and merge remain outstanding.

  10. schlessera commented on Oct 19, 2026

    @schlessera
    OwnerAuthor

    2026-10-19 — #2417 continuation r2, under the parent's existing claim e1849-2417-20261019-r1.

    The nine relevant unit failures are repaired in 86457357cc94d5917c98aa49f6941f3c2158eab8. Positive browser-document, inactive-command and worker-boundary fixtures now read independently owned raw Git blobs from delivered base 90a95123cfceb169bd2ecf7c213544db742eaed7; document directory membership and binary fonts are frozen too. Actual current config/caller/producer bytes are tested separately. Production qualification hashes, audit implementations, offline guards, images, deadlines and navigation cases are unchanged. This follows delivered #2374/#2388 rather than granting qualification to changed source.

    Focused evidence: the original three files reproduce exactly 24 pass / 9 fail. Repaired tests pass 38/38, 181 assertions, with all original assertions retained. Bypassing the document config check fails all four current-document negatives; bypassing worker enforcement fails the real current-config negative even after recomputing the manifest; bypassing the command digest fails its drift guard, and admitting just the actual changed config fails CURRENT_COMMAND_SOURCE_DRIFT_REQUIRES_FRESH_PROOF. Changing the positive fixture owner to the PR's unreviewed config fails the original and added positive assertions. Every mutation is restored byte-for-byte. Initial strict types caught a readonly test.each input; copying that list resolves it. Final strict types pass (31.79 s wall, 49.54 s accounted CPU); required bun run check:pr --base origin/main passes 719 fast tests / 4,622 assertions plus 38 affected import-feedback tests / 181 assertions (64.69 s wall, 91.17 s accounted CPU); focused execution is explicit because the initial split preflight did not select these tests. No failing setup is represented as behavioral evidence.

    Source equivalence is rechecked: all 62 direct top-level statements / 42 assertion sites and all 43 imported durable-suite statements / 138 assertion sites remain exact. Fresh private empty-cache frozen copyfile dependencies match qualified identity 0c2758c046f2b69d5f33b66521baf3098db5f44256b73ec96961c98d381e6245 (843 packages, 59,516 files, 1,833,832,361 bytes).

    Initial hosted measurement: run 39217736277 attempt 1 failed overall. Its three browser jobs succeeded. Their actual checkout logs, case/resource artifacts and immutable Git API agree on synthetic 4e2448ea8ab6402f64413e1080738eb09fd27b8e, tree 07874b2132e08cde15e0e0b8d743f483a1f59fba, parents base 90a95123cfceb169bd2ecf7c213544db742eaed7 and original split head 17766e9a065e1e8dfb58c33c36af7f27991ed77e. This is evidence for the original split, not new hosted proof of the repair head.

    Downloaded immutable browser artifacts have verified ZIP SHA-256:

    All 330 discovered browser file/project instances reconcile exactly once across the three shards. All 24 navigation instances and 2,151 cases pass, with case names matching the prior complete local receipt, zero navigation skips/failures and zero unhandled errors. The complete browser domain reports 9,056 passed and 10 skipped cases outside navigation; those skips are not hidden in the navigation count. Every navigation file/project is below 250 seconds, maximum 186.961 seconds. The table records logged file elapsed time, not summed case-body time; every entry has passed status.

    File suffix Cases per pointer Fine s Coarse s Mixed s
    counts.pointer.tsx 1 0.174 0.185 0.183
    desktop.pointer.tsx 429 163.335 182.984 186.961
    durable-actions.pointer.tsx 112 33.996 33.64 34.917
    handoff.pointer.tsx 7 7.442 8.335 8.321
    inventory.pointer.tsx 14 4.33 4.406 4.624
    keyboard.pointer.tsx 60 42.068 41.387 41.425
    parity.pointer.tsx 84 74.917 83.702 85.133
    targets.pointer.tsx 10 5.929 6.309 6.24
    Browser shard Whole job s Build s Browser command s VM active CPU s Sampled peak used bytes
    1 881 106.1 729.183 1879.57 11303219200
    2 416 105.647 264.918 698.07 6673592320
    3 898 106.799 745.892 1833.37 11814854656

    Browser job IDs are 117945823735, 117945823953 and 117945823662. All used the unchanged pinned image mcr.microsoft.com/playwright@sha256:eff16c30e6f3f4af0a03fa4b706120d5e9b0891c344a27d64559aff5900a4a27, with four logical CPUs and approximately 16.77 GB VM memory. VM active CPU and sampled used memory cover proof commands including containers; they are not process CPU or exact peak memory. Whole-job times include setup/finalization; build/browser phases overlap that wall interval and are not extra costs.

    Historical scheduling evidence at main 7f22bb6ac2892360f3a5c4d3a1f93d9997af43e8, run 39109891338, recorded the original single navigation file at approximately 481/411/428 seconds (fine/coarse/mixed). The split's largest files are 163.335/182.984/186.961 seconds respectively; summed navigation file time is 1,060.943 seconds versus about 1,320 historical seconds. These different-source observations establish smaller measured scheduling units, not a controlled speedup. Historical browser job walls were 808/887 seconds across two shards (1,695 total); this initial three-shard run is 881/416/898 (2,195 total). No whole-browser job-wall improvement is observed or claimed; the unmeasured new files still use positive default weights.

    The established scripts/refresh-browser-costs.ts admission requires a successful overall CI run, not merely successful browser jobs. Executing it against this run refuses with A successful attributed CI run/attempt is required. Its checks and the existing weights remain unchanged. The issue's successful-run weight criterion remains pending even though this initial measurement meets the numeric per-file threshold.

    PR #2434 stays draft and uses Refs #2417. Native mount-inspector blocker #2350 remains unresolved; no native code was changed, no expensive confirmation/ready event was requested, and no merge is claimed. Remaining: resolve that blocker, obtain successful complete candidate proof, refresh weights through the established tool, then qualify the final refreshed source. The initial base remains unchanged; no rebase or main integration was performed. The parent retains the assignment and claim, and owns the next hosted decision and final handoff. No competing claim or unassignment is introduced.

  11. 2 remaining items

  12. self-assigned this
    on Oct 20, 2026
  13. schlessera commented on Oct 20, 2026

    @schlessera
    OwnerAuthor

    Claim e1849-2417-20261020-r3-source for bounded source reconciliation of the preserved #2434 split, following the maintainer's continuation request. Live readback found #2417 unassigned.

    Main has added a Storage navigation row and changed Vitest registration and frozen audit inputs. The current split must retain those additions and current-source refusal controls before any later qualification. A dedicated isolated checkout will reconcile the existing PR contribution with inspected main, preserve the original assertion matrix and prepare a reviewable source candidate.

    This allocation does not include dependency installation, tests, builds, browser/native proof, weight refresh, remote pushes, readiness, hosted confirmation or a merge reservation. #2350 remains an unresolved native prerequisite; #2417 stays blocked and #2434 stays draft. Source reconciliation is not a causal repair of the inspector refusal or qualification of the changed tree.

    Historical navigation timings remain attached to their original run/head/base. The existing weight refresh must still refuse a failed overall run. Parent retains claim, review and all later execution decisions; no competing owner or unrelated branch is changed.

  14. schlessera commented on Oct 20, 2026

    @schlessera
    OwnerAuthor

    2026-10-20 source-only handoff: preserved candidate fix/2417-navigation-source-r3, head 7d6fd28573d4ca97e4e79b52fdb8f3c2dbb16a13, tree 0f2ed147f624f9ab17cb99aece68b5c745aca8ae. History-preserving merge e75f113bd242193cb1349af5f3dba168017527f1 has ordered parents prior PR head 86457357cc94d5917c98aa49f6941f3c2158eab8 and inspected main 468618cf106c3e793cbb030f8fc90bf8d018913f. The actual merge had no conflicts despite the earlier API conflict indication.

    Main's Storage row and browser command registration are retained. Positive fixtures now read the independently delivered Storage owner caae12da2e678dd4720bf112e93ef21812cfdc18, matching main's already-delivered audit inputs; no production pin was recomputed. Parent source review independently confirms nine literal navigation blocks, all 42 direct assertion sites, unchanged leaves and current-source refusal controls. The durable suite retains 138 direct expect calls plus one expect.element call (139 total); the old 138 count omitted the latter, without an assertion change. Scripts, workflows, manifest, lockfile, weights and production audit/guard files match inspected main.

    No install, build, tests, runtime discovery, types, preflight or hosted proof ran in this source allocation. Parent reviewed and pushed only the separate preservation branch after the child finished; the existing #2434 branch and draft head remain unchanged. No new PR, qualification or current-tree timing claim is made. Historical 2,151-case/24-instance results and 186.961-second maximum retain their original failed-overall-run identity.

    #2350 remains the canonical unresolved prerequisite. Resume by reclaiming this preserved candidate, assessing live source changes, obtaining focused positive/refusal/mutation and actual browser inventory proof plus required preflight, then complete selected confirmation after the prerequisite is resolved. Weight refresh still requires an admitted successful overall run, followed by final weight-bearing candidate and main proof. No guard relaxation or unchanged failed-run retry is authorized.

    Claim e1849-2417-20261020-r3-source is complete and released; the parent is removing only its own assignment. #2417 remains open/blocked and #2434 remains draft, both milestone 0.44.0. No integration reservation was acquired. The clean prepared worktree and indexed source receipts are retained for resumption.

  15. schlessera commented on Oct 22, 2026

    @schlessera
    OwnerAuthor

    Claim bk044-2417-resume-20261022 on branch as/split-navigation-browser-tests, resuming draft #2434. I will integrate current main, recheck the preserved split with real browser proof and mutation controls, repair citations, and run final local preflight. I will stop at the draft PR and leave candidate confirmation and merge to the coordinator. The coordinator owns the maintainer-ruled blocker reconciliation.

  16. removed
    blockedWaiting on another issue or an upstream dependency. Say which in the body.
    on Oct 22, 2026
  17. schlessera commented on Oct 22, 2026

    @schlessera
    OwnerAuthor

    Maintainer ruling 2026-10-22: the #2350 edge is dropped. #2350 is a one-off, unreproduced mount-inspector flake that appeared once, in this PR's run 39217736277, and main runtime_host has been green since. Removed Blocked by #2350 and the blocked label; no other blocker remains. Milestone 0.44.0 is unchanged.

  18. schlessera commented on Oct 22, 2026

    @schlessera
    OwnerAuthor

    Claim bk044-2417-resume-20261022-r2 for resumed draft #2434, publishing to as/split-navigation-browser-tests. Recovering the prior worker’s unpushed main merge and citation commits in an isolated checkout. I will run real pinned-browser proof, restored mutation controls and final local preflight, keep the PR draft, and hand candidate confirmation, admitted weight refresh and merge to the coordinator. The maintainer dropped the #2350 dependency on 2026-10-22.

  19. schlessera commented on Oct 22, 2026

    @schlessera
    OwnerAuthor

    Implementation handoff for claim bk044-2417-resume-20261022-r2: recovered and pushed head 49cb2970de26574d640fdb3b54fba7637bfcca37 on as/split-navigation-browser-tests; merged main 7b8a755ea329bd48a11b790e916c417b6f608eee. Draft #2434 is mergeable, and both PR and issue retain milestone 0.44.0. The existing assignment is retained for the coordinator.

    The prior worker’s exact-head real pinned browser receipt is recovered, hash-verified and reconciled against fresh installed discovery: 24 instances / 2,151 cases pass, no skips or unhandled errors, local max 177.180 seconds. Fresh bun run check:pr --base origin/main passes 970 fast tests / 6,439 assertions and 40 affected tests / 210 assertions. Fresh types, lint, source-equivalence and audit/citation checks pass.

    Fresh restored mutation receipts: bypassing the config digest fails all four current-document refusal controls; using the candidate as the positive source owner fails all four positive controls; omitting discovery leaves fails installed inventory; removing Sessions once fails independent statement equivalence. No guard, assertion, pointer variant, deadline or production pin changed.

    The coordinator owns a successful full hosted run, admitted browser-weight refresh with per-shard job times, and final weight-bearing candidate confirmation. The PR stays draft with Refs #2417; no ready transition, confirmation, reservation or merge was requested. Contributor-guide drift is filed separately at #2550 and attached to #1849. The maintainer already dropped the #2350 dependency.

    Current-head draft checks observed after the final push: draft gates, changeset, contract and project sync all pass for 49cb2970de26574d640fdb3b54fba7637bfcca37. Product jobs are intentionally skipped for this draft and are not claimed as hosted candidate proof.

  20. schlessera commented on Oct 22, 2026

    @schlessera
    OwnerAuthor

    Status 2026-10-22: one weight-file PR remains. #2434 merged as squash 9af45a81b4a6159303f22b28d42c8ae69465d150 with Refs.

    • Criterion 1 (cases retained): done. The assertion-to-file map and mutation receipts are in the PR.
    • Hosted run containing the split: the maintainer ruled on 2026-10-22 that a PR merges on local proof, with main-push CI as the backstop. Automatic main run 39757864766, attempt 1 at 9af45a81 concluded success.
    • Refresh admission: the unchanged refreshBrowserCosts (scripts/refresh-browser-costs.ts) was run in memory against that run's browser domain. It accepts the run: checkout and head 9af45a81, tree 50a4eea8, the pinned Playwright image, jobs 119756743270 / 119756743221 / 119756743185. Nothing was written. Per-project costs of the 24 new files, in seconds:
    Leaf rail-fine rail-coarse rail-mixed
    counts 0.180 0.186 0.211
    desktop 162.493 181.350 185.047
    durable-actions 33.562 33.562 35.145
    handoff 7.342 8.226 8.319
    inventory 4.376 4.376 4.660
    keyboard 42.263 41.519 41.380
    parity 75.182 82.598 85.354
    targets 6.295 6.508 6.309

    All 24 are below 250 s; the peak falls from 481 s to 185.047 s. Whole-job durations in that run were browser (1) 893 s, browser (2) 418 s and browser (3) 888 s. Those shards were still scheduled by the old weights, with the new files unmeasured at 1 s, so the imbalance is expected until the refresh lands.

    What remains (a code change, not hosted proof):

    1. Commit the output of bun scripts/refresh-browser-costs.ts 39757864766 1 to scripts/browser-shard-costs.json. That rewrites 333 of 390 browser weights; layout keys are preserved.
    2. After it merges, record per-shard browser whole-job durations from that PR's successful main-push run. That run is the final weight-bearing head, and recording it satisfies criteria 2 and 3.

    Milestone 0.44.0 is unchanged.

  21. schlessera commented on Oct 22, 2026

    @schlessera
    OwnerAuthor

    Claim bk044-2417-costs-20261022-r1 on branch test/2417-browser-shard-costs-044 for the remaining weight-file slice after merged #2434. I will run the unchanged refresh tool for successful main-push run 39757864766 attempt 1, verify the 24 split file/project costs, and hand off a draft PR with local preflight and mutation receipts. The coordinator retains readiness, main-push duration recording and merge; the existing assignment and milestone 0.44.0 remain.

  22. schlessera commented on Oct 22, 2026

    @schlessera
    OwnerAuthor

    Implementation handoff for claim bk044-2417-costs-20261022-r1: draft #2624 is pushed at f927db7f74d895ce57fff6769f1aa99e9338242a on test/2417-browser-shard-costs-044, starting from main 19ecff0808de356584049ff91bd331921ab7d5a9. PR and issue milestones are read back as 0.44.0; the existing assignment transfers intact to the coordinator.

    The sole committed file is scripts/browser-shard-costs.json, exactly generated by bun scripts/refresh-browser-costs.ts 39757864766 1. The unchanged admission rules accept the successful main-push run for 9af45a81: all three fresh browser jobs, checkout/tree/parents, complete timing inventory and pinned source/image attribution. All 24 new navigation file/project entries match the published measurements and are below 250 seconds (max 185.047 seconds). All 56 layout entries and layout provenance are preserved.

    Final-head bun run check:pr --base origin/main passes: 970 fast tests / 6,439 assertions, lint/leakage and metadata checks, and explicit no-affected-tests import feedback (115.92 seconds). Strict types and all 35 focused refresh/sharding tests / 66 assertions pass. The independent measurement check fails before refresh on the missing counts cost, then passes after refresh. Temporarily removing the overall-run success condition makes refresh refuses failed run attribution fail on its expected rejection assertion; source restoration is byte-identical and the test passes again. No contract change or consumer-visible package change is included; no changeset is required.

    One current-head draft-check inspection reports changeset and contract pending; draft gates has not appeared yet. This is pending CI, not a CI failure or passing hosted proof. No polling, ready event, reservation, confirmation or merge is requested by this implementation worker.

    The PR uses Refs #2417. Per-shard browser whole-job durations will be recorded by the coordinator from this PR's successful main-push run, with the actual squash SHA, run/attempt and three browser job identities, to finish criteria 2–3. Keep the issue open until that evidence is recorded. No new blocker or follow-up issue was found.

  23. schlessera commented on Oct 22, 2026

    @schlessera
    OwnerAuthor

    Closing as completed (2026-10-22). Criteria 2 and 3 are now met. Criterion 1 was met earlier in #2434.

    Criterion 2, refreshed weights. #2624 (squash 3125574b) commits scripts/browser-shard-costs.json regenerated from admitted run 39757864766. On main, all 24 split navigation-reach.*.pointer.tsx file/project weights are below 250 s; the largest is desktop × rail-mixed at 185.047 s. The whole-file entry no longer exists.

    Criterion 3, confirmation and per-shard durations. The maintainer ruled on 2026-10-22 that main-push CI is the hosted proof. #2624's automatic main run, 39766877611, attempt 1, concluded success with every selected job passing, including the aggregate. All three browser job checkout receipts identify 3125574b81b6c1b62f490ac88b946fa0e2f05576. Each shard reports 334 recorded weights, 2 positive defaults; before the refresh, 30 files ran on defaults.

    Whole-job durations come from the jobs API (completed_at minus started_at). The before column is pre-refresh run 39757864766 at 9af45a81, which already contains the split but still used the old weights.

    Shard Before (job) Before (s) After (job) After (s) Specs Tests
    browser (1) 119756743270 893 119784810981 720 175 3704 passed, 1 expected fail
    browser (2) 119756743221 418 119784810965 689 73 2673 passed
    browser (3) 119756743185 888 119784810973 692 88 2741 passed, 10 skipped

    The slowest shard drops from 893 s to 720 s, 173 s less. The spread between the slowest and fastest shard narrows from 475 s to 31 s. Summed browser job time is 2,199 s before and 2,101 s after. These are two single observations on different commits and runners, not a controlled pairing, so no exact speedup is claimed. Milestone 0.44.0.

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

Metadata

Metadata

Assignees

Labels

agent-readyContext and acceptance criteria are complete enough for an agent to take this unattended.area: ciCI workflows, the gates they run, release scripts, packaging.area: ui-reactReact chat/files/voice components, stores, WebSocket transport.priority: p2Wanted, not scheduled. Pulled in when a milestone has room.type: testCoverage, harness or proof work with no behaviour change.

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions