Train BM14 #886

Closed
kayg wants to merge 42 commits from train/2026-11-03-bm14 into dev
Owner

BM14 combines the style stack and sharing backend on 41f2efa387b74175971a838f602535089d0d5fb4 (BM13 merged). Train head: 00e8c0b5b35361000e1fd53233a3fff0881ff1ef. Do not merge.

PR Recorded head Outcome
#850 port/style de9917279b included, no-ff
#851 port/style-2 80934507d2 included, no-ff
#852 port/style-3 08b6d9adc8 included, no-ff
#829 sharing PR 2 5cab44a4af included, no-ff
#835 rooms 3755691ddc included, no-ff
#842 sharing PR 3 UI 0fb5e8ed3c excluded: nonmechanical toolbar/access behavior conflict
#876 sharing fixes 9a98a7f18f excluded: stacked dependent of #842

Mechanical conflict resolutions preserve the dev pull hint while adding the style stack lazy imports: expected imports 23 after #850, 25 after #852. #827 is already in dev.

Final status: RED. Do not merge. fmt, clippy, cargo build, bun build, bundle budget, case paths, and evidence checks passed. Workspace tests failed in two sharing authorization tests; both passed their single exact-case origin/dev comparisons. Cargo stopped at those auth failures.

Both initial browser commands failed before discovery because the external .ts config loaded as CommonJS. The full matrix then ran via an .mts wrapper with explicit webServer.cwd, CI=1, workers=1, retries=0. Final accounting: 2,766 passed, 4 failed, 1,637 skipped, zero unattempted. Four dependency-blocked cases passed their first attempts in a separate run. No failed train case was retried. All four browser failures passed once on origin/dev. None of the six failed cases is established as pre-existing. The initial startup failure remains failed.

Exact commands, first errors, final per-project tables, and baseline comparisons are in the comments.

Both VM train owners exited through EXIT traps and removed their locks after all jobs finished. Throwaway VM worktrees, targets, node_modules, temporary Homes, retained binary and traces were removed. Small results remain outside the repository. The running deploy job was allowed to finish. No merge performed.

BM14 combines the style stack and sharing backend on `41f2efa387b74175971a838f602535089d0d5fb4` (BM13 merged). Train head: `00e8c0b5b35361000e1fd53233a3fff0881ff1ef`. Do not merge. | PR | Recorded head | Outcome | |---|---|---| | #850 port/style | de9917279b3de6cb54edb3250316f249184acc43 | included, no-ff | | #851 port/style-2 | 80934507d2dd288505f968f1252e06b1dae8d071 | included, no-ff | | #852 port/style-3 | 08b6d9adc892248243bea934df2823fb280f5d0e | included, no-ff | | #829 sharing PR 2 | 5cab44a4afdc932ce0afca65b61cb13137afe946 | included, no-ff | | #835 rooms | 3755691ddc63a740d36a4782f2163a3876f58cfc | included, no-ff | | #842 sharing PR 3 UI | 0fb5e8ed3c161b70443b63c1649484fda758e5a6 | excluded: nonmechanical toolbar/access behavior conflict | | #876 sharing fixes | 9a98a7f18fcb0d24baa6b9143b4d7a98d527e50b | excluded: stacked dependent of #842 | Mechanical conflict resolutions preserve the dev pull hint while adding the style stack lazy imports: expected imports 23 after #850, 25 after #852. #827 is already in dev. Final status: **RED. Do not merge.** fmt, clippy, cargo build, bun build, bundle budget, case paths, and evidence checks passed. Workspace tests failed in two sharing authorization tests; both passed their single exact-case origin/dev comparisons. Cargo stopped at those auth failures. Both initial browser commands failed before discovery because the external .ts config loaded as CommonJS. The full matrix then ran via an .mts wrapper with explicit webServer.cwd, CI=1, workers=1, retries=0. Final accounting: **2,766 passed, 4 failed, 1,637 skipped, zero unattempted**. Four dependency-blocked cases passed their first attempts in a separate run. No failed train case was retried. All four browser failures passed once on origin/dev. None of the six failed cases is established as pre-existing. The initial startup failure remains failed. Exact commands, first errors, final per-project tables, and baseline comparisons are in the comments. Both VM train owners exited through EXIT traps and removed their locks after all jobs finished. Throwaway VM worktrees, targets, node_modules, temporary Homes, retained binary and traces were removed. Small results remain outside the repository. The running deploy job was allowed to finish. No merge performed.
kayg added 42 commits 2026-11-03 04:02:19 +00:00
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The room under a phone's Style sheet loads with the idle screens
Some checks failed
CI / server (pull_request) Has been cancelled
CI / rust (pull_request) Has been cancelled
CI / web (pull_request) Has been cancelled
Markdown extraction contract / markdown-native-contract (pull_request) Has been cancelled
Markdown extraction contract / markdown-editor-contract (pull_request) Has been cancelled
7a6d5adf4c
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Train BM14: merge #850 port/style
Some checks failed
CI / server (pull_request) Has been cancelled
CI / rust (pull_request) Has been cancelled
CI / web (pull_request) Has been cancelled
Markdown extraction contract / markdown-native-contract (pull_request) Has been cancelled
Markdown extraction contract / markdown-editor-contract (pull_request) Has been cancelled
37e0b75036
# Conflicts:
#	apps/web/scripts/lazy-ui-plugin.ts
Author
Owner

Assembly complete at 00e8c0b5b35361000e1fd53233a3fff0881ff1ef, based on 41f2efa3. Included #850 de9917279b, #851 80934507d2, #852 08b6d9adc8, #829 5cab44a4af, #835 3755691ddc, each with --no-ff.

Mechanical resolutions: lazy import count retains dev pull hint, becoming 23 after #850 and 25 after #852.

Excluded #842 0fb5e8ed3c: Tools.svelte conflicts replace the phone-specific Style/Write/Attach toolbar with the older toolbar plus view-only access controls. Integrating access rules into the new layout requires behavior decisions beyond mechanical resolution. App.svelte and lazy-ui.svelte.ts also conflict. Excluded stacked dependent #876 9a98a7f18f.

First-run gates starting under train locks on both VMs. Existing jobs are allowed to finish.

Assembly complete at `00e8c0b5b35361000e1fd53233a3fff0881ff1ef`, based on `41f2efa3`. Included #850 de9917279b3de6cb54edb3250316f249184acc43, #851 80934507d2dd288505f968f1252e06b1dae8d071, #852 08b6d9adc892248243bea934df2823fb280f5d0e, #829 5cab44a4afdc932ce0afca65b61cb13137afe946, #835 3755691ddc63a740d36a4782f2163a3876f58cfc, each with --no-ff. Mechanical resolutions: lazy import count retains dev pull hint, becoming 23 after #850 and 25 after #852. Excluded #842 0fb5e8ed3c161b70443b63c1649484fda758e5a6: Tools.svelte conflicts replace the phone-specific Style/Write/Attach toolbar with the older toolbar plus view-only access controls. Integrating access rules into the new layout requires behavior decisions beyond mechanical resolution. App.svelte and lazy-ui.svelte.ts also conflict. Excluded stacked dependent #876 9a98a7f18fcb0d24baa6b9143b4d7a98d527e50b. First-run gates starting under train locks on both VMs. Existing jobs are allowed to finish.
Author
Owner

First-run gate results at 00e8c0b5 (CI=1, SLOT_TRAIN=1, on-disk TMPDIR=$HOME/bm14-tmp):

Gate Command Result
Install, both VMs bun install --frozen-lockfile pass
fmt cargo fmt --all --check pass
clippy cargo clippy --workspace --all-targets --locked -j4 -- -D warnings pass
Rust cargo test --workspace -j4 FAIL, two auth tests; Cargo stops here
Build, both VMs cargo build -j4 pass
Web, both VMs cd apps/web && bun run build pass
Bundle PERF_DIST=$PWD/apps/web/dist perf/web.sh --bundle-only --gate pass
Case paths node ci/check-case-paths.mjs pass
Evidence node ci/check-no-evidence.mjs pass
Browser initial command, both VMs cd apps/web && bunx playwright test --config=$HOME/bm14-train/playwright.config.ts --workers=1 --retries=0 --reporter=line,json FAIL before discovery, wrapper CommonJS / import.meta error

First Rust errors:

---- sharing::tests::owner_unshared_admission_is_cached_until_a_grant_and_never_after stdout ----

thread 'sharing::tests::owner_unshared_admission_is_cached_until_a_grant_and_never_after' (3279649) panicked at crates/auth/src/sharing.rs:1999:18:
called `Result::unwrap()` on an `Err` value: Error { code: NotFound, detail: "no such note or grant" }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- sharing::tests::replay_authorization_waits_for_the_per_note_writer_lock stdout ----

thread 'sharing::tests::replay_authorization_waits_for_the_per_note_writer_lock' (3279664) panicked at crates/auth/src/sharing.rs:2119:38:
called `Result::unwrap()` on an `Err` value: Error { code: NotFound, detail: "no such note or grant" }


failures:
    sharing::tests::owner_unshared_admission_is_cached_until_a_grant_and_never_after
    sharing::tests::replay_authorization_waits_for_the_per_note_writer_lock

test result: FAILED. 62 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.55s

error: test failed, to rerun pass `-p calternal-auth --lib`

Initial browser error on both VMs:

SyntaxError: Cannot use import.meta outside a module
apps/web/e2e/binary.ts:11

The .ts wrapper outside the module package caused the startup error. The unattempted full matrix is now launched concurrently using the same wrapper with .mts extension and explicit webServer.cwd, one worker, retries=0. The failed first browser gate remains failed. Baseline comparisons follow after the matrix. Disk checked before gates and browser commands: dev-01 292 GiB free, dev-02 324 GiB free.

First-run gate results at `00e8c0b5` (CI=1, SLOT_TRAIN=1, on-disk TMPDIR=$HOME/bm14-tmp): | Gate | Command | Result | |---|---|---| | Install, both VMs | `bun install --frozen-lockfile` | pass | | fmt | `cargo fmt --all --check` | pass | | clippy | `cargo clippy --workspace --all-targets --locked -j4 -- -D warnings` | pass | | Rust | `cargo test --workspace -j4` | FAIL, two auth tests; Cargo stops here | | Build, both VMs | `cargo build -j4` | pass | | Web, both VMs | `cd apps/web && bun run build` | pass | | Bundle | `PERF_DIST=$PWD/apps/web/dist perf/web.sh --bundle-only --gate` | pass | | Case paths | `node ci/check-case-paths.mjs` | pass | | Evidence | `node ci/check-no-evidence.mjs` | pass | | Browser initial command, both VMs | `cd apps/web && bunx playwright test --config=$HOME/bm14-train/playwright.config.ts --workers=1 --retries=0 --reporter=line,json` | FAIL before discovery, wrapper CommonJS / import.meta error | First Rust errors: ```text ---- sharing::tests::owner_unshared_admission_is_cached_until_a_grant_and_never_after stdout ---- thread 'sharing::tests::owner_unshared_admission_is_cached_until_a_grant_and_never_after' (3279649) panicked at crates/auth/src/sharing.rs:1999:18: called `Result::unwrap()` on an `Err` value: Error { code: NotFound, detail: "no such note or grant" } note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace ---- sharing::tests::replay_authorization_waits_for_the_per_note_writer_lock stdout ---- thread 'sharing::tests::replay_authorization_waits_for_the_per_note_writer_lock' (3279664) panicked at crates/auth/src/sharing.rs:2119:38: called `Result::unwrap()` on an `Err` value: Error { code: NotFound, detail: "no such note or grant" } failures: sharing::tests::owner_unshared_admission_is_cached_until_a_grant_and_never_after sharing::tests::replay_authorization_waits_for_the_per_note_writer_lock test result: FAILED. 62 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.55s error: test failed, to rerun pass `-p calternal-auth --lib` ``` Initial browser error on both VMs: ```text SyntaxError: Cannot use import.meta outside a module apps/web/e2e/binary.ts:11 ``` The .ts wrapper outside the module package caused the startup error. The unattempted full matrix is now launched concurrently using the same wrapper with .mts extension and explicit webServer.cwd, one worker, retries=0. The failed first browser gate remains failed. Baseline comparisons follow after the matrix. Disk checked before gates and browser commands: dev-01 292 GiB free, dev-02 324 GiB free.
Author
Owner

First browser case failure in the full matrix (one attempt, retries=0):

  1) [webkit-390] › e2e/glass.spec.ts:76:1 › the glass keeps its backdrop and its own layer through bar morphs and hovers 

    Error: page.waitForTimeout: Page crashed

      158 |   }
      159 |   const slow = cdp ? 4 : 1
    > 160 |   const settle = () => page.waitForTimeout(450 * slow)
          |                             ^
      161 |
      162 |   // Tabs → note tools (the caret in the note), → the text bar (words picked), and back.
      163 |   await text.click()
        at settle (/home/cua/Developer/Worktrees/bm14/apps/web/e2e/glass.spec.ts:160:29)
        at /home/cua/Developer/Worktrees/bm14/apps/web/e2e/glass.spec.ts:164:9

    Error Context: ../../../../../bm14-train/matrix-results/glass-the-glass-keeps-its--07618-rough-bar-morphs-and-hovers-webkit-390/error-context.md

    attachment #2: trace (application/zip) ─────────────────────────────────────────────────────────
    ../../../../../bm14-train/matrix-results/glass-the-glass-keeps-its--07618-rough-bar-morphs-and-hovers-webkit-390/trace.zip
    Usage:

        npx playwright show-trace ../../../../../bm14-train/matrix-results/glass-the-glass-keeps-its--07618-rough-bar-morphs-and-hovers-webkit-390/trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────


webkit-390 glass.spec.ts:76 is not in the supplied known-pre-existing list. A single origin/dev comparison is pending. The matrix continues without retrying this case.

First browser case failure in the full matrix (one attempt, retries=0): ```text 1) [webkit-390] › e2e/glass.spec.ts:76:1 › the glass keeps its backdrop and its own layer through bar morphs and hovers Error: page.waitForTimeout: Page crashed 158 | } 159 | const slow = cdp ? 4 : 1 > 160 | const settle = () => page.waitForTimeout(450 * slow) | ^ 161 | 162 | // Tabs → note tools (the caret in the note), → the text bar (words picked), and back. 163 | await text.click() at settle (/home/cua/Developer/Worktrees/bm14/apps/web/e2e/glass.spec.ts:160:29) at /home/cua/Developer/Worktrees/bm14/apps/web/e2e/glass.spec.ts:164:9 Error Context: ../../../../../bm14-train/matrix-results/glass-the-glass-keeps-its--07618-rough-bar-morphs-and-hovers-webkit-390/error-context.md attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── ../../../../../bm14-train/matrix-results/glass-the-glass-keeps-its--07618-rough-bar-morphs-and-hovers-webkit-390/trace.zip Usage: npx playwright show-trace ../../../../../bm14-train/matrix-results/glass-the-glass-keeps-its--07618-rough-bar-morphs-and-hovers-webkit-390/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── ``` `webkit-390 glass.spec.ts:76` is not in the supplied known-pre-existing list. A single origin/dev comparison is pending. The matrix continues without retrying this case.
Author
Owner

Second browser case failure, first attempt (retries=0):

  2) [webkit-390] › e2e/pill-room.spec.ts:210:5 › pill room: note, light: clear of its neighbours at rest, hovered, lit and in a selected block 

    Error: page.waitForFunction: Target page, context or browser has been closed

       at helpers.ts:109

      107 |  * busy machine a sleep is too short, on an idle one it's time thrown away. */
      108 | export async function still(page: Page) {
    > 109 |   await page.waitForFunction(() =>
          |              ^
      110 |     document.getAnimations().every((a) => a.playState !== 'running' || a.effect?.getComputedTiming().iterations === Infinity),
      111 |   )
      112 |   await page.evaluate(() => new Promise((done) => requestAnimationFrame(() => requestAnimationFrame(done))))
        at still (/home/cua/Developer/Worktrees/bm14/apps/web/e2e/helpers.ts:109:14)
        at /home/cua/Developer/Worktrees/bm14/apps/web/e2e/pill-room.spec.ts:238:15

    Error Context: ../../../../../bm14-train/matrix-results/pill-room-pill-room-note-l-a9940-lit-and-in-a-selected-block-webkit-390/error-context.md

    attachment #2: trace (application/zip) ─────────────────────────────────────────────────────────
    ../../../../../bm14-train/matrix-results/pill-room-pill-room-note-l-a9940-lit-and-in-a-selected-block-webkit-390/trace.zip
    Usage:

        npx playwright show-trace ../../../../../bm14-train/matrix-results/pill-room-pill-room-note-l-a9940-lit-and-in-a-selected-block-webkit-390/trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────


webkit-390 pill-room.spec.ts:210, light note case, is not in the supplied known-pre-existing list. It will be compared once on origin/dev after the full matrix completes.

Second browser case failure, first attempt (retries=0): ```text 2) [webkit-390] › e2e/pill-room.spec.ts:210:5 › pill room: note, light: clear of its neighbours at rest, hovered, lit and in a selected block Error: page.waitForFunction: Target page, context or browser has been closed at helpers.ts:109 107 | * busy machine a sleep is too short, on an idle one it's time thrown away. */ 108 | export async function still(page: Page) { > 109 | await page.waitForFunction(() => | ^ 110 | document.getAnimations().every((a) => a.playState !== 'running' || a.effect?.getComputedTiming().iterations === Infinity), 111 | ) 112 | await page.evaluate(() => new Promise((done) => requestAnimationFrame(() => requestAnimationFrame(done)))) at still (/home/cua/Developer/Worktrees/bm14/apps/web/e2e/helpers.ts:109:14) at /home/cua/Developer/Worktrees/bm14/apps/web/e2e/pill-room.spec.ts:238:15 Error Context: ../../../../../bm14-train/matrix-results/pill-room-pill-room-note-l-a9940-lit-and-in-a-selected-block-webkit-390/error-context.md attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── ../../../../../bm14-train/matrix-results/pill-room-pill-room-note-l-a9940-lit-and-in-a-selected-block-webkit-390/trace.zip Usage: npx playwright show-trace ../../../../../bm14-train/matrix-results/pill-room-pill-room-note-l-a9940-lit-and-in-a-selected-block-webkit-390/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── ``` `webkit-390 pill-room.spec.ts:210`, light note case, is not in the supplied known-pre-existing list. It will be compared once on origin/dev after the full matrix completes.
Author
Owner

Third browser case failure, first attempt (retries=0):

  3) [webkit-390] › e2e/review4-signout.spec.ts:120:5 › sign-out freezes every editor before asynchronous logout › typing during logout is refused (stuck uplink=true, BroadcastChannel=true) 

    Error: expect(locator).toHaveAttribute(expected) failed

    Locator:  locator('article.page')
    Expected: "saved"
    Received: "saving"

    Call log:
      - Expect "toHaveAttribute" locator('article.page') with timeout 5000ms
      - waiting for locator('article.page')
        2 × locator resolved to <article data-width="full" data-font="system" data-save="saving" data-lines="dotted" aria-label="Private 1" class="page see-through">…</article>
          - unexpected value "saving"
      - Page crashed


       at signout-fixture.ts:194

      192 |           return got.ok() && JSON.stringify(await got.json()).includes('More private words')
      193 |         }, { timeout: 0 }).toBe(true)
    > 194 |         await expect(page.locator('article.page')).toHaveAttribute('data-save', 'saved')
          |                                                    ^
      195 |       }
      196 |       await page.evaluate(() => { location.hash = '/settings/writing' })
      197 |       await page.getByRole('switch', { name: 'Open notes in source mode' }).click()
        at writeTwoNotes (/home/cua/Developer/Worktrees/bm14/apps/web/e2e/signout-fixture.ts:194:52)
        at /home/cua/Developer/Worktrees/bm14/apps/web/e2e/review4-signout.spec.ts:122:19

    Error Context: ../../../../../bm14-train/matrix-results/review4-signout-sign-out-f-ee5f0-true-BroadcastChannel-true--webkit-390/error-context.md

    attachment #2: trace (application/zip) ─────────────────────────────────────────────────────────
    ../../../../../bm14-train/matrix-results/review4-signout-sign-out-f-ee5f0-true-BroadcastChannel-true--webkit-390/trace.zip
    Usage:

        npx playwright show-trace ../../../../../bm14-train/matrix-results/review4-signout-sign-out-f-ee5f0-true-BroadcastChannel-true--webkit-390/trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────


webkit-390 review4-signout.spec.ts:120, stuck uplink=true / BroadcastChannel=true, is not in the supplied known-pre-existing list. A single exact-case baseline comparison will run after the matrix.

Third browser case failure, first attempt (retries=0): ```text 3) [webkit-390] › e2e/review4-signout.spec.ts:120:5 › sign-out freezes every editor before asynchronous logout › typing during logout is refused (stuck uplink=true, BroadcastChannel=true) Error: expect(locator).toHaveAttribute(expected) failed Locator: locator('article.page') Expected: "saved" Received: "saving" Call log: - Expect "toHaveAttribute" locator('article.page') with timeout 5000ms - waiting for locator('article.page') 2 × locator resolved to <article data-width="full" data-font="system" data-save="saving" data-lines="dotted" aria-label="Private 1" class="page see-through">…</article> - unexpected value "saving" - Page crashed at signout-fixture.ts:194 192 | return got.ok() && JSON.stringify(await got.json()).includes('More private words') 193 | }, { timeout: 0 }).toBe(true) > 194 | await expect(page.locator('article.page')).toHaveAttribute('data-save', 'saved') | ^ 195 | } 196 | await page.evaluate(() => { location.hash = '/settings/writing' }) 197 | await page.getByRole('switch', { name: 'Open notes in source mode' }).click() at writeTwoNotes (/home/cua/Developer/Worktrees/bm14/apps/web/e2e/signout-fixture.ts:194:52) at /home/cua/Developer/Worktrees/bm14/apps/web/e2e/review4-signout.spec.ts:122:19 Error Context: ../../../../../bm14-train/matrix-results/review4-signout-sign-out-f-ee5f0-true-BroadcastChannel-true--webkit-390/error-context.md attachment #2: trace (application/zip) ───────────────────────────────────────────────────────── ../../../../../bm14-train/matrix-results/review4-signout-sign-out-f-ee5f0-true-BroadcastChannel-true--webkit-390/trace.zip Usage: npx playwright show-trace ../../../../../bm14-train/matrix-results/review4-signout-sign-out-f-ee5f0-true-BroadcastChannel-true--webkit-390/trace.zip ──────────────────────────────────────────────────────────────────────────────────────────────── ``` `webkit-390 review4-signout.spec.ts:120`, stuck uplink=true / BroadcastChannel=true, is not in the supplied known-pre-existing list. A single exact-case baseline comparison will run after the matrix.
Author
Owner

Full matrix results at 00e8c0b5, CI=1, workers=1, retries=0. Each attempted case has exactly one attempt, no nonzero retry indices, and no reporter-level errors. Initial startup failure remains failed separately.

VM / project Passed Failed Skipped Unattempted
chromium / chromium-1440 442 0 625 0
chromium / chromium-390 898 0 169 0
chromium / throttled-1440 1 1 2 0
chromium / throttled-390 0 0 0 4
chromium / admin-chromium-1440 12 0 9 0
chromium / admin-chromium-390 12 0 9 0
chromium / flow 1 0 0 0
chromium / passkeys 1 0 0 0
chromium / admin-setup 1 0 0 0
chromium / prefs-chromium 7 0 0 0
chromium / look-chromium-1440 5 0 0 0
chromium / look-chromium-390 5 0 0 0
chromium / contrast 9 0 0 0
chromium / sidebar-band-chromium 3 0 0 0
webkit / webkit-1440 440 0 627 0
webkit / webkit-390 892 3 172 0
webkit / admin-webkit-1440 9 0 9 0
webkit / admin-webkit-390 9 0 9 0
webkit / admin-setup 1 0 0 0
webkit / prefs-webkit 3 0 4 0
webkit / look-webkit-1440 4 0 1 0
webkit / look-webkit-390 4 0 1 0
webkit / sidebar-band-webkit 3 0 0 0

Chromium first error (throttled-1440 editor.spec.ts:57, not in the supplied known list):

Error: expect(received).toEqual(expected) // deep equality

- Expected  -   1
+ Received  + 192

- Array []
+ Array [
+   Object {
+     "at": 8250,
+     "detail": Array [
+       Object {
+         "from": Array [
+           644.875,
+           380.875,
+           543.125,
+           33.1875,
+         ],
+         "parent": "DIV.cm-content cm-lineWrapping",
+         "text": "Source-h6trwi",
+         "to": Array [
+           629.875,
+           221,
+           558.125,
+           57.5,
+         ],
+       },
+       Object {
+         "from": Array [
+           172,
+           300,
+           386.875,
+           44,
+         ],
+         "parent": "UL.results svelte-1fhbabv",
+         "text": " Source-zkmz5f see [Keyboard made-yk32ne",
+         "to": Array [
+           172,
+           320,
+           386.875,
+           54,
+         ],
+       },
+       Object {
+         "from": Array [
+           172,
+           256,
+           386.875,
+           44,
+         ],
+         "parent": "UL.results svelte-1fhbabv",
+         "text": " Source-8ltrve [Plan-ylq7a0](<Plan-ylq7a",
+         "to": Array [
+           172,
+           266,
+           386.875,
+           54,
+         ],
+       },
+       Object {
+         "from": Array [
+           1120,
+           743.59375,
+           154,
+           38.40625,
+         ],
+         "parent": "FOOTER.hints svelte-5ya9w3",
+         "text": "Ctrl EnterInsert link",
+         "to": Array [
+           984,
+           743.59375,
+           155,
+           38.40625,
+         ],
+       },
+       Object {
+         "from": Array [
+           228,
+           222.796875,
+           270.875,
+           22.390625,
+         ],
+         "parent": "BUTTON.res press svelte-1fhbabv",
+         "text": "Source-h6trwi Plan-05agzv",
+         "to": Array [
+           228,
+           219.046875,
+           270.875,
+           39.890625,
+         ],
+       },
+     ],
+     "inPage": true,
+     "input": false,
+     "value": 0.010156037004886832,
+     "what": Array [
+       "DIV.cm-line cm-h cm-h1",
+       "LI.",
+       "LI.",
+       "SPAN.",
+       "SPAN.tx svelte-1fhbabv",
+     ],
+   },
+   Object {
+     "at": 10211.800000011921,
+     "detail": Array [
+       Object {
+         "from": Array [
+           644.875,
+           380.875,
+           543.125,
+           33.1875,
+         ],
+         "parent": "DIV.cm-content cm-lineWrapping",
+         "text": "Source-h6trwi",
+         "to": Array [
+           629.875,
+           221,
+           558.125,
+           57.5,
+         ],
+       },
+       Object {
+         "from": Array [
+           246,
+           198,
+           304,
+           57,
+         ],
+         "parent": "DIV.rows",
+         "text": "  Phone 06:17Words.",
+         "to": Array [
+           246,
+           597,
+           304,
+           57,
+         ],
+       },
+       Object {
+         "from": Array [
+           246,
+           255,
+           304,
+           57,
+         ],
+         "parent": "DIV.rows",
+         "text": "  Low 06:17Words.",
+         "to": Array [
+           246,
+           654,
+           304,
+           57,
+         ],
+       },
+       Object {
+         "from": Array [
+           246,
+           312,
+           304,
+           57,
+         ],
+         "parent": "DIV.rows",
+         "text": "  Long 06:17Line 1 with a few words in i",
+         "to": Array [
+           246,
+           711,
+           304,
+           57,
+         ],
+       },
+       Object {
+         "from": Array [
+           246,
+           369,
+           304,
+           57,
+         ],
+         "parent": "DIV.rows",
+         "text": "  Glass 06:17Words.",
+         "to": Array [
+           246,
+           768,
+           304,
+           57,
+         ],
+       },
+     ],
+     "inPage": true,
+     "input": false,
+     "value": 0.13865769836676956,
+     "what": Array [
+       "DIV.cm-line cm-h cm-h1",
+       "DIV.band svelte-117c8ir",
+       "DIV.band svelte-117c8ir",
+       "DIV.band svelte-117c8ir",
+       "DIV.band svelte-117c8ir",
+     ],
+   },
+ ]

  100 |   )
  101 |   if (shifts.length) console.log('layout shifts', JSON.stringify(shifts))
> 102 |   expect(shifts).toEqual([])
      |                  ^
  103 | })
  104 |
  105 | test('the save state changing moves nothing @throttled', async ({ page, browserName }) => {
    at /home/claude/Developer/Worktrees/bm14/apps/web/e2e/editor.spec.ts:102:18

Four throttled-390 cases were not attempted because throttled-1440 failed. They will receive their first attempts in a separate run with the failed dependency removed. No failed train case is retried. Both Rust failures passed their single baseline exact-case runs on origin/dev 41f2efa3; baseline logs and remaining browser comparisons follow. WebKit first errors are in the preceding three comments.

Commands: from apps/web inside nix develop, SLOT_TRAIN=1 CI=1 TMPDIR=$HOME/bm14-tmp CALTERNAL_BIN=<train>/target/debug/calternal E2E_DIST=<train>/apps/web/dist bunx playwright test --config=$HOME/bm14-train/playwright.config.mts --output=$HOME/bm14-train/matrix-results --workers=1 --retries=0 --reporter=line,json, with BM14_HALF=chromium on dev-01 and webkit on dev-02. The wrapper selects all corresponding projects plus admin-setup, preserves dependencies within each half, and sets webServer.cwd and testDir explicitly.

Full matrix results at `00e8c0b5`, CI=1, workers=1, retries=0. Each attempted case has exactly one attempt, no nonzero retry indices, and no reporter-level errors. Initial startup failure remains failed separately. | VM / project | Passed | Failed | Skipped | Unattempted | |---|---:|---:|---:|---:| | chromium / chromium-1440 | 442 | 0 | 625 | 0 | | chromium / chromium-390 | 898 | 0 | 169 | 0 | | chromium / throttled-1440 | 1 | 1 | 2 | 0 | | chromium / throttled-390 | 0 | 0 | 0 | 4 | | chromium / admin-chromium-1440 | 12 | 0 | 9 | 0 | | chromium / admin-chromium-390 | 12 | 0 | 9 | 0 | | chromium / flow | 1 | 0 | 0 | 0 | | chromium / passkeys | 1 | 0 | 0 | 0 | | chromium / admin-setup | 1 | 0 | 0 | 0 | | chromium / prefs-chromium | 7 | 0 | 0 | 0 | | chromium / look-chromium-1440 | 5 | 0 | 0 | 0 | | chromium / look-chromium-390 | 5 | 0 | 0 | 0 | | chromium / contrast | 9 | 0 | 0 | 0 | | chromium / sidebar-band-chromium | 3 | 0 | 0 | 0 | | webkit / webkit-1440 | 440 | 0 | 627 | 0 | | webkit / webkit-390 | 892 | 3 | 172 | 0 | | webkit / admin-webkit-1440 | 9 | 0 | 9 | 0 | | webkit / admin-webkit-390 | 9 | 0 | 9 | 0 | | webkit / admin-setup | 1 | 0 | 0 | 0 | | webkit / prefs-webkit | 3 | 0 | 4 | 0 | | webkit / look-webkit-1440 | 4 | 0 | 1 | 0 | | webkit / look-webkit-390 | 4 | 0 | 1 | 0 | | webkit / sidebar-band-webkit | 3 | 0 | 0 | 0 | Chromium first error (`throttled-1440 editor.spec.ts:57`, not in the supplied known list): ```text Error: expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 192 - Array [] + Array [ + Object { + "at": 8250, + "detail": Array [ + Object { + "from": Array [ + 644.875, + 380.875, + 543.125, + 33.1875, + ], + "parent": "DIV.cm-content cm-lineWrapping", + "text": "Source-h6trwi", + "to": Array [ + 629.875, + 221, + 558.125, + 57.5, + ], + }, + Object { + "from": Array [ + 172, + 300, + 386.875, + 44, + ], + "parent": "UL.results svelte-1fhbabv", + "text": " Source-zkmz5f see [Keyboard made-yk32ne", + "to": Array [ + 172, + 320, + 386.875, + 54, + ], + }, + Object { + "from": Array [ + 172, + 256, + 386.875, + 44, + ], + "parent": "UL.results svelte-1fhbabv", + "text": " Source-8ltrve [Plan-ylq7a0](<Plan-ylq7a", + "to": Array [ + 172, + 266, + 386.875, + 54, + ], + }, + Object { + "from": Array [ + 1120, + 743.59375, + 154, + 38.40625, + ], + "parent": "FOOTER.hints svelte-5ya9w3", + "text": "Ctrl EnterInsert link", + "to": Array [ + 984, + 743.59375, + 155, + 38.40625, + ], + }, + Object { + "from": Array [ + 228, + 222.796875, + 270.875, + 22.390625, + ], + "parent": "BUTTON.res press svelte-1fhbabv", + "text": "Source-h6trwi Plan-05agzv", + "to": Array [ + 228, + 219.046875, + 270.875, + 39.890625, + ], + }, + ], + "inPage": true, + "input": false, + "value": 0.010156037004886832, + "what": Array [ + "DIV.cm-line cm-h cm-h1", + "LI.", + "LI.", + "SPAN.", + "SPAN.tx svelte-1fhbabv", + ], + }, + Object { + "at": 10211.800000011921, + "detail": Array [ + Object { + "from": Array [ + 644.875, + 380.875, + 543.125, + 33.1875, + ], + "parent": "DIV.cm-content cm-lineWrapping", + "text": "Source-h6trwi", + "to": Array [ + 629.875, + 221, + 558.125, + 57.5, + ], + }, + Object { + "from": Array [ + 246, + 198, + 304, + 57, + ], + "parent": "DIV.rows", + "text": " Phone 06:17Words.", + "to": Array [ + 246, + 597, + 304, + 57, + ], + }, + Object { + "from": Array [ + 246, + 255, + 304, + 57, + ], + "parent": "DIV.rows", + "text": " Low 06:17Words.", + "to": Array [ + 246, + 654, + 304, + 57, + ], + }, + Object { + "from": Array [ + 246, + 312, + 304, + 57, + ], + "parent": "DIV.rows", + "text": " Long 06:17Line 1 with a few words in i", + "to": Array [ + 246, + 711, + 304, + 57, + ], + }, + Object { + "from": Array [ + 246, + 369, + 304, + 57, + ], + "parent": "DIV.rows", + "text": " Glass 06:17Words.", + "to": Array [ + 246, + 768, + 304, + 57, + ], + }, + ], + "inPage": true, + "input": false, + "value": 0.13865769836676956, + "what": Array [ + "DIV.cm-line cm-h cm-h1", + "DIV.band svelte-117c8ir", + "DIV.band svelte-117c8ir", + "DIV.band svelte-117c8ir", + "DIV.band svelte-117c8ir", + ], + }, + ] 100 | ) 101 | if (shifts.length) console.log('layout shifts', JSON.stringify(shifts)) > 102 | expect(shifts).toEqual([]) | ^ 103 | }) 104 | 105 | test('the save state changing moves nothing @throttled', async ({ page, browserName }) => { at /home/claude/Developer/Worktrees/bm14/apps/web/e2e/editor.spec.ts:102:18 ``` Four throttled-390 cases were not attempted because throttled-1440 failed. They will receive their first attempts in a separate run with the failed dependency removed. No failed train case is retried. Both Rust failures passed their single baseline exact-case runs on origin/dev `41f2efa3`; baseline logs and remaining browser comparisons follow. WebKit first errors are in the preceding three comments. Commands: from apps/web inside nix develop, `SLOT_TRAIN=1 CI=1 TMPDIR=$HOME/bm14-tmp CALTERNAL_BIN=<train>/target/debug/calternal E2E_DIST=<train>/apps/web/dist bunx playwright test --config=$HOME/bm14-train/playwright.config.mts --output=$HOME/bm14-train/matrix-results --workers=1 --retries=0 --reporter=line,json`, with BM14_HALF=chromium on dev-01 and webkit on dev-02. The wrapper selects all corresponding projects plus admin-setup, preserves dependencies within each half, and sets webServer.cwd and testDir explicitly.
Author
Owner

Completion of dependency-blocked cases and baseline comparisons so far:

Run / project Passed Failed Skipped Unattempted
BM14 first attempts / throttled-390 4 0 0 0
origin/dev baseline / webkit-390 3 0 0 0

Each case above has exactly one attempt and retry index 0. No failed BM14 case was rerun. The four phone cases were originally dependency-blocked (zero attempts) and were selected as the only project with dependencies removed. The train binary was retained separately before baseline compilation, and the train dist was used.

Updated complete BM14 matrix: 2,766 passed, 4 failed, 1,637 skipped, 0 unattempted, including admin-setup on each VM (one deliberate duplicate across the split). The initial startup failure remains a failed gate.

Single baseline exact-case Rust commands, after frozen install, on origin/dev 41f2efa387b74175971a838f602535089d0d5fb4:

cargo test -j4 -p calternal-auth --lib sharing::tests::owner_unshared_admission_is_cached_until_a_grant_and_never_after -- --exact
cargo test -j4 -p calternal-auth --lib sharing::tests::replay_authorization_waits_for_the_per_note_writer_lock -- --exact

Both returned 0: exactly 1 passed / 52 filtered out each. These train failures do not reproduce on the baseline.

The three WebKit failed cases (glass, note/light pill spacing, sign-out stuck uplink=true/BroadcastChannel=true) were selected by exact escaped test titles in webkit-390, no other project or dependencies, on baseline product sources and dist. All passed once. No supplied known-pre-existing failure occurred in the train. Chromium throttled editor baseline comparison is the last pending comparison.

Browser comparison command, from apps/web inside nix develop: SLOT_TRAIN=1 CI=1 TMPDIR=$HOME/bm14-tmp CALTERNAL_BIN=<baseline binary> E2E_DIST=<baseline dist> bunx playwright test --config=$HOME/bm14-baseline/playwright.config.mts --workers=1 --retries=0 --reporter=line,json. Unattempted phone command uses $HOME/bm14-train/unattempted.config.mts, train sources/dist and the retained train binary. Disk checked before each command.

Completion of dependency-blocked cases and baseline comparisons so far: | Run / project | Passed | Failed | Skipped | Unattempted | |---|---:|---:|---:|---:| | BM14 first attempts / throttled-390 | 4 | 0 | 0 | 0 | | origin/dev baseline / webkit-390 | 3 | 0 | 0 | 0 | Each case above has exactly one attempt and retry index 0. No failed BM14 case was rerun. The four phone cases were originally dependency-blocked (zero attempts) and were selected as the only project with dependencies removed. The train binary was retained separately before baseline compilation, and the train dist was used. Updated complete BM14 matrix: **2,766 passed, 4 failed, 1,637 skipped, 0 unattempted**, including admin-setup on each VM (one deliberate duplicate across the split). The initial startup failure remains a failed gate. Single baseline exact-case Rust commands, after frozen install, on origin/dev `41f2efa387b74175971a838f602535089d0d5fb4`: ```sh cargo test -j4 -p calternal-auth --lib sharing::tests::owner_unshared_admission_is_cached_until_a_grant_and_never_after -- --exact cargo test -j4 -p calternal-auth --lib sharing::tests::replay_authorization_waits_for_the_per_note_writer_lock -- --exact ``` Both returned 0: exactly 1 passed / 52 filtered out each. These train failures do not reproduce on the baseline. The three WebKit failed cases (glass, note/light pill spacing, sign-out stuck uplink=true/BroadcastChannel=true) were selected by exact escaped test titles in webkit-390, no other project or dependencies, on baseline product sources and dist. All passed once. No supplied known-pre-existing failure occurred in the train. Chromium throttled editor baseline comparison is the last pending comparison. Browser comparison command, from apps/web inside nix develop: `SLOT_TRAIN=1 CI=1 TMPDIR=$HOME/bm14-tmp CALTERNAL_BIN=<baseline binary> E2E_DIST=<baseline dist> bunx playwright test --config=$HOME/bm14-baseline/playwright.config.mts --workers=1 --retries=0 --reporter=line,json`. Unattempted phone command uses `$HOME/bm14-train/unattempted.config.mts`, train sources/dist and the retained train binary. Disk checked before each command.
Author
Owner

Final BM14 result: RED. Do not merge. Head 00e8c0b5b35361000e1fd53233a3fff0881ff1ef, baseline dev 41f2efa387b74175971a838f602535089d0d5fb4.

Final browser accounting (admin-setup deliberately runs once on each VM):

VM / project Passed Failed Skipped Unattempted
chromium / chromium-1440 442 0 625 0
chromium / chromium-390 898 0 169 0
chromium / throttled-1440 1 1 2 0
chromium / throttled-390 4 0 0 0
chromium / admin-chromium-1440 12 0 9 0
chromium / admin-chromium-390 12 0 9 0
chromium / flow 1 0 0 0
chromium / passkeys 1 0 0 0
chromium / admin-setup 1 0 0 0
chromium / prefs-chromium 7 0 0 0
chromium / look-chromium-1440 5 0 0 0
chromium / look-chromium-390 5 0 0 0
chromium / contrast 9 0 0 0
chromium / sidebar-band-chromium 3 0 0 0
webkit / webkit-1440 440 0 627 0
webkit / webkit-390 892 3 172 0
webkit / admin-webkit-1440 9 0 9 0
webkit / admin-webkit-390 9 0 9 0
webkit / admin-setup 1 0 0 0
webkit / prefs-webkit 3 0 4 0
webkit / look-webkit-1440 4 0 1 0
webkit / look-webkit-390 4 0 1 0
webkit / sidebar-band-webkit 3 0 0 0
Total 2766 4 1637 0

All attempted train cases have one actual attempt and retry index 0. Four originally dependency-blocked phone cases passed on their first attempts. No failed train case was retried. The first browser startup gate failed before discovery; changing the wrapper to .mts enabled the full unattempted matrix, and does not erase that gate failure.

Failed train case Single origin/dev comparison
Rust owner_unshared_admission_is_cached_until_a_grant_and_never_after pass, exactly 1 test
Rust replay_authorization_waits_for_the_per_note_writer_lock pass, exactly 1 test
throttled-1440 editor.spec.ts:57, cpu x6 layout shift pass, exactly 1 test (baseline line 59)
webkit-390 glass.spec.ts:76 pass, exactly 1 test
webkit-390 pill-room.spec.ts:210, note/light pass, exactly 1 test
webkit-390 review4-signout.spec.ts:120, stuck uplink=true / BroadcastChannel=true pass, exactly 1 test

None of the six failing train cases reproduced in its one baseline comparison. None was in the supplied known-pre-existing list. Browser crashes remain observations from this run; no root cause is inferred from a single comparison. The Rust workspace command stopped at its two auth failures, so it did not finish later packages.

Gates: fmt PASS; clippy -D warnings PASS; cargo test --workspace -j4 FAIL; cargo build PASS on both VMs; bun build PASS on both; bundle-only budget PASS; check-case-paths PASS; check-no-evidence PASS; initial browser startup FAIL; completed full matrix FAIL. Exact gate commands and first errors are in earlier comments.

Final Chromium baseline command: from baseline apps/web in nix develop, SLOT_TRAIN=1 CI=1 TMPDIR=$HOME/bm14-tmp CALTERNAL_BIN=<baseline binary> E2E_DIST=<baseline dist> bunx playwright test --config=$HOME/bm14-baseline/chromium.config.mts --workers=1 --retries=0 --reporter=line,json; the config selected only throttled-1440 and the exact failed title, with dependencies removed. It passed once.

Included #850 de991727, #851 80934507, #852 08b6d9ad, #829 5cab44a4, #835 3755691d, all --no-ff. Excluded #842 0fb5e8ed for nonmechanical toolbar/access behavior conflicts; excluded stacked dependent #876 9a98a7f1. Full recorded heads and conflict details are in the PR description.

Cleanup complete on both VMs: throwaway bm14 and bm14-base worktrees (including target and node_modules), retained train binary, browser traces, and on-disk temporary Homes removed. Small logs/JSON retained outside the repository. Both live lock owners exited through their EXIT traps, both ~/.train.lock files are absent, and no own build/test job remains running. Existing deploy work was allowed to finish. No merge performed.

Final BM14 result: **RED. Do not merge.** Head `00e8c0b5b35361000e1fd53233a3fff0881ff1ef`, baseline dev `41f2efa387b74175971a838f602535089d0d5fb4`. Final browser accounting (admin-setup deliberately runs once on each VM): | VM / project | Passed | Failed | Skipped | Unattempted | |---|---:|---:|---:|---:| | chromium / chromium-1440 | 442 | 0 | 625 | 0 | | chromium / chromium-390 | 898 | 0 | 169 | 0 | | chromium / throttled-1440 | 1 | 1 | 2 | 0 | | chromium / throttled-390 | 4 | 0 | 0 | 0 | | chromium / admin-chromium-1440 | 12 | 0 | 9 | 0 | | chromium / admin-chromium-390 | 12 | 0 | 9 | 0 | | chromium / flow | 1 | 0 | 0 | 0 | | chromium / passkeys | 1 | 0 | 0 | 0 | | chromium / admin-setup | 1 | 0 | 0 | 0 | | chromium / prefs-chromium | 7 | 0 | 0 | 0 | | chromium / look-chromium-1440 | 5 | 0 | 0 | 0 | | chromium / look-chromium-390 | 5 | 0 | 0 | 0 | | chromium / contrast | 9 | 0 | 0 | 0 | | chromium / sidebar-band-chromium | 3 | 0 | 0 | 0 | | webkit / webkit-1440 | 440 | 0 | 627 | 0 | | webkit / webkit-390 | 892 | 3 | 172 | 0 | | webkit / admin-webkit-1440 | 9 | 0 | 9 | 0 | | webkit / admin-webkit-390 | 9 | 0 | 9 | 0 | | webkit / admin-setup | 1 | 0 | 0 | 0 | | webkit / prefs-webkit | 3 | 0 | 4 | 0 | | webkit / look-webkit-1440 | 4 | 0 | 1 | 0 | | webkit / look-webkit-390 | 4 | 0 | 1 | 0 | | webkit / sidebar-band-webkit | 3 | 0 | 0 | 0 | | **Total** | **2766** | **4** | **1637** | **0** | All attempted train cases have one actual attempt and retry index 0. Four originally dependency-blocked phone cases passed on their first attempts. No failed train case was retried. The first browser startup gate failed before discovery; changing the wrapper to .mts enabled the full unattempted matrix, and does not erase that gate failure. | Failed train case | Single origin/dev comparison | |---|---| | Rust owner_unshared_admission_is_cached_until_a_grant_and_never_after | pass, exactly 1 test | | Rust replay_authorization_waits_for_the_per_note_writer_lock | pass, exactly 1 test | | throttled-1440 editor.spec.ts:57, cpu x6 layout shift | pass, exactly 1 test (baseline line 59) | | webkit-390 glass.spec.ts:76 | pass, exactly 1 test | | webkit-390 pill-room.spec.ts:210, note/light | pass, exactly 1 test | | webkit-390 review4-signout.spec.ts:120, stuck uplink=true / BroadcastChannel=true | pass, exactly 1 test | None of the six failing train cases reproduced in its one baseline comparison. None was in the supplied known-pre-existing list. Browser crashes remain observations from this run; no root cause is inferred from a single comparison. The Rust workspace command stopped at its two auth failures, so it did not finish later packages. Gates: fmt PASS; clippy -D warnings PASS; cargo test --workspace -j4 FAIL; cargo build PASS on both VMs; bun build PASS on both; bundle-only budget PASS; check-case-paths PASS; check-no-evidence PASS; initial browser startup FAIL; completed full matrix FAIL. Exact gate commands and first errors are in earlier comments. Final Chromium baseline command: from baseline apps/web in nix develop, `SLOT_TRAIN=1 CI=1 TMPDIR=$HOME/bm14-tmp CALTERNAL_BIN=<baseline binary> E2E_DIST=<baseline dist> bunx playwright test --config=$HOME/bm14-baseline/chromium.config.mts --workers=1 --retries=0 --reporter=line,json`; the config selected only throttled-1440 and the exact failed title, with dependencies removed. It passed once. Included #850 de991727, #851 80934507, #852 08b6d9ad, #829 5cab44a4, #835 3755691d, all --no-ff. Excluded #842 0fb5e8ed for nonmechanical toolbar/access behavior conflicts; excluded stacked dependent #876 9a98a7f1. Full recorded heads and conflict details are in the PR description. Cleanup complete on both VMs: throwaway bm14 and bm14-base worktrees (including target and node_modules), retained train binary, browser traces, and on-disk temporary Homes removed. Small logs/JSON retained outside the repository. Both live lock owners exited through their EXIT traps, both ~/.train.lock files are absent, and no own build/test job remains running. Existing deploy work was allowed to finish. No merge performed.
Author
Owner

bm14 fixes pushed to owning branches only:

  • #829 97d790f69259b0308598ca0aafd2407ef1a1226e: both rust failures were dormant cross-owner gate integration mismatches; deterministic lock-future assertions replace scheduling assumptions. each 0/30 before → 30/30 after under ordinary build load.
  • #850 1812cc5e10b8008e28acaa2f19234ff8123dfd73 (includes dee3e961): retain preview metadata, wait on UI state, remove isolated WPE word-blur crash trigger. editor 1/10 → 10/10; glass 10/10 → 10/10 (original crash not reproduced); pill-room 28/30 → 30/30 focused plus 10/10 final; stuck/BroadcastChannel sign-out 9/10 → 10/10.

full evidence, exact commands and diagnostic limits: #850 (comment)
rust evidence: #829 (comment)

#851/#852/#835 and train branch unchanged. no threshold or timeout relaxation. existing typecheck drift remains documented. no full train run and no merge. cleanup complete; no own jobs remain active.

bm14 fixes pushed to owning branches only: - #829 `97d790f69259b0308598ca0aafd2407ef1a1226e`: both rust failures were dormant cross-owner gate integration mismatches; deterministic lock-future assertions replace scheduling assumptions. each 0/30 before → 30/30 after under ordinary build load. - #850 `1812cc5e10b8008e28acaa2f19234ff8123dfd73` (includes `dee3e961`): retain preview metadata, wait on UI state, remove isolated WPE word-blur crash trigger. editor 1/10 → 10/10; glass 10/10 → 10/10 (original crash not reproduced); pill-room 28/30 → 30/30 focused plus 10/10 final; stuck/BroadcastChannel sign-out 9/10 → 10/10. full evidence, exact commands and diagnostic limits: https://git.kayg.org/kayg/calternal/pulls/850#issuecomment-76594 rust evidence: https://git.kayg.org/kayg/calternal/pulls/829#issuecomment-76545 #851/#852/#835 and train branch unchanged. no threshold or timeout relaxation. existing typecheck drift remains documented. no full train run and no merge. cleanup complete; no own jobs remain active.
Author
Owner

Closing: BM14 was RED; its fixes went to the owning branches and BM14b/c/d/e replaced it (latest: #914). Branch kept.

Closing: BM14 was RED; its fixes went to the owning branches and BM14b/c/d/e replaced it (latest: #914). Branch kept.
kayg closed this pull request 2026-11-04 13:05:03 +00:00
Some checks failed
CI / server (pull_request) Has been cancelled
CI / rust (pull_request) Has been cancelled
CI / web (pull_request) Has been cancelled
Markdown extraction contract / markdown-native-contract (pull_request) Has been cancelled
Markdown extraction contract / markdown-editor-contract (pull_request) Has been cancelled

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal!886
No description provided.