Train BM11 #883

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

Replaces #880. Requested current-head train without Style PRs or #863. Assembly decisions, source heads and first-run gate evidence are recorded only in PR comments. Test train; never merge as part of this task.

Replaces #880. Requested current-head train without Style PRs or #863. Assembly decisions, source heads and first-run gate evidence are recorded only in PR comments. Test train; never merge as part of this task.
kayg added 234 commits 2026-11-02 20:40:21 +00:00
test: write authority fixtures atomically
Some checks failed
CI / server (pull_request) Has been cancelled
CI / rust (pull_request) Has been cancelled
CI / web (pull_request) Has been cancelled
b130c95f60
test(notes): cover cache reuse and first page during rebuild
Some checks failed
CI / server (pull_request) Has been cancelled
CI / rust (pull_request) Has been cancelled
CI / web (pull_request) Has been cancelled
e0e78626ed
docs(perf): record attachment index flush baseline
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
8f57b68941
fix(tasks): match Upcoming date selection and group order to mockup
Some checks failed
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
CI / server (pull_request) Has been cancelled
CI / rust (pull_request) Has been cancelled
3f62ac8fd6
Replace svelte-sonner with our own small toast stack
Some checks failed
CI / web (pull_request) Has been cancelled
Markdown extraction contract / markdown-native-contract (pull_request) Has been cancelled
CI / server (pull_request) Has been cancelled
CI / rust (pull_request) Has been cancelled
Markdown extraction contract / markdown-editor-contract (pull_request) Has been cancelled
c98b6ee9e6
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>
search-palette spec: wait for the index
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
6752e18329
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>
test(notes): run crash rounds until confirmed append coverage
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-editor-contract (pull_request) Has been cancelled
Markdown extraction contract / markdown-native-contract (pull_request) Has been cancelled
50cce9dcce
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>
e2e: drop the recovery receipt wait (the receipt tag does not fire on rejoin)
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
85845e3d11
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
test(notes): reproduce capture racing a daily placeholder reader
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
68cecd2ba8
test(web): hold Undo toast during composer server assertions
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
24fdae745d
test(auth): observe idle upload completion before checking workers
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
144e717145
docs: link historical CI allocation observations
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
9c05d871a1
perf: gate named app chunks with explicit brotli budgets
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
da1071ed09
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts:
#	Cargo.lock
# Conflicts:
#	crates/engine/src/execute.rs
# Conflicts:
#	apps/web/e2e/search-corpus.spec.ts
chore: keep inherited attachment measurements in PR comments
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
87f05d91a6
Author
Owner

BM11 assembly complete. Head 87f05d91a6d0bc1ad573ddec3ca79c211a78fddc, base/origin-dev 55f35fcde3bc91ca3781055577b93e93819f6cd4.

PR Current recorded head Decision
#779 7b97e4d14231be07f6a80cb9ca172d02442c487e included, --no-ff
#858 626388da9052eaecb159d735f0cadc5e59e88312 included, --no-ff
#866 ba1f47dc94797d4a8a937298464b5e4828e301c2 included, --no-ff
#824 f1c1aa961e169ef99e132063a97ccbd9a89a5def included, --no-ff
#827 76f11dc4ba06468a2a0ed4d4592cea6038206696 included, --no-ff
#828 5d7b9b36cd008de78851809724c90a85d92b40a7 included, --no-ff
#833 ccaece3dfecbe2048634fc792d7d4a2c6e31f324 included, --no-ff
#836 5f7d1a59776411e7f3353d0023817b43affae51e included, --no-ff
#831 316b43e9578c3e4d2944df8df43caebc611356f7 included, --no-ff
#844 50cce9dcceb87f23a9f346300b3336e315ff6c0c included, --no-ff
#847 40448327a15730271d56226b898e48bcc87b2a4d included, --no-ff
#855 c38c3083d51f4adcf5cd76a70f1f6960b427413e included, --no-ff
#857 144e717145e35f70356f593b7c04a527e00f7b17 included, --no-ff
#856 b89e39bb313bb06b92da274124c6bbde30e2250a included, --no-ff
#840 9dd572249bd3edbcf8e1475a940070c4d03f1fc7 included, --no-ff

Excluded as requested: Style #850/#851/#852 and #863. Other ports and sharing #829/#835 omitted as in BM10.

Identical BM10 mechanical resolutions reused: #824 Cargo.lock union; #828 credential check followed by runtime timer; #840 retains #856 desktop corpus project guards. Verified assembled tree equals BM10's pre-Style merge 8e96c283, apart from removal of #831 historical artifact files. Those artifacts remain in BM10 comment 75592.

First run counts, no retries, CI=1. Gates: fmt, workspace all-targets clippy with -D warnings, cargo test --workspace -j4, cargo build -j4, bun install --frozen-lockfile, bun build, perf/web.sh --bundle-only --gate, case paths, no evidence. Full native Playwright matrix split Chromium dev-01 / WebKit dev-02, admin-setup retained with dependents, --workers=1 --retries=0. Per-project tables, failures and one origin/dev comparison per failing case will follow in comments. Known historical cases: vim.spec.ts:341/:380 and sidebar-edge.spec.ts:8.

Environment correction: TMPDIR=$HOME/bm11-tmp on root disk for Rust and Playwright temp Homes. dev-01 /tmp tmpfs has only 36,379 free inodes (97% used), while root has 27,391,138 free. Root disk checks: dev-01 294 GiB free; dev-02 325 GiB free. Use Nix and ~/bin/slot for heavy commands, -j4, consistent CARGO_PROFILE_DEV_DEBUG=0 CARGO_PROFILE_TEST_DEBUG=0 CARGO_INCREMENTAL=0. Cleanup after completion. Never merge.

BM11 assembly complete. Head `87f05d91a6d0bc1ad573ddec3ca79c211a78fddc`, base/origin-dev `55f35fcde3bc91ca3781055577b93e93819f6cd4`. | PR | Current recorded head | Decision | |---|---|---| | #779 | `7b97e4d14231be07f6a80cb9ca172d02442c487e` | included, --no-ff | | #858 | `626388da9052eaecb159d735f0cadc5e59e88312` | included, --no-ff | | #866 | `ba1f47dc94797d4a8a937298464b5e4828e301c2` | included, --no-ff | | #824 | `f1c1aa961e169ef99e132063a97ccbd9a89a5def` | included, --no-ff | | #827 | `76f11dc4ba06468a2a0ed4d4592cea6038206696` | included, --no-ff | | #828 | `5d7b9b36cd008de78851809724c90a85d92b40a7` | included, --no-ff | | #833 | `ccaece3dfecbe2048634fc792d7d4a2c6e31f324` | included, --no-ff | | #836 | `5f7d1a59776411e7f3353d0023817b43affae51e` | included, --no-ff | | #831 | `316b43e9578c3e4d2944df8df43caebc611356f7` | included, --no-ff | | #844 | `50cce9dcceb87f23a9f346300b3336e315ff6c0c` | included, --no-ff | | #847 | `40448327a15730271d56226b898e48bcc87b2a4d` | included, --no-ff | | #855 | `c38c3083d51f4adcf5cd76a70f1f6960b427413e` | included, --no-ff | | #857 | `144e717145e35f70356f593b7c04a527e00f7b17` | included, --no-ff | | #856 | `b89e39bb313bb06b92da274124c6bbde30e2250a` | included, --no-ff | | #840 | `9dd572249bd3edbcf8e1475a940070c4d03f1fc7` | included, --no-ff | Excluded as requested: Style #850/#851/#852 and #863. Other ports and sharing #829/#835 omitted as in BM10. Identical BM10 mechanical resolutions reused: #824 Cargo.lock union; #828 credential check followed by runtime timer; #840 retains #856 desktop corpus project guards. Verified assembled tree equals BM10's pre-Style merge `8e96c283`, apart from removal of #831 historical artifact files. Those artifacts remain in [BM10 comment 75592](https://git.kayg.org/kayg/calternal/pulls/880#issuecomment-75592). First run counts, no retries, CI=1. Gates: fmt, workspace all-targets clippy with -D warnings, cargo test --workspace -j4, cargo build -j4, bun install --frozen-lockfile, bun build, perf/web.sh --bundle-only --gate, case paths, no evidence. Full native Playwright matrix split Chromium dev-01 / WebKit dev-02, admin-setup retained with dependents, --workers=1 --retries=0. Per-project tables, failures and one origin/dev comparison per failing case will follow in comments. Known historical cases: vim.spec.ts:341/:380 and sidebar-edge.spec.ts:8. Environment correction: `TMPDIR=$HOME/bm11-tmp` on root disk for Rust and Playwright temp Homes. dev-01 /tmp tmpfs has only 36,379 free inodes (97% used), while root has 27,391,138 free. Root disk checks: dev-01 294 GiB free; dev-02 325 GiB free. Use Nix and ~/bin/slot for heavy commands, -j4, consistent CARGO_PROFILE_DEV_DEBUG=0 CARGO_PROFILE_TEST_DEBUG=0 CARGO_INCREMENTAL=0. Cleanup after completion. Never merge.
Author
Owner

First-run non-browser gates on 87f05d91a6d0bc1ad573ddec3ca79c211a78fddc. CI=1, Nix, heavy commands through ~/bin/slot, -j4. Rust used CARGO_PROFILE_DEV_DEBUG=0 CARGO_PROFILE_TEST_DEBUG=0 CARGO_INCREMENTAL=0. TMPDIR=$HOME/bm11-tmp was on the root disk for Rust and is also used for Playwright temp Homes.

Gate command First result
cargo fmt --all --check PASS
cargo clippy --workspace --all-targets --locked -j4 -- -D warnings PASS
cargo test --workspace -j4 FAIL (exit 101)
cargo build -j4 PASS
bun install --frozen-lockfile PASS
bash -c cd apps/web && bun run build PASS
bash perf/web.sh --bundle-only --gate PASS
node ci/check-case-paths.mjs PASS
node ci/check-no-evidence.mjs PASS

Dev-02 cargo build, bun install --frozen-lockfile and web build also passed. Browser halves launched together with native project definitions, admin-setup retained with dependents, workers=1, retries=0. Root disk rechecked before browser start.

The initial workspace command attempted 61 executable targets and stopped at calternal-notes: 545 passed, 2 failed, 6 ignored in that target. The 17 unattempted executable targets are receiving first attempts, followed by doc tests; no attempted target is rerun.

Both BM10 inode failures passed on this first run: quota_counter::signin_finishes_before_a_large_recount and reliability_review::independent_login_completes_before_recount.

Runner preparation error: the first Rust command ran before bun install. Both real-SyncClient bridge cases failed because y-protocols/sync was missing; Bun exited and Rust read EOF. This was my gate preparation error. The original first-run failure is preserved, with no train retry. Each failing case will receive one comparison on the prepared origin/dev baseline; this is not currently established as pre-existing.

First error (Bun, both cases):

error: Cannot find module 'y-protocols/sync' from '/home/claude/Developer/Worktrees/bm11/packages/editor/src/sync/protocol.ts'
failures:

---- room::save::tests::review::history_durability::independent_652_real_syncclient_joining_snapshot_is_not_saved stdout ----

thread 'room::save::tests::review::history_durability::independent_652_real_syncclient_joining_snapshot_is_not_saved' (2441443) panicked at crates/notes/src/room/save/history_durability.rs:466:37:
called `Result::unwrap()` on an `Err` value: Error("EOF while parsing a value", line: 1, column: 0)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- room::save::tests::review::history_durability::independent_652_real_syncclient_peers_and_restart_replay stdout ----

thread 'room::save::tests::review::history_durability::independent_652_real_syncclient_peers_and_restart_replay' (2441459) panicked at crates/notes/src/room/save/history_durability.rs:466:37:
called `Result::unwrap()` on an `Err` value: Error("EOF while parsing a value", line: 1, column: 0)


failures:
    room::save::tests::review::history_durability::independent_652_real_syncclient_joining_snapshot_is_not_saved
    room::save::tests::review::history_durability::independent_652_real_syncclient_peers_and_restart_replay

test result: FAILED. 545 passed; 2 failed; 6 ignored; 0 measured; 0 filtered out; finished in 636.08s

Bundle budget table (unchanged #866 budgets, bundle-only; no frame-performance claim):

metric Home unit n p50 p95 max budget
web.bundle.all_css_brotli - KB 1 34.514 34.514 34.514
web.bundle.all_css_gzip - KB 1 39.239 39.239 39.239
web.bundle.all_css_raw - KB 1 191.434 191.434 191.434
web.bundle.all_js_brotli - KB 1 315.426 315.426 315.426
web.bundle.all_js_gzip - KB 1 369.317 369.317 369.317
web.bundle.all_js_raw - KB 1 1088.696 1088.696 1088.696
web.bundle.chunk.idle-screens - KB 1 39.176 39.176 39.176 p95 ≤ 50.5 ok
web.bundle.chunk.index - KB 1 233.278 233.278 233.278 p95 ≤ 240 ok
web.bundle.chunk.InstallHint - KB 1 1.124 1.124 1.124 p95 ≤ 1.25 ok
web.bundle.chunk.ListSearch - KB 1 3.014 3.014 3.014 p95 ≤ 3.25 ok
web.bundle.chunk.notes-fill.worker - KB 1 0.902 0.902 0.902 p95 ≤ 1 ok
web.bundle.chunk.Palette - KB 1 20.822 20.822 20.822 p95 ≤ 22 ok
web.bundle.chunk.PullHint - KB 1 0.992 0.992 0.992 p95 ≤ 1.1 ok
web.bundle.chunk.replay - KB 1 5.956 5.956 5.956 p95 ≤ 6.25 ok
web.bundle.chunk.svelte - KB 1 9.331 9.331 9.331 p95 ≤ 9.75 ok
web.bundle.chunk.two-finger - KB 1 0.830 0.830 0.830 p95 ≤ 1 ok
web.bundle.chunk.vim - KB 1 37.849 37.849 37.849 p95 ≤ 39 ok
web.bundle.first_css_brotli - KB 1 18.799 18.799 18.799 p95 ≤ 22.1 ok
web.bundle.first_css_gzip - KB 1 21.475 21.475 21.475
web.bundle.first_css_raw - KB 1 106.827 106.827 106.827
web.bundle.first_js_brotli - KB 1 233.278 233.278 233.278 p95 ≤ 240 ok
web.bundle.first_js_gzip - KB 1 274.948 274.948 274.948
web.bundle.first_js_raw - KB 1 825.732 825.732 825.732
web.bundle.plugins_css_brotli - KB 1 0.000 0.000 0.000
web.bundle.plugins_css_gzip - KB 1 0.000 0.000 0.000
web.bundle.plugins_css_raw - KB 1 0.000 0.000 0.000
web.bundle.plugins_js_brotli - KB 1 37.849 37.849 37.849 p95 ≤ 45 ok
web.bundle.plugins_js_gzip - KB 1 42.922 42.922 42.922
web.bundle.plugins_js_raw - KB 1 135.032 135.032 135.032
web.bundle.total_js_brotli - KB 1 353.274 353.274 353.274 p95 ≤ 404.2 ok
First-run non-browser gates on `87f05d91a6d0bc1ad573ddec3ca79c211a78fddc`. CI=1, Nix, heavy commands through ~/bin/slot, -j4. Rust used CARGO_PROFILE_DEV_DEBUG=0 CARGO_PROFILE_TEST_DEBUG=0 CARGO_INCREMENTAL=0. `TMPDIR=$HOME/bm11-tmp` was on the root disk for Rust and is also used for Playwright temp Homes. | Gate command | First result | |---|---| | `cargo fmt --all --check` | PASS | | `cargo clippy --workspace --all-targets --locked -j4 -- -D warnings` | PASS | | `cargo test --workspace -j4` | FAIL (exit 101) | | `cargo build -j4` | PASS | | `bun install --frozen-lockfile` | PASS | | `bash -c cd apps/web && bun run build` | PASS | | `bash perf/web.sh --bundle-only --gate` | PASS | | `node ci/check-case-paths.mjs` | PASS | | `node ci/check-no-evidence.mjs` | PASS | Dev-02 cargo build, bun install --frozen-lockfile and web build also passed. Browser halves launched together with native project definitions, admin-setup retained with dependents, workers=1, retries=0. Root disk rechecked before browser start. The initial workspace command attempted 61 executable targets and stopped at calternal-notes: 545 passed, 2 failed, 6 ignored in that target. The 17 unattempted executable targets are receiving first attempts, followed by doc tests; no attempted target is rerun. Both BM10 inode failures passed on this first run: `quota_counter::signin_finishes_before_a_large_recount` and `reliability_review::independent_login_completes_before_recount`. Runner preparation error: the first Rust command ran before bun install. Both real-SyncClient bridge cases failed because `y-protocols/sync` was missing; Bun exited and Rust read EOF. This was my gate preparation error. The original first-run failure is preserved, with no train retry. Each failing case will receive one comparison on the prepared origin/dev baseline; this is not currently established as pre-existing. First error (Bun, both cases): ```text error: Cannot find module 'y-protocols/sync' from '/home/claude/Developer/Worktrees/bm11/packages/editor/src/sync/protocol.ts' ``` ```text failures: ---- room::save::tests::review::history_durability::independent_652_real_syncclient_joining_snapshot_is_not_saved stdout ---- thread 'room::save::tests::review::history_durability::independent_652_real_syncclient_joining_snapshot_is_not_saved' (2441443) panicked at crates/notes/src/room/save/history_durability.rs:466:37: called `Result::unwrap()` on an `Err` value: Error("EOF while parsing a value", line: 1, column: 0) note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace ---- room::save::tests::review::history_durability::independent_652_real_syncclient_peers_and_restart_replay stdout ---- thread 'room::save::tests::review::history_durability::independent_652_real_syncclient_peers_and_restart_replay' (2441459) panicked at crates/notes/src/room/save/history_durability.rs:466:37: called `Result::unwrap()` on an `Err` value: Error("EOF while parsing a value", line: 1, column: 0) failures: room::save::tests::review::history_durability::independent_652_real_syncclient_joining_snapshot_is_not_saved room::save::tests::review::history_durability::independent_652_real_syncclient_peers_and_restart_replay test result: FAILED. 545 passed; 2 failed; 6 ignored; 0 measured; 0 filtered out; finished in 636.08s ``` Bundle budget table (unchanged #866 budgets, bundle-only; no frame-performance claim): | metric | Home | unit | n | p50 | p95 | max | budget | | |---|---:|---|---:|---:|---:|---:|---|---| | `web.bundle.all_css_brotli` | - | KB | 1 | 34.514 | 34.514 | 34.514 | | | | `web.bundle.all_css_gzip` | - | KB | 1 | 39.239 | 39.239 | 39.239 | | | | `web.bundle.all_css_raw` | - | KB | 1 | 191.434 | 191.434 | 191.434 | | | | `web.bundle.all_js_brotli` | - | KB | 1 | 315.426 | 315.426 | 315.426 | | | | `web.bundle.all_js_gzip` | - | KB | 1 | 369.317 | 369.317 | 369.317 | | | | `web.bundle.all_js_raw` | - | KB | 1 | 1088.696 | 1088.696 | 1088.696 | | | | `web.bundle.chunk.idle-screens` | - | KB | 1 | 39.176 | 39.176 | 39.176 | p95 ≤ 50.5 | ok | | `web.bundle.chunk.index` | - | KB | 1 | 233.278 | 233.278 | 233.278 | p95 ≤ 240 | ok | | `web.bundle.chunk.InstallHint` | - | KB | 1 | 1.124 | 1.124 | 1.124 | p95 ≤ 1.25 | ok | | `web.bundle.chunk.ListSearch` | - | KB | 1 | 3.014 | 3.014 | 3.014 | p95 ≤ 3.25 | ok | | `web.bundle.chunk.notes-fill.worker` | - | KB | 1 | 0.902 | 0.902 | 0.902 | p95 ≤ 1 | ok | | `web.bundle.chunk.Palette` | - | KB | 1 | 20.822 | 20.822 | 20.822 | p95 ≤ 22 | ok | | `web.bundle.chunk.PullHint` | - | KB | 1 | 0.992 | 0.992 | 0.992 | p95 ≤ 1.1 | ok | | `web.bundle.chunk.replay` | - | KB | 1 | 5.956 | 5.956 | 5.956 | p95 ≤ 6.25 | ok | | `web.bundle.chunk.svelte` | - | KB | 1 | 9.331 | 9.331 | 9.331 | p95 ≤ 9.75 | ok | | `web.bundle.chunk.two-finger` | - | KB | 1 | 0.830 | 0.830 | 0.830 | p95 ≤ 1 | ok | | `web.bundle.chunk.vim` | - | KB | 1 | 37.849 | 37.849 | 37.849 | p95 ≤ 39 | ok | | `web.bundle.first_css_brotli` | - | KB | 1 | 18.799 | 18.799 | 18.799 | p95 ≤ 22.1 | ok | | `web.bundle.first_css_gzip` | - | KB | 1 | 21.475 | 21.475 | 21.475 | | | | `web.bundle.first_css_raw` | - | KB | 1 | 106.827 | 106.827 | 106.827 | | | | `web.bundle.first_js_brotli` | - | KB | 1 | 233.278 | 233.278 | 233.278 | p95 ≤ 240 | ok | | `web.bundle.first_js_gzip` | - | KB | 1 | 274.948 | 274.948 | 274.948 | | | | `web.bundle.first_js_raw` | - | KB | 1 | 825.732 | 825.732 | 825.732 | | | | `web.bundle.plugins_css_brotli` | - | KB | 1 | 0.000 | 0.000 | 0.000 | | | | `web.bundle.plugins_css_gzip` | - | KB | 1 | 0.000 | 0.000 | 0.000 | | | | `web.bundle.plugins_css_raw` | - | KB | 1 | 0.000 | 0.000 | 0.000 | | | | `web.bundle.plugins_js_brotli` | - | KB | 1 | 37.849 | 37.849 | 37.849 | p95 ≤ 45 | ok | | `web.bundle.plugins_js_gzip` | - | KB | 1 | 42.922 | 42.922 | 42.922 | | | | `web.bundle.plugins_js_raw` | - | KB | 1 | 135.032 | 135.032 | 135.032 | | | | `web.bundle.total_js_brotli` | - | KB | 1 | 353.274 | 353.274 | 353.274 | p95 ≤ 404.2 | ok |
Author
Owner

Rust failing-case attribution, train 87f05d91a6d0bc1ad573ddec3ca79c211a78fddc, origin/dev baseline 55f35fcde3bc91ca3781055577b93e93819f6cd4 (only #779 Nix tooling overlaid).

Each failing case ran exactly once on origin/dev, CI=1, Nix, ~/bin/slot, TMPDIR=$HOME/bm11-tmp, CARGO_PROFILE_DEV_DEBUG=0 CARGO_PROFILE_TEST_DEBUG=0 CARGO_INCREMENTAL=0. No train retry.

Failing train case Train first run Origin/dev once Attribution
room::save::tests::review::history_durability::independent_652_real_syncclient_joining_snapshot_is_not_saved FAIL: missing y-protocols/sync, then EOF PASS (1 passed) runner preparation error, rust ran before bun install; not reproduced on prepared baseline
room::save::tests::review::history_durability::independent_652_real_syncclient_peers_and_restart_replay FAIL: missing y-protocols/sync, then EOF PASS (1 passed) runner preparation error, rust ran before bun install; not reproduced on prepared baseline

Exact baseline commands:

cargo test -p calternal-notes --lib -j4 room::save::tests::review::history_durability::independent_652_real_syncclient_joining_snapshot_is_not_saved -- --exact --nocapture
cargo test -p calternal-notes --lib -j4 room::save::tests::review::history_durability::independent_652_real_syncclient_peers_and_restart_replay -- --exact --nocapture

The baseline had bun dependencies installed for its web build before these comparisons. Train's original missing-dependency environment is explicitly recorded, not concealed by retrying. No product regression is inferred from these two runner failures, and the requested first-run rust gate remains FAIL.

Rust failing-case attribution, train `87f05d91a6d0bc1ad573ddec3ca79c211a78fddc`, origin/dev baseline `55f35fcde3bc91ca3781055577b93e93819f6cd4` (only #779 Nix tooling overlaid). Each failing case ran exactly once on origin/dev, CI=1, Nix, ~/bin/slot, `TMPDIR=$HOME/bm11-tmp`, CARGO_PROFILE_DEV_DEBUG=0 CARGO_PROFILE_TEST_DEBUG=0 CARGO_INCREMENTAL=0. No train retry. | Failing train case | Train first run | Origin/dev once | Attribution | |---|---|---|---| | `room::save::tests::review::history_durability::independent_652_real_syncclient_joining_snapshot_is_not_saved` | FAIL: missing y-protocols/sync, then EOF | PASS (1 passed) | runner preparation error, rust ran before bun install; not reproduced on prepared baseline | | `room::save::tests::review::history_durability::independent_652_real_syncclient_peers_and_restart_replay` | FAIL: missing y-protocols/sync, then EOF | PASS (1 passed) | runner preparation error, rust ran before bun install; not reproduced on prepared baseline | Exact baseline commands: ```sh cargo test -p calternal-notes --lib -j4 room::save::tests::review::history_durability::independent_652_real_syncclient_joining_snapshot_is_not_saved -- --exact --nocapture cargo test -p calternal-notes --lib -j4 room::save::tests::review::history_durability::independent_652_real_syncclient_peers_and_restart_replay -- --exact --nocapture ``` The baseline had bun dependencies installed for its web build before these comparisons. Train's original missing-dependency environment is explicitly recorded, not concealed by retrying. No product regression is inferred from these two runner failures, and the requested first-run rust gate remains FAIL.
Author
Owner

Final Rust first-attempt target coverage, train 87f05d91a6d0bc1ad573ddec3ca79c211a78fddc.

Original cargo test --workspace -j4 remains FAIL (exit 101), stopping after 61 executables. The 17 previously unattempted executables received first attempts only. All 78 executable targets covered: 77 targets PASS, 1 target FAIL (2 bridge cases from missing bun dependencies, already reported). No attempted target or failing train case was retried. Both failing cases passed their one prepared-origin/dev comparison; see comment 75906.

All commands CI=1, Nix, ~/bin/slot, -j4, disk-backed TMPDIR=$HOME/bm11-tmp. Both formerly ENOSPC quota/sign-in cases passed the original first attempt.

Executable target Result Passed Failed Ignored
calternal ok 35 0 1
attachments_crash ok 2 0 0
contacts_live ok 2 0 0
fix_tz_live ok 2 0 0
notes_crash ok 3 0 0
notes_crash_typing ok 1 0 0
notes_live ok 3 0 0
prefs_live ok 1 0 0
search_live ok 2 0 1
startup ok 5 0 1
storage_startup ok 10 0 1
calternal_attachments ok 22 0 0
calternal_auth ok 53 0 0
abuse ok 12 0 0
app_passwords ok 29 0 0
create ok 6 0 0
groups ok 1 0 0
host_cookies ok 3 0 0
invites ok 8 0 0
isolation ok 3 0 0
login ok 11 0 0
migration ok 1 0 0
passkeys ok 10 0 0
people ok 4 0 0
quota_counter ok 2 0 1
reliability_review ok 19 0 3
reliability_round3 ok 10 0 2
security_regressions ok 14 0 1
setup ok 8 0 0
calternal_backdrops ok 24 0 1
calternal_contacts ok 1 0 0
apple ok 4 0 0
break_codec ok 11 0 0
break_generated ok 9 0 0
break_inventory ok 1 0 0
break_labels ok 2 0 0
break_layout ok 27 0 0
break_links ok 4 0 0
break_merge ok 16 0 0
format3 ok 21 0 0
hostile ok 10 0 0
layout ok 13 0 0
roundtrip ok 10 0 0
calternal_contacts_actions ok 131 0 0
calternal_core ok 16 0 0
calternal_daily ok 23 0 0
calternal_engine ok 20 0 1
calternal_fixtures ok 5 0 0
calternal_fixtures ok 0 0 0
calternal_fsio ok 52 0 0
calternal_imap_uid ok 13 0 0
calternal_markdown_view ok 3 0 1
markdown_worker ok 0 0 0
contract ok 5 0 0
depth ok 5 0 0
limits ok 8 0 0
memory ok 2 0 0
tags ok 2 0 0
calternal_memory ok 2 0 0
calternal_migrate_v0 ok 37 0 0
calternal_notes FAILED 545 2 6
calternal-perf bin calternal-perf ok 7 0 0
calternal-perf bin storage-bench ok 0 0 0
calternal-perf bin tasks-bench ok 0 0 0
calternal-perf bin tasks-create-bench ok 0 0 0
calternal-plugin-hello lib calternal_plugin_hello ok 0 0 0
calternal-prefs lib calternal_prefs ok 27 0 0
calternal-search lib calternal_search ok 16 0 0
calternal-search test note_generation ok 1 0 1
calternal-search test search ok 12 0 1
calternal-server lib calternal_server ok 15 0 0
calternal-server test access ok 1 0 0
calternal-server test live ok 6 0 0
calternal-server test signout ok 1 0 0
calternal-server test web ok 3 0 0
calternal-store lib calternal_store ok 9 0 0
calternal-tasks lib calternal_tasks ok 67 0 0
calternal-testkit lib calternal_testkit ok 0 0 0

First-attempt commands for previously unattempted targets:

cargo test -p calternal-perf -j4 --bin calternal-perf
cargo test -p calternal-perf -j4 --bin storage-bench
cargo test -p calternal-perf -j4 --bin tasks-bench
cargo test -p calternal-perf -j4 --bin tasks-create-bench
cargo test -p calternal-plugin-hello -j4 --lib
cargo test -p calternal-prefs -j4 --lib
cargo test -p calternal-search -j4 --lib
cargo test -p calternal-search -j4 --test note_generation
cargo test -p calternal-search -j4 --test search
cargo test -p calternal-server -j4 --lib
cargo test -p calternal-server -j4 --test access
cargo test -p calternal-server -j4 --test live
cargo test -p calternal-server -j4 --test signout
cargo test -p calternal-server -j4 --test web
cargo test -p calternal-store -j4 --lib
cargo test -p calternal-tasks -j4 --lib
cargo test -p calternal-testkit -j4 --lib
cargo test --workspace --doc -j4

Doc-test command exit: 0.

   Doc-tests calternal_attachments
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
   Doc-tests calternal_auth
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
   Doc-tests calternal_backdrops
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
   Doc-tests calternal_contacts
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
   Doc-tests calternal_contacts_actions
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
   Doc-tests calternal_core
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
   Doc-tests calternal_daily
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
   Doc-tests calternal_engine
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
   Doc-tests calternal_fixtures
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
   Doc-tests calternal_fsio
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
   Doc-tests calternal_imap_uid
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
   Doc-tests calternal_markdown_view
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
   Doc-tests calternal_memory
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
   Doc-tests calternal_migrate_v0
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
   Doc-tests calternal_notes
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
   Doc-tests calternal_plugin_hello
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
   Doc-tests calternal_prefs
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
   Doc-tests calternal_search
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
   Doc-tests calternal_server
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
   Doc-tests calternal_store
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
   Doc-tests calternal_tasks
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
   Doc-tests calternal_testkit
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Final Rust first-attempt target coverage, train `87f05d91a6d0bc1ad573ddec3ca79c211a78fddc`. Original `cargo test --workspace -j4` remains FAIL (exit 101), stopping after 61 executables. The 17 previously unattempted executables received first attempts only. All 78 executable targets covered: 77 targets PASS, 1 target FAIL (2 bridge cases from missing bun dependencies, already reported). No attempted target or failing train case was retried. Both failing cases passed their one prepared-origin/dev comparison; see [comment 75906](#issuecomment-75906). All commands CI=1, Nix, ~/bin/slot, -j4, disk-backed `TMPDIR=$HOME/bm11-tmp`. Both formerly ENOSPC quota/sign-in cases passed the original first attempt. | Executable target | Result | Passed | Failed | Ignored | |---|---|---:|---:|---:| | `calternal` | ok | 35 | 0 | 1 | | `attachments_crash` | ok | 2 | 0 | 0 | | `contacts_live` | ok | 2 | 0 | 0 | | `fix_tz_live` | ok | 2 | 0 | 0 | | `notes_crash` | ok | 3 | 0 | 0 | | `notes_crash_typing` | ok | 1 | 0 | 0 | | `notes_live` | ok | 3 | 0 | 0 | | `prefs_live` | ok | 1 | 0 | 0 | | `search_live` | ok | 2 | 0 | 1 | | `startup` | ok | 5 | 0 | 1 | | `storage_startup` | ok | 10 | 0 | 1 | | `calternal_attachments` | ok | 22 | 0 | 0 | | `calternal_auth` | ok | 53 | 0 | 0 | | `abuse` | ok | 12 | 0 | 0 | | `app_passwords` | ok | 29 | 0 | 0 | | `create` | ok | 6 | 0 | 0 | | `groups` | ok | 1 | 0 | 0 | | `host_cookies` | ok | 3 | 0 | 0 | | `invites` | ok | 8 | 0 | 0 | | `isolation` | ok | 3 | 0 | 0 | | `login` | ok | 11 | 0 | 0 | | `migration` | ok | 1 | 0 | 0 | | `passkeys` | ok | 10 | 0 | 0 | | `people` | ok | 4 | 0 | 0 | | `quota_counter` | ok | 2 | 0 | 1 | | `reliability_review` | ok | 19 | 0 | 3 | | `reliability_round3` | ok | 10 | 0 | 2 | | `security_regressions` | ok | 14 | 0 | 1 | | `setup` | ok | 8 | 0 | 0 | | `calternal_backdrops` | ok | 24 | 0 | 1 | | `calternal_contacts` | ok | 1 | 0 | 0 | | `apple` | ok | 4 | 0 | 0 | | `break_codec` | ok | 11 | 0 | 0 | | `break_generated` | ok | 9 | 0 | 0 | | `break_inventory` | ok | 1 | 0 | 0 | | `break_labels` | ok | 2 | 0 | 0 | | `break_layout` | ok | 27 | 0 | 0 | | `break_links` | ok | 4 | 0 | 0 | | `break_merge` | ok | 16 | 0 | 0 | | `format3` | ok | 21 | 0 | 0 | | `hostile` | ok | 10 | 0 | 0 | | `layout` | ok | 13 | 0 | 0 | | `roundtrip` | ok | 10 | 0 | 0 | | `calternal_contacts_actions` | ok | 131 | 0 | 0 | | `calternal_core` | ok | 16 | 0 | 0 | | `calternal_daily` | ok | 23 | 0 | 0 | | `calternal_engine` | ok | 20 | 0 | 1 | | `calternal_fixtures` | ok | 5 | 0 | 0 | | `calternal_fixtures` | ok | 0 | 0 | 0 | | `calternal_fsio` | ok | 52 | 0 | 0 | | `calternal_imap_uid` | ok | 13 | 0 | 0 | | `calternal_markdown_view` | ok | 3 | 0 | 1 | | `markdown_worker` | ok | 0 | 0 | 0 | | `contract` | ok | 5 | 0 | 0 | | `depth` | ok | 5 | 0 | 0 | | `limits` | ok | 8 | 0 | 0 | | `memory` | ok | 2 | 0 | 0 | | `tags` | ok | 2 | 0 | 0 | | `calternal_memory` | ok | 2 | 0 | 0 | | `calternal_migrate_v0` | ok | 37 | 0 | 0 | | `calternal_notes` | FAILED | 545 | 2 | 6 | | `calternal-perf bin calternal-perf` | ok | 7 | 0 | 0 | | `calternal-perf bin storage-bench` | ok | 0 | 0 | 0 | | `calternal-perf bin tasks-bench` | ok | 0 | 0 | 0 | | `calternal-perf bin tasks-create-bench` | ok | 0 | 0 | 0 | | `calternal-plugin-hello lib calternal_plugin_hello` | ok | 0 | 0 | 0 | | `calternal-prefs lib calternal_prefs` | ok | 27 | 0 | 0 | | `calternal-search lib calternal_search` | ok | 16 | 0 | 0 | | `calternal-search test note_generation` | ok | 1 | 0 | 1 | | `calternal-search test search` | ok | 12 | 0 | 1 | | `calternal-server lib calternal_server` | ok | 15 | 0 | 0 | | `calternal-server test access` | ok | 1 | 0 | 0 | | `calternal-server test live` | ok | 6 | 0 | 0 | | `calternal-server test signout` | ok | 1 | 0 | 0 | | `calternal-server test web` | ok | 3 | 0 | 0 | | `calternal-store lib calternal_store` | ok | 9 | 0 | 0 | | `calternal-tasks lib calternal_tasks` | ok | 67 | 0 | 0 | | `calternal-testkit lib calternal_testkit` | ok | 0 | 0 | 0 | First-attempt commands for previously unattempted targets: ```sh cargo test -p calternal-perf -j4 --bin calternal-perf cargo test -p calternal-perf -j4 --bin storage-bench cargo test -p calternal-perf -j4 --bin tasks-bench cargo test -p calternal-perf -j4 --bin tasks-create-bench cargo test -p calternal-plugin-hello -j4 --lib cargo test -p calternal-prefs -j4 --lib cargo test -p calternal-search -j4 --lib cargo test -p calternal-search -j4 --test note_generation cargo test -p calternal-search -j4 --test search cargo test -p calternal-server -j4 --lib cargo test -p calternal-server -j4 --test access cargo test -p calternal-server -j4 --test live cargo test -p calternal-server -j4 --test signout cargo test -p calternal-server -j4 --test web cargo test -p calternal-store -j4 --lib cargo test -p calternal-tasks -j4 --lib cargo test -p calternal-testkit -j4 --lib cargo test --workspace --doc -j4 ``` Doc-test command exit: `0`. ```text Doc-tests calternal_attachments test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_auth test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_backdrops test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_contacts test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_contacts_actions test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_core test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_daily test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_engine test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_fixtures test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_fsio test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_imap_uid test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_markdown_view test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_memory test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_migrate_v0 test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_notes test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_plugin_hello test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_prefs test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_search test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_server test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_store test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_tasks test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_testkit test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s ```
Author
Owner

First browser errors and one origin/dev comparison per failing case so far. Train 87f05d91a6d0bc1ad573ddec3ca79c211a78fddc; baseline product/dist 55f35fcde3bc91ca3781055577b93e93819f6cd4. Train test definitions retained; only Nix tooling overlaid on the baseline. CI=1, ~/bin/slot, TMPDIR=$HOME/bm11-tmp, workers=1, retries=0. No case retry.

Project Case Baseline once Attribution
chromium-1440 sidebar-edge.spec.ts:8 FAIL, same contain-paint array assertion at line 21 pre-existing, reproduced
chromium-1440 vim.spec.ts:380 PASS known historical pre-existing flake from brief; not reproduced this comparison
webkit-1440 editor.spec.ts:173 PASS new/unresolved convergence timeout at line 184

chromium-1440 e2e/sidebar-edge.spec.ts:8 hovering the backdrop tiles never changes the sidebar edge

Train first error:

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

    - Expected  - 4
    + Received  + 0

    @@ -13,10 +13,6 @@
        true,
        true,
        true,
        true,
        true,
    -   true,
    -   true,
    -   true,
    -   true,
      ]

      19 |   // Each tile repaints on its own: what a hover draws is cut off at the tile (`contain: paint`),
      20 |   // so it cannot invalidate the sidebar's live blur beside the card.
    > 21 |   expect(await tiles.evaluateAll((els) => els.map((e) => getComputedStyle(e).contain.includes('paint')))).toEqual(Array(await tiles.count()).fill(true))
         |                                                                                                           ^
      22 |   await page.mouse.move(2, 2)
      23 |   await still(page)
      24 |   const nav = (await page.locator('nav.nav').boundingBox())!
        at /home/claude/Developer/Worktrees/bm11/apps/web/e2e/sidebar-edge.spec.ts:21:107

Exact baseline command (CALTERNAL_BIN and E2E_DIST point at bm11-base):

bunx playwright test e2e/sidebar-edge.spec.ts:8 --config=playwright.bm11-baseline.config.ts --project=chromium-1440 '--grep=hovering\ the\ backdrop\ tiles\ never\ changes\ the\ sidebar\ edge' --workers=1 --retries=0 --reporter=line,json --output=/home/claude/bm11-baseline/browser-cases/1481a646eff3-results

Baseline first error:

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

- Expected  - 4
+ Received  + 0

@@ -12,10 +12,6 @@
    true,
    true,
    true,
    true,
    true,
-   true,
-   true,
-   true,
-   true,
  ]

  19 |   // Each tile repaints on its own: what a hover draws is cut off at the tile (`contain: paint`),
  20 |   // so it cannot invalidate the sidebar's live blur beside the card.
> 21 |   expect(await tiles.evaluateAll((els) => els.map((e) => getComputedStyle(e).contain.includes('paint')))).toEqual(Array(await tiles.count()).fill(true))
     |                                                                                                           ^
  22 |   await page.mouse.move(2, 2)
  23 |   await still(page)
  24 |   const nav = (await page.locator('nav.nav').boundingBox())!
    at /home/claude/Developer/Worktrees/bm11/apps/web/e2e/sidebar-edge.spec.ts:21:107

chromium-1440 e2e/vim.spec.ts:380 Vim mode › : commands in the bar: :n, :s, :%s, :w, :q

Train first error:

Error: expect(locator).toBeVisible() failed

    Locator: locator('.bar-wrap').getByText('Saved').first()
    Expected: visible
    Timeout: 5000ms
    Error: element(s) not found

    Call log:
      - Expect "toBeVisible" locator('.bar-wrap').getByText('Saved').first() with timeout 5000ms
      - waiting for locator('.bar-wrap').getByText('Saved').first()


      403 |     // :w says it's saved.
      404 |     await keys(page, ':', 'w', 'Enter')
    > 405 |     await expect(bar(page).getByText('Saved').first()).toBeVisible()
          |                                                        ^
      406 |     // An unknown command says so, and nothing changes.
      407 |     const text = await editorText(page)
      408 |     await keys(page, ':')
        at /home/claude/Developer/Worktrees/bm11/apps/web/e2e/vim.spec.ts:405:56

Exact baseline command (CALTERNAL_BIN and E2E_DIST point at bm11-base):

bunx playwright test e2e/vim.spec.ts:380 --config=playwright.bm11-baseline.config.ts --project=chromium-1440 '--grep=:\ commands\ in\ the\ bar:\ :n,\ :s,\ :%s,\ :w,\ :q' --workers=1 --retries=0 --reporter=line,json --output=/home/claude/bm11-baseline/browser-cases/294dbdbc7d0c-results

Baseline: PASS, one test attempted.

webkit-1440 e2e/editor.spec.ts:173 two devices typing at once converge without duplicates

Train first error:

Error: Timeout 5000ms exceeded while waiting on the predicate

      182 |     const [ta, tb, ts] = await Promise.all([editorText(pa), editorText(pb), serverText(id)])
      183 |     return ta === tb && tb === ts
    > 184 |   }).toBe(true)
          |      ^
      185 |   const text = await serverText(id)
      186 |   for (const w of ['start', 'alpha', 'bravo', 'three', 'six']) expect(text.split(w).length - 1).toBe(1)
      187 |   expect(await inSync(pa)).toBe(true)
        at /home/cua/Developer/Worktrees/bm11/apps/web/e2e/editor.spec.ts:184:6

Exact baseline command (CALTERNAL_BIN and E2E_DIST point at bm11-base):

bunx playwright test e2e/editor.spec.ts:173 --config=playwright.bm11-baseline.config.ts --project=webkit-1440 '--grep=two\ devices\ typing\ at\ once\ converge\ without\ duplicates' --workers=1 --retries=0 --reporter=line,json --output=/home/cua/bm11-baseline/browser-cases/d473b4196458-results

Baseline: PASS, one test attempted.

First browser errors and one origin/dev comparison per failing case so far. Train `87f05d91a6d0bc1ad573ddec3ca79c211a78fddc`; baseline product/dist `55f35fcde3bc91ca3781055577b93e93819f6cd4`. Train test definitions retained; only Nix tooling overlaid on the baseline. CI=1, ~/bin/slot, TMPDIR=$HOME/bm11-tmp, workers=1, retries=0. No case retry. | Project | Case | Baseline once | Attribution | |---|---|---|---| | chromium-1440 | sidebar-edge.spec.ts:8 | FAIL, same contain-paint array assertion at line 21 | pre-existing, reproduced | | chromium-1440 | vim.spec.ts:380 | PASS | known historical pre-existing flake from brief; not reproduced this comparison | | webkit-1440 | editor.spec.ts:173 | PASS | new/unresolved convergence timeout at line 184 | chromium-1440 `e2e/sidebar-edge.spec.ts:8` hovering the backdrop tiles never changes the sidebar edge Train first error: ```text Error: expect(received).toEqual(expected) // deep equality - Expected - 4 + Received + 0 @@ -13,10 +13,6 @@ true, true, true, true, true, - true, - true, - true, - true, ] 19 | // Each tile repaints on its own: what a hover draws is cut off at the tile (`contain: paint`), 20 | // so it cannot invalidate the sidebar's live blur beside the card. > 21 | expect(await tiles.evaluateAll((els) => els.map((e) => getComputedStyle(e).contain.includes('paint')))).toEqual(Array(await tiles.count()).fill(true)) | ^ 22 | await page.mouse.move(2, 2) 23 | await still(page) 24 | const nav = (await page.locator('nav.nav').boundingBox())! at /home/claude/Developer/Worktrees/bm11/apps/web/e2e/sidebar-edge.spec.ts:21:107 ``` Exact baseline command (CALTERNAL_BIN and E2E_DIST point at bm11-base): ```sh bunx playwright test e2e/sidebar-edge.spec.ts:8 --config=playwright.bm11-baseline.config.ts --project=chromium-1440 '--grep=hovering\ the\ backdrop\ tiles\ never\ changes\ the\ sidebar\ edge' --workers=1 --retries=0 --reporter=line,json --output=/home/claude/bm11-baseline/browser-cases/1481a646eff3-results ``` Baseline first error: ```text Error: expect(received).toEqual(expected) // deep equality - Expected - 4 + Received + 0 @@ -12,10 +12,6 @@ true, true, true, true, true, - true, - true, - true, - true, ] 19 | // Each tile repaints on its own: what a hover draws is cut off at the tile (`contain: paint`), 20 | // so it cannot invalidate the sidebar's live blur beside the card. > 21 | expect(await tiles.evaluateAll((els) => els.map((e) => getComputedStyle(e).contain.includes('paint')))).toEqual(Array(await tiles.count()).fill(true)) | ^ 22 | await page.mouse.move(2, 2) 23 | await still(page) 24 | const nav = (await page.locator('nav.nav').boundingBox())! at /home/claude/Developer/Worktrees/bm11/apps/web/e2e/sidebar-edge.spec.ts:21:107 ``` chromium-1440 `e2e/vim.spec.ts:380` Vim mode › : commands in the bar: :n, :s, :%s, :w, :q Train first error: ```text Error: expect(locator).toBeVisible() failed Locator: locator('.bar-wrap').getByText('Saved').first() Expected: visible Timeout: 5000ms Error: element(s) not found Call log: - Expect "toBeVisible" locator('.bar-wrap').getByText('Saved').first() with timeout 5000ms - waiting for locator('.bar-wrap').getByText('Saved').first() 403 | // :w says it's saved. 404 | await keys(page, ':', 'w', 'Enter') > 405 | await expect(bar(page).getByText('Saved').first()).toBeVisible() | ^ 406 | // An unknown command says so, and nothing changes. 407 | const text = await editorText(page) 408 | await keys(page, ':') at /home/claude/Developer/Worktrees/bm11/apps/web/e2e/vim.spec.ts:405:56 ``` Exact baseline command (CALTERNAL_BIN and E2E_DIST point at bm11-base): ```sh bunx playwright test e2e/vim.spec.ts:380 --config=playwright.bm11-baseline.config.ts --project=chromium-1440 '--grep=:\ commands\ in\ the\ bar:\ :n,\ :s,\ :%s,\ :w,\ :q' --workers=1 --retries=0 --reporter=line,json --output=/home/claude/bm11-baseline/browser-cases/294dbdbc7d0c-results ``` Baseline: PASS, one test attempted. webkit-1440 `e2e/editor.spec.ts:173` two devices typing at once converge without duplicates Train first error: ```text Error: Timeout 5000ms exceeded while waiting on the predicate 182 | const [ta, tb, ts] = await Promise.all([editorText(pa), editorText(pb), serverText(id)]) 183 | return ta === tb && tb === ts > 184 | }).toBe(true) | ^ 185 | const text = await serverText(id) 186 | for (const w of ['start', 'alpha', 'bravo', 'three', 'six']) expect(text.split(w).length - 1).toBe(1) 187 | expect(await inSync(pa)).toBe(true) at /home/cua/Developer/Worktrees/bm11/apps/web/e2e/editor.spec.ts:184:6 ``` Exact baseline command (CALTERNAL_BIN and E2E_DIST point at bm11-base): ```sh bunx playwright test e2e/editor.spec.ts:173 --config=playwright.bm11-baseline.config.ts --project=webkit-1440 '--grep=two\ devices\ typing\ at\ once\ converge\ without\ duplicates' --workers=1 --retries=0 --reporter=line,json --output=/home/cua/bm11-baseline/browser-cases/d473b4196458-results ``` Baseline: PASS, one test attempted.
Author
Owner

Final webkit browser matrix and baseline attribution. Tested head 87f05d91a6d0bc1ad573ddec3ca79c211a78fddc. Full native project definitions retained; cross-half scheduling dependencies removed. CI=1, Nix, ~/bin/slot, TMPDIR=$HOME/bm11-tmp (root disk), workers=1, retries=0.

Original full-half command from apps/web:

CALTERNAL_BIN="$PWD/../../target/debug/calternal" E2E_DIST="$PWD/dist" bunx playwright test --config=playwright.bm11.config.ts --output="$HOME/bm11-train/test-results" --workers=1 --retries=0 --reporter=line,json

Original command exit 1 remains unchanged. Admin-setup ran with its dependents. 0 cases blocked before their first attempts were selected explicitly with --test-list and --no-deps; no previously attempted case was rerun. Explicit skip/fixme cases were retained. Each actual case has retry=0.

VM Project Passed Failed Skipped Unattempted
dev-02 admin-setup 1 0 0 0
dev-02 admin-webkit-1440 9 0 9 0
dev-02 admin-webkit-390 9 0 9 0
dev-02 look-webkit-1440 4 0 1 0
dev-02 look-webkit-390 4 0 1 0
dev-02 prefs-webkit 3 0 4 0
dev-02 sidebar-band-webkit 3 0 0 0
dev-02 webkit-1440 422 1 605 0
dev-02 webkit-390 863 2 163 0

Totals: {"failed": 3, "passed": 1318, "skipped": 792}.

Each failed case below received exactly one actual origin/dev product comparison at 55f35fcde3bc91ca3781055577b93e93819f6cd4, with baseline CALTERNAL_BIN and E2E_DIST; train test definitions were retained and only Nix tooling overlaid on the baseline. Selection preflights did not execute tests.

Project Case Origin/dev once Attribution
webkit-1440 editor.spec.ts:173 two devices typing at once converge without duplicates PASSED new/unresolved; baseline passes
webkit-390 review4-signout.spec.ts:120 typing during logout is refused (stuck uplink=false, BroadcastChannel=true) PASSED new/unresolved; baseline passes
webkit-390 review4-signout.spec.ts:427 cancelling the warning restores sibling editing PASSED new/unresolved; baseline passes

webkit-1440 editor.spec.ts:173

Train first error:

Error: Timeout 5000ms exceeded while waiting on the predicate

  182 |     const [ta, tb, ts] = await Promise.all([editorText(pa), editorText(pb), serverText(id)])
  183 |     return ta === tb && tb === ts
> 184 |   }).toBe(true)
      |      ^
  185 |   const text = await serverText(id)
  186 |   for (const w of ['start', 'alpha', 'bravo', 'three', 'six']) expect(text.split(w).length - 1).toBe(1)
  187 |   expect(await inSync(pa)).toBe(true)
    at /home/cua/Developer/Worktrees/bm11/apps/web/e2e/editor.spec.ts:184:6

Exact baseline command:

bunx playwright test e2e/editor.spec.ts:173 --config=playwright.bm11-baseline.config.ts --project=webkit-1440 '--grep=two\ devices\ typing\ at\ once\ converge\ without\ duplicates' --workers=1 --retries=0 --reporter=line,json --output=/home/cua/bm11-baseline/browser-cases/d473b4196458-results

Baseline PASS, one case attempted.

webkit-390 review4-signout.spec.ts:120

Train first error:

Test timeout of 180000ms exceeded.

Exact baseline command:

bunx playwright test e2e/review4-signout.spec.ts:120 --config=playwright.bm11-baseline.config.ts --project=webkit-390 '--grep=typing\ during\ logout\ is\ refused\ \(stuck\ uplink=false,\ BroadcastChannel=true\)' --workers=1 --retries=0 --reporter=line,json --output=/home/cua/bm11-baseline/browser-cases/fb8a1c396c17-results

Baseline PASS, one case attempted.

webkit-390 review4-signout.spec.ts:427

Train first error:

Error: expect(locator).toBeVisible() failed

Locator: getByRole('dialog', { name: 'Sign out?' })
Expected: visible
Timeout: 10000ms
Error: element(s) not found

Call log:
  - Expect "toBeVisible" getByRole('dialog', { name: 'Sign out?' }) with timeout 10000ms
  - waiting for getByRole('dialog', { name: 'Sign out?' })


  439 |     await page.getByRole('button', { name: 'Sign out', exact: true }).click()
  440 |     const dialog = page.getByRole('dialog', { name: 'Sign out?' })
> 441 |     await expect(dialog).toBeVisible({ timeout: 10_000 })
      |                          ^
  442 |     await expect(text).toHaveAttribute('contenteditable', 'false')
  443 |     await dialog.getByRole('button', { name: 'Cancel' }).click()
  444 |     await expect(text).toHaveAttribute('contenteditable', 'true')
    at /home/cua/Developer/Worktrees/bm11/apps/web/e2e/review4-signout.spec.ts:441:26

Exact baseline command:

bunx playwright test e2e/review4-signout.spec.ts:427 --config=playwright.bm11-baseline.config.ts --project=webkit-390 '--grep=cancelling\ the\ warning\ restores\ sibling\ editing' --workers=1 --retries=0 --reporter=line,json --output=/home/cua/bm11-baseline/browser-cases/2256ea35d6a8-results

Baseline PASS, one case attempted.

Linux motion/frame assertions are suite diagnostics only; no GPU performance qualification is claimed. No budget or assertion was changed.

Final webkit browser matrix and baseline attribution. Tested head `87f05d91a6d0bc1ad573ddec3ca79c211a78fddc`. Full native project definitions retained; cross-half scheduling dependencies removed. CI=1, Nix, ~/bin/slot, TMPDIR=$HOME/bm11-tmp (root disk), workers=1, retries=0. Original full-half command from apps/web: ```sh CALTERNAL_BIN="$PWD/../../target/debug/calternal" E2E_DIST="$PWD/dist" bunx playwright test --config=playwright.bm11.config.ts --output="$HOME/bm11-train/test-results" --workers=1 --retries=0 --reporter=line,json ``` Original command exit `1` remains unchanged. Admin-setup ran with its dependents. 0 cases blocked before their first attempts were selected explicitly with --test-list and --no-deps; no previously attempted case was rerun. Explicit skip/fixme cases were retained. Each actual case has retry=0. | VM | Project | Passed | Failed | Skipped | Unattempted | |---|---|---:|---:|---:|---:| | dev-02 | admin-setup | 1 | 0 | 0 | 0 | | dev-02 | admin-webkit-1440 | 9 | 0 | 9 | 0 | | dev-02 | admin-webkit-390 | 9 | 0 | 9 | 0 | | dev-02 | look-webkit-1440 | 4 | 0 | 1 | 0 | | dev-02 | look-webkit-390 | 4 | 0 | 1 | 0 | | dev-02 | prefs-webkit | 3 | 0 | 4 | 0 | | dev-02 | sidebar-band-webkit | 3 | 0 | 0 | 0 | | dev-02 | webkit-1440 | 422 | 1 | 605 | 0 | | dev-02 | webkit-390 | 863 | 2 | 163 | 0 | Totals: `{"failed": 3, "passed": 1318, "skipped": 792}`. Each failed case below received exactly one actual origin/dev product comparison at `55f35fcde3bc91ca3781055577b93e93819f6cd4`, with baseline CALTERNAL_BIN and E2E_DIST; train test definitions were retained and only Nix tooling overlaid on the baseline. Selection preflights did not execute tests. | Project | Case | Origin/dev once | Attribution | |---|---|---|---| | webkit-1440 | `editor.spec.ts:173` two devices typing at once converge without duplicates | PASSED | new/unresolved; baseline passes | | webkit-390 | `review4-signout.spec.ts:120` typing during logout is refused (stuck uplink=false, BroadcastChannel=true) | PASSED | new/unresolved; baseline passes | | webkit-390 | `review4-signout.spec.ts:427` cancelling the warning restores sibling editing | PASSED | new/unresolved; baseline passes | webkit-1440 `editor.spec.ts:173` Train first error: ```text Error: Timeout 5000ms exceeded while waiting on the predicate 182 | const [ta, tb, ts] = await Promise.all([editorText(pa), editorText(pb), serverText(id)]) 183 | return ta === tb && tb === ts > 184 | }).toBe(true) | ^ 185 | const text = await serverText(id) 186 | for (const w of ['start', 'alpha', 'bravo', 'three', 'six']) expect(text.split(w).length - 1).toBe(1) 187 | expect(await inSync(pa)).toBe(true) at /home/cua/Developer/Worktrees/bm11/apps/web/e2e/editor.spec.ts:184:6 ``` Exact baseline command: ```sh bunx playwright test e2e/editor.spec.ts:173 --config=playwright.bm11-baseline.config.ts --project=webkit-1440 '--grep=two\ devices\ typing\ at\ once\ converge\ without\ duplicates' --workers=1 --retries=0 --reporter=line,json --output=/home/cua/bm11-baseline/browser-cases/d473b4196458-results ``` Baseline PASS, one case attempted. webkit-390 `review4-signout.spec.ts:120` Train first error: ```text Test timeout of 180000ms exceeded. ``` Exact baseline command: ```sh bunx playwright test e2e/review4-signout.spec.ts:120 --config=playwright.bm11-baseline.config.ts --project=webkit-390 '--grep=typing\ during\ logout\ is\ refused\ \(stuck\ uplink=false,\ BroadcastChannel=true\)' --workers=1 --retries=0 --reporter=line,json --output=/home/cua/bm11-baseline/browser-cases/fb8a1c396c17-results ``` Baseline PASS, one case attempted. webkit-390 `review4-signout.spec.ts:427` Train first error: ```text Error: expect(locator).toBeVisible() failed Locator: getByRole('dialog', { name: 'Sign out?' }) Expected: visible Timeout: 10000ms Error: element(s) not found Call log: - Expect "toBeVisible" getByRole('dialog', { name: 'Sign out?' }) with timeout 10000ms - waiting for getByRole('dialog', { name: 'Sign out?' }) 439 | await page.getByRole('button', { name: 'Sign out', exact: true }).click() 440 | const dialog = page.getByRole('dialog', { name: 'Sign out?' }) > 441 | await expect(dialog).toBeVisible({ timeout: 10_000 }) | ^ 442 | await expect(text).toHaveAttribute('contenteditable', 'false') 443 | await dialog.getByRole('button', { name: 'Cancel' }).click() 444 | await expect(text).toHaveAttribute('contenteditable', 'true') at /home/cua/Developer/Worktrees/bm11/apps/web/e2e/review4-signout.spec.ts:441:26 ``` Exact baseline command: ```sh bunx playwright test e2e/review4-signout.spec.ts:427 --config=playwright.bm11-baseline.config.ts --project=webkit-390 '--grep=cancelling\ the\ warning\ restores\ sibling\ editing' --workers=1 --retries=0 --reporter=line,json --output=/home/cua/bm11-baseline/browser-cases/2256ea35d6a8-results ``` Baseline PASS, one case attempted. Linux motion/frame assertions are suite diagnostics only; no GPU performance qualification is claimed. No budget or assertion was changed.
Author
Owner

Final chromium browser matrix and baseline attribution. Tested head 87f05d91a6d0bc1ad573ddec3ca79c211a78fddc. Full native project definitions retained; cross-half scheduling dependencies removed. CI=1, Nix, ~/bin/slot, TMPDIR=$HOME/bm11-tmp (root disk), workers=1, retries=0.

Original full-half command from apps/web:

CALTERNAL_BIN="$PWD/../../target/debug/calternal" E2E_DIST="$PWD/dist" bunx playwright test --config=playwright.bm11.config.ts --output="$HOME/bm11-train/test-results" --workers=1 --retries=0 --reporter=line,json

Original command exit 1 remains unchanged. Admin-setup ran with its dependents. 4 cases blocked before their first attempts were selected explicitly with --test-list and --no-deps; no previously attempted case was rerun. Explicit skip/fixme cases were retained. Each actual case has retry=0.

VM Project Passed Failed Skipped Unattempted
dev-01 admin-chromium-1440 12 0 9 0
dev-01 admin-chromium-390 12 0 9 0
dev-01 admin-setup 1 0 0 0
dev-01 chromium-1440 424 2 602 0
dev-01 chromium-390 867 0 161 0
dev-01 contrast 9 0 0 0
dev-01 flow 1 0 0 0
dev-01 look-chromium-1440 5 0 0 0
dev-01 look-chromium-390 5 0 0 0
dev-01 passkeys 1 0 0 0
dev-01 prefs-chromium 7 0 0 0
dev-01 sidebar-band-chromium 3 0 0 0
dev-01 throttled-1440 2 0 0 0
dev-01 throttled-390 2 0 0 0

Totals: {"failed": 2, "passed": 1351, "skipped": 781}.

Each failed case below received exactly one actual origin/dev product comparison at 55f35fcde3bc91ca3781055577b93e93819f6cd4, with baseline CALTERNAL_BIN and E2E_DIST; train test definitions were retained and only Nix tooling overlaid on the baseline. Selection preflights did not execute tests.

Project Case Origin/dev once Attribution
chromium-1440 sidebar-edge.spec.ts:8 hovering the backdrop tiles never changes the sidebar edge FAILED known pre-existing; same contain-paint array assertion line 21 reproduced
chromium-1440 vim.spec.ts:380 : commands in the bar: :n, :s, :%s, :w, :q PASSED known historical pre-existing from brief; comparison passed, not reproduced here

chromium-1440 sidebar-edge.spec.ts:8

Train first error:

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

- Expected  - 4
+ Received  + 0

@@ -13,10 +13,6 @@
    true,
    true,
    true,
    true,
    true,
-   true,
-   true,
-   true,
-   true,
  ]

  19 |   // Each tile repaints on its own: what a hover draws is cut off at the tile (`contain: paint`),
  20 |   // so it cannot invalidate the sidebar's live blur beside the card.
> 21 |   expect(await tiles.evaluateAll((els) => els.map((e) => getComputedStyle(e).contain.includes('paint')))).toEqual(Array(await tiles.count()).fill(true))
     |                                                                                                           ^
  22 |   await page.mouse.move(2, 2)
  23 |   await still(page)
  24 |   const nav = (await page.locator('nav.nav').boundingBox())!
    at /home/claude/Developer/Worktrees/bm11/apps/web/e2e/sidebar-edge.spec.ts:21:107

Exact baseline command:

bunx playwright test e2e/sidebar-edge.spec.ts:8 --config=playwright.bm11-baseline.config.ts --project=chromium-1440 '--grep=hovering\ the\ backdrop\ tiles\ never\ changes\ the\ sidebar\ edge' --workers=1 --retries=0 --reporter=line,json --output=/home/claude/bm11-baseline/browser-cases/1481a646eff3-results

Baseline first error:

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

- Expected  - 4
+ Received  + 0

@@ -12,10 +12,6 @@
    true,
    true,
    true,
    true,
    true,
-   true,
-   true,
-   true,
-   true,
  ]

  19 |   // Each tile repaints on its own: what a hover draws is cut off at the tile (`contain: paint`),
  20 |   // so it cannot invalidate the sidebar's live blur beside the card.
> 21 |   expect(await tiles.evaluateAll((els) => els.map((e) => getComputedStyle(e).contain.includes('paint')))).toEqual(Array(await tiles.count()).fill(true))
     |                                                                                                           ^
  22 |   await page.mouse.move(2, 2)
  23 |   await still(page)
  24 |   const nav = (await page.locator('nav.nav').boundingBox())!
    at /home/claude/Developer/Worktrees/bm11/apps/web/e2e/sidebar-edge.spec.ts:21:107

chromium-1440 vim.spec.ts:380

Train first error:

Error: expect(locator).toBeVisible() failed

Locator: locator('.bar-wrap').getByText('Saved').first()
Expected: visible
Timeout: 5000ms
Error: element(s) not found

Call log:
  - Expect "toBeVisible" locator('.bar-wrap').getByText('Saved').first() with timeout 5000ms
  - waiting for locator('.bar-wrap').getByText('Saved').first()


  403 |     // :w says it's saved.
  404 |     await keys(page, ':', 'w', 'Enter')
> 405 |     await expect(bar(page).getByText('Saved').first()).toBeVisible()
      |                                                        ^
  406 |     // An unknown command says so, and nothing changes.
  407 |     const text = await editorText(page)
  408 |     await keys(page, ':')
    at /home/claude/Developer/Worktrees/bm11/apps/web/e2e/vim.spec.ts:405:56

Exact baseline command:

bunx playwright test e2e/vim.spec.ts:380 --config=playwright.bm11-baseline.config.ts --project=chromium-1440 '--grep=:\ commands\ in\ the\ bar:\ :n,\ :s,\ :%s,\ :w,\ :q' --workers=1 --retries=0 --reporter=line,json --output=/home/claude/bm11-baseline/browser-cases/294dbdbc7d0c-results

Baseline PASS, one case attempted.

Linux motion/frame assertions are suite diagnostics only; no GPU performance qualification is claimed. No budget or assertion was changed.

Final chromium browser matrix and baseline attribution. Tested head `87f05d91a6d0bc1ad573ddec3ca79c211a78fddc`. Full native project definitions retained; cross-half scheduling dependencies removed. CI=1, Nix, ~/bin/slot, TMPDIR=$HOME/bm11-tmp (root disk), workers=1, retries=0. Original full-half command from apps/web: ```sh CALTERNAL_BIN="$PWD/../../target/debug/calternal" E2E_DIST="$PWD/dist" bunx playwright test --config=playwright.bm11.config.ts --output="$HOME/bm11-train/test-results" --workers=1 --retries=0 --reporter=line,json ``` Original command exit `1` remains unchanged. Admin-setup ran with its dependents. 4 cases blocked before their first attempts were selected explicitly with --test-list and --no-deps; no previously attempted case was rerun. Explicit skip/fixme cases were retained. Each actual case has retry=0. | VM | Project | Passed | Failed | Skipped | Unattempted | |---|---|---:|---:|---:|---:| | dev-01 | admin-chromium-1440 | 12 | 0 | 9 | 0 | | dev-01 | admin-chromium-390 | 12 | 0 | 9 | 0 | | dev-01 | admin-setup | 1 | 0 | 0 | 0 | | dev-01 | chromium-1440 | 424 | 2 | 602 | 0 | | dev-01 | chromium-390 | 867 | 0 | 161 | 0 | | dev-01 | contrast | 9 | 0 | 0 | 0 | | dev-01 | flow | 1 | 0 | 0 | 0 | | dev-01 | look-chromium-1440 | 5 | 0 | 0 | 0 | | dev-01 | look-chromium-390 | 5 | 0 | 0 | 0 | | dev-01 | passkeys | 1 | 0 | 0 | 0 | | dev-01 | prefs-chromium | 7 | 0 | 0 | 0 | | dev-01 | sidebar-band-chromium | 3 | 0 | 0 | 0 | | dev-01 | throttled-1440 | 2 | 0 | 0 | 0 | | dev-01 | throttled-390 | 2 | 0 | 0 | 0 | Totals: `{"failed": 2, "passed": 1351, "skipped": 781}`. Each failed case below received exactly one actual origin/dev product comparison at `55f35fcde3bc91ca3781055577b93e93819f6cd4`, with baseline CALTERNAL_BIN and E2E_DIST; train test definitions were retained and only Nix tooling overlaid on the baseline. Selection preflights did not execute tests. | Project | Case | Origin/dev once | Attribution | |---|---|---|---| | chromium-1440 | `sidebar-edge.spec.ts:8` hovering the backdrop tiles never changes the sidebar edge | FAILED | known pre-existing; same contain-paint array assertion line 21 reproduced | | chromium-1440 | `vim.spec.ts:380` : commands in the bar: :n, :s, :%s, :w, :q | PASSED | known historical pre-existing from brief; comparison passed, not reproduced here | chromium-1440 `sidebar-edge.spec.ts:8` Train first error: ```text Error: expect(received).toEqual(expected) // deep equality - Expected - 4 + Received + 0 @@ -13,10 +13,6 @@ true, true, true, true, true, - true, - true, - true, - true, ] 19 | // Each tile repaints on its own: what a hover draws is cut off at the tile (`contain: paint`), 20 | // so it cannot invalidate the sidebar's live blur beside the card. > 21 | expect(await tiles.evaluateAll((els) => els.map((e) => getComputedStyle(e).contain.includes('paint')))).toEqual(Array(await tiles.count()).fill(true)) | ^ 22 | await page.mouse.move(2, 2) 23 | await still(page) 24 | const nav = (await page.locator('nav.nav').boundingBox())! at /home/claude/Developer/Worktrees/bm11/apps/web/e2e/sidebar-edge.spec.ts:21:107 ``` Exact baseline command: ```sh bunx playwright test e2e/sidebar-edge.spec.ts:8 --config=playwright.bm11-baseline.config.ts --project=chromium-1440 '--grep=hovering\ the\ backdrop\ tiles\ never\ changes\ the\ sidebar\ edge' --workers=1 --retries=0 --reporter=line,json --output=/home/claude/bm11-baseline/browser-cases/1481a646eff3-results ``` Baseline first error: ```text Error: expect(received).toEqual(expected) // deep equality - Expected - 4 + Received + 0 @@ -12,10 +12,6 @@ true, true, true, true, true, - true, - true, - true, - true, ] 19 | // Each tile repaints on its own: what a hover draws is cut off at the tile (`contain: paint`), 20 | // so it cannot invalidate the sidebar's live blur beside the card. > 21 | expect(await tiles.evaluateAll((els) => els.map((e) => getComputedStyle(e).contain.includes('paint')))).toEqual(Array(await tiles.count()).fill(true)) | ^ 22 | await page.mouse.move(2, 2) 23 | await still(page) 24 | const nav = (await page.locator('nav.nav').boundingBox())! at /home/claude/Developer/Worktrees/bm11/apps/web/e2e/sidebar-edge.spec.ts:21:107 ``` chromium-1440 `vim.spec.ts:380` Train first error: ```text Error: expect(locator).toBeVisible() failed Locator: locator('.bar-wrap').getByText('Saved').first() Expected: visible Timeout: 5000ms Error: element(s) not found Call log: - Expect "toBeVisible" locator('.bar-wrap').getByText('Saved').first() with timeout 5000ms - waiting for locator('.bar-wrap').getByText('Saved').first() 403 | // :w says it's saved. 404 | await keys(page, ':', 'w', 'Enter') > 405 | await expect(bar(page).getByText('Saved').first()).toBeVisible() | ^ 406 | // An unknown command says so, and nothing changes. 407 | const text = await editorText(page) 408 | await keys(page, ':') at /home/claude/Developer/Worktrees/bm11/apps/web/e2e/vim.spec.ts:405:56 ``` Exact baseline command: ```sh bunx playwright test e2e/vim.spec.ts:380 --config=playwright.bm11-baseline.config.ts --project=chromium-1440 '--grep=:\ commands\ in\ the\ bar:\ :n,\ :s,\ :%s,\ :w,\ :q' --workers=1 --retries=0 --reporter=line,json --output=/home/claude/bm11-baseline/browser-cases/294dbdbc7d0c-results ``` Baseline PASS, one case attempted. Linux motion/frame assertions are suite diagnostics only; no GPU performance qualification is claimed. No budget or assertion was changed.
Author
Owner

Final BM11 test report: RED. Never merge as part of this task.

PR #883, branch train/2026-11-03-bm11, tested and current head 87f05d91a6d0bc1ad573ddec3ca79c211a78fddc. Assembly base and origin/dev comparison product 55f35fcde3bc91ca3781055577b93e93819f6cd4. BM10 #880 is closed with the replacement link. BM11 remains open and unmerged.

Included source heads, captured from current PR heads at assembly time and merged in this order with --no-ff:

PR Recorded source head
#779 7b97e4d14231be07f6a80cb9ca172d02442c487e
#858 626388da9052eaecb159d735f0cadc5e59e88312
#866 ba1f47dc94797d4a8a937298464b5e4828e301c2
#824 f1c1aa961e169ef99e132063a97ccbd9a89a5def
#827 76f11dc4ba06468a2a0ed4d4592cea6038206696
#828 5d7b9b36cd008de78851809724c90a85d92b40a7
#833 ccaece3dfecbe2048634fc792d7d4a2c6e31f324
#836 5f7d1a59776411e7f3353d0023817b43affae51e
#831 316b43e9578c3e4d2944df8df43caebc611356f7
#844 50cce9dcceb87f23a9f346300b3336e315ff6c0c
#847 40448327a15730271d56226b898e48bcc87b2a4d
#855 c38c3083d51f4adcf5cd76a70f1f6960b427413e
#857 144e717145e35f70356f593b7c04a527e00f7b17
#856 b89e39bb313bb06b92da274124c6bbde30e2250a
#840 9dd572249bd3edbcf8e1475a940070c4d03f1fc7

As requested, excluded Style #850/#851/#852 and #863; other ports and sharing #829/#835 remained omitted. Identical BM10 mechanical resolutions reused: #824 Cargo.lock union, #828 credential check then runtime timer, #840 preserves #856 desktop corpus project guards. The pre-Style tree matched BM10's 8e96c283; inherited #831 measurement files were removed and linked to their existing PR-only artifact comment. No source edits after the fixed head.

First-run gate Result
cargo fmt --all --check PASS
cargo clippy --workspace --all-targets --locked -j4 -- -D warnings PASS
cargo test --workspace -j4 FAIL, exit 101, original result preserved
cargo build -j4 PASS on both VMs
bun install --frozen-lockfile PASS on both VMs
(cd apps/web && bun run build) PASS on both VMs
PERF_DIST="$PWD/apps/web/dist" PERF_OUT="$HOME/bm11-train/bundle" PERF_WORK="$HOME/bm11-train/bundle-work" bash perf/web.sh --bundle-only --gate PASS, unchanged per-app budgets
node ci/check-case-paths.mjs PASS
node ci/check-no-evidence.mjs PASS
Full Playwright Chromium half, dev-01 1351 pass, 2 fail, 781 explicit skips, 0 unattempted
Full Playwright WebKit half, dev-02 1318 pass, 3 fail, 792 explicit skips, 0 unattempted

All commands CI=1 under Nix, heavy commands through ~/bin/slot, cargo -j4 and Playwright --workers=1 --retries=0. Consistent CARGO_PROFILE_DEV_DEBUG=0 CARGO_PROFILE_TEST_DEBUG=0 CARGO_INCREMENTAL=0. df -h checks preceded the train and browser launches; both root disks exceeded 50 GiB free. Browser halves launched together, with native projects and admin-setup retained with dependents; only cross-half scheduling dependencies were removed. Native command from apps/web:

CALTERNAL_BIN="$PWD/../../target/debug/calternal" E2E_DIST="$PWD/dist" bunx playwright test --config=playwright.bm11.config.ts --output="$HOME/bm11-train/test-results" --workers=1 --retries=0 --reporter=line,json

Environment fix applied: TMPDIR=$HOME/bm11-tmp on the root disk for Rust fixtures, Playwright temp Homes and comparisons. Both BM10 inode-exhaustion cases passed the original BM11 first attempt: quota_counter::signin_finishes_before_a_large_recount and reliability_review::independent_login_completes_before_recount. These were not the Rust failures in BM11.

Rust gate limitation: I ran the first cargo test before bun install. The two independent_652_real_syncclient_* bridge cases failed because Bun could not import y-protocols/sync, followed by Rust reading EOF. This was my preparation error. No train retry hid it. Each case passed its one comparison on prepared origin/dev. No product regression is inferred from those two preparation failures; the first-run gate remains FAIL. Cargo stopped after 61 executables; the 17 unattempted targets then received first attempts only, followed by cargo test --workspace --doc -j4. All 78 executable targets covered: 77 target PASS, 1 target FAIL (the two bridge cases); docs PASS. Rust target table, Rust attribution and exact baseline commands, first errors and gate/budget table.

Browser total: 2669 passed, 5 failed, 1573 explicitly skipped, 0 unattempted. Four throttled Chromium cases initially blocked by the failed main project received their first attempts with an explicit --test-list and --no-deps: all four passed. The original full command exits remain failures. No attempted train case or failed Rust target was rerun. No browser retries, flaky results or runner errors.

Each of the five browser failures received exactly one actual origin/dev comparison:

Project Failed case Origin/dev once Attribution
chromium-1440 sidebar-edge.spec.ts:8 FAIL, same array assertion at line 21 known pre-existing, reproduced
chromium-1440 vim.spec.ts:380 PASS known historical pre-existing flake from brief; not reproduced this comparison
webkit-1440 editor.spec.ts:173 PASS new/unresolved convergence timeout, line 184
webkit-390 review4-signout.spec.ts:120, stuck uplink=false / BroadcastChannel=true PASS new/unresolved, 180s timeout waiting for the Sign out? dialog
webkit-390 review4-signout.spec.ts:427 PASS new/unresolved, Sign out? dialog absent at line 441

The brief's other known vim.spec.ts:341 case did not fail. Three WebKit cases remain unresolved, so the condition for a green verdict is not met. A baseline PASS does not by itself prove a product regression; it leaves the first train failure unresolved.

Per-project matrices, all first errors and exact per-case comparison commands: Chromium, WebKit. All artifacts and evidence are PR comments, with none committed to the repository. Linux motion/frame assertions are suite diagnostics only; no GPU performance qualification is claimed. No budget or assertion was changed.

Cleanup verified on both VMs: no active owned bm11 units; owned bm11/bm11-base worktrees, targets, node_modules, seeded browser Homes, disk-backed TMPDIR, traces/test-results and bundle work removed. Only small logs/JSON remain outside the repository. Root free space after cleanup: dev-01 284 GiB, dev-02 323 GiB. The control worktree is retained, tracked tree clean. No other worktrees or jobs touched.

Final BM11 test report: **RED. Never merge as part of this task.** PR https://git.kayg.org/kayg/calternal/pulls/883, branch `train/2026-11-03-bm11`, tested and current head `87f05d91a6d0bc1ad573ddec3ca79c211a78fddc`. Assembly base and origin/dev comparison product `55f35fcde3bc91ca3781055577b93e93819f6cd4`. BM10 #880 is closed with the replacement link. BM11 remains open and unmerged. Included source heads, captured from current PR heads at assembly time and merged in this order with --no-ff: | PR | Recorded source head | |---|---| | #779 | `7b97e4d14231be07f6a80cb9ca172d02442c487e` | | #858 | `626388da9052eaecb159d735f0cadc5e59e88312` | | #866 | `ba1f47dc94797d4a8a937298464b5e4828e301c2` | | #824 | `f1c1aa961e169ef99e132063a97ccbd9a89a5def` | | #827 | `76f11dc4ba06468a2a0ed4d4592cea6038206696` | | #828 | `5d7b9b36cd008de78851809724c90a85d92b40a7` | | #833 | `ccaece3dfecbe2048634fc792d7d4a2c6e31f324` | | #836 | `5f7d1a59776411e7f3353d0023817b43affae51e` | | #831 | `316b43e9578c3e4d2944df8df43caebc611356f7` | | #844 | `50cce9dcceb87f23a9f346300b3336e315ff6c0c` | | #847 | `40448327a15730271d56226b898e48bcc87b2a4d` | | #855 | `c38c3083d51f4adcf5cd76a70f1f6960b427413e` | | #857 | `144e717145e35f70356f593b7c04a527e00f7b17` | | #856 | `b89e39bb313bb06b92da274124c6bbde30e2250a` | | #840 | `9dd572249bd3edbcf8e1475a940070c4d03f1fc7` | As requested, excluded Style #850/#851/#852 and #863; other ports and sharing #829/#835 remained omitted. Identical BM10 mechanical resolutions reused: #824 Cargo.lock union, #828 credential check then runtime timer, #840 preserves #856 desktop corpus project guards. The pre-Style tree matched BM10's `8e96c283`; inherited #831 measurement files were removed and linked to their existing [PR-only artifact comment](https://git.kayg.org/kayg/calternal/pulls/880#issuecomment-75592). No source edits after the fixed head. | First-run gate | Result | |---|---| | `cargo fmt --all --check` | PASS | | `cargo clippy --workspace --all-targets --locked -j4 -- -D warnings` | PASS | | `cargo test --workspace -j4` | FAIL, exit 101, original result preserved | | `cargo build -j4` | PASS on both VMs | | `bun install --frozen-lockfile` | PASS on both VMs | | `(cd apps/web && bun run build)` | PASS on both VMs | | `PERF_DIST="$PWD/apps/web/dist" PERF_OUT="$HOME/bm11-train/bundle" PERF_WORK="$HOME/bm11-train/bundle-work" bash perf/web.sh --bundle-only --gate` | PASS, unchanged per-app budgets | | `node ci/check-case-paths.mjs` | PASS | | `node ci/check-no-evidence.mjs` | PASS | | Full Playwright Chromium half, dev-01 | 1351 pass, 2 fail, 781 explicit skips, 0 unattempted | | Full Playwright WebKit half, dev-02 | 1318 pass, 3 fail, 792 explicit skips, 0 unattempted | All commands CI=1 under Nix, heavy commands through ~/bin/slot, cargo -j4 and Playwright --workers=1 --retries=0. Consistent CARGO_PROFILE_DEV_DEBUG=0 CARGO_PROFILE_TEST_DEBUG=0 CARGO_INCREMENTAL=0. df -h checks preceded the train and browser launches; both root disks exceeded 50 GiB free. Browser halves launched together, with native projects and admin-setup retained with dependents; only cross-half scheduling dependencies were removed. Native command from apps/web: ```sh CALTERNAL_BIN="$PWD/../../target/debug/calternal" E2E_DIST="$PWD/dist" bunx playwright test --config=playwright.bm11.config.ts --output="$HOME/bm11-train/test-results" --workers=1 --retries=0 --reporter=line,json ``` **Environment fix applied:** `TMPDIR=$HOME/bm11-tmp` on the root disk for Rust fixtures, Playwright temp Homes and comparisons. Both BM10 inode-exhaustion cases passed the original BM11 first attempt: `quota_counter::signin_finishes_before_a_large_recount` and `reliability_review::independent_login_completes_before_recount`. These were not the Rust failures in BM11. **Rust gate limitation:** I ran the first cargo test before bun install. The two `independent_652_real_syncclient_*` bridge cases failed because Bun could not import `y-protocols/sync`, followed by Rust reading EOF. This was my preparation error. No train retry hid it. Each case passed its one comparison on prepared origin/dev. No product regression is inferred from those two preparation failures; the first-run gate remains FAIL. Cargo stopped after 61 executables; the 17 unattempted targets then received first attempts only, followed by `cargo test --workspace --doc -j4`. All 78 executable targets covered: 77 target PASS, 1 target FAIL (the two bridge cases); docs PASS. [Rust target table](#issuecomment-75913), [Rust attribution and exact baseline commands](#issuecomment-75906), [first errors and gate/budget table](#issuecomment-75902). **Browser total: 2669 passed, 5 failed, 1573 explicitly skipped, 0 unattempted.** Four throttled Chromium cases initially blocked by the failed main project received their first attempts with an explicit --test-list and --no-deps: all four passed. The original full command exits remain failures. No attempted train case or failed Rust target was rerun. No browser retries, flaky results or runner errors. Each of the five browser failures received exactly one actual origin/dev comparison: | Project | Failed case | Origin/dev once | Attribution | |---|---|---|---| | chromium-1440 | sidebar-edge.spec.ts:8 | FAIL, same array assertion at line 21 | known pre-existing, reproduced | | chromium-1440 | vim.spec.ts:380 | PASS | known historical pre-existing flake from brief; not reproduced this comparison | | webkit-1440 | editor.spec.ts:173 | PASS | new/unresolved convergence timeout, line 184 | | webkit-390 | review4-signout.spec.ts:120, stuck uplink=false / BroadcastChannel=true | PASS | new/unresolved, 180s timeout waiting for the Sign out? dialog | | webkit-390 | review4-signout.spec.ts:427 | PASS | new/unresolved, Sign out? dialog absent at line 441 | The brief's other known vim.spec.ts:341 case did not fail. Three WebKit cases remain unresolved, so the condition for a green verdict is not met. A baseline PASS does not by itself prove a product regression; it leaves the first train failure unresolved. Per-project matrices, all first errors and exact per-case comparison commands: [Chromium](#issuecomment-75971), [WebKit](#issuecomment-75970). All artifacts and evidence are PR comments, with none committed to the repository. Linux motion/frame assertions are suite diagnostics only; no GPU performance qualification is claimed. No budget or assertion was changed. Cleanup verified on both VMs: no active owned bm11 units; owned bm11/bm11-base worktrees, targets, node_modules, seeded browser Homes, disk-backed TMPDIR, traces/test-results and bundle work removed. Only small logs/JSON remain outside the repository. Root free space after cleanup: dev-01 284 GiB, dev-02 323 GiB. The control worktree is retained, tracked tree clean. No other worktrees or jobs touched.
Author
Owner

BM11 WebKit investigation started, owned worktree bm11-webkit, dev-02 only. Matched product revisions: train 87f05d91a6d0bc1ad573ddec3ca79c211a78fddc and current origin/dev 55f35fcde3bc91ca3781055577b93e93819f6cd4. Rebuilding both with CI=1, CARGO_PROFILE_DEV_DEBUG=0 CARGO_PROFILE_TEST_DEBUG=0 CARGO_INCREMENTAL=0, cargo build --locked -j4, frozen Bun dependencies, production web build, Nix and ~/bin/slot. Train test definitions retained for both revisions, as in the original baseline comparison. Each requested selector will receive 8 clean and 7 ordinary-build-load runs per revision, workers=1, retries=0. Load is one slot job: cargo test --workspace --no-run --locked -j4, never a busy loop. Build-overlap state and original failures retained. Attribution and source changes will follow the measured failures; no timeout increases or weakened assertions.

BM11 WebKit investigation started, owned worktree `bm11-webkit`, dev-02 only. Matched product revisions: train `87f05d91a6d0bc1ad573ddec3ca79c211a78fddc` and current origin/dev `55f35fcde3bc91ca3781055577b93e93819f6cd4`. Rebuilding both with CI=1, CARGO_PROFILE_DEV_DEBUG=0 CARGO_PROFILE_TEST_DEBUG=0 CARGO_INCREMENTAL=0, cargo build --locked -j4, frozen Bun dependencies, production web build, Nix and ~/bin/slot. Train test definitions retained for both revisions, as in the original baseline comparison. Each requested selector will receive 8 clean and 7 ordinary-build-load runs per revision, workers=1, retries=0. Load is one slot job: cargo test --workspace --no-run --locked -j4, never a busy loop. Build-overlap state and original failures retained. Attribution and source changes will follow the measured failures; no timeout increases or weakened assertions.
Author
Owner

WebKit investigation checkpoint. Initial matched runs: all three cases 15/15 on each revision, but the first ordinary no-run build ended before some intended load samples. Those 90 original results are retained. Replacement release-build-load batches reproduced review4-signout.spec.ts:120 twice on train (5 passed / 2 failed), with the original 180s timeout at the dialog waiter; baseline replacement batch passed 7/7. Editor replacement batches passed 7/7 on both. Cancellation passed 7/7 on both, but train cancellation outlasted its build, so its loaded sample is being replaced again. No retries.

Both failed typing traces show the click straddling phone Settings’ existing delayed section landing: hash navigation → click start/end were 30.3/67.0 ms and 21.0/68.1 ms. apps/web/src/components/Settings.svelte:195-205 schedules its section scroll after 60 ms, unchanged on origin/dev. apps/web/e2e/signout-fixture.ts:29-33 currently waits for the heading/passkeys, but not that landing. The click completed, yet neither logout nor the dialog started. A pointer-event probe on baseline is next, retaining real pointer-down/up/click targets and section-scroll events without logging cookies or request headers. This is a concrete existing test-setup race to check, not yet a claim that the original failure has been attributed to a new auth/toast merge. No source branch or train push yet.

WebKit investigation checkpoint. Initial matched runs: all three cases 15/15 on each revision, but the first ordinary no-run build ended before some intended load samples. Those 90 original results are retained. Replacement release-build-load batches reproduced `review4-signout.spec.ts:120` twice on train (5 passed / 2 failed), with the original 180s timeout at the dialog waiter; baseline replacement batch passed 7/7. Editor replacement batches passed 7/7 on both. Cancellation passed 7/7 on both, but train cancellation outlasted its build, so its loaded sample is being replaced again. No retries. Both failed typing traces show the click straddling phone Settings’ existing delayed section landing: hash navigation → click start/end were 30.3/67.0 ms and 21.0/68.1 ms. `apps/web/src/components/Settings.svelte:195-205` schedules its section scroll after 60 ms, unchanged on origin/dev. `apps/web/e2e/signout-fixture.ts:29-33` currently waits for the heading/passkeys, but not that landing. The click completed, yet neither logout nor the dialog started. A pointer-event probe on baseline is next, retaining real pointer-down/up/click targets and section-scroll events without logging cookies or request headers. This is a concrete existing test-setup race to check, not yet a claim that the original failure has been attributed to a new auth/toast merge. No source branch or train push yet.
Author
Owner

BM11 WebKit investigation complete for the two sign-out cases; editor attribution remains open.

Tested product heads: train 87f05d91a6d0bc1ad573ddec3ca79c211a78fddc; origin/dev 55f35fcde3bc91ca3781055577b93e93819f6cd4 (still current). Source repair: #856, commit/head 26548949efef7e6e4109ccc8e158f21a12f2b026, pushed to fix/playwright-train-flakes from owned worktree bm11-webkit.

Counts below are passed / failed, with zero retries. Each matched sample contains 8 runs without added own build load and 7 with one ordinary slot build active. Original train test definitions were retained against both product revisions.

Case Verdict Matched train P/F Matched dev P/F Additional dev pointer probe P/F Final train P/F Fix
webkit-390 review4-signout.spec.ts:120, uplink=false / BroadcastChannel=true pre-existing test flake, reproduced on dev 13 / 2 15 / 0 13 / 2 15 / 0 #856 26548949
webkit-390 review4-signout.spec.ts:427, cancelling warning pre-existing test flake, reproduced on dev 15 / 0 15 / 0 14 / 1 15 / 0 #856 26548949
webkit-1440 editor.spec.ts:173, two-device convergence unreproduced; attribution unresolved 15 / 0 15 / 0 — 15 / 0 none justified

Cause and repair. The pre-existing phone section landing at apps/web/src/components/Settings.svelte:195-205 schedules a scroll after 60 ms. The old apps/web/e2e/signout-fixture.ts:29-33 waits for the Sign out heading/passkeys but can return before that landing. The two failing train typing clicks started/ended 30.3/67.0 ms and 21.0/68.1 ms after hash navigation, straddling that scroll. They reproduced the original 180s dialog-wait timeout.

The additional dev probes retain ordinary input and add event observation plus an early assertion that the intended button actually received the click. Both cases independently captured this order:

pointerdown -> Sign out button
account section scrolls
pointerup -> DIV
click -> DIV

For cancellation the dev probe failed 1/15; typing failed 2/15. The early assertion stops at the lost click instead of waiting for an impossible dialog or logout request. These are real baseline reproductions of the input failure, with no injected network delay or artificial press timing. Settings' landing code and the incomplete helper are already on origin/dev. The original 13/15 versus 15/15 typing comparison alone was inconclusive; the independent baseline reproductions establish the existing mechanism. No BM11 product merge is identified as its source, so a product-merge bisect was not warranted for these two cases.

The repair in signout-fixture.ts activates the settings tab, retains passkey readiness, and waits for the Account heading to reach its actual scroll-margin position. That is a UI completion signal. Existing logout, read-only, sibling-editing and cancellation assertions remain intact. No fixed sleep or timeout increase was added. The original failing tests remain the regression gates. A green pointer probe also passed 3/3, with section landing before pointer-down and the click reaching Sign out.

Editor limit. Its predicate at apps/web/e2e/editor.spec.ts:181-184 never failed in 37 train + 22 dev executions across all repeat batches. No cause or culprit merge is demonstrated. No speculative editor waiting or product change was made. The historical full-train convergence failure remains unattributed; this report does not supply a green overall BM11 verdict for that case.

Environment and exact gates. All browser execution was on dev-02, Nix Playwright 1.63.0, CI=1 --workers=1 --retries=0. Both binaries used CARGO_PROFILE_DEV_DEBUG=0 CARGO_PROFILE_TEST_DEBUG=0 CARGO_INCREMENTAL=0 and cargo build --locked -j4; each product had frozen Bun dependencies and its own production web build. Baseline received only the matching #779 Nix tooling overlay. Binary hashes and every run count/command are in the sanitized run ledger. TMPDIR was on the root disk; disk free remained above 50 GiB. Other agents used this shared VM: “clean” means no added build from this investigation, not an otherwise idle host.

Load was one ordinary ~/bin/slot cargo test --workspace --no-run --locked -j4, then one ordinary ~/bin/slot cargo build --release --all-targets --locked -j4 for sustained batches. No busy-loop load. Build overlap was checked before/after each batch. The first no-run builds ended before some intended load samples; all original 90 passes are retained, and replacements supplied the required loaded samples. The train release build also ended during its cancellation batch; a further 7/7 cancellation run with build active supplied that sample. The ledger preserves the insufficient-overlap batches as additional results rather than relabeling them.

Final qualification from apps/web, using the original train binary/dist and the exact repaired fixture (SHA256 011791939b5f9a4a99374de3be84db8ad26b41cd59e1aa7c27ad20f16795b642):

export CI=1
export CALTERNAL_BIN=/home/cua/bm11-webkit/train-bin
export E2E_DIST=/home/cua/bm11-webkit/train-dist
# Each command had its own disk-backed TMPDIR and JSON output file.
/home/cua/bin/slot bunx playwright test e2e/editor.spec.ts:173 --project=webkit-1440 '--grep=two\ devices\ typing\ at\ once\ converge\ without\ duplicates' --workers=1 --retries=0 --repeat-each=15 --reporter=line,json --output=/home/cua/bm11-webkit/fixed-clean-editor-results
/home/cua/bin/slot bunx playwright test e2e/review4-signout.spec.ts:120 --project=webkit-390 '--grep=typing\ during\ logout\ is\ refused\ \(stuck\ uplink=false,\ BroadcastChannel=true\)' --workers=1 --retries=0 --repeat-each=15 --reporter=line,json --output=/home/cua/bm11-webkit/fixed-clean-typing-results
/home/cua/bin/slot bunx playwright test e2e/review4-signout.spec.ts:427 --project=webkit-390 '--grep=cancelling\ the\ warning\ restores\ sibling\ editing' --workers=1 --retries=0 --repeat-each=15 --reporter=line,json --output=/home/cua/bm11-webkit/fixed-clean-cancel-results

Results: 45 passed / 0 failed / 0 skipped, plus pointer probe 3 passed / 0 failed. git diff --check passed on control and VM. ~/bin/slot node ci/check-no-evidence.mjs passed on the train with the repaired fixture: 1409 tracked paths checked.

Complete accounting: 217 executed cases across original batches, replacement load batches, baseline probes and final qualification: 212 passed, 3 early pointer assertions failed, 2 original-style timeouts. Every attempt has retry=0 and workerIndex>=0. Two extra probe startup attempts ran zero cases: ESM mode, then external-config webServer cwd; both setup errors were corrected and retained. The attachment contains only selected safe fields, not raw trace request headers or environment dumps.

Source push verified at 26548949efef7e6e4109ccc8e158f21a12f2b026; no CI statuses or review on that head were published when checked. All owned VM jobs finished. Owned VM worktrees, targets, binaries, distributions, dependencies, temp Homes and raw traces were removed; only small logs/scripts/JSON remain outside the repository. Root free space after cleanup: 324 GiB. Control worktree is clean. Artifacts are this comment and its attachment; no artifact was committed.

BM11 WebKit investigation complete for the two sign-out cases; editor attribution remains open. Tested product heads: train `87f05d91a6d0bc1ad573ddec3ca79c211a78fddc`; origin/dev `55f35fcde3bc91ca3781055577b93e93819f6cd4` (still current). Source repair: **#856, commit/head `26548949efef7e6e4109ccc8e158f21a12f2b026`**, pushed to `fix/playwright-train-flakes` from owned worktree `bm11-webkit`. Counts below are passed / failed, with zero retries. Each matched sample contains 8 runs without added own build load and 7 with one ordinary slot build active. Original train test definitions were retained against both product revisions. | Case | Verdict | Matched train P/F | Matched dev P/F | Additional dev pointer probe P/F | Final train P/F | Fix | |---|---|---:|---:|---:|---:|---| | webkit-390 `review4-signout.spec.ts:120`, uplink=false / BroadcastChannel=true | **pre-existing test flake, reproduced on dev** | 13 / 2 | 15 / 0 | 13 / 2 | **15 / 0** | #856 `26548949` | | webkit-390 `review4-signout.spec.ts:427`, cancelling warning | **pre-existing test flake, reproduced on dev** | 15 / 0 | 15 / 0 | 14 / 1 | **15 / 0** | #856 `26548949` | | webkit-1440 `editor.spec.ts:173`, two-device convergence | **unreproduced; attribution unresolved** | 15 / 0 | 15 / 0 | — | **15 / 0** | none justified | **Cause and repair.** The pre-existing phone section landing at `apps/web/src/components/Settings.svelte:195-205` schedules a scroll after 60 ms. The old `apps/web/e2e/signout-fixture.ts:29-33` waits for the Sign out heading/passkeys but can return before that landing. The two failing train typing clicks started/ended 30.3/67.0 ms and 21.0/68.1 ms after hash navigation, straddling that scroll. They reproduced the original 180s dialog-wait timeout. The additional dev probes retain ordinary input and add event observation plus an early assertion that the intended button actually received the click. Both cases independently captured this order: ```text pointerdown -> Sign out button account section scrolls pointerup -> DIV click -> DIV ``` For cancellation the dev probe failed 1/15; typing failed 2/15. The early assertion stops at the lost click instead of waiting for an impossible dialog or logout request. These are real baseline reproductions of the input failure, with no injected network delay or artificial press timing. Settings' landing code and the incomplete helper are already on origin/dev. The original 13/15 versus 15/15 typing comparison alone was inconclusive; the independent baseline reproductions establish the existing mechanism. No BM11 product merge is identified as its source, so a product-merge bisect was not warranted for these two cases. The [repair in signout-fixture.ts](https://git.kayg.org/kayg/calternal/src/commit/26548949efef7e6e4109ccc8e158f21a12f2b026/apps/web/e2e/signout-fixture.ts#L28) activates the settings tab, retains passkey readiness, and waits for the Account heading to reach its actual scroll-margin position. That is a UI completion signal. Existing logout, read-only, sibling-editing and cancellation assertions remain intact. No fixed sleep or timeout increase was added. The original failing tests remain the regression gates. A green pointer probe also passed **3/3**, with section landing before pointer-down and the click reaching Sign out. **Editor limit.** Its predicate at `apps/web/e2e/editor.spec.ts:181-184` never failed in **37 train + 22 dev executions** across all repeat batches. No cause or culprit merge is demonstrated. No speculative editor waiting or product change was made. The historical full-train convergence failure remains unattributed; this report does not supply a green overall BM11 verdict for that case. **Environment and exact gates.** All browser execution was on dev-02, Nix Playwright **1.63.0**, `CI=1 --workers=1 --retries=0`. Both binaries used `CARGO_PROFILE_DEV_DEBUG=0 CARGO_PROFILE_TEST_DEBUG=0 CARGO_INCREMENTAL=0` and `cargo build --locked -j4`; each product had frozen Bun dependencies and its own production web build. Baseline received only the matching #779 Nix tooling overlay. Binary hashes and every run count/command are in the [sanitized run ledger](https://git.kayg.org/attachments/5045c093-ab60-424b-8f0f-e97269e82142). TMPDIR was on the root disk; disk free remained above 50 GiB. Other agents used this shared VM: “clean” means no added build from this investigation, not an otherwise idle host. Load was one ordinary `~/bin/slot cargo test --workspace --no-run --locked -j4`, then one ordinary `~/bin/slot cargo build --release --all-targets --locked -j4` for sustained batches. No busy-loop load. Build overlap was checked before/after each batch. The first no-run builds ended before some intended load samples; all original 90 passes are retained, and replacements supplied the required loaded samples. The train release build also ended during its cancellation batch; a further 7/7 cancellation run with build active supplied that sample. The ledger preserves the insufficient-overlap batches as additional results rather than relabeling them. Final qualification from `apps/web`, using the original train binary/dist and the exact repaired fixture (SHA256 `011791939b5f9a4a99374de3be84db8ad26b41cd59e1aa7c27ad20f16795b642`): ```sh export CI=1 export CALTERNAL_BIN=/home/cua/bm11-webkit/train-bin export E2E_DIST=/home/cua/bm11-webkit/train-dist # Each command had its own disk-backed TMPDIR and JSON output file. /home/cua/bin/slot bunx playwright test e2e/editor.spec.ts:173 --project=webkit-1440 '--grep=two\ devices\ typing\ at\ once\ converge\ without\ duplicates' --workers=1 --retries=0 --repeat-each=15 --reporter=line,json --output=/home/cua/bm11-webkit/fixed-clean-editor-results /home/cua/bin/slot bunx playwright test e2e/review4-signout.spec.ts:120 --project=webkit-390 '--grep=typing\ during\ logout\ is\ refused\ \(stuck\ uplink=false,\ BroadcastChannel=true\)' --workers=1 --retries=0 --repeat-each=15 --reporter=line,json --output=/home/cua/bm11-webkit/fixed-clean-typing-results /home/cua/bin/slot bunx playwright test e2e/review4-signout.spec.ts:427 --project=webkit-390 '--grep=cancelling\ the\ warning\ restores\ sibling\ editing' --workers=1 --retries=0 --repeat-each=15 --reporter=line,json --output=/home/cua/bm11-webkit/fixed-clean-cancel-results ``` Results: **45 passed / 0 failed / 0 skipped**, plus pointer probe **3 passed / 0 failed**. `git diff --check` passed on control and VM. `~/bin/slot node ci/check-no-evidence.mjs` passed on the train with the repaired fixture: 1409 tracked paths checked. **Complete accounting:** 217 executed cases across original batches, replacement load batches, baseline probes and final qualification: **212 passed, 3 early pointer assertions failed, 2 original-style timeouts**. Every attempt has retry=0 and workerIndex>=0. Two extra probe startup attempts ran zero cases: ESM mode, then external-config webServer cwd; both setup errors were corrected and retained. The attachment contains only selected safe fields, not raw trace request headers or environment dumps. Source push verified at `26548949efef7e6e4109ccc8e158f21a12f2b026`; no CI statuses or review on that head were published when checked. All owned VM jobs finished. Owned VM worktrees, targets, binaries, distributions, dependencies, temp Homes and raw traces were removed; only small logs/scripts/JSON remain outside the repository. Root free space after cleanup: **324 GiB**. Control worktree is clean. Artifacts are this comment and its attachment; no artifact was committed.
Author
Owner

Replaced by Train BM12: #884. Includes current #856 sign-out waits and #840 WebKit first-frame fix. BM11 results remain preserved here.

Replaced by Train BM12: https://git.kayg.org/kayg/calternal/pulls/884. Includes current #856 sign-out waits and #840 WebKit first-frame fix. BM11 results remain preserved here.
kayg closed this pull request 2026-11-02 23:29:21 +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!883
No description provided.