Train BM10 #880
Closed
kayg
wants to merge 8 commits from
train/2026-11-03-bm10 into dev
pull from: train/2026-11-03-bm10
merge into: kayg:dev
kayg:main
kayg:feat/style-sheet-fixes
kayg:storage/wal-checkpoint-off-save-1051
kayg:t3/paged-search-reconcile-final
kayg:feat/pass8
kayg:review/calendar-2
kayg:fix/shared-row-swipes
kayg:feat/contrast
kayg:dev
kayg:feat/collections-db
kayg:fix/instant-keys-1056
kayg:feat/money-round
kayg:perf/stalls-1054
kayg:wip/tiering-v3-cold4
kayg:wip/tiering-v3-cold5
kayg:port/rows-actions
kayg:port/rows-drop
kayg:port/hidden-blocks
kayg:port/rows
kayg:port/port-tables
kayg:port/port-tables-2
kayg:t3/mail-1011-liveness
kayg:port/devices
kayg:port/port-attachments
kayg:port/port-attachments-2
kayg:port/port-attachments-3
kayg:docs/design-consistency
kayg:docs/engineering-standards
kayg:fix/rusqlite-0.41-rustsec-2026-0459
kayg:feat/iphone-fixes
kayg:shared/restore-and-stale-918-919
kayg:fix/phone-top-band-contrast
kayg:feat/notes-approve
kayg:perf/soak-max-gate
kayg:feat/files-s1-identity
kayg:fix/lifecycle-event-id
kayg:feat/quickfix
kayg:wip/tiering-v3-cold
kayg:perf/web-mockup-frame-fixes
kayg:port/contacts-merge
kayg:port/contacts-edit
kayg:test/shared-room-no-deleted-text
kayg:perf/first-paint-credits
kayg:fix/shared-history-after-grant
kayg:fix/phone-swipe-regressions
kayg:feat/contrast-r1
kayg:review/sharing-pr3-review
kayg:feat/tiering-v3-s2-tags
kayg:feat/folder-drop
kayg:fix/deskpills-lazy-share
kayg:feat/sharing-s1-pr3
kayg:tmp/money-round-before
kayg:fix/phone-pane-backdrop-roots
kayg:fix/palette-preload-chips
kayg:fix/invite-defaults
kayg:port/tasks-matrix
kayg:fix/restore-green-gates
kayg:fix/sharing-fast-path-hardening
kayg:t3/photos-s1
kayg:feat/tiering-v3-s1-namespace
kayg:notes-archive-hide
kayg:feat/tasks-actions
kayg:t3/photos-plan-slice-one
kayg:feat/whiteboard-s1
kayg:t3/paged-search-reconcile
kayg:t3/smooth-pane-transitions
kayg:t3/index-position-startup-scan
kayg:fix/private-staging-759b-r2
kayg:feat/dav-transport
kayg:feat/imap-notes-fetch
kayg:feat/imap-notes-projection
kayg:feat/imap-notes-readonly
kayg:feat/imap-notes-auth
kayg:feat/imap-notes-server-foundation
kayg:docs/undo-block-ids-plan
kayg:fix/undo-768
kayg:proto/block-identity-v7d
kayg:issue/carddav-read-perf-fix-r2
kayg:issue/carddav-read-r2
kayg:docs/imap-766-plan-v2
kayg:docs/imap-notes-plan
kayg:docs/quota-plan-2
kayg:fix/parallel-test-flakes
kayg:feat/contacts-companion-pure
kayg:docs/calendar-backend-v2-plan
kayg:feat/calendar-ical-converter
kayg:docs/tasks-writes-v2-plan
kayg:docs/carddav-writes-v2-plan
kayg:docs/contacts-import-v2-plan
kayg:issue/610-pm-midnight
kayg:feat/calendar-v2-s1-containment
kayg:docs/dav-recorder-v2-plan
kayg:plan/previews-865
kayg:plan/save-log-durable-entry
kayg:fix/e2e-data-on-ram
kayg:feat/appwindow3
kayg:feat/appwindow2
kayg:feat/appwindow
kayg:feat/money-p1
kayg:feat/keys-sheet
kayg:review/calendar-2-themes
kayg:feat/smooth-cursor
kayg:fix/float-style
kayg:review/calendar-2-float
kayg:release/2026-11-06-hotfix
kayg:archive/port/rows-drop-code
kayg:archive/port/rows-actions
kayg:archive/port/rows
kayg:scratch/tasks-894-ui-gates
kayg:review/calendar-2-night-wip
kayg:release/2026-11-05
kayg:archive/feat/tiering-v3-s1-namespace
kayg:archive/flaky/rows-drop-fixed
kayg:archive/flaky/rows-actions
kayg:archive/feat/tiering-v3-reader
kayg:archive/feat/tiering-v3-roots
kayg:archive/flaky/rows
kayg:sim/bm15-final
kayg:sim/bm15-fix
kayg:sim/bm15-bis-932
kayg:sim/bm15-bis-909
kayg:sim/bm15
kayg:sim/bm15-bis-887
kayg:perf/tiering-option-b
kayg:port/style-3
kayg:port/style-2
kayg:port/style
kayg:fix/sw-lazy-precache
kayg:fix/vim-w-waits-for-save
kayg:fix/signout-test-races
kayg:fp-scratch/all
kayg:sim/bm15-first-paint
kayg:archive/bm15/rows-drop
kayg:archive/bm15/rows-actions
kayg:fix/palette-snippet-contrast
kayg:archive/bm15/rows
kayg:archive/bm15/hidden
kayg:archive/plan/save-log-durable-entry
kayg:mock/money-fix2
kayg:archive/fix/e2e-data-on-ram
kayg:mock/appearance-all
kayg:mock/pill-press
kayg:archive/docs/design-consistency
kayg:mock/auto-swipes
kayg:mock/mail-actions
kayg:archive/feat/mail-p1
kayg:mock/money-static
kayg:archive/review/standards-917
kayg:archive/docs/engineering-standards
kayg:perf/tiering-761-fix
kayg:mock/type-audit
kayg:mock/third-pane
kayg:feat/contacts-import-v2-s1
kayg:perf/executor-hot-path
kayg:archive/port/hidden-blocks
kayg:archive/port/devices
kayg:scratch/executor-on-894
kayg:scratch/executor-spans2
kayg:scratch/executor-spans
kayg:train/2026-11-03-bm14c
kayg:archive/port/rows-drop
kayg:feat/tiering-761-d-scale
kayg:feat/tiering-761-c-index
kayg:feat/tiering-761-b-reader
kayg:archive/review/sharing-pr3-review-9fec3d1f
kayg:train/2026-11-03-bm14b
kayg:perf/ports-lazy-budgets
kayg:feat/tiering-761-a-migration
kayg:train/2026-11-03-bm14
kayg:train/2026-11-03-bm12
kayg:archive/review/sharing-pr3-review
kayg:archive/feat/sharing-s1-pr3
kayg:train/2026-11-03-bm11
kayg:archive/feat/imap-notes-fetch
kayg:archive/review/sharing-pr3-review-code
kayg:archive/plan/previews-865
kayg:train/2026-11-02-bm9
kayg:archive/port/port-attachments-3
kayg:archive/port/contacts-merge
kayg:fix/motion-audit-859
kayg:train/2026-11-02-bm8
kayg:archive/scratch/bm8-prep
kayg:archive/port/port-pickers
kayg:archive/port/port-tables-2
kayg:archive/port/port-tables
kayg:archive/feat/sharing-s1-pr3-code
kayg:archive/scratch/bm7-fixed
kayg:train/2026-11-02-bm7
kayg:archive/fix/parallel-test-flakes-code-minipc01
kayg:train/2026-11-02-bm6
kayg:docs/imap-766-readonly-slice
kayg:feat/dav-recorder-v3
kayg:research/788-diagnosis
kayg:archive/fix/parallel-test-flakes
kayg:archive/perf/pr792-cold-index-edit
kayg:docs/sharing-slice-1
kayg:archive/docs/imap-766-plan-v2
kayg:feat/dav-recorder-v2
kayg:archive/docs/dav-recorder-v2-plan
kayg:spike/imap-766-s0-cases
kayg:archive/fix/undo-768
kayg:feat/dav-recorder
kayg:archive/docs/contacts-import-v2-plan
kayg:archive/feat/calendar-ical-converter
kayg:feat/contacts-import
kayg:perf/cold-growth-on-764
kayg:perf/cold-growth-on-tiering
kayg:archive/docs/tasks-writes-v2-plan
kayg:archive/docs/calendar-backend-v2-plan
kayg:archive/feat/contacts-companion-pure
kayg:feat/tasks-set-status
kayg:feat/tasks-move-reorder
kayg:archive/docs/carddav-writes-v2-plan
kayg:archive/feat/calendar-v2-s1-containment
kayg:feat/tasks-delete-promote-duplicate
kayg:archive/feat/dav-transport
kayg:archive/fix/carddav-rebuild-r1
kayg:archive/fix/carddav-retention-r1
kayg:feat/carddav-writes
kayg:perf/quota-on-tiering
kayg:perf/quota-simple
kayg:perf/cold-growth-on-quota-stack
kayg:feat/calendar-identity
kayg:feat/calendar-event-parser
kayg:feat/calendar-props-maps
kayg:port/glass-when-ring
kayg:feat/tiering-761-s1
kayg:wip/10by32-01-impl-759b-scratch-20261030
kayg:wip/6by32-01-bm3-webkit-pause-20261030
kayg:wip/10by32-01-bm3-chromium-pause-20261030
kayg:wip/6by32-01-tier-761-s1-pause-20261030
kayg:spike/imap-766-s0
kayg:wip/6by32-02-calternal-pause-20261030
kayg:wip/8by64-01-review-688-pause-20261030
kayg:wip/6by32-01-verify-744-pause-20261030
kayg:wip/6by32-01-verify-742-pause-20261030
kayg:fix/private-staging-759b
kayg:wip/6by32-01-review-748-pause-20261030
kayg:wip/6by32-01-review-733c-pause-20261030
kayg:wip/6by32-01-review-733b-pause-20261030
kayg:wip/6by32-01-perf-idle-8-pause-20261030
kayg:wip/6by32-01-perf767-base-pause-20261030
kayg:wip/6by32-01-perf767b-767-pause-20261030
kayg:wip/6by32-01-perf767b-764-pause-20261030
kayg:wip/6by32-01-perf767-767-pause-20261030
kayg:wip/6by32-01-perf767-764-pause-20261030
kayg:wip/6by32-01-lists-b-pause-20261030
kayg:wip/6by32-01-ids-verify5-pause-20261030
kayg:wip/6by32-01-ids-verify4-pause-20261030
kayg:review/calendar-month
kayg:wip/10by32-02-undo-768-20261030
kayg:test/ids-verify3
kayg:wip/10by32-02-bm3-chromium-20261030
kayg:wip/10by32-01-review-753-20261030
kayg:wip/10by32-01-perf-idle-2-20261030
kayg:wip/10by32-01-bm2-webkit2-20261030
kayg:plan/759b-staging
kayg:train/2026-10-30-bm2
kayg:review/758b-tests
kayg:review/758-tests
kayg:review/764d-tests
kayg:review/767b-tests
kayg:review/preview-2026-10-29
kayg:review/767-tests
kayg:docs/tiering-731-plan
kayg:wip/c6b02-when2
kayg:wip/c6b02-tasks-create-fix5
kayg:wip/c6b02-settings-frost-mock
kayg:wip/c6b02-settings-frost-base
kayg:wip/c6b02-settings-frost
kayg:wip/c6b02-ring
kayg:wip/c6b02-review-733d
kayg:wip/c6b02-bm1-full-a
kayg:wip/compute02-when-field
kayg:wip/compute02-webkit-lists-repro
kayg:wip/compute02-train-bl2-dev
kayg:wip/compute02-dev-green-pw164
kayg:docs/deploy-plan
kayg:review/764c-tests
kayg:review/764b-tests
kayg:review/748g-tests
kayg:review/764-tests
kayg:review/759b-tests
kayg:fix/storage-owner-liveness-642
kayg:fix/storage-fix-7
kayg:wip/compute02-storage-fix-7
kayg:review/759-tests
kayg:feat/tiering-731
kayg:wip/tiering-731-first-attempt
kayg:wip/compute02-storage-fix-1
kayg:review/754g-tests
kayg:perf/idle-honest-2
kayg:review/754f-tests
kayg:review/754e-tests
kayg:review/755-tests
kayg:review/754d-tests
kayg:review/754c-tests
kayg:review/754b-tests
kayg:review/754-tests
kayg:fix/storage-private-tmp-642-dev
kayg:wip/compute02-verify-750
kayg:test/ids-verify5
kayg:test/ids-verify4
kayg:fix/storage-exact-file-quarantine-642
kayg:wip/compute02-verify-740
kayg:perf/one-flush-save
kayg:review/calendar-static
kayg:wip/compute02-verify-737
kayg:review/indexing-ring
kayg:review/when-field-2
kayg:wip/compute02-review-733
kayg:proto/block-identity-2-review
kayg:proto/block-identity-review
kayg:wip/c6b02-tc-design
kayg:review/when-field
kayg:issue/tasks-create-ids
kayg:issue/tasks-create
kayg:review/combined
kayg:wip/compute02-review-combined
kayg:review/task-polish
kayg:review/top-buttons
kayg:review/q1-q5
kayg:train/2026-10-26-bl2
kayg:archive/wt-398h
kayg:archive/train-bm-proptest-seed
kayg:archive/integ325-293
kayg:archive/integ325-ci
kayg:archive/client-auth-review-baseline
kayg:archive/wt-sim-4853
kayg:archive/wt-sim-4811
kayg:archive/wt-448m
kayg:archive/wt-398a-allocator
kayg:issue/calendar-adr
kayg:archive/old/train/2026-10-23bk2
kayg:archive/old/train/2026-10-23bk
kayg:issue/469-mockup-9a
kayg:issue/smart-tasks-mockup
kayg:issue/469-menus
kayg:issue/652-signout-flake
kayg:issue/652-history-fix7
kayg:issue/652-history-fix6
kayg:archive/old/issue/spring-check-perf
kayg:issue/spring-check-perf
kayg:issue/659-rename-fast
kayg:archive/old/train/2026-10-21ar
kayg:issue/search-hardening-3
kayg:issue/652-history-fix5
kayg:issue/660-port-sheets-glass
kayg:issue/652-history-fix4
kayg:issue/652-history-fix3
kayg:issue/652-history-fix2
kayg:issue/652-history-flake
kayg:train/2026-10-21an
kayg:issue/settings-admin-port
kayg:issue/search-port
kayg:train/2026-10-20am
kayg:issue/storage-split-fix2
kayg:issue/storage-split
kayg:archive/old/issue/folder-ids-fix
kayg:train/2026-10-20al
kayg:archive/old/issue/folder-ids
kayg:train/2026-10-20ak
kayg:issue/tables-mockup
kayg:train/2026-10-19aj
kayg:train/2026-10-19ai
kayg:issue/469-merge-fixes
kayg:issue/sidebar-band
kayg:archive/old/issue/608-settings-spec
kayg:train/2026-10-19ah
kayg:issue/swipe-offscreen
kayg:train/2026-10-19ag
kayg:archive/old/issue/590-nlp-adr
kayg:archive/old/issue/587-event-after-write-2
kayg:train/2026-10-19af
kayg:archive/old/issue/587-event-after-write
kayg:issue/469-pill-room-c
kayg:issue/469-pill-room
kayg:train/2026-10-19ae
kayg:issue/469-narrow-handle
kayg:issue/397-ios-swipe-2
kayg:archive/old/issue/adrs-photos-files-tasks
kayg:issue/469-desk-fixes
kayg:archive/old/issue/auto-update-adr
kayg:issue/469-filter-gap
kayg:issue/469-port-1b
kayg:issue/442-opacity-flake
kayg:archive/397-ios-swipe-2
kayg:issue/327-web-fast-3
kayg:archive/old/issue/469-port-1
kayg:issue/469-port-1
kayg:issue/327-web-fast-2
kayg:archive/old/issue/327-web-fast
kayg:archive/old/issue/425-stt-bench-vq1
kayg:archive/old/issue/445-no-bleed
kayg:archive/old/issue/400-swipe-mockup-2
kayg:issue/426-client-review
kayg:issue/426-client-2
kayg:issue/426-client
kayg:archive/old/issue/476-safe-area-lab
kayg:archive/445-top-light-2
kayg:archive/old/issue/445-top-light
kayg:issue/471-blocks-mockup
kayg:archive/old/issue/448-links-app-2
kayg:archive/old/issue/448-links-app
kayg:archive/old/issue/398-cold-links
kayg:issue/434-442-small-2
kayg:issue/434-442-small
kayg:archive/old/issue/398-unload
kayg:archive/old/issue/445-bottom-band
kayg:issue/445-bottom-band
kayg:issue/351-rem-3
kayg:archive/312-views-mockup
kayg:issue/351-rem-2
kayg:issue/351-rem
kayg:archive/old/issue/327-first-note
kayg:issue/395-width-phone
kayg:archive/old/issue/327-typing
kayg:issue/396-ios-edges
kayg:issue/397-ios-swipe
kayg:archive/398-allocator
kayg:archive/old/issue/327-notes-index
kayg:issue/345-347-contrast-empty-2
kayg:archive/old/issue/44-arenas
kayg:issue/44-arenas
kayg:archive/integ325
kayg:archive/old/issue/327-perf-harness
kayg:archive/old/issue/44-thp
kayg:issue/44-thp
kayg:archive/old/issue/285-sticky-pills
kayg:archive/old/issue/44-trim-3
kayg:issue/44-trim-3
kayg:archive/old/issue/165-cards
kayg:archive/old/issue/165-picker-2
kayg:archive/old/issue/212-multi-select
No reviewers
Labels
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
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!880
Loading…
Reference in a new issue
No description provided.
Delete branch "train/2026-11-03-bm10"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Replaces #869. Current-head assembly decisions and first-run gate evidence are recorded only in PR comments. Test train; never merge as part of this task.
Inherited #831 artifacts moved out of the train under ADR 0003. These are historical source-PR measurements, not BM10 gate results.
docs/perf/attachment-index-flush.md
The trace run used the same arguments under:
Untraced warm run: 696 uploads; 60 save acknowledgements; p50 17.88 ms and p95
56.26 ms. This is a single dev-01 diagnostic run, not perf-VM qualification.
The matching
strace -f -tt -T -yyrun completed 465 uploads. It found 932attachment WAL syncs, 469 attachment database syncs, and 467 attachment
directory syncs: 1,868 total, or 4.017 attachment-index sync calls per upload.
Two WAL syncs, one database sync, and one directory sync occurred per new
attachment. The trace also showed a separate pending-marker sync per upload.
Traced latency is excluded from the before/after comparison.
This reproduces the inherited amplification reported in
#788 comment 73181
on current dev. The original profile at
133cf2c2is not used as the currentbaseline.
Fix and current-dev result
The implementation keeps up to 64 per-user index connections in an LRU cache.
The connection uses WAL with
synchronous=FULL, so each changed row is durablein the WAL before acknowledgement. SQLite can checkpoint after its normal
page threshold, cache eviction, or shutdown. Attachment bytes still use the
existing file and parent-directory durability barriers.
The Linux regression test measures sync syscalls between real upload action
markers under
strace. It passed with 0 attachment-index sync calls for aduplicate/no-change save and 1 WAL sync call for one new attachment. The
bounded-cache test also passed with 65 busy users: 64 cached connections and
one scoped connection.
On dev-01, the same untraced matrix cell after the change completed 1,520
uploads and 59 overlapping note saves. Save-ack p50 was 13.29 ms and p95 was
40.62 ms. Against the single baseline run, p50 improved 25.7% and p95 improved
27.8%. These shared-host samples are diagnostic only, not qualification.
The matching trace run completed 807 uploads and 60 save samples. It found
814 attachment WAL syncs, 5 database syncs, and 2 attachment-directory syncs:
821 total, or 1.017 attachment-index sync calls per upload. The seven calls
above one per upload came from SQLite checkpoints during the run. Traced
save-ack p95 was 58.37 ms and is excluded from the latency comparison.
Targeted gates on dev-01 passed:
The test result was 21 passed, 0 failed; targeted Clippy passed with warnings
denied. The current-dev binary was built from implementation commit
eef6473203e20df1be29346b8ef03ff47a269522and has SHA256196ff9b8ea473f0cf22ea0546c76056d6efb2d413317ec0a8c6063a759271bbd.Perf-01 matched comparison
On perf-01, I ran five alternating matched pairs with the same 1k-note Home,
four upload clients, 256 KiB attachments, 60-second upload window, and seed
75931004. Homes and app state were on the VM's ext4 non-rotational SSD. Thebaseline was current
origin/devat55f35fcde3bc91ca3781055577b93e93819f6cd4;the fixed binary was built from
eef6473203e20df1be29346b8ef03ff47a269522.Both were measured with the same matrix driver and unchanged budgets file
(SHA256
8feee55baeb3940c09015f37db8da85bd0cf2c5f33d5673568bd976fcf02ace3).Each run exited 0 and collected 59 or 60 save acknowledgements.
The five-pair median meets the existing #788 small all-SSD cell limits: upload
throughput at least 95% of current dev, upload response p95 at most 105%, and
overlapping save-ack p95 at most 105%. Save-ack p50 was 4.2% higher by the
median of run p50s; median run p95 fell 3.2%, and the median paired p95 ratio
was 98.8%. The first and fifth save-ack pairs were noisy and slower on the
fixed run, which is why the full five-pair table is retained. The full 18-cell
matrix still needs requalification after rebasing #788.
The unchanged
perf/budgets.jsonwas passed to--gate; it has no entry foruploads.256KiB.save_ack, so the upload comparison uses the existing relativematrix limits from #788 comment 72886.
No budget was edited. Individual JSON and Markdown outputs are retained on
perf-01. The compact per-run data is in
attachment-index-flush-perf01.json.{
"machine": "perf-01: Linux 6.12.113+deb13-amd64, 4 CPUs, 7.7 GiB RAM, ext4 non-rotational SSD for Homes and state",
"baseline": {
"origin_dev": "
55f35fcde3","binary_sha256": "9e3269898ce6bd45e3ef9326149f41995d176c26394841ef9eef376d2b1f5dc4"
},
"fixed": {
"implementation_commit": "
eef6473203","binary_sha256": "196ff9b8ea473f0cf22ea0546c76056d6efb2d413317ec0a8c6063a759271bbd"
},
"matrix_driver_sha256": "e83e22618a1ce06bc4bc42ee16ed966eff0fe4ff922c42da1cc42ae4f8700a8b",
"config": {
"notes": 1000,
"upload_bytes": 262144,
"upload_clients": 4,
"upload_seconds": 60,
"seed": 75931004,
"matched_pairs": 5,
"order": [
"base/fixed",
"fixed/base",
"base/fixed",
"fixed/base",
"base/fixed"
]
},
"command": "calternal-perf --bin --work /work --sizes 1k --runs 1 --cold-runs 0 --idle-secs 0 --soak-secs 0 --seed 75931004 --upload-sizes 256k --upload-clients 4 --upload-secs 60 --upload-only --json /result.json --md /result.md --budgets <unchanged perf/budgets.json> --gate",
"budget_file_sha256": "8feee55baeb3940c09015f37db8da85bd0cf2c5f33d5673568bd976fcf02ace3",
"matrix_thresholds": {
"throughput_ratio_pct_min": 95,
"upload_response_p95_ratio_pct_max": 105,
"save_ack_p95_ratio_pct_max": 105
},
"pairs": [
{
"pair": 1,
"order": "base/fixed",
"base": {
"save_ack_ms": {
"p50": 8.051699000000001,
"p95": 11.276453,
"samples": 60
},
"upload_response_ms": {
"p50": 122.414671,
"p95": 143.195845,
"samples": 1924
},
"throughput_mib_s": 7.8760662691913295,
"exit_code": 0
},
"fixed": {
"save_ack_ms": {
"p50": 9.95182,
"p95": 16.15159,
"samples": 59
},
"upload_response_ms": {
"p50": 116.10380400000001,
"p95": 140.805797,
"samples": 2201
},
"throughput_mib_s": 9.010913115334635,
"exit_code": 0
},
"paired_ratio_pct": {
"save_ack_p95": 143.23289424431601,
"upload_response_p95": 98.33092363818238,
"throughput": 114.40880266056756
}
},
{
"pair": 2,
"order": "fixed/base",
"base": {
"save_ack_ms": {
"p50": 11.694977,
"p95": 20.984858,
"samples": 60
},
"upload_response_ms": {
"p50": 181.23751900000002,
"p95": 305.759208,
"samples": 1220
},
"throughput_mib_s": 4.994277119581212,
"exit_code": 0
},
"fixed": {
"save_ack_ms": {
"p50": 12.195746,
"p95": 20.453059999999997,
"samples": 59
},
"upload_response_ms": {
"p50": 122.14196,
"p95": 146.29314,
"samples": 1951
},
"throughput_mib_s": 7.987411446142995,
"exit_code": 0
},
"paired_ratio_pct": {
"save_ack_p95": 97.46580129348503,
"upload_response_p95": 47.84586569180281,
"throughput": 159.93128244378977
}
},
{
"pair": 3,
"order": "base/fixed",
"base": {
"save_ack_ms": {
"p50": 12.356477,
"p95": 17.879756999999998,
"samples": 60
},
"upload_response_ms": {
"p50": 179.02521199999998,
"p95": 211.695008,
"samples": 1317
},
"throughput_mib_s": 5.391684547783172,
"exit_code": 0
},
"fixed": {
"save_ack_ms": {
"p50": 12.034103,
"p95": 17.673111,
"samples": 60
},
"upload_response_ms": {
"p50": 123.075991,
"p95": 149.01044299999998,
"samples": 1940
},
"throughput_mib_s": 7.942181138908136,
"exit_code": 0
},
"paired_ratio_pct": {
"save_ack_p95": 98.84424603757199,
"upload_response_p95": 70.38920965013969,
"throughput": 147.30426211922241
}
},
{
"pair": 4,
"order": "fixed/base",
"base": {
"save_ack_ms": {
"p50": 11.903978,
"p95": 18.941137,
"samples": 60
},
"upload_response_ms": {
"p50": 179.25838,
"p95": 220.128913,
"samples": 1307
},
"throughput_mib_s": 5.350753287242168,
"exit_code": 0
},
"fixed": {
"save_ack_ms": {
"p50": 12.555529,
"p95": 18.334640999999998,
"samples": 60
},
"upload_response_ms": {
"p50": 122.91566,
"p95": 146.669366,
"samples": 1946
},
"throughput_mib_s": 7.967140604998429,
"exit_code": 0
},
"paired_ratio_pct": {
"save_ack_p95": 96.79799581197263,
"upload_response_p95": 66.6288512495403,
"throughput": 148.8975510045385
}
},
{
"pair": 5,
"order": "base/fixed",
"base": {
"save_ack_ms": {
"p50": 11.702833,
"p95": 20.466426,
"samples": 60
},
"upload_response_ms": {
"p50": 179.29509800000002,
"p95": 215.944592,
"samples": 1311
},
"throughput_mib_s": 5.367088973256576,
"exit_code": 0
},
"fixed": {
"save_ack_ms": {
"p50": 13.234993000000001,
"p95": 22.926043,
"samples": 59
},
"upload_response_ms": {
"p50": 123.30149399999999,
"p95": 146.776267,
"samples": 1940
},
"throughput_mib_s": 8.074598087107052,
"exit_code": 0
},
"paired_ratio_pct": {
"save_ack_p95": 112.01781395540189,
"upload_response_p95": 67.96941087554534,
"throughput": 150.446510712634
}
}
],
"summary": {
"base": {
"save_ack_p50_ms": 11.702833,
"save_ack_p95_ms": 18.941137,
"upload_response_p95_ms": 215.944592,
"throughput_mib_s": 5.367088973256576
},
"fixed": {
"save_ack_p50_ms": 12.195746,
"save_ack_p95_ms": 18.334640999999998,
"upload_response_p95_ms": 146.669366,
"throughput_mib_s": 7.987411446142995
},
"median_paired_ratio_pct": {
"save_ack_p95": 98.84424603757199,
"upload_response_p95": 67.96941087554534,
"throughput": 148.8975510045385
}
}
}
BM10 assembly complete. Head
31b867ac95b290c6d53ee042bc6343d04cee3d02, base55f35fcde3bc91ca3781055577b93e93819f6cd4. Each source head was fetched from the PR API immediately before its merge.7b97e4d14231be07f6a80cb9ca172d02442c487e626388da9052eaecb159d735f0cadc5e59e88312ba1f47dc94797d4a8a937298464b5e4828e301c2f1c1aa961e169ef99e132063a97ccbd9a89a5def76f11dc4ba06468a2a0ed4d4592cea60382066965d7b9b36cd008de78851809724c90a85d92b40a7ccaece3dfecbe2048634fc792d7d4a2c6e31f3245f7d1a59776411e7f3353d0023817b43affae51e316b43e9578c3e4d2944df8df43caebc611356f750cce9dcceb87f23a9f346300b3336e315ff6c0c40448327a15730271d56226b898e48bcc87b2a4dc38c3083d51f4adcf5cd76a70f1f6960b427413e144e717145e35f70356f593b7c04a527e00f7b17b89e39bb313bb06b92da274124c6bbde30e2250a9dd572249bd3edbcf8e1475a940070c4d03f1fc7136defb50ef7039bfb0be76a4d18d175f56a61d8bcca58e3d8af37b1246f81ff0a2f55faa40704262f0b59f18406f03ca55b2fe745e3e11fedd9e84df2c3a44cda090d763540366d03478ce7922a4cdf#829/#835 and other ports omitted as requested. #863 excluded under the conflict rule: #840 animates separate palette parts from the pill bottom while #863 animates the container from its top; Style removed Inspector, which #863 modifies. Porting those changes requires a design choice. No part of #863 is retained. #831 historical artifacts moved to comment 75592 and removed from the tree.
First-run gates only, CI=1, Nix with strace, heavy commands through ~/bin/slot, -j4, browser --workers=1 --retries=0. Native project matrix split by browser, admin-setup retained with dependents. All first errors and per-project tables will be comments. Never merge.
Gate execution started on fixed head
31b867ac9(full SHA in assembly comment). Both VMs passed disk checks: dev-01 300 GiB and dev-02 331 GiB free. Nix resolves strace 7.2 on both machines. No tests/builds run on the control host.Commands on dev-01, each run once with CI=1 and ~/bin/slot:
Dev-02 builds the same head and web app for WebKit. Both use CARGO_PROFILE_DEV_DEBUG=0, CARGO_PROFILE_TEST_DEBUG=0, CARGO_INCREMENTAL=0. Full browser halves will launch together after preparation, with native projects and admin-setup retained; cross-half scheduling dependencies removed only. --workers=1 --retries=0. A failed scheduling dependency can block never-attempted cases; those cases will receive only their first attempts separately if needed.
First-run progress:
cargo fmt --all --checkPASS;cargo clippy --workspace --all-targets --locked -j4 -- -D warningsPASS. The prior #827 clippy error is absent. Dev-02cargo build -j4, rootbun install --frozen-lockfile, and apps/webbun run buildPASS. Workspace tests are running on dev-01; no retried command or test.First-run workspace test FAIL (exit 101), no retry. Exact command:
CI=1 cargo test --workspace -j4, Nix + strace available, ~/bin/slot. First failing case:calternal-auth --test quota_counter signin_finishes_before_a_large_recount.The test creates 50,000 empty files. Post-failure diagnostics show root has 297 GiB free, but
/tmpis a separate tmpfs with only 42,165 free inodes (96% used), despite 16 GiB free. No unrelated temporary files will be removed. This is not yet declared pre-existing: the exact case is receiving one run on origin/dev at55f35fcde3bc91ca3781055577b93e93819f6cd4in the same environment. Cargo stopped the workspace invocation at this target; later targets were not run by that invocation.Other first-run gates PASS: fmt, clippy, cargo build on both VMs, frozen Bun install and web build on both VMs, bundle-only per-app budgets, case-paths, no-evidence. Chromium and WebKit halves started together with --retries=0, no attempted case rerun. Their TMPDIR is the dedicated root-backed bm10-train/browser-tmp folder.
Single origin/dev attribution for the Rust failure: reproduced, pre-existing environment failure. Base
55f35fcde3bc91ca3781055577b93e93819f6cd4, #779 Nix tooling overlay only. First and only baseline execution:Same file-creation failure at the same line. The test source is unchanged from dev. Root passed the required >50 GiB check; the separate /tmp tmpfs is short of inodes. No train gate retried.
Rust coverage completion decision: the first
cargo test --workspace -j4attempted 25 test executables before Cargo stopped on the confirmed baseline tmpfs-inode failure. The already-built workspace test artifacts contain 53 further executables. Each unattempted target is now selected once by package and target (cargo test -p <package> -j4 --lib,--bin <name>, or--test <name>); all 25 attempted executables, including the failed quota case, are excluded. Doc tests have not run and will receive their first invocation withcargo test --workspace --doc -j4. CI=1, same Nix shell, same head, one ~/bin/slot, no source fixes or retry. The original workspace gate remains FAIL; supplement outcomes will be reported separately.Completed first-run non-browser gates on head
31b867ac95b290c6d53ee042bc6343d04cee3d02. CI=1, Nix, ~/bin/slot.cargo fmt --all --checkcargo clippy --workspace --all-targets --locked -j4 -- -D warningscargo test --workspace -j4cargo build -j4bun install --frozen-lockfilebash -c cd apps/web && bun run buildbash perf/web.sh --bundle-only --gatenode ci/check-case-paths.mjsnode ci/check-no-evidence.mjsDev-02 build/install/web also PASS. Original workspace test result is preserved; previously unattempted Rust targets and doc tests are being completed separately without retrying an attempted test.
#866 per-app bundle budget output:
web.bundle.all_css_brotliweb.bundle.all_css_gzipweb.bundle.all_css_rawweb.bundle.all_js_brotliweb.bundle.all_js_gzipweb.bundle.all_js_rawweb.bundle.chunk.idle-screensweb.bundle.chunk.indexweb.bundle.chunk.InstallHintweb.bundle.chunk.ListSearchweb.bundle.chunk.notes-fill.workerweb.bundle.chunk.Paletteweb.bundle.chunk.PullHintweb.bundle.chunk.replayweb.bundle.chunk.svelteweb.bundle.chunk.two-fingerweb.bundle.chunk.vimweb.bundle.first_css_brotliweb.bundle.first_css_gzipweb.bundle.first_css_rawweb.bundle.first_js_brotliweb.bundle.first_js_gzipweb.bundle.first_js_rawweb.bundle.plugins_css_brotliweb.bundle.plugins_css_gzipweb.bundle.plugins_css_rawweb.bundle.plugins_js_brotliweb.bundle.plugins_js_gzipweb.bundle.plugins_js_rawweb.bundle.total_js_brotliFirst error from the first attempt at the previously unattempted
calternal-authintegration targetreliability_review:Single origin/dev attribution: same failure, exit 101, pre-existing environment failure. Command:
No train test retry. Baseline is
55f35fcde3bc91ca3781055577b93e93819f6cd4, #779 tooling overlay only, same Nix/environment and /tmp filesystem.First Chromium error, first attempt only, CI=1 / --workers=1 / --retries=0. Head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Baseline attribution is running once against origin/dev artifacts using the same test case.First Chromium error, first attempt only, CI=1 / --workers=1 / --retries=0. Head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Baseline attribution is running once against origin/dev artifacts using the same test case.First Chromium error, first attempt only, CI=1 / --workers=1 / --retries=0. Head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Baseline attribution is running once against origin/dev artifacts using the same test case.Baseline runner correction, fully disclosed: the first selector parser retained trailing spaces from Playwright line output. The first 4 Chromium and 3 WebKit baseline invocations therefore reported
Error: No tests found.and executed zero tests (verified each JSON reporter stats has expected=unexpected=skipped=0). These runner logs/JSON are retained. Both own baseline units were stopped withsystemctl --user stop; title whitespace is now stripped, and a corrected runner is giving each failed case its first actual origin/dev attempt. No executed baseline test is repeated, and no train gate/test is retried.The baseline comparisons use the same current test definitions/config harness as the train, with
CALTERNAL_BINandE2E_DISTpointing at the independent origin/dev build (55f35fcde3bc91ca3781055577b93e93819f6cd4, #779 tooling overlay only). This isolates the product change; test definitions introduced by the train are identified when attributing failures. CI=1, Nix + slot, --workers=1 --retries=0, fresh temporary servers per invocation.First browser error, dev01, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev02, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev02, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.All previously unattempted Rust test targets and doc tests are now complete on the fixed train head. No previously attempted target/case was repeated. First-run remainder totals: 1239 passed, 1 failed, 17 ignored. The one failure is the already posted/reproduced
independent_login_completes_before_recount/tmp inode error.Doc gate:
CI=1 cargo test --workspace --doc -j4: PASS. The original workspace command remains FAIL and is not retried. Across original execution + first-attempt continuation, all 78 discovered unit/integration/bin test targets have now executed; 76 targets passed, 2 failed with the separately reproduced /tmp inode exhaustion. All doc tests completed.Exact continuation command per table row:
cargo test -p <package> -j4 --lib,cargo test -p <package> -j4 --bin <name>, orcargo test -p <package> -j4 --test <name>. CI=1, Nix with strace, one ~/bin/slot; same CARGO_PROFILE_DEV_DEBUG=0 / CARGO_PROFILE_TEST_DEBUG=0 / CARGO_INCREMENTAL=0 as original.First browser error, dev02, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.Interim browser attribution, each actual case executed once on origin/dev product artifacts; all reporter stats verified exactly one test attempt and zero retries. Base
55f35fcde3bc91ca3781055577b93e93819f6cd4.BM10 is RED: the six desktop preload failures passed their exact baseline comparisons. Warmed Style still expects
.inspector; palette intent now fetches additional search chunks while the existing tests assert exactly one script. No implementation/test changes are made on this test train. Full train matrix continues to completion; these results are not retried.First browser error, dev01, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev01, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.Additional first-run attribution: Chromium-1440
tree.spec.ts:377(Style sheet tree-lines persistence) PASS on its single origin/dev comparison, so the train failure is new/unresolved. Chromium-1440vim.spec.ts:380also passed its single dev comparison; this is retained as the known pre-existing flake identified in the task brief, not claimed reproduced by this run. The exact first-error comments remain in this PR. No retry of either train case. Chromium sidebar-edge fails at the samecontain: paintlist/count assertion on dev, confirming that one as pre-existing.Current minimum unresolved count is seven: the three preload cases on both desktop browsers, plus Chromium tree-lines Style. Full matrix continues; verdict remains RED.
First browser error, dev02, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev01, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev01, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev02, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev02, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.Phone-stage progress and attribution:
day.spec.ts:41fails on both chromium-390 and webkit-390, and each exact case PASSed its single origin/dev test attempt. These are new/unresolved.tree.spec.ts:377also PASSed on dev for webkit-1440, adding the second desktop Style/tree regression.Both phone browsers now also report
glass.spec.ts:488(Appearance-preview frost). Those baseline selections are not yet attributed: Playwright appended decorative line characters to their console titles, and the streaming selector matched zero tests. The first such launch is verified with expected=unexpected=skipped=0 andError: No tests found.; the same format affects the other browser. These runner errors are retained, not treated as baseline case failures. After the native runs finish, remaining unattempted comparisons will be selected from the JSON reporter’s exact titles. Already attempted baseline cases will be reused, never rerun. The original 7 zero-test launches from trailing whitespace remain disclosed in comment 75661.Verdict remains RED. No train source change or attempted-case retry.
The repaired corpus-readiness gate completed its FIRST full-train attempts on both desktop browsers. No isolated retry is used.
Chromium reports 10/1492 misses (0.67%); WebKit reports 9/1492 misses (0.60%). Both are within the unchanged 2% assertion limit on head
31b867ac95b290c6d53ee042bc6343d04cee3d02, which includes #856b89e39bband #8409dd57224. This records functional corpus coverage only; no dev-VM timing is presented as performance qualification. BM10 remains RED for the separately recorded UI failures.First browser error, dev01, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev01, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev01, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev01, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev01, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev01, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev01, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev01, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev02, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev02, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev02, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev02, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev02, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev01, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev01, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev02, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev02, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev02, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev01, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.Attribution correction for chromium-390
trash-search.spec.ts:14: baseline FAIL does not reproduce the train failure. Keep this train case new/unresolved.Note info,trash-search.spec.ts:29; cannot reach the delete stepRestored “<title>”toast,trash-search.spec.ts:98; it reaches restore much laterThe baseline establishes a separate toast failure, not that the earlier missing-control failure is pre-existing. Both actual attempts are retained, neither rerun. The phone
trash.spec.ts:17delete/Undo case andtree.spec.ts:377Style/tree case PASSed their single dev comparisons, so their train failures are also new/unresolved. This distinction will remain in the final per-case table.First browser error, dev01, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev01, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev01, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev02, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev02, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.First browser error, dev02, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.Native Chromium invocation finished: 1369 passed, 22 failed, 814 explicit skips, 11 unattempted. Its reporter stats count dependency-blocked records among skipped; this table separates them. First attempts only, CI=1, --workers=1 --retries=0.
Totals:
{"failed": 22, "passed": 1369, "skipped": 814, "unattempted": 11}The three sidebar-band cases were blocked by failed contrast; the eight throttled cases were blocked by native scheduling dependencies. All 11 now receive their FIRST attempts in one separate invocation on the same head, native project definitions retained, scheduling dependencies removed. These selected projects have zero prior result records; the runner verifies that before launch. No attempted case is rerun.
Command from apps/web:
CI=1 bunx playwright test --config=playwright.bm10-unrun.config.ts --workers=1 --retries=0 --reporter=line,json --output="$HOME/bm10-train/unrun/test-results". CALTERNAL_BIN/E2E_DIST point at the unchanged train build; JSON/TMPDIR outside repo, Nix + ~/bin/slot, df -h / >50 GiB before launch. Admin-setup and both admin projects already completed in their original invocation, with their native dependency intact.First browser error, dev01, first attempt only. CI=1, --workers=1 --retries=0, head
31b867ac95b290c6d53ee042bc6343d04cee3d02. Each failed case receives one actual origin/dev attempt for attribution.This is a Linux full-suite diagnostic. Its frame/timing values do not qualify GPU motion performance; that requires the Mac VM. The first test failure is retained without retry.
Chromium half is now COMPLETE, all native cases either attempted once or explicitly skipped: 1377 passed, 23 failed, 816 skipped, 0 unattempted. No retries.
Totals:
{"failed": 23, "passed": 1377, "skipped": 816}The 11 dependency-blocked cases received their first attempts: 8 passed, 1 failed, 2 explicit skips. The sidebar project passed all 3. The extra failure is
throttled-390 note-bars-motion.spec.ts:71(Style-sheet motion audit), with its first error in comment 75799. Because this runs on a Linux VM without a GPU, its frame figures are diagnostic only, not motion-performance qualification. The failed case receives one origin/dev attempt under the requested matrix; no train rerun or Mac performance claim.Final JSON-based baseline selection is now executing only the 3 cases without any previous actual baseline result (Appearance preview, idle preload, and the newly attempted motion case). The other 20 completed baseline comparisons are reused. Zero-test runner launches remain separately disclosed and retained.
final dev01 browser matrix and baseline attribution. tested head
31b867ac95b290c6d53ee042bc6343d04cee3d02.Totals:
{"failed": 23, "passed": 1377, "skipped": 816}Each failed case below had exactly one actual origin/dev product comparison, with retry=0. Baseline product and dist:
55f35fcde3bc91ca3781055577b93e93819f6cd4; train test definitions retained, with only #779 Nix tooling overlaid on the baseline. A baseline PASS means new/unresolved, including possible stale test expectations after Style.day.spec.ts:41opens on today and writes nothing until the first changeglass.spec.ts:488the light Appearance preview keeps its page frostpreload.spec.ts:48warmed sheets contain their component in the first DOM updatepreload.spec.ts:111palette Control intent prepares only its own screen before idlepreload.spec.ts:111palette Meta intent prepares only its own screen before idlepreload.spec.ts:8on-demand surfaces preload on idle before openingpreload.spec.ts:8on-demand surfaces preload on timer before openingpreload.spec.ts:8on-demand surfaces preload on pointerover before openingpreload.spec.ts:8on-demand surfaces preload on pointerdown before openingpreload.spec.ts:8on-demand surfaces preload on focusin before openingpreload.spec.ts:48warmed sheets contain their component in the first DOM updatepreload.spec.ts:111palette Control intent prepares only its own screen before idlepreload.spec.ts:111palette Meta intent prepares only its own screen before idlesidebar-edge.spec.ts:8hovering the backdrop tiles never changes the sidebar edgetrash-search.spec.ts:14row opens a Trash note read-only; only Restore brings it backtrash.spec.ts:17Delete in Info moves the note to the Trash, and Undo brings it backtree.spec.ts:377Style sheet: a note chooses its own tree lines, saved with the note and kept on reloadtree.spec.ts:377Style sheet: a note chooses its own tree lines, saved with the note and kept on reloadvim.spec.ts:380Vim mode › : commands in the bar: :n, :s, :%s, :w, :qprefs-offline.spec.ts:107settings offline › a change made offline shows at once, survives a reload with no flash, and is sent when backcontrast.spec.ts:230the bar's sheets keep their contrast over a photo and over a page of huge words, 1440 widecontrast.spec.ts:230the bar's sheets keep their contrast over a photo and over a page of huge words, 390 widenote-bars-motion.spec.ts:71@throttled rest to Style sheet, and back: layouts per frame, longest task and frame gaps at 6xExact baseline commands, each under
CI=1, Nix and~/bin/slot, withCALTERNAL_BIN=~/Developer/Worktrees/bm10-base/target/debug/calternal,E2E_DIST=~/Developer/Worktrees/bm10-base/apps/web/dist, andBM10_BASELINE_PROJECT=<project>:Baseline first error: chromium-1440 e2e/sidebar-edge.spec.ts:8
Baseline first error: chromium-390 e2e/trash-search.spec.ts:14
Baseline first error: throttled-390 note-bars-motion.spec.ts:71
Motion comparison: train reached line 91, longest task 267.755 ms versus <250. Baseline failed line 75, expected bar key tools but received null. This does not reproduce the train failure and does not establish a GPU performance regression. No performance qualification is claimed.
final dev02 browser matrix and baseline attribution. tested head
31b867ac95b290c6d53ee042bc6343d04cee3d02.Totals:
{"failed": 17, "passed": 1351, "skipped": 823}Each failed case below had exactly one actual origin/dev product comparison, with retry=0. Baseline product and dist:
55f35fcde3bc91ca3781055577b93e93819f6cd4; train test definitions retained, with only #779 Nix tooling overlaid on the baseline. A baseline PASS means new/unresolved, including possible stale test expectations after Style.day.spec.ts:41opens on today and writes nothing until the first changeglass.spec.ts:488the light Appearance preview keeps its page frostpreload.spec.ts:48warmed sheets contain their component in the first DOM updatepreload.spec.ts:111palette Control intent prepares only its own screen before idlepreload.spec.ts:111palette Meta intent prepares only its own screen before idlepreload.spec.ts:8on-demand surfaces preload on idle before openingpreload.spec.ts:8on-demand surfaces preload on timer before openingpreload.spec.ts:8on-demand surfaces preload on pointerover before openingpreload.spec.ts:8on-demand surfaces preload on pointerdown before openingpreload.spec.ts:8on-demand surfaces preload on focusin before openingpreload.spec.ts:48warmed sheets contain their component in the first DOM updatepreload.spec.ts:111palette Control intent prepares only its own screen before idlepreload.spec.ts:111palette Meta intent prepares only its own screen before idletrash-search.spec.ts:14row opens a Trash note read-only; only Restore brings it backtrash.spec.ts:17Delete in Info moves the note to the Trash, and Undo brings it backtree.spec.ts:377Style sheet: a note chooses its own tree lines, saved with the note and kept on reloadtree.spec.ts:377Style sheet: a note chooses its own tree lines, saved with the note and kept on reloadExact baseline commands, each under
CI=1, Nix and~/bin/slot, withCALTERNAL_BIN=~/Developer/Worktrees/bm10-base/target/debug/calternal,E2E_DIST=~/Developer/Worktrees/bm10-base/apps/web/dist, andBM10_BASELINE_PROJECT=<project>:Baseline first error: webkit-390 e2e/trash-search.spec.ts:14
final BM10 test report: RED, do not merge.
PR #880, branch
train/2026-11-03-bm10, tested and current head31b867ac95b290c6d53ee042bc6343d04cee3d02, assembly base/origin-dev comparison product55f35fcde3bc91ca3781055577b93e93819f6cd4. PR remains open and unmerged. BM9 #869 is closed with the replacement link.Included source heads, captured from each current PR head at assembly time, merged in this order using --no-ff:
7b97e4d14231be07f6a80cb9ca172d02442c487e626388da9052eaecb159d735f0cadc5e59e88312ba1f47dc94797d4a8a937298464b5e4828e301c2f1c1aa961e169ef99e132063a97ccbd9a89a5def76f11dc4ba06468a2a0ed4d4592cea60382066965d7b9b36cd008de78851809724c90a85d92b40a7ccaece3dfecbe2048634fc792d7d4a2c6e31f3245f7d1a59776411e7f3353d0023817b43affae51e316b43e9578c3e4d2944df8df43caebc611356f750cce9dcceb87f23a9f346300b3336e315ff6c0c40448327a15730271d56226b898e48bcc87b2a4dc38c3083d51f4adcf5cd76a70f1f6960b427413e144e717145e35f70356f593b7c04a527e00f7b17b89e39bb313bb06b92da274124c6bbde30e2250a9dd572249bd3edbcf8e1475a940070c4d03f1fc7136defb50ef7039bfb0be76a4d18d175f56a61d8bcca58e3d8af37b1246f81ff0a2f55faa40704262f0b59f18406f03ca55b2fe745e3e11fedd9e84df2c3a44cda090d763540366d03478ce7922a4cdfd455842942731aabc05474c7929597d57090a7cc19071be8455d718822ba98f6b9a402c5fd345242Other ports omitted as requested. #863 merge was aborted because choosing palette animation origin/target and porting the deleted Inspector requires design choices. #831 inherited artifacts were removed from the repository and preserved in comment 75592. No source changes after the fixed test head.
cargo fmt --all --checkcargo clippy --workspace --all-targets --locked -j4 -- -D warningscargo test --workspace -j4cargo build -j4bun install --frozen-lockfile(cd apps/web && bun run build)PERF_DIST="$PWD/apps/web/dist" PERF_OUT="$HOME/bm10-train/bundle" PERF_WORK="$HOME/bm10-train/bundle-work" bash perf/web.sh --bundle-only --gatenode ci/check-case-paths.mjsnode ci/check-no-evidence.mjsAll commands CI=1, Nix with strace, heavy commands through ~/bin/slot. Cargo used -j4 and consistent
CARGO_PROFILE_DEV_DEBUG=0 CARGO_PROFILE_TEST_DEBUG=0 CARGO_INCREMENTAL=0. Root disk checks exceeded 50 GiB before the train. Native browser halves started together; admin-setup ran with its dependents on each VM. Command from apps/web:bunx playwright test --config=playwright.bm10.config.ts --output="$HOME/bm10-train/test-results" --workers=1 --retries=0 --reporter=line,json, with train CALTERNAL_BIN and E2E_DIST. Native project definitions retained; cross-half scheduling dependencies removed.First-run workspace tests stopped after 25 executables. The 53 previously unattempted targets then received their first attempts, followed by
cargo test --workspace --doc -j4; no attempted target was rerun. All 78 discovered executable targets covered: 76 pass, 2 fail; docs pass. Both failing cases reproduced once on dev with the same ENOSPC:quota_counter::signin_finishes_before_a_large_recountline 62 andreliability_review::independent_login_completes_before_recountline 319. Root disk had space; the separate /tmp tmpfs lacked enough inodes for their 50,000-file fixtures. Rust target table, gate and per-app budget table.Browser total: 2728 passed, 40 failed, 1639 explicitly skipped, 0 unattempted. Eleven Chromium cases blocked by a failed scheduling dependency received their first attempts separately: 8 pass, 1 fail, 2 skip. Original command failure remains unchanged. Every actual browser case had retry=0.
Attribution: all 40 browser failures received exactly one actual dev-product comparison. One same-error reproduction: chromium-1440 sidebar-edge.spec.ts:8, contain-paint array assertion line 21. One known historical pre-existing flake from the brief: chromium-1440 vim.spec.ts:380; its comparison passed, so not reproduced here. The other 38 are new/unresolved. This includes both trash-search.spec.ts:14 failures: train times out at missing Note info line 29, baseline instead fails at Restored-toast line 98. Motion remains unresolved: train reaches longest-task assertion line 91, baseline lacks the tools bar and fails line 75. Linux motion/frame data is diagnostic only, with no GPU performance qualification or performance-regression claim.
Per-project matrices, every failing-case attribution, exact baseline commands and baseline first errors: Chromium, WebKit. All 40 train first-error blocks are posted earlier in this PR. Common unresolved cases concern Style/old Info selectors, Log the time, palette loading expectations, offline preferences, contrast and Appearance preview alpha. This report does not assert whether each is a product defect or outdated expectation.
The corpus readiness gate passed its first desktop attempts at the unchanged 2% threshold: Chromium 10/1492 misses (0.67%), WebKit 9/1492 (0.60%). Corpus detail.
Runner audit: 12 baseline selection launches matched zero tests (7 whitespace, 5 decorative title suffixes). They were selection errors, not actual test attempts. Corrected exact selectors ran only missing cases; prior actual results were reused. No train or baseline case was retried.
Cleanup complete on both VMs: no active bm10 units; both owned bm10/bm10-base worktrees, build trees, seeded browser Homes, traces/test-results, bundle work and temporary browser directories removed. Only small logs/JSON remain outside the repository. The control review worktree is retained, tracked tree clean. No other jobs or worktrees touched.
SHA transcription correction: earlier comments 75636, 75652, 75653, 75655, 75663, 75664, 75665, 75667, 75674, 75690, 75704, 75707, 75709, 75719, 75721, 75739, 75746, 75750, 75751, 75752, 75753, 75754, 75755, 75756, 75760, 75761, 75762, 75763, 75764, 75765, 75766, 75767, 75768, 75769, 75771, 75777, 75784, 75788, 75789, 75790, 75791, 75799 had one extra trailing digit in the displayed full SHA; corrected to the verified 40-character head above. VM, local and Forgejo heads agree; tested code did not change.
Replaced by Train BM11 #883, same requested stack minus Style #850/#851/#852 and #863. BM10 was red mostly from the Style ports, which are being fixed separately. BM11 uses root-disk TMPDIR for Rust 50,000-file fixtures and Playwright temp Homes.
kayg referenced this pull request2026-11-03 02:09:05 +00:00
Pull request closed