Train BM2: storage temp folder, flaky fixes, mockup values, Composer #770

Closed
kayg wants to merge 19 commits from train/2026-10-30-bm2 into dev
Owner

Assembles BM2 from dev d83e54db, merging in order: #759 c129eb38, #763 628a7dd8, mockup values 04a69711, Composer 10659f25. Excludes #764/#767 and BM1 #756. No merge or deployment is authorized.

Tested head: ca5b59c40262e7b816dd64ad2209f3d426be8685, pushed before the browser run. Host: 10by32-01-std (arm64), build-pool lease c4d1f0dc28954665b24fb9c646bf9d40, heavy commands through /usr/local/bin/build-slot.sh with CALTERNAL_TRAIN=1. Half B runs separately on 10by32-02-std. Train verdict: FAIL; do not merge.

Merge conflicts (all during Composer merge):

  • apps/web/src/components/Palette.svelte: Composer structure and phone layout, retaining mockup radius token.
  • crates/fsio/src/lib.rs: retain #759 private cleanup/recovery APIs; omit unused Composer conditional-delete helper (Composer uses durable Trash retention instead).
  • crates/fsio/src/tests.rs: retain storage regression helpers; omit tests of that unused helper.
  • crates/notes/src/bulk/mod.rs: keep both placement recovery and undo guard modules.
  • crates/notes/src/deletion.rs: keep Composer Trash-based recovery and reusable daily identity, remove obsolete unlink helper; simulated explicit test deletions use remove_user_file.
  • crates/notes/src/lib.rs: register both regression modules.
  • crates/notes/src/trash.rs: retain storage documentation and merged Composer behavior.

Integration fixes: module formatting; retained-undo publication in crates/fsio/src/swap.rs uses #759 private-storage exclusive publication instead of a direct unlink after hard linking. all_js budget is the approved 315 KB; remaining budgets unchanged.

Gates on the merged head

Gate Exit Output
cargo fmt --all --check 0 Pass
cargo clippy --workspace --all-targets --locked -- -D warnings 0 Pass
cargo test --workspace --locked --no-fail-fast 101 1269 passed, 3 failed, 20 ignored across 90 test targets (including doc tests); calternal-tasks 41/41 passed
Editor and web typechecks 0 Pass; web: 0 errors, 14 Svelte warnings
Web lint 0 Pass
Editor unit tests 0 300 passed
Primitives unit tests 0 38 passed
Web unit tests 0 77 passed
perf/web.sh --bundle-only --gate 0 Pass; unchanged budgets except approved all_js 315 KB
Bundle gate output
| undefined>(views.get(id));
                                                           ^
20:   $effect(() => {
21:     const v = views.get(id);
9:57:02 AM [vite-plugin-svelte] src/components/Settings.svelte:601:2 Unused CSS selector ".seg.wide button"
https://svelte.dev/e/css_unused_selector
599:     text-underline-offset: 2px;
600:   }
601:   .seg.wide button {
                       ^
602:     flex: 1;
603:   }
9:57:02 AM [vite-plugin-svelte] src/components/Settings.svelte:604:2 Unused CSS selector ".phone .seg.wide button"
https://svelte.dev/e/css_unused_selector
602:     flex: 1;
603:   }
604:   .phone .seg.wide button {
                              ^
605:     padding: 0 6px;
606:     font-size: calc(12.5 * var(--type-px));
9:57:02 AM [vite-plugin-svelte] src/components/Settings.svelte:754:2 Unused CSS selector ".toggle input"
https://svelte.dev/e/css_unused_selector
752:     font-weight: 400;
753:   }
754:   .toggle input {
                    ^
755:     appearance: none;
756:     flex: none;
9:57:02 AM [vite-plugin-svelte] src/components/Settings.svelte:764:2 Unused CSS selector ".toggle input::after"
https://svelte.dev/e/css_unused_selector
762:     transition: background-color 150ms var(--ease-out);
763:   }
764:   .toggle input::after {
                           ^
765:     content: "";
766:     position: absolute;
9:57:02 AM [vite-plugin-svelte] src/components/Settings.svelte:776:2 Unused CSS selector ".toggle input:checked"
https://svelte.dev/e/css_unused_selector
774:     transition: translate 200ms var(--ease-out);
775:   }
776:   .toggle input:checked {
                            ^
777:     background: var(--accent);
778:   }
9:57:02 AM [vite-plugin-svelte] src/components/Settings.svelte:779:2 Unused CSS selector ".toggle input:checked::after"
https://svelte.dev/e/css_unused_selector
777:     background: var(--accent);
778:   }
779:   .toggle input:checked::after {
                                   ^
780:     translate: 16px 0;
781:   }
9:57:02 AM [vite-plugin-svelte] src/components/Inspector.svelte:19:7 This reference only captures the initial value of `noteId`. Did you mean to reference it inside a closure instead?
https://svelte.dev/e/state_referenced_locally
17:   const isTitle = $derived(current === "h1");
18:   const why = (_t: BlockType) => undefined as string | undefined;
19:   void noteId;
                 ^
20: 
21:   function apply(type: BlockType) {
9:57:02 AM [vite-plugin-svelte] src/components/InsertSheet.svelte:42:7 This reference only captures the initial value of `noteId`. Did you mean to reference it inside a closure instead?
https://svelte.dev/e/state_referenced_locally
40:     openSheet(null);
41:   }
42:   void noteId;
                 ^
43: 
44:   function key(e: KeyboardEvent) {
9:57:02 AM [vite-plugin-svelte] src/components/InfoSheet.svelte:383:2 Unused CSS selector ".avatar.agent"
https://svelte.dev/e/css_unused_selector
381:     color: var(--accent);
382:   }
383:   .avatar.agent {
                    ^
384:     background: var(--hover);
385:     color: var(--ink-2);
9:57:03 AM [vite-plugin-svelte] src/components/NoteList.svelte:126:14 This reference only captures the initial value of `phone`. Did you mean to reference it inside a closure instead?
https://svelte.dev/e/state_referenced_locally
124:   // A phone in a browser tab scrolls the document, not this box (PhoneStack, #445): where the rows are
125:   // is then the window's scroll less where this box starts, and the view is the window.
126:   const doc = phone && phoneDocScroll();
                        ^
127:   $effect(() => {
128:     const el = scroll;
9:57:03 AM [vite-plugin-svelte] /home/agent/wt/train-bm2/packages/ui/src/components/Morph.svelte:82:17 This reference only captures the initial value of `role`. Did you mean to reference it inside a closure instead?
https://svelte.dev/e/state_referenced_locally
80:   // The bar becoming a sheet (and back) is one glass shape whose edges ride the sheet spring (IN4, IN8:
81:   // stiffness 400, damping 36, no bounce). `lastRole` is still the old one while the new layer is made.
82:   let lastRole = role;
                         ^
83:   const sheetSwap = () => role === "dialog" || lastRole === "dialog";
84:   let sheetish = $state(role === "dialog");
9:57:03 AM [vite-plugin-svelte] /home/agent/wt/train-bm2/packages/ui/src/components/Morph.svelte:84:24 This reference only captures the initial value of `role`. Did you mean to reference it inside a derived instead?
https://svelte.dev/e/state_referenced_locally
82:   let lastRole = role;
83:   const sheetSwap = () => role === "dialog" || lastRole === "dialog";
84:   let sheetish = $state(role === "dialog");
                                ^
85:   let sheetTimer = 0;
86:   $effect(() => {
[plugin builtin:vite-reporter] 
(!) Some chunks are larger than 500 kB after minification. Consider:
- Using dynamic import() to code-split the application
- Use build.rolldownOptions.output.codeSplitting to improve chunking: https://rolldown.rs/reference/OutputOptions.codeSplitting
- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.
| metric | Home | unit | n | p50 | p95 | max | budget | |
|---|---:|---|---:|---:|---:|---:|---|---|
| `web.bundle.all_css_brotli` | - | KB | 1 | 36.2 | 36.2 | 36.2 |  |  |
| `web.bundle.all_css_gzip` | - | KB | 1 | 41.8 | 41.8 | 41.8 |  |  |
| `web.bundle.all_css_raw` | - | KB | 1 | 182 | 182 | 182 |  |  |
| `web.bundle.all_js_brotli` | - | KB | 1 | 312 | 312 | 312 | p95 ≤ 315 | ok |
| `web.bundle.all_js_gzip` | - | KB | 1 | 364 | 364 | 364 |  |  |
| `web.bundle.all_js_raw` | - | KB | 1 | 1058 | 1058 | 1058 |  |  |
| `web.bundle.first_css_brotli` | - | KB | 1 | 20.4 | 20.4 | 20.4 | p95 ≤ 22.1 | ok |
| `web.bundle.first_css_gzip` | - | KB | 1 | 23.3 | 23.3 | 23.3 |  |  |
| `web.bundle.first_css_raw` | - | KB | 1 | 118 | 118 | 118 |  |  |
| `web.bundle.first_js_brotli` | - | KB | 1 | 240 | 240 | 240 | p95 ≤ 240 | ok |
| `web.bundle.first_js_gzip` | - | KB | 1 | 282 | 282 | 282 |  |  |
| `web.bundle.first_js_raw` | - | KB | 1 | 851 | 851 | 851 |  |  |
| `web.bundle.plugins_css_brotli` | - | KB | 1 | 0.00 | 0.00 | 0.00 |  |  |
| `web.bundle.plugins_css_gzip` | - | KB | 1 | 0.00 | 0.00 | 0.00 |  |  |
| `web.bundle.plugins_css_raw` | - | KB | 1 | 0.00 | 0.00 | 0.00 |  |  |
| `web.bundle.plugins_js_brotli` | - | KB | 1 | 37.9 | 37.9 | 37.9 | p95 ≤ 45 | ok |
| `web.bundle.plugins_js_gzip` | - | KB | 1 | 43.0 | 43.0 | 43.0 |  |  |
| `web.bundle.plugins_js_raw` | - | KB | 1 | 135 | 135 | 135 |  |  |


Rust failure evidence and classification

The preliminary Rust command stopped at contacts-actions: case-only rename left Ravi Kumar.md.conflict-1, and the import-undo sweep retained a card. The final full run used --no-fail-fast, attempted all workspace targets, and failed the following three cases. This is a failed gate even where isolated reruns pass.

Case Final full run Three isolated reruns Classification
auth schema_two_copy_keeps_real_credentials_sessions_and_recovery people count 1, expected 2 (migration.rs:86) 3 pass intermittent
contacts-actions a_sweep_waits_for_a_copy_selected_before_import_undo card store is not empty (tests/sweep.rs:103) 3 fail reproducible
fsio no_producer_creates_temporary_files_outside_the_private_directory upload staging cannot be verified exclusively; outside bytes retained (private_tmp_tests.rs:49) 3 pass intermittent
contacts-actions case_only_renames (preliminary run only) passes in final full run 3 pass intermittent

Browser half A: first-run verdict

App projects use one worker, zero retries. The temporary wrapper selects every project whose name contains chromium, plus throttled-*, flow, passkeys, admin-setup, contrast, and both sidebar-band-* projects. Dependency edges to unselected half-B projects are removed; test cases and assertions are unchanged. The primitives matrix runs both Chromium and WebKit with the repository CI settings. Linux CI intentionally excludes WebKit toast tests as documented in its config.

Two app-runner setup attempts stopped before any test ran (external config module mode, then web-server cwd). They are retained as setup-error logs and are not counted as test runs. The first actual app run is the verdict.

Project Passed Failed Skipped Not run First-run verdict
chromium-1440 367 18 586 0 FAIL
chromium-390 802 18 151 0 FAIL
throttled-1440 0 0 0 2 BLOCKED
throttled-390 0 0 0 2 BLOCKED
admin-chromium-1440 12 0 9 0 PASS
admin-chromium-390 12 0 9 0 PASS
flow 1 0 0 0 PASS
passkeys 1 0 0 0 PASS
admin-setup 1 0 0 0 PASS
prefs-chromium 7 0 0 0 PASS
contrast 9 0 0 0 PASS
sidebar-band-chromium 3 0 0 0 PASS
sidebar-band-webkit 3 0 0 0 PASS
primitives / chromium 47 1 0 0 FAIL
primitives / webkit 36 0 0 0 PASS

Primitives Chromium first run: 47 passed, 1 failed; WebKit: 36 passed. toast.spec.ts:16, “9 → 10 → 11”: capsule width stayed 214 px rather than increasing. Three isolated reruns all failed; reproducible. First-run verdict remains FAIL.

The first app run had 1,218 passed, 36 failed, 755 skipped, and 4 dependency-blocked cases. All 36 failures are runner setup failures: CALTERNAL_BIN was unset in the sign-out fixture (signout-fixture.ts:217), so spawn(undefined, ...) failed before assertions. The config default starts the shared binary but does not populate that environment variable. Classification reruns supply the explicit merged binary path. The four blocked throttled cases passed their first actual execution with dependency scheduling bypassed (--no-deps). The first-run FAIL verdict is unchanged.

App first-run totals: {"startTime": "2026-10-30T04:24:51.679Z", "duration": 2588508.645, "expected": 1218, "skipped": 759, "unexpected": 36, "flaky": 0}.

  • chromium-1440 review4-signout.spec.ts:73 — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › a remotely ended session refuses typing while its next document is delayed
TypeError: The "file" argument must be of type string. Received undefined

   at signout-fixture.ts:217

  215 |       origin = `https://localhost:${await freePort()}`
  216 |       const apiPort = await freePort()
> 217 |       server = spawn(process.env.CALTERNAL_BIN!, ['serve', '--create', '--listen', `127.0.0.1:${apiPort}`, '--data', data, '--web', process.env.E2E_DIST!, '--origin', origin], { stdio: 'ignore' })
      |                ^
  218 |       await expect.poll(async () => fetch(`http://127.0.0.1:${apiPort}/healthz`).then((r) => r.status).catch(() => 0), { timeout: 30_000 }).toBe(200) // a loaded host starts it slowly
  219 |       proxy = spawn('node', [resolve('e2e/tls-proxy.mjs'), new URL(origin).port, String(apiPort)], { stdio: 'ignore' })
  220 |       const probe = await request.newContext({ ignoreHTTPSErrors: true })
    at Object.device (/home/agent/wt/train-bm2/apps/web/e2e/signout-fixture.ts:217:16)
  • chromium-1440 review4-signout.spec.ts:131 — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › typing during logout is refused (stuck uplink=true, BroadcastChannel=true)

  • chromium-1440 review4-signout.spec.ts:131 — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › typing during logout is refused (stuck uplink=true, BroadcastChannel=false)

  • chromium-1440 review4-signout.spec.ts:131 — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › typing during logout is refused (stuck uplink=false, BroadcastChannel=true)

  • chromium-1440 review4-signout.spec.ts:131 — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › typing during logout is refused (stuck uplink=false, BroadcastChannel=false)

  • chromium-1440 review4-signout.spec.ts:242 — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › server too_large refusal stays until a receipt covers the current state, in sibling tabs and after reload (BroadcastChannel=true)

  • chromium-1440 review4-signout.spec.ts:242 — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › server too_large refusal stays until a receipt covers the current state, in sibling tabs and after reload (BroadcastChannel=false)

  • chromium-1440 review4-signout.spec.ts:242 — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › server room_error refusal stays until a receipt covers the current state, in sibling tabs and after reload (BroadcastChannel=true)

  • chromium-1440 review4-signout.spec.ts:242 — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › server room_error refusal stays until a receipt covers the current state, in sibling tabs and after reload (BroadcastChannel=false)

  • chromium-1440 review4-signout.spec.ts:387 — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › signing in again in the signed-out document restores editing

  • chromium-1440 review4-signout.spec.ts:411 — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › cancelling the warning restores sibling editing

  • chromium-390 review4-signout.spec.ts:73 — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › a remotely ended session refuses typing while its next document is delayed

  • chromium-390 review4-signout.spec.ts:131 — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › typing during logout is refused (stuck uplink=true, BroadcastChannel=true)

  • chromium-390 review4-signout.spec.ts:131 — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › typing during logout is refused (stuck uplink=true, BroadcastChannel=false)

  • chromium-390 review4-signout.spec.ts:131 — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › typing during logout is refused (stuck uplink=false, BroadcastChannel=true)

  • chromium-390 review4-signout.spec.ts:131 — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › typing during logout is refused (stuck uplink=false, BroadcastChannel=false)

  • chromium-390 review4-signout.spec.ts:242 — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › server too_large refusal stays until a receipt covers the current state, in sibling tabs and after reload (BroadcastChannel=true)

  • chromium-390 review4-signout.spec.ts:242 — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › server too_large refusal stays until a receipt covers the current state, in sibling tabs and after reload (BroadcastChannel=false)

  • chromium-390 review4-signout.spec.ts:242 — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › server room_error refusal stays until a receipt covers the current state, in sibling tabs and after reload (BroadcastChannel=true)

  • chromium-390 review4-signout.spec.ts:242 — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › server room_error refusal stays until a receipt covers the current state, in sibling tabs and after reload (BroadcastChannel=false)

  • chromium-390 review4-signout.spec.ts:387 — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › signing in again in the signed-out document restores editing

  • chromium-390 review4-signout.spec.ts:411 — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › cancelling the warning restores sibling editing

  • chromium-1440 review6-signout.spec.ts:7 — review6-signout.spec.ts › cancelling one of two sign-outs keeps the other editor frozen (BroadcastChannel=true)

  • chromium-1440 review6-signout.spec.ts:7 — review6-signout.spec.ts › cancelling one of two sign-outs keeps the other editor frozen (BroadcastChannel=false)

  • chromium-390 review6-signout.spec.ts:7 — review6-signout.spec.ts › cancelling one of two sign-outs keeps the other editor frozen (BroadcastChannel=true)

  • chromium-390 review6-signout.spec.ts:7 — review6-signout.spec.ts › cancelling one of two sign-outs keeps the other editor frozen (BroadcastChannel=false)

  • chromium-1440 signout.spec.ts:21 — signout.spec.ts › sign out wipes this device › online: disk, other tabs, history and the old server session are cleared

  • chromium-1440 signout.spec.ts:63 — signout.spec.ts › sign out wipes this device › offline: one confirmation, cancellation keeps edits, signing out anyway wipes them

  • chromium-1440 signout.spec.ts:91 — signout.spec.ts › sign out wipes this device › remote sign-out retains copies for the same account, then a different account wipes them

  • chromium-1440 signout.spec.ts:143 — signout.spec.ts › sign out wipes this device › an old-name session opens sign-in and preserves unsent local edits

  • chromium-1440 signout.spec.ts:172 — signout.spec.ts › sign out wipes this device › opening an already revoked session retains only owned note copies

  • chromium-390 signout.spec.ts:21 — signout.spec.ts › sign out wipes this device › online: disk, other tabs, history and the old server session are cleared

  • chromium-390 signout.spec.ts:63 — signout.spec.ts › sign out wipes this device › offline: one confirmation, cancellation keeps edits, signing out anyway wipes them

  • chromium-390 signout.spec.ts:91 — signout.spec.ts › sign out wipes this device › remote sign-out retains copies for the same account, then a different account wipes them

  • chromium-390 signout.spec.ts:143 — signout.spec.ts › sign out wipes this device › an old-name session opens sign-in and preserves unsent local edits

  • chromium-390 signout.spec.ts:172 — signout.spec.ts › sign out wipes this device › opening an already revoked session retains only owned note copies

Corrected-environment run 1: 40 passed (36 original failures plus the 4 blocked throttled cases). All four throttled cases passed their first actual execution: 2/2 at each width. Original verdict is unchanged.

Completed classification

All 36 original app failures received exactly three isolated attempts with CALTERNAL_BIN set. Outcomes: {'passed': 108}. These were runner configuration failures, not product assertions. The first-run FAIL verdict remains unchanged. The explicit list selected only the original 36 failures for repetitions 2 and 3.

Logs, JSON reports and retained traces: /tmp/train-bm2-results on 10by32-01-std. No merge or deployment performed. Cleanup complete: this worktree’s target/ and generated Python cache were deleted, the lease heartbeat was stopped, and the worktree is clean. The primitives frontend tree is identical to the final tested head; the final integration correction changed only Rust publication code. No Forgejo check statuses or reviews were present at handback.

Assembles BM2 from dev d83e54db, merging in order: #759 c129eb38, #763 628a7dd8, mockup values 04a69711, Composer 10659f25. Excludes #764/#767 and BM1 #756. No merge or deployment is authorized. Tested head: `ca5b59c40262e7b816dd64ad2209f3d426be8685`, pushed before the browser run. Host: 10by32-01-std (arm64), build-pool lease c4d1f0dc28954665b24fb9c646bf9d40, heavy commands through `/usr/local/bin/build-slot.sh` with `CALTERNAL_TRAIN=1`. Half B runs separately on 10by32-02-std. **Train verdict: FAIL; do not merge.** Merge conflicts (all during Composer merge): - `apps/web/src/components/Palette.svelte`: Composer structure and phone layout, retaining mockup radius token. - `crates/fsio/src/lib.rs`: retain #759 private cleanup/recovery APIs; omit unused Composer conditional-delete helper (Composer uses durable Trash retention instead). - `crates/fsio/src/tests.rs`: retain storage regression helpers; omit tests of that unused helper. - `crates/notes/src/bulk/mod.rs`: keep both placement recovery and undo guard modules. - `crates/notes/src/deletion.rs`: keep Composer Trash-based recovery and reusable daily identity, remove obsolete unlink helper; simulated explicit test deletions use remove_user_file. - `crates/notes/src/lib.rs`: register both regression modules. - `crates/notes/src/trash.rs`: retain storage documentation and merged Composer behavior. Integration fixes: module formatting; retained-undo publication in `crates/fsio/src/swap.rs` uses #759 private-storage exclusive publication instead of a direct unlink after hard linking. all_js budget is the approved 315 KB; remaining budgets unchanged. ## Gates on the merged head | Gate | Exit | Output | |---|---:|---| | `cargo fmt --all --check` | 0 | Pass | | `cargo clippy --workspace --all-targets --locked -- -D warnings` | 0 | Pass | | `cargo test --workspace --locked --no-fail-fast` | 101 | 1269 passed, 3 failed, 20 ignored across 90 test targets (including doc tests); calternal-tasks 41/41 passed | | `Editor and web typechecks` | 0 | Pass; web: 0 errors, 14 Svelte warnings | | `Web lint` | 0 | Pass | | `Editor unit tests` | 0 | 300 passed | | `Primitives unit tests` | 0 | 38 passed | | `Web unit tests` | 0 | 77 passed | | `perf/web.sh --bundle-only --gate` | 0 | Pass; unchanged budgets except approved all_js 315 KB | <details><summary>Bundle gate output</summary> ```text | undefined>(views.get(id)); ^ 20: $effect(() => { 21: const v = views.get(id); 9:57:02 AM [vite-plugin-svelte] src/components/Settings.svelte:601:2 Unused CSS selector ".seg.wide button" https://svelte.dev/e/css_unused_selector 599: text-underline-offset: 2px; 600: } 601: .seg.wide button { ^ 602: flex: 1; 603: } 9:57:02 AM [vite-plugin-svelte] src/components/Settings.svelte:604:2 Unused CSS selector ".phone .seg.wide button" https://svelte.dev/e/css_unused_selector 602: flex: 1; 603: } 604: .phone .seg.wide button { ^ 605: padding: 0 6px; 606: font-size: calc(12.5 * var(--type-px)); 9:57:02 AM [vite-plugin-svelte] src/components/Settings.svelte:754:2 Unused CSS selector ".toggle input" https://svelte.dev/e/css_unused_selector 752: font-weight: 400; 753: } 754: .toggle input { ^ 755: appearance: none; 756: flex: none; 9:57:02 AM [vite-plugin-svelte] src/components/Settings.svelte:764:2 Unused CSS selector ".toggle input::after" https://svelte.dev/e/css_unused_selector 762: transition: background-color 150ms var(--ease-out); 763: } 764: .toggle input::after { ^ 765: content: ""; 766: position: absolute; 9:57:02 AM [vite-plugin-svelte] src/components/Settings.svelte:776:2 Unused CSS selector ".toggle input:checked" https://svelte.dev/e/css_unused_selector 774: transition: translate 200ms var(--ease-out); 775: } 776: .toggle input:checked { ^ 777: background: var(--accent); 778: } 9:57:02 AM [vite-plugin-svelte] src/components/Settings.svelte:779:2 Unused CSS selector ".toggle input:checked::after" https://svelte.dev/e/css_unused_selector 777: background: var(--accent); 778: } 779: .toggle input:checked::after { ^ 780: translate: 16px 0; 781: } 9:57:02 AM [vite-plugin-svelte] src/components/Inspector.svelte:19:7 This reference only captures the initial value of `noteId`. Did you mean to reference it inside a closure instead? https://svelte.dev/e/state_referenced_locally 17: const isTitle = $derived(current === "h1"); 18: const why = (_t: BlockType) => undefined as string | undefined; 19: void noteId; ^ 20: 21: function apply(type: BlockType) { 9:57:02 AM [vite-plugin-svelte] src/components/InsertSheet.svelte:42:7 This reference only captures the initial value of `noteId`. Did you mean to reference it inside a closure instead? https://svelte.dev/e/state_referenced_locally 40: openSheet(null); 41: } 42: void noteId; ^ 43: 44: function key(e: KeyboardEvent) { 9:57:02 AM [vite-plugin-svelte] src/components/InfoSheet.svelte:383:2 Unused CSS selector ".avatar.agent" https://svelte.dev/e/css_unused_selector 381: color: var(--accent); 382: } 383: .avatar.agent { ^ 384: background: var(--hover); 385: color: var(--ink-2); 9:57:03 AM [vite-plugin-svelte] src/components/NoteList.svelte:126:14 This reference only captures the initial value of `phone`. Did you mean to reference it inside a closure instead? https://svelte.dev/e/state_referenced_locally 124: // A phone in a browser tab scrolls the document, not this box (PhoneStack, #445): where the rows are 125: // is then the window's scroll less where this box starts, and the view is the window. 126: const doc = phone && phoneDocScroll(); ^ 127: $effect(() => { 128: const el = scroll; 9:57:03 AM [vite-plugin-svelte] /home/agent/wt/train-bm2/packages/ui/src/components/Morph.svelte:82:17 This reference only captures the initial value of `role`. Did you mean to reference it inside a closure instead? https://svelte.dev/e/state_referenced_locally 80: // The bar becoming a sheet (and back) is one glass shape whose edges ride the sheet spring (IN4, IN8: 81: // stiffness 400, damping 36, no bounce). `lastRole` is still the old one while the new layer is made. 82: let lastRole = role; ^ 83: const sheetSwap = () => role === "dialog" || lastRole === "dialog"; 84: let sheetish = $state(role === "dialog"); 9:57:03 AM [vite-plugin-svelte] /home/agent/wt/train-bm2/packages/ui/src/components/Morph.svelte:84:24 This reference only captures the initial value of `role`. Did you mean to reference it inside a derived instead? https://svelte.dev/e/state_referenced_locally 82: let lastRole = role; 83: const sheetSwap = () => role === "dialog" || lastRole === "dialog"; 84: let sheetish = $state(role === "dialog"); ^ 85: let sheetTimer = 0; 86: $effect(() => { [plugin builtin:vite-reporter] (!) Some chunks are larger than 500 kB after minification. Consider: - Using dynamic import() to code-split the application - Use build.rolldownOptions.output.codeSplitting to improve chunking: https://rolldown.rs/reference/OutputOptions.codeSplitting - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit. | metric | Home | unit | n | p50 | p95 | max | budget | | |---|---:|---|---:|---:|---:|---:|---|---| | `web.bundle.all_css_brotli` | - | KB | 1 | 36.2 | 36.2 | 36.2 | | | | `web.bundle.all_css_gzip` | - | KB | 1 | 41.8 | 41.8 | 41.8 | | | | `web.bundle.all_css_raw` | - | KB | 1 | 182 | 182 | 182 | | | | `web.bundle.all_js_brotli` | - | KB | 1 | 312 | 312 | 312 | p95 ≤ 315 | ok | | `web.bundle.all_js_gzip` | - | KB | 1 | 364 | 364 | 364 | | | | `web.bundle.all_js_raw` | - | KB | 1 | 1058 | 1058 | 1058 | | | | `web.bundle.first_css_brotli` | - | KB | 1 | 20.4 | 20.4 | 20.4 | p95 ≤ 22.1 | ok | | `web.bundle.first_css_gzip` | - | KB | 1 | 23.3 | 23.3 | 23.3 | | | | `web.bundle.first_css_raw` | - | KB | 1 | 118 | 118 | 118 | | | | `web.bundle.first_js_brotli` | - | KB | 1 | 240 | 240 | 240 | p95 ≤ 240 | ok | | `web.bundle.first_js_gzip` | - | KB | 1 | 282 | 282 | 282 | | | | `web.bundle.first_js_raw` | - | KB | 1 | 851 | 851 | 851 | | | | `web.bundle.plugins_css_brotli` | - | KB | 1 | 0.00 | 0.00 | 0.00 | | | | `web.bundle.plugins_css_gzip` | - | KB | 1 | 0.00 | 0.00 | 0.00 | | | | `web.bundle.plugins_css_raw` | - | KB | 1 | 0.00 | 0.00 | 0.00 | | | | `web.bundle.plugins_js_brotli` | - | KB | 1 | 37.9 | 37.9 | 37.9 | p95 ≤ 45 | ok | | `web.bundle.plugins_js_gzip` | - | KB | 1 | 43.0 | 43.0 | 43.0 | | | | `web.bundle.plugins_js_raw` | - | KB | 1 | 135 | 135 | 135 | | | ``` </details> ## Rust failure evidence and classification The preliminary Rust command stopped at contacts-actions: case-only rename left `Ravi Kumar.md.conflict-1`, and the import-undo sweep retained a card. The final full run used `--no-fail-fast`, attempted all workspace targets, and failed the following three cases. This is a failed gate even where isolated reruns pass. | Case | Final full run | Three isolated reruns | Classification | |---|---|---|---| | auth `schema_two_copy_keeps_real_credentials_sessions_and_recovery` | people count 1, expected 2 (`migration.rs:86`) | 3 pass | intermittent | | contacts-actions `a_sweep_waits_for_a_copy_selected_before_import_undo` | card store is not empty (`tests/sweep.rs:103`) | 3 fail | reproducible | | fsio `no_producer_creates_temporary_files_outside_the_private_directory` | upload staging cannot be verified exclusively; outside bytes retained (`private_tmp_tests.rs:49`) | 3 pass | intermittent | | contacts-actions `case_only_renames` (preliminary run only) | passes in final full run | 3 pass | intermittent | ## Browser half A: first-run verdict App projects use **one worker, zero retries**. The temporary wrapper selects every project whose name contains `chromium`, plus `throttled-*`, `flow`, `passkeys`, `admin-setup`, `contrast`, and both `sidebar-band-*` projects. Dependency edges to unselected half-B projects are removed; test cases and assertions are unchanged. The primitives matrix runs both Chromium and WebKit with the repository CI settings. Linux CI intentionally excludes WebKit toast tests as documented in its config. Two app-runner setup attempts stopped before any test ran (external config module mode, then web-server cwd). They are retained as setup-error logs and are not counted as test runs. The first actual app run is the verdict. | Project | Passed | Failed | Skipped | Not run | First-run verdict | |---|---:|---:|---:|---:|---| | chromium-1440 | 367 | 18 | 586 | 0 | FAIL | | chromium-390 | 802 | 18 | 151 | 0 | FAIL | | throttled-1440 | 0 | 0 | 0 | 2 | BLOCKED | | throttled-390 | 0 | 0 | 0 | 2 | BLOCKED | | admin-chromium-1440 | 12 | 0 | 9 | 0 | PASS | | admin-chromium-390 | 12 | 0 | 9 | 0 | PASS | | flow | 1 | 0 | 0 | 0 | PASS | | passkeys | 1 | 0 | 0 | 0 | PASS | | admin-setup | 1 | 0 | 0 | 0 | PASS | | prefs-chromium | 7 | 0 | 0 | 0 | PASS | | contrast | 9 | 0 | 0 | 0 | PASS | | sidebar-band-chromium | 3 | 0 | 0 | 0 | PASS | | sidebar-band-webkit | 3 | 0 | 0 | 0 | PASS | | primitives / chromium | 47 | 1 | 0 | 0 | FAIL | | primitives / webkit | 36 | 0 | 0 | 0 | PASS | Primitives Chromium first run: 47 passed, 1 failed; WebKit: 36 passed. `toast.spec.ts:16`, “9 → 10 → 11”: capsule width stayed 214 px rather than increasing. **Three isolated reruns all failed**; reproducible. First-run verdict remains FAIL. The first app run had **1,218 passed, 36 failed, 755 skipped, and 4 dependency-blocked cases**. All 36 failures are runner setup failures: `CALTERNAL_BIN` was unset in the sign-out fixture (`signout-fixture.ts:217`), so `spawn(undefined, ...)` failed before assertions. The config default starts the shared binary but does not populate that environment variable. Classification reruns supply the explicit merged binary path. The four blocked throttled cases passed their first actual execution with dependency scheduling bypassed (`--no-deps`). The first-run FAIL verdict is unchanged. App first-run totals: `{"startTime": "2026-10-30T04:24:51.679Z", "duration": 2588508.645, "expected": 1218, "skipped": 759, "unexpected": 36, "flaky": 0}`. - **chromium-1440** `review4-signout.spec.ts:73` — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › a remotely ended session refuses typing while its next document is delayed ```text TypeError: The "file" argument must be of type string. Received undefined at signout-fixture.ts:217 215 | origin = `https://localhost:${await freePort()}` 216 | const apiPort = await freePort() > 217 | server = spawn(process.env.CALTERNAL_BIN!, ['serve', '--create', '--listen', `127.0.0.1:${apiPort}`, '--data', data, '--web', process.env.E2E_DIST!, '--origin', origin], { stdio: 'ignore' }) | ^ 218 | await expect.poll(async () => fetch(`http://127.0.0.1:${apiPort}/healthz`).then((r) => r.status).catch(() => 0), { timeout: 30_000 }).toBe(200) // a loaded host starts it slowly 219 | proxy = spawn('node', [resolve('e2e/tls-proxy.mjs'), new URL(origin).port, String(apiPort)], { stdio: 'ignore' }) 220 | const probe = await request.newContext({ ignoreHTTPSErrors: true }) at Object.device (/home/agent/wt/train-bm2/apps/web/e2e/signout-fixture.ts:217:16) ``` - **chromium-1440** `review4-signout.spec.ts:131` — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › typing during logout is refused (stuck uplink=true, BroadcastChannel=true) - **chromium-1440** `review4-signout.spec.ts:131` — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › typing during logout is refused (stuck uplink=true, BroadcastChannel=false) - **chromium-1440** `review4-signout.spec.ts:131` — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › typing during logout is refused (stuck uplink=false, BroadcastChannel=true) - **chromium-1440** `review4-signout.spec.ts:131` — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › typing during logout is refused (stuck uplink=false, BroadcastChannel=false) - **chromium-1440** `review4-signout.spec.ts:242` — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › server too_large refusal stays until a receipt covers the current state, in sibling tabs and after reload (BroadcastChannel=true) - **chromium-1440** `review4-signout.spec.ts:242` — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › server too_large refusal stays until a receipt covers the current state, in sibling tabs and after reload (BroadcastChannel=false) - **chromium-1440** `review4-signout.spec.ts:242` — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › server room_error refusal stays until a receipt covers the current state, in sibling tabs and after reload (BroadcastChannel=true) - **chromium-1440** `review4-signout.spec.ts:242` — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › server room_error refusal stays until a receipt covers the current state, in sibling tabs and after reload (BroadcastChannel=false) - **chromium-1440** `review4-signout.spec.ts:387` — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › signing in again in the signed-out document restores editing - **chromium-1440** `review4-signout.spec.ts:411` — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › cancelling the warning restores sibling editing - **chromium-390** `review4-signout.spec.ts:73` — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › a remotely ended session refuses typing while its next document is delayed - **chromium-390** `review4-signout.spec.ts:131` — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › typing during logout is refused (stuck uplink=true, BroadcastChannel=true) - **chromium-390** `review4-signout.spec.ts:131` — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › typing during logout is refused (stuck uplink=true, BroadcastChannel=false) - **chromium-390** `review4-signout.spec.ts:131` — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › typing during logout is refused (stuck uplink=false, BroadcastChannel=true) - **chromium-390** `review4-signout.spec.ts:131` — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › typing during logout is refused (stuck uplink=false, BroadcastChannel=false) - **chromium-390** `review4-signout.spec.ts:242` — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › server too_large refusal stays until a receipt covers the current state, in sibling tabs and after reload (BroadcastChannel=true) - **chromium-390** `review4-signout.spec.ts:242` — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › server too_large refusal stays until a receipt covers the current state, in sibling tabs and after reload (BroadcastChannel=false) - **chromium-390** `review4-signout.spec.ts:242` — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › server room_error refusal stays until a receipt covers the current state, in sibling tabs and after reload (BroadcastChannel=true) - **chromium-390** `review4-signout.spec.ts:242` — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › server room_error refusal stays until a receipt covers the current state, in sibling tabs and after reload (BroadcastChannel=false) - **chromium-390** `review4-signout.spec.ts:387` — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › signing in again in the signed-out document restores editing - **chromium-390** `review4-signout.spec.ts:411` — review4-signout.spec.ts › sign-out freezes every editor before asynchronous logout › cancelling the warning restores sibling editing - **chromium-1440** `review6-signout.spec.ts:7` — review6-signout.spec.ts › cancelling one of two sign-outs keeps the other editor frozen (BroadcastChannel=true) - **chromium-1440** `review6-signout.spec.ts:7` — review6-signout.spec.ts › cancelling one of two sign-outs keeps the other editor frozen (BroadcastChannel=false) - **chromium-390** `review6-signout.spec.ts:7` — review6-signout.spec.ts › cancelling one of two sign-outs keeps the other editor frozen (BroadcastChannel=true) - **chromium-390** `review6-signout.spec.ts:7` — review6-signout.spec.ts › cancelling one of two sign-outs keeps the other editor frozen (BroadcastChannel=false) - **chromium-1440** `signout.spec.ts:21` — signout.spec.ts › sign out wipes this device › online: disk, other tabs, history and the old server session are cleared - **chromium-1440** `signout.spec.ts:63` — signout.spec.ts › sign out wipes this device › offline: one confirmation, cancellation keeps edits, signing out anyway wipes them - **chromium-1440** `signout.spec.ts:91` — signout.spec.ts › sign out wipes this device › remote sign-out retains copies for the same account, then a different account wipes them - **chromium-1440** `signout.spec.ts:143` — signout.spec.ts › sign out wipes this device › an old-name session opens sign-in and preserves unsent local edits - **chromium-1440** `signout.spec.ts:172` — signout.spec.ts › sign out wipes this device › opening an already revoked session retains only owned note copies - **chromium-390** `signout.spec.ts:21` — signout.spec.ts › sign out wipes this device › online: disk, other tabs, history and the old server session are cleared - **chromium-390** `signout.spec.ts:63` — signout.spec.ts › sign out wipes this device › offline: one confirmation, cancellation keeps edits, signing out anyway wipes them - **chromium-390** `signout.spec.ts:91` — signout.spec.ts › sign out wipes this device › remote sign-out retains copies for the same account, then a different account wipes them - **chromium-390** `signout.spec.ts:143` — signout.spec.ts › sign out wipes this device › an old-name session opens sign-in and preserves unsent local edits - **chromium-390** `signout.spec.ts:172` — signout.spec.ts › sign out wipes this device › opening an already revoked session retains only owned note copies Corrected-environment run 1: **40 passed** (36 original failures plus the 4 blocked throttled cases). All four throttled cases passed their first actual execution: 2/2 at each width. Original verdict is unchanged. ### Completed classification All 36 original app failures received exactly three isolated attempts with `CALTERNAL_BIN` set. Outcomes: {'passed': 108}. These were runner configuration failures, not product assertions. The first-run FAIL verdict remains unchanged. The explicit list selected only the original 36 failures for repetitions 2 and 3. Logs, JSON reports and retained traces: `/tmp/train-bm2-results` on 10by32-01-std. No merge or deployment performed. Cleanup complete: this worktree’s `target/` and generated Python cache were deleted, the lease heartbeat was stopped, and the worktree is clean. The primitives frontend tree is identical to the final tested head; the final integration correction changed only Rust publication code. No Forgejo check statuses or reviews were present at handback.
kayg added 71 commits 2026-10-30 04:24:14 +00:00
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Create task notes from structured Composer slots through one durable job.
Keep the checkbox's typed links, add an anchored task-note sub-bullet,
and write a quoted from backlink using the typed property writer.

Acknowledge the durable plan and run file steps in the Home background.
Serialize capture planning per Home, replay journal steps safely, and
undo the capture without changing the daily note's original bytes or
removing later prose. Reuse empty daily history after Undo, keeping the
derived day id, and let immediate Undo wait for a running capture. Keep
description headings separate from task titles.
Recognize sub-bullet task links in the existing index and generate the
action contract and web bindings. Cover concurrent creates, isolation,
large daily notes, journal-step SIGKILL, and the perf VM create budget.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Share the room guard for destructive undo, preserve daily identities,
round-trip reserved link destinations, and allocate around unindexed
case collisions. Exercise undo with random acknowledged edits and keep
import cancellation cleanup before the job lock wait.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Refresh the directory view from synchronous kernel entry events under the
allocation lock. Reconcile changed names against disk, and rebuild after
queue overflow or directory replacement. Scan on unsupported filesystems.

Cover immediate unindexed additions, Unicode and case duplicates, atomic
replacement and exchange, directory replacement, and kernel queue overflow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Limit restored-file removal to reusable daily identities, whose history
is retained. Ordinary created notes keep later acknowledged job updates
even when that later job was undone back to the original text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Undo keeps job-created files, histories and companions in the 30-day Trash.
Companion-only edits advance the note journal, and undo saves retain old
inodes before publishing replacements so outside writers remain restorable.
Recovered pending writes retain their displaced inodes after restart too.
Keep deletion intents until retention succeeds, account for Trash metadata,
and preserve failed-import retries while retaining rollback histories.
Cache restore names to keep repeated daily captures bounded.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U5oTUycqAh7DT72mdSUztk
Saved by the coordinator after the job stopped early; gates not yet run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013Cj2Q1hCskP8Frsk6X7EHw
fix(storage): stage temporary writes in private Home directories
Some checks failed
CI / server (pull_request) Successful in 1m22s
CI / rust (pull_request) Failing after 8m1s
CI / web (pull_request) Has been cancelled
1f3cf05f5e
fix(storage): preserve live private transactions during recovery
Some checks failed
CI / server (pull_request) Successful in 1m25s
CI / rust (pull_request) Failing after 14m17s
CI / web (pull_request) Failing after 2h42m31s
257a1af579
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013Cj2Q1hCskP8Frsk6X7EHw
Bound Tasks crash writes to the selected stop point
Some checks failed
CI / server (pull_request) Successful in 1m48s
CI / rust (pull_request) Successful in 14m49s
CI / web (pull_request) Failing after 2h40m12s
628a7dd856
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The mockup's Look v2 tokens were already shared (tokens.css). What still differed were
app-only literals:
- Palette and the phone list search: panel radius is --r-sheet (18) as the mockup's search panel,
  rows are 12 px, the lit row is the accent tint (was --hover), no line under the field.
- Fenced code block rounds its outer corners with --r-card (the mockup's 10 px card).
- Settings confirm dialog dims with the shared --scrim, not a fixed 30% black.
- Tag chip remove button shadow uses the Look v2 ink, not v1's.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Palette.svelte painted a 99% paper layer under its glass, so the palette looked nearly opaque. The packages/ui parts of the mockup's shared glass (Glass.svelte with its `flat` and `el` props, Morph drawing it, glass.css) come in, and every sheet draws through it:
- the palette and the phone list search are <Glass dense />; the bar's sheets (Insert, Style, Note info, Move to) lose the paper rule in bar.css; the invite sheet loses its paper layer; the Composer's kind menu is a <Glass dense flat /> layer clipped beside its options (a clip-path or opacity on the menu itself would cut the glass off from the page); the sign-out confirmation draws <Glass dense />.
- accent words and the caret on the palette and the list search use the deeper glass accent, and the Composer's separator dot the quieter ink 3: over a bright sky the everyday ones measured 3.2 to 4.1:1.
The web has no search preview pane, so there is none to keep solid.

Tests: glass.spec expects the palette's dense tint; sheet-geometry checks the bar sheet is the dense glass tint with no image fill; contrast.spec measures the palette (empty, a search, the kind menu), the phone list search and the bar's sheets at every sky hour, over a photo and over a page of huge words, light and dark, 1440 and 390 (the helpers move to e2e/glyph-contrast.ts; typed words count as text, disabled controls and boxes clipped shut do not); admin-contrast measures the invite sheet.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The Composer and its task parsing were already in the lazy Palette chunk, so the bytes come from two things the first screen never needs: the Home Screen hint (InstallHint, shown once a week on a phone) is fetched when it is due, and the passkey list (a Settings thing) is imported when a passkey entry arrives on the live socket. budgets.json is unchanged. all_js_brotli goes 311.3 to 312.0 (two more chunk boundaries).

e2e/composer-open.spec.ts guards the first open: once the app has gone idle, opening the palette (⌘K, or the phone's Search pill), writing a task in it and opening the kind menu fetch no script, style, document, font or image. With OPEN_TIMING_OUT=<file> it records tap-to-first-frame and the frame deltas of the first open (palette, Composer, kind menu, phone list search), with the CPU slowed 4x as well.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The test polled every 5 ms for window.__composerContacts and patched it, relying on clearInterval to stop. page.clock (setFixedTime, called before the page loads) replaces clearInterval after the init script ran, so the poll never stopped: every 5 ms it set `__opened = []` again. The ⌥Enter did open tel:+919900011111, and the next tick emptied the record before the assertion read it, about 3 runs in 20 on chromium-390 and the palette already closed (log: PATCH seam #1 repeated, one OPEN between). The stand-in is now a setter on the hook, run once when the app hands its seam out. 180 of 180 runs pass (chromium-390, chromium-1440, webkit-390, 60 each).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Only that budget changes; first_js_brotli stays 240 and first_css_brotli 22.1. The approval is noted in budgets.json beside it. Now 312.0 KB.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
A glass inside an ancestor with a backdrop-filter, filter, opacity under 1, mask, clip-path, blend mode or will-change of those can only blur that ancestor, never the page: it looks opaque. The tag picker lived inside the note's page, which has a backdrop-filter when the page is translucent or blurred (and which also made its position: fixed relative to the page); it now uses ui/lib/portal.ts like the link card. The palette, the list search, the bar's sheets, the menus, the link picker and the invite sheet were already clear.

e2e/glass-roots.spec.ts opens each of them (palette and its kind menu, list search, Insert, Style, Note info, Move to, a context menu, the tag picker, the link card, the [[ link picker), on the solid page and on the translucent one, and fails when anything above the glass would cut it off; admin-contrast does the same for the invite sheet. The helper is e2e/glass-roots.ts. When the packages/ui change that portals the shared glass lands (review/preview-2026-10-29), its own test takes over for the ui part and these stay as the app's check. The invite sheet's AA check skips WebKit, whose Linux build paints no backdrop blur.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Format merged module declarations
Some checks failed
CI / rust (pull_request) Failing after 30s
CI / server (pull_request) Successful in 1m4s
CI / web (pull_request) Has been cancelled
f3a4845033
Author
Owner

WebKit half of Train BM2 on 10by32-02-std (arm64), detached worktree /home/agent/wt/train-bm2-b.

Tested SHA: f3a4845033ae29fcbc9e4338ac393d93db46a15e.
Origin moved during the run: first observed ca5b59c40262e7b816dd64ad2209f3d426be8685; at completion 9041b509486dff0da2b56a1285074dbe869ec1c2. All tests remained on the tested SHA.

The first app run is inconclusive, not a clean full-suite pass. Frozen installation and cargo build -p calternal --locked succeeded. Both CI browser scripts ran through /usr/local/bin/build-slot.sh, with CI=true, --project='*webkit*', --workers=1, --retries=0 and dependencies enabled. The app built once in the Playwright harness. Appearance/look cases remain included in the app projects.

I omitted CI's CALTERNAL_BIN environment variable from the first app invocation. The regular config found the built binary through its fallback, but the sign-out fixture reads that variable directly. This produced 18 fixture failures per app width (36 total), all TypeError: The "file" argument must be of type string. Received undefined at signout-fixture.ts:217. These are invocation failures, not established product regressions.

First-run results:

Project Collected / start logged Passed Skipped Failed Did not run
primitives / webkit 36 36 0 0 0
webkit-1440 971 unavailable unavailable 18 0 unstarted*
webkit-390 971 unavailable unavailable 18 0 unstarted*
admin-setup 1 unavailable unavailable 0 0 unstarted*
prefs-chromium 7 unavailable unavailable 0 0 unstarted*
contrast 9 unavailable unavailable 0 0 unstarted*
admin-webkit-1440 18 unavailable unavailable 0 0 unstarted*
admin-webkit-390 18 unavailable unavailable 0 0 unstarted*
prefs-webkit 7 unavailable unavailable 0 0 unstarted*
sidebar-band-chromium 3 unavailable unavailable 0 0 unstarted*
sidebar-band-webkit 3 unavailable unavailable 0 0 unstarted*

*All 2,008 app test starts were logged, including every requested WebKit project and its dependencies. The app command then exited 143 (SIGTERM), before the final summary and JSON report were emitted. Exact passed/skipped totals and the final test's terminal outcome cannot be recovered from the line reporter. 0 unstarted means no collected test lacked a start record; it does not assert completion. No full-suite rerun was performed.

Verbatim primitive summary:

  36 passed (52.4s)

The first app run emitted no final summary. Its verbatim final lines were:

[2006/2008] [sidebar-band-webkit] › e2e/sidebar-band.spec.ts:62:1 › Settings: moving over the card never changes the sidebar
[2007/2008] [sidebar-band-webkit] › e2e/sidebar-band.spec.ts:75:1 › Notes list: moving over the list and the page never changes the sidebar
[2008/2008] [sidebar-band-webkit] › e2e/sidebar-band.spec.ts:83:1 › A note open: moving over the page and its bar never changes the sidebar

Failure classification only: the exact 36 failing cases were rerun three times (--test-list, --repeat-each=3, --retries=0, one worker), on the same SHA and existing app build, with CALTERNAL_BIN=/home/agent/wt/train-bm2-b/target/debug/calternal supplied. Because the environment was corrected, these do not replace the first-run results or establish flaky original failures.

Failure-only reruns Passed Skipped Failed Did not run
webkit-1440 (3 repetitions) 51 3 0 0
webkit-390 (3 repetitions) 51 3 0 0

Classification under the corrected CI environment: 34 cases consistently passed 3/3; two cases consistently skipped 3/3 (signing in again in the signed-out document restores editing, one per width). No flaky behavior observed. The original 36 failures are attributed to the missing invocation variable.

Verbatim failure-only rerun summary:

  6 skipped
  102 passed (21.0m)

Created target/ and all five node_modules directories have been deleted. No pushes, merges, or deployments. Evidence retained on this machine in /tmp/train-bm2-b/ (first-run logs, primitive JSON, rerun JSON and incremental case results).

WebKit half of Train BM2 on `10by32-02-std` (arm64), detached worktree `/home/agent/wt/train-bm2-b`. Tested SHA: `f3a4845033ae29fcbc9e4338ac393d93db46a15e`. Origin moved during the run: first observed `ca5b59c40262e7b816dd64ad2209f3d426be8685`; at completion `9041b509486dff0da2b56a1285074dbe869ec1c2`. All tests remained on the tested SHA. **The first app run is inconclusive, not a clean full-suite pass.** Frozen installation and `cargo build -p calternal --locked` succeeded. Both CI browser scripts ran through `/usr/local/bin/build-slot.sh`, with `CI=true`, `--project='*webkit*'`, `--workers=1`, `--retries=0` and dependencies enabled. The app built once in the Playwright harness. Appearance/look cases remain included in the app projects. I omitted CI's `CALTERNAL_BIN` environment variable from the first app invocation. The regular config found the built binary through its fallback, but the sign-out fixture reads that variable directly. This produced 18 fixture failures per app width (36 total), all `TypeError: The "file" argument must be of type string. Received undefined` at `signout-fixture.ts:217`. These are invocation failures, not established product regressions. First-run results: | Project | Collected / start logged | Passed | Skipped | Failed | Did not run | |---|---:|---:|---:|---:|---:| | primitives / webkit | 36 | 36 | 0 | 0 | 0 | | webkit-1440 | 971 | unavailable | unavailable | 18 | 0 unstarted* | | webkit-390 | 971 | unavailable | unavailable | 18 | 0 unstarted* | | admin-setup | 1 | unavailable | unavailable | 0 | 0 unstarted* | | prefs-chromium | 7 | unavailable | unavailable | 0 | 0 unstarted* | | contrast | 9 | unavailable | unavailable | 0 | 0 unstarted* | | admin-webkit-1440 | 18 | unavailable | unavailable | 0 | 0 unstarted* | | admin-webkit-390 | 18 | unavailable | unavailable | 0 | 0 unstarted* | | prefs-webkit | 7 | unavailable | unavailable | 0 | 0 unstarted* | | sidebar-band-chromium | 3 | unavailable | unavailable | 0 | 0 unstarted* | | sidebar-band-webkit | 3 | unavailable | unavailable | 0 | 0 unstarted* | *All 2,008 app test starts were logged, including every requested WebKit project and its dependencies. The app command then exited 143 (SIGTERM), before the final summary and JSON report were emitted. Exact passed/skipped totals and the final test's terminal outcome cannot be recovered from the line reporter. `0 unstarted` means no collected test lacked a start record; it does not assert completion. No full-suite rerun was performed. Verbatim primitive summary: ```text 36 passed (52.4s) ``` The first app run emitted **no final summary**. Its verbatim final lines were: ```text [2006/2008] [sidebar-band-webkit] › e2e/sidebar-band.spec.ts:62:1 › Settings: moving over the card never changes the sidebar [2007/2008] [sidebar-band-webkit] › e2e/sidebar-band.spec.ts:75:1 › Notes list: moving over the list and the page never changes the sidebar [2008/2008] [sidebar-band-webkit] › e2e/sidebar-band.spec.ts:83:1 › A note open: moving over the page and its bar never changes the sidebar ``` Failure classification only: the exact 36 failing cases were rerun three times (`--test-list`, `--repeat-each=3`, `--retries=0`, one worker), on the same SHA and existing app build, with `CALTERNAL_BIN=/home/agent/wt/train-bm2-b/target/debug/calternal` supplied. Because the environment was corrected, these do not replace the first-run results or establish flaky original failures. | Failure-only reruns | Passed | Skipped | Failed | Did not run | |---|---:|---:|---:|---:| | webkit-1440 (3 repetitions) | 51 | 3 | 0 | 0 | | webkit-390 (3 repetitions) | 51 | 3 | 0 | 0 | Classification under the corrected CI environment: 34 cases consistently passed 3/3; two cases consistently skipped 3/3 (`signing in again in the signed-out document restores editing`, one per width). No flaky behavior observed. The original 36 failures are attributed to the missing invocation variable. Verbatim failure-only rerun summary: ```text 6 skipped 102 passed (21.0m) ``` Created `target/` and all five `node_modules` directories have been deleted. No pushes, merges, or deployments. Evidence retained on this machine in `/tmp/train-bm2-b/` (first-run logs, primitive JSON, rerun JSON and incremental case results).
Author
Owner

BM2 implementation and Chromium-half rerun. Final head: 3cf6ac568fb8339a646f26a7149f52a86387c46b. Host: 10by32-01-std (arm64), lease fb6aeb48cbf249d3899130082f944149; heavy commands use /usr/local/bin/build-slot.sh with CALTERNAL_TRAIN=1. No merge or deployment.
Chromium half PASS: 1,258 app tests passed, 755 skipped, no failures or retries; primitives 84 passed. Rust gate FAIL: the upload crash-test contract remains unresolved. Do not merge.

Culprits and fixes

BM2 failure attribution, dev d83e54db, original train ca5b59c4.

  • contacts-actions::tests::break_links::case_only_renames: #759's private staging/lease cleanup. Exact conflict reproduced at Composer merge d5000d47; standalone case passes do not disprove a transient descriptor race. #759 adds exclusive cleanup leases and directory ownership. A fork can inherit an open description until exec, defeating cleanup after the parent closes its writer and keeping ownership locks alive. Two deterministic inherited-descriptor tests fail on #759 before fixes, pass afterward. Explicit guard unlock + bounded EAGAIN lease acquisition, with all ownership/hash checks retained.
  • contacts-actions::tests::sweep::a_sweep_waits_for_a_copy_selected_before_import_undo: first fails at Composer merge d5000d47. #759 adds this regression; Composer alone lacks it. Porting the original test unchanged onto dev+Composer reproduces failure. Composer intentionally moves completed-import undo to Trash; therefore its card must remain. Correct scenario explicitly permanently forgets that retained note before testing sweep-vs-paused-copy ordering. Original 1s negative assertion, 30s bound, and final empty-store assertion remain; added Trash-presence and removal assertions. Existing retention tests remain unchanged.
  • fsio::private_tmp_tests::no_producer_creates_temporary_files_outside_the_private_directory: #759, same transient inherited descriptor issue in exclusive upload verification. Original isolated checks pass, full #759 stress independently fails with private leftovers. New deterministic regressions fail before fix and pass after. Persistent outside-reader/writer safety tests remain unchanged and pass.
  • auth schema_two_copy_keeps_real_credentials_sessions_and_recovery: pre-existing on dev. v2->v3 migration ordered tied millisecond creation times by UUID, potentially making the later member admin; owner then sees only itself in people.list. Deterministic tied-time/reversed-ID regression fails on dev (a-member vs z-owner). Preserve insertion order via rowid when times tie.
  • Primitives Chromium toast 9 → 10 → 11: pre-existing on dev, not Composer or mockup-values. Toast source is byte-identical on all inputs. Original test repeated on dev: 9 passed, 1 failed. Glass resize began in ResizeObserver after a frame could appear settled. Start fit/spring in the content update. Unchanged original test passes 10/10 after fix, full first-run matrix 48/48 Chromium + 36/36 WebKit.
  • 36 app fixture runner failures: pre-existing on dev. All standalone branches and successive merge stages leave CALTERNAL_BIN undefined after config load, reproducing spawn's TypeError. Shared executable resolver now defaults and propagates environment, validates X_OK, and is used by config and sign-out fixture. The full app run intentionally unsets CALTERNAL_BIN.

Each branch was merged alone on dev: #759 c129eb38, #763 628a7dd8, mockup 04a69711, Composer 10659f25. Each successive first-parent merge b71b0d88, 6207cb3e, 0846eba8, d5000d47, and final ca5b59c4 was tested. Logs distinguish tests absent on earlier branches; zero selected tests are not counted as passes. This exhaustive merge-stage check brackets the sweep failure immediately to the Composer merge.

The first full Rust run on 84cb1a4e exposed two additional fixture failures: beneath::tests::upload_marker_still_finds_an_image_after_a_crash_during_publication and beneath::tests::temp_files_persist_without_replacing_and_vanish_when_dropped. Both shared one nanosecond-timestamp-only root (/tmp/calternal-beneath-2631287-1793338351622575182); the marker test observed the other test's Photos directory. This timestamp-only fixture also predates the train. Commit 9041b509 makes the shared fsio test root allocator unique with a per-process atomic sequence, and uses that allocator in beneath tests. No assertions, retry counts, or bounds changed. All production code and browser inputs are identical between 84cb1a4e and 9041b509; these last two files change only cfg(test) code. Browser first-run SHA is honestly retained as 84cb1a4e; final full Rust gates run on 9041b509. WebKit half should rerun 3cf6ac568f.

Input on dev / merge stage Case rename Sweep Private upload Migration Toast
dev d83e54db pass absent absent pass pass
dev + #759 c129eb38 pass pass pass fail pass
dev + #763 628a7dd8 pass absent absent pass fail
dev + mockup 04a69711 pass absent absent pass pass
dev + Composer 10659f25 pass absent absent pass pass
merge #759 b71b0d88 pass pass pass pass fail
merge #763 6207cb3e pass pass pass pass pass
merge mockup 0846eba8 pass pass pass pass fail
merge Composer d5000d47 fail fail pass fail fail
original final ca5b59c4 pass fail pass pass pass

These are individual diagnostic attempts, not claims that intermittent bugs are absent when one attempt passes. The unchanged regression port, deterministic red tests and dev toast repetitions establish attribution. Harness failure reproduces on every table row.

Commit 3cf6ac56 makes the new binary-resolver unit test independent of the Rust build, as CI lints before waiting for its server binary. It preserves the default-path/environment assertions and verifies the executable-access call using a scoped filesystem mock. Real missing/non-executable checks remain in the second unit test; the full browser run tests the real default executable. Both tests also pass in a copied tree with no built binary. This commit changes no production or browser inputs.

Browser first-run results

App selection includes every chromium project, throttled-*, flow, passkeys, admin-setup, contrast, and sidebar-band-*. One worker, zero retries; dependency edges to unselected half-B projects only were removed. Test cases and assertions were unchanged. CALTERNAL_BIN was explicitly unset. Primitives ran the complete repository CI matrix (Chromium and WebKit, with its existing Linux WebKit toast exclusion).

Browser run recorded starting SHA 84cb1a4e93346684ea1a9da5688a36fc90c6a056. Final test-only changes are documented above and verified with runtime-equivalence.log; production Rust, web code, browser tests/config and dependencies are unchanged. WebKit-half rerun needed on 3cf6ac568fb8339a646f26a7149f52a86387c46b, including the final test fixture corrections.

Project Passed Failed Skipped Not run First-run verdict
chromium-1440 385 0 586 0 PASS
chromium-390 820 0 151 0 PASS
throttled-1440 2 0 0 0 PASS
throttled-390 2 0 0 0 PASS
admin-chromium-1440 12 0 9 0 PASS
admin-chromium-390 12 0 9 0 PASS
flow 1 0 0 0 PASS
passkeys 1 0 0 0 PASS
admin-setup 1 0 0 0 PASS
prefs-chromium 7 0 0 0 PASS
contrast 9 0 0 0 PASS
sidebar-band-chromium 3 0 0 0 PASS
sidebar-band-webkit 3 0 0 0 PASS
primitives / chromium 48 0 0 0 PASS
primitives / webkit 36 0 0 0 PASS

Gates and verbatim output

fmt 0
clippy 0
rust-tests 101
web-check 0
web-lint 0
web-unit 0
editor-check 0
editor-unit 0
primitives-unit 0
bundle 0
fmt-final 0
clippy-final 0
rust-tests-final 101
web-lint-final 0
harness-without-binary 0
fmt-final

clippy-final
    Checking calternal-attachments v0.1.0 (/home/agent/wt/train-bm2-fix/crates/attachments)
    Checking calternal-auth v0.1.0 (/home/agent/wt/train-bm2-fix/crates/auth)
    Checking calternal-migrate-v0 v0.1.0 (/home/agent/wt/train-bm2-fix/crates/migrate-v0)
    Checking calternal-prefs v0.1.0 (/home/agent/wt/train-bm2-fix/crates/prefs)
    Checking calternal-tasks v0.1.0 (/home/agent/wt/train-bm2-fix/crates/tasks)
    Checking calternal-daily v0.1.0 (/home/agent/wt/train-bm2-fix/crates/daily)
    Checking calternal-contacts-actions v0.1.0 (/home/agent/wt/train-bm2-fix/crates/contacts-actions)
    Checking calternal-perf v0.1.0 (/home/agent/wt/train-bm2-fix/crates/perf)
    Checking calternal v0.1.0 (/home/agent/wt/train-bm2-fix/crates/calternal)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.37s
rust-tests-final
test result: ok. 31 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.74s
test result: FAILED. 1 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 20.10s
error: test failed, to rerun pass `-p calternal --test attachments_crash`
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.05s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.35s
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.49s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.90s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.80s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
test result: ok. 5 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.01s
test result: ok. 10 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 10.02s
test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.07s
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.00s
test result: ok. 19 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 1.11s
test result: ok. 10 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 123.78s
test result: ok. 14 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.09s
test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
test result: ok. 25 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.09s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.00s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.99s
test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
test result: ok. 132 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 16.54s
test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.34s
test result: ok. 17 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.46s
test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.35s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 101 filtered out; finished in 0.00s
test result: ok. 102 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.97s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
test result: ok. 453 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 39.14s
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 12 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.61s
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.31s
test result: ok. 41 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.87s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
---- kill_nine_mid_upload_leaves_nothing_half_written stdout ----

thread 'kill_nine_mid_upload_leaves_nothing_half_written' (2661590) panicked at crates/calternal/tests/attachments_crash.rs:223:9:
timed out waiting for the clean-up
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

web-check
====================================
svelte-check found 0 errors and 14 warnings in 8 files
web-lint-final
1..17
# tests 17
# suites 0
# pass 17
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 280.848879
Filter motion: 438 source files checked; stable function lists.
harness-without-binary
  ...
1..2
# tests 2
# suites 0
# pass 2
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 45.258981
web-unit
$ vitest run

 RUN  v5.0.4 /home/agent/wt/train-bm2-fix/apps/web


 Test Files  3 passed (3)
      Tests  77 passed (77)
   Start at  11:03:22
   Duration  210ms (transform 70%, tests 17%, import 12%, worker 2%)

editor-check
$ tsc --noEmit
editor-unit
$ vitest run

 RUN  v5.0.4 /home/agent/wt/train-bm2-fix/packages/editor


 Test Files  37 passed (37)
      Tests  300 passed (300)
   Start at  11:03:23
   Duration  12.14s (tests 84%, environment 9%, transform 4%, import 2%, setup 1%)

primitives-unit
11:03:35 AM [vite-plugin-svelte] no Svelte config found at /home/agent/wt/train-bm2-fix/packages/ui - using default configuration.

 RUN  v5.0.4 /home/agent/wt/train-bm2-fix/packages/ui/src


 Test Files  7 passed (7)
      Tests  38 passed (38)
   Start at  11:03:35
   Duration  414ms (transform 80%, import 14%, tests 5%, worker 1%)

bundle
| metric | Home | unit | n | p50 | p95 | max | budget | |
|---|---:|---|---:|---:|---:|---:|---|---|
| `web.bundle.all_css_brotli` | - | KB | 1 | 36.3 | 36.3 | 36.3 |  |  |
| `web.bundle.all_css_gzip` | - | KB | 1 | 41.8 | 41.8 | 41.8 |  |  |
| `web.bundle.all_css_raw` | - | KB | 1 | 182 | 182 | 182 |  |  |
| `web.bundle.all_js_brotli` | - | KB | 1 | 312 | 312 | 312 | p95 ≤ 315 | ok |
| `web.bundle.all_js_gzip` | - | KB | 1 | 364 | 364 | 364 |  |  |
| `web.bundle.all_js_raw` | - | KB | 1 | 1058 | 1058 | 1058 |  |  |
| `web.bundle.first_css_brotli` | - | KB | 1 | 20.4 | 20.4 | 20.4 | p95 ≤ 22.1 | ok |
| `web.bundle.first_css_gzip` | - | KB | 1 | 23.3 | 23.3 | 23.3 |  |  |
| `web.bundle.first_css_raw` | - | KB | 1 | 118 | 118 | 118 |  |  |
| `web.bundle.first_js_brotli` | - | KB | 1 | 239 | 239 | 239 | p95 ≤ 240 | ok |
| `web.bundle.first_js_gzip` | - | KB | 1 | 282 | 282 | 282 |  |  |
| `web.bundle.first_js_raw` | - | KB | 1 | 851 | 851 | 851 |  |  |
| `web.bundle.plugins_css_brotli` | - | KB | 1 | 0.00 | 0.00 | 0.00 |  |  |
| `web.bundle.plugins_css_gzip` | - | KB | 1 | 0.00 | 0.00 | 0.00 |  |  |
| `web.bundle.plugins_css_raw` | - | KB | 1 | 0.00 | 0.00 | 0.00 |  |  |
| `web.bundle.plugins_js_brotli` | - | KB | 1 | 37.9 | 37.9 | 37.9 | p95 ≤ 45 | ok |
| `web.bundle.plugins_js_gzip` | - | KB | 1 | 43.0 | 43.0 | 43.0 |  |  |
| `web.bundle.plugins_js_raw` | - | KB | 1 | 135 | 135 | 135 |  |  |


primitives-first
[76/84] [webkit] › src/primitives/e2e/selector.spec.ts:194:7 › selector labels on a phone › every choice stays readable at 375 px, dark
[77/84] [webkit] › src/primitives/e2e/selector.spec.ts:194:7 › selector labels on a phone › every choice stays readable at 390 px, light
[78/84] [webkit] › src/primitives/e2e/selector.spec.ts:194:7 › selector labels on a phone › every choice stays readable at 390 px, dark
[79/84] [webkit] › src/primitives/e2e/switch.spec.ts:5:3 › squish switch › a tap switches it, gliding over
[80/84] [webkit] › src/primitives/e2e/switch.spec.ts:23:3 › squish switch › drag past the middle and let go: it settles on, the thumb stretched on the way
[81/84] [webkit] › src/primitives/e2e/switch.spec.ts:42:3 › squish switch › a short drag that stays before the middle goes back off
[82/84] [webkit] › src/primitives/e2e/switch.spec.ts:56:3 › squish switch › keyboard: Space and Enter switch it at once, with no motion
[83/84] [webkit] › src/primitives/e2e/switch.spec.ts:68:3 › squish switch › disabled: nothing happens
[84/84] [webkit] › src/primitives/e2e/switch.spec.ts:76:3 › squish switch › reduced motion: instant
  84 passed (1.1m)
app-first
(node:2740629) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
(Use `node --trace-warnings ...` to show where the warning was created)


[2012/2013] [throttled-390] › e2e/editor.spec.ts:59:1 › no layout shift while loading, typing or switching modes (cpu ×6) @throttled
[2013/2013] [throttled-390] › e2e/editor.spec.ts:107:1 › the save state changing moves nothing @throttled
  Slow test file: [chromium-390] › e2e/phone-bars.spec.ts (5.9m)
  Consider running tests from slow files in parallel. See: https://playwright.dev/docs/test-parallel
  755 skipped
  1258 passed (46.0m)

Additional Rust contract conflict

The first workspace run on 84cb1a4e had 1,273 passed / 2 failed / 20 ignored; both failures were the now-fixed shared-root collision. The full workspace rerun on 9041b509 (Rust sources identical to final 3cf6ac56) had 1,274 passed / 1 failed / 20 ignored: kill_nine_mid_upload_leaves_nothing_half_written, cleanup timeout. Diagnostic isolated reproduction confirmed pending markers are retired (0) while an interrupted private image has user.calternal.writing.v1=1. #759 intentionally retains these ambiguous bytes privately; its deterministic interrupted-write safety test requires this across repeated recovery. The real-binary test instead requires all staging gone, so it fails depending on the exact SIGKILL boundary. I have not loosened its assertion or its 20-second deadline. Clarification on this conflicting contract is pending. Rust gate remains FAIL; do not merge.

Standalone crash-test diagnostics:

base crash 0
storage crash 101
flaky crash 0
mockup crash 0
composer crash 0
merge-storage crash 0
merge-flaky crash 101
merge-mockup crash 0
merge-composer crash 0
train crash 0

Logs, JSON reports, first-run traces, branch-isolation logs, deterministic red-test output, runtime-equivalence proof and full verbatim logs: /tmp/train-bm2-fix-results on 10by32-01-std. Both created target directories are deleted and the lease heartbeat is stopped at handback. Worktree remains /home/agent/wt/train-bm2-fix on the requested train branch.

BM2 implementation and Chromium-half rerun. Final head: `3cf6ac568fb8339a646f26a7149f52a86387c46b`. Host: `10by32-01-std` (arm64), lease `fb6aeb48cbf249d3899130082f944149`; heavy commands use `/usr/local/bin/build-slot.sh` with `CALTERNAL_TRAIN=1`. No merge or deployment. **Chromium half PASS: 1,258 app tests passed, 755 skipped, no failures or retries; primitives 84 passed. Rust gate FAIL: the upload crash-test contract remains unresolved. Do not merge.** ## Culprits and fixes BM2 failure attribution, dev d83e54db, original train ca5b59c4. - `contacts-actions::tests::break_links::case_only_renames`: #759's private staging/lease cleanup. Exact conflict reproduced at Composer merge d5000d47; standalone case passes do not disprove a transient descriptor race. #759 adds exclusive cleanup leases and directory ownership. A fork can inherit an open description until exec, defeating cleanup after the parent closes its writer and keeping ownership locks alive. Two deterministic inherited-descriptor tests fail on #759 before fixes, pass afterward. Explicit guard unlock + bounded EAGAIN lease acquisition, with all ownership/hash checks retained. - `contacts-actions::tests::sweep::a_sweep_waits_for_a_copy_selected_before_import_undo`: first fails at Composer merge d5000d47. #759 adds this regression; Composer alone lacks it. Porting the original test unchanged onto dev+Composer reproduces failure. Composer intentionally moves completed-import undo to Trash; therefore its card must remain. Correct scenario explicitly permanently forgets that retained note before testing sweep-vs-paused-copy ordering. Original 1s negative assertion, 30s bound, and final empty-store assertion remain; added Trash-presence and removal assertions. Existing retention tests remain unchanged. - `fsio::private_tmp_tests::no_producer_creates_temporary_files_outside_the_private_directory`: #759, same transient inherited descriptor issue in exclusive upload verification. Original isolated checks pass, full #759 stress independently fails with private leftovers. New deterministic regressions fail before fix and pass after. Persistent outside-reader/writer safety tests remain unchanged and pass. - auth `schema_two_copy_keeps_real_credentials_sessions_and_recovery`: pre-existing on dev. v2->v3 migration ordered tied millisecond creation times by UUID, potentially making the later member admin; owner then sees only itself in people.list. Deterministic tied-time/reversed-ID regression fails on dev (`a-member` vs `z-owner`). Preserve insertion order via rowid when times tie. - Primitives Chromium toast `9 → 10 → 11`: pre-existing on dev, not Composer or mockup-values. Toast source is byte-identical on all inputs. Original test repeated on dev: 9 passed, 1 failed. Glass resize began in ResizeObserver after a frame could appear settled. Start fit/spring in the content update. Unchanged original test passes 10/10 after fix, full first-run matrix 48/48 Chromium + 36/36 WebKit. - 36 app fixture runner failures: pre-existing on dev. All standalone branches and successive merge stages leave CALTERNAL_BIN undefined after config load, reproducing spawn's TypeError. Shared executable resolver now defaults and propagates environment, validates X_OK, and is used by config and sign-out fixture. The full app run intentionally unsets CALTERNAL_BIN. Each branch was merged alone on dev: #759 c129eb38, #763 628a7dd8, mockup 04a69711, Composer 10659f25. Each successive first-parent merge b71b0d88, 6207cb3e, 0846eba8, d5000d47, and final ca5b59c4 was tested. Logs distinguish tests absent on earlier branches; zero selected tests are not counted as passes. This exhaustive merge-stage check brackets the sweep failure immediately to the Composer merge. The first full Rust run on 84cb1a4e exposed two additional fixture failures: `beneath::tests::upload_marker_still_finds_an_image_after_a_crash_during_publication` and `beneath::tests::temp_files_persist_without_replacing_and_vanish_when_dropped`. Both shared one nanosecond-timestamp-only root (`/tmp/calternal-beneath-2631287-1793338351622575182`); the marker test observed the other test's Photos directory. This timestamp-only fixture also predates the train. Commit 9041b509 makes the shared fsio test root allocator unique with a per-process atomic sequence, and uses that allocator in beneath tests. No assertions, retry counts, or bounds changed. All production code and browser inputs are identical between 84cb1a4e and 9041b509; these last two files change only cfg(test) code. Browser first-run SHA is honestly retained as 84cb1a4e; final full Rust gates run on 9041b509. WebKit half should rerun 3cf6ac568fb8339a646f26a7149f52a86387c46b. | Input on dev / merge stage | Case rename | Sweep | Private upload | Migration | Toast | |---|---|---|---|---|---| | dev d83e54db | pass | absent | absent | pass | pass | | dev + #759 c129eb38 | pass | pass | pass | fail | pass | | dev + #763 628a7dd8 | pass | absent | absent | pass | fail | | dev + mockup 04a69711 | pass | absent | absent | pass | pass | | dev + Composer 10659f25 | pass | absent | absent | pass | pass | | merge #759 b71b0d88 | pass | pass | pass | pass | fail | | merge #763 6207cb3e | pass | pass | pass | pass | pass | | merge mockup 0846eba8 | pass | pass | pass | pass | fail | | merge Composer d5000d47 | fail | fail | pass | fail | fail | | original final ca5b59c4 | pass | fail | pass | pass | pass | These are individual diagnostic attempts, not claims that intermittent bugs are absent when one attempt passes. The unchanged regression port, deterministic red tests and dev toast repetitions establish attribution. Harness failure reproduces on every table row. Commit 3cf6ac56 makes the new binary-resolver unit test independent of the Rust build, as CI lints before waiting for its server binary. It preserves the default-path/environment assertions and verifies the executable-access call using a scoped filesystem mock. Real missing/non-executable checks remain in the second unit test; the full browser run tests the real default executable. Both tests also pass in a copied tree with no built binary. This commit changes no production or browser inputs. ## Browser first-run results App selection includes every `chromium` project, `throttled-*`, `flow`, `passkeys`, `admin-setup`, `contrast`, and `sidebar-band-*`. One worker, zero retries; dependency edges to unselected half-B projects only were removed. Test cases and assertions were unchanged. `CALTERNAL_BIN` was explicitly unset. Primitives ran the complete repository CI matrix (Chromium and WebKit, with its existing Linux WebKit toast exclusion). Browser run recorded starting SHA `84cb1a4e93346684ea1a9da5688a36fc90c6a056`. Final test-only changes are documented above and verified with `runtime-equivalence.log`; production Rust, web code, browser tests/config and dependencies are unchanged. **WebKit-half rerun needed on `3cf6ac568fb8339a646f26a7149f52a86387c46b`**, including the final test fixture corrections. | Project | Passed | Failed | Skipped | Not run | First-run verdict | |---|---:|---:|---:|---:|---| | chromium-1440 | 385 | 0 | 586 | 0 | PASS | | chromium-390 | 820 | 0 | 151 | 0 | PASS | | throttled-1440 | 2 | 0 | 0 | 0 | PASS | | throttled-390 | 2 | 0 | 0 | 0 | PASS | | admin-chromium-1440 | 12 | 0 | 9 | 0 | PASS | | admin-chromium-390 | 12 | 0 | 9 | 0 | PASS | | flow | 1 | 0 | 0 | 0 | PASS | | passkeys | 1 | 0 | 0 | 0 | PASS | | admin-setup | 1 | 0 | 0 | 0 | PASS | | prefs-chromium | 7 | 0 | 0 | 0 | PASS | | contrast | 9 | 0 | 0 | 0 | PASS | | sidebar-band-chromium | 3 | 0 | 0 | 0 | PASS | | sidebar-band-webkit | 3 | 0 | 0 | 0 | PASS | | primitives / chromium | 48 | 0 | 0 | 0 | PASS | | primitives / webkit | 36 | 0 | 0 | 0 | PASS | ## Gates and verbatim output ```text fmt 0 clippy 0 rust-tests 101 web-check 0 web-lint 0 web-unit 0 editor-check 0 editor-unit 0 primitives-unit 0 bundle 0 fmt-final 0 clippy-final 0 rust-tests-final 101 web-lint-final 0 harness-without-binary 0 ``` <details><summary>fmt-final</summary> ```text ``` </details> <details><summary>clippy-final</summary> ```text Checking calternal-attachments v0.1.0 (/home/agent/wt/train-bm2-fix/crates/attachments) Checking calternal-auth v0.1.0 (/home/agent/wt/train-bm2-fix/crates/auth) Checking calternal-migrate-v0 v0.1.0 (/home/agent/wt/train-bm2-fix/crates/migrate-v0) Checking calternal-prefs v0.1.0 (/home/agent/wt/train-bm2-fix/crates/prefs) Checking calternal-tasks v0.1.0 (/home/agent/wt/train-bm2-fix/crates/tasks) Checking calternal-daily v0.1.0 (/home/agent/wt/train-bm2-fix/crates/daily) Checking calternal-contacts-actions v0.1.0 (/home/agent/wt/train-bm2-fix/crates/contacts-actions) Checking calternal-perf v0.1.0 (/home/agent/wt/train-bm2-fix/crates/perf) Checking calternal v0.1.0 (/home/agent/wt/train-bm2-fix/crates/calternal) Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.37s ``` </details> <details><summary>rust-tests-final</summary> ```text test result: ok. 31 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.74s test result: FAILED. 1 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 20.10s error: test failed, to rerun pass `-p calternal --test attachments_crash` test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.05s test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.35s test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.49s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.90s test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.80s test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s test result: ok. 5 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.01s test result: ok. 10 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 10.02s test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.07s test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.00s test result: ok. 19 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 1.11s test result: ok. 10 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 123.78s test result: ok. 14 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.09s test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s test result: ok. 25 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.09s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.00s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.99s test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s test result: ok. 132 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 16.54s test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.34s test result: ok. 17 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.46s test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.35s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 101 filtered out; finished in 0.00s test result: ok. 102 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.97s test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s test result: ok. 453 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 39.14s test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 12 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.61s test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.31s test result: ok. 41 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.87s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s ---- kill_nine_mid_upload_leaves_nothing_half_written stdout ---- thread 'kill_nine_mid_upload_leaves_nothing_half_written' (2661590) panicked at crates/calternal/tests/attachments_crash.rs:223:9: timed out waiting for the clean-up note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace ``` </details> <details><summary>web-check</summary> ```text ==================================== svelte-check found 0 errors and 14 warnings in 8 files ``` </details> <details><summary>web-lint-final</summary> ```text 1..17 # tests 17 # suites 0 # pass 17 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 280.848879 Filter motion: 438 source files checked; stable function lists. ``` </details> <details><summary>harness-without-binary</summary> ```text ... 1..2 # tests 2 # suites 0 # pass 2 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 45.258981 ``` </details> <details><summary>web-unit</summary> ```text $ vitest run RUN v5.0.4 /home/agent/wt/train-bm2-fix/apps/web Test Files 3 passed (3) Tests 77 passed (77) Start at 11:03:22 Duration 210ms (transform 70%, tests 17%, import 12%, worker 2%) ``` </details> <details><summary>editor-check</summary> ```text $ tsc --noEmit ``` </details> <details><summary>editor-unit</summary> ```text $ vitest run RUN v5.0.4 /home/agent/wt/train-bm2-fix/packages/editor Test Files 37 passed (37) Tests 300 passed (300) Start at 11:03:23 Duration 12.14s (tests 84%, environment 9%, transform 4%, import 2%, setup 1%) ``` </details> <details><summary>primitives-unit</summary> ```text 11:03:35 AM [vite-plugin-svelte] no Svelte config found at /home/agent/wt/train-bm2-fix/packages/ui - using default configuration. RUN v5.0.4 /home/agent/wt/train-bm2-fix/packages/ui/src Test Files 7 passed (7) Tests 38 passed (38) Start at 11:03:35 Duration 414ms (transform 80%, import 14%, tests 5%, worker 1%) ``` </details> <details><summary>bundle</summary> ```text | metric | Home | unit | n | p50 | p95 | max | budget | | |---|---:|---|---:|---:|---:|---:|---|---| | `web.bundle.all_css_brotli` | - | KB | 1 | 36.3 | 36.3 | 36.3 | | | | `web.bundle.all_css_gzip` | - | KB | 1 | 41.8 | 41.8 | 41.8 | | | | `web.bundle.all_css_raw` | - | KB | 1 | 182 | 182 | 182 | | | | `web.bundle.all_js_brotli` | - | KB | 1 | 312 | 312 | 312 | p95 ≤ 315 | ok | | `web.bundle.all_js_gzip` | - | KB | 1 | 364 | 364 | 364 | | | | `web.bundle.all_js_raw` | - | KB | 1 | 1058 | 1058 | 1058 | | | | `web.bundle.first_css_brotli` | - | KB | 1 | 20.4 | 20.4 | 20.4 | p95 ≤ 22.1 | ok | | `web.bundle.first_css_gzip` | - | KB | 1 | 23.3 | 23.3 | 23.3 | | | | `web.bundle.first_css_raw` | - | KB | 1 | 118 | 118 | 118 | | | | `web.bundle.first_js_brotli` | - | KB | 1 | 239 | 239 | 239 | p95 ≤ 240 | ok | | `web.bundle.first_js_gzip` | - | KB | 1 | 282 | 282 | 282 | | | | `web.bundle.first_js_raw` | - | KB | 1 | 851 | 851 | 851 | | | | `web.bundle.plugins_css_brotli` | - | KB | 1 | 0.00 | 0.00 | 0.00 | | | | `web.bundle.plugins_css_gzip` | - | KB | 1 | 0.00 | 0.00 | 0.00 | | | | `web.bundle.plugins_css_raw` | - | KB | 1 | 0.00 | 0.00 | 0.00 | | | | `web.bundle.plugins_js_brotli` | - | KB | 1 | 37.9 | 37.9 | 37.9 | p95 ≤ 45 | ok | | `web.bundle.plugins_js_gzip` | - | KB | 1 | 43.0 | 43.0 | 43.0 | | | | `web.bundle.plugins_js_raw` | - | KB | 1 | 135 | 135 | 135 | | | ``` </details> <details><summary>primitives-first</summary> ```text [76/84] [webkit] › src/primitives/e2e/selector.spec.ts:194:7 › selector labels on a phone › every choice stays readable at 375 px, dark [77/84] [webkit] › src/primitives/e2e/selector.spec.ts:194:7 › selector labels on a phone › every choice stays readable at 390 px, light [78/84] [webkit] › src/primitives/e2e/selector.spec.ts:194:7 › selector labels on a phone › every choice stays readable at 390 px, dark [79/84] [webkit] › src/primitives/e2e/switch.spec.ts:5:3 › squish switch › a tap switches it, gliding over [80/84] [webkit] › src/primitives/e2e/switch.spec.ts:23:3 › squish switch › drag past the middle and let go: it settles on, the thumb stretched on the way [81/84] [webkit] › src/primitives/e2e/switch.spec.ts:42:3 › squish switch › a short drag that stays before the middle goes back off [82/84] [webkit] › src/primitives/e2e/switch.spec.ts:56:3 › squish switch › keyboard: Space and Enter switch it at once, with no motion [83/84] [webkit] › src/primitives/e2e/switch.spec.ts:68:3 › squish switch › disabled: nothing happens [84/84] [webkit] › src/primitives/e2e/switch.spec.ts:76:3 › squish switch › reduced motion: instant 84 passed (1.1m) ``` </details> <details><summary>app-first</summary> ```text (node:2740629) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. (Use `node --trace-warnings ...` to show where the warning was created) [2012/2013] [throttled-390] › e2e/editor.spec.ts:59:1 › no layout shift while loading, typing or switching modes (cpu ×6) @throttled [2013/2013] [throttled-390] › e2e/editor.spec.ts:107:1 › the save state changing moves nothing @throttled Slow test file: [chromium-390] › e2e/phone-bars.spec.ts (5.9m) Consider running tests from slow files in parallel. See: https://playwright.dev/docs/test-parallel 755 skipped 1258 passed (46.0m) ``` </details> ## Additional Rust contract conflict The first workspace run on 84cb1a4e had 1,273 passed / 2 failed / 20 ignored; both failures were the now-fixed shared-root collision. The full workspace rerun on 9041b509 (Rust sources identical to final 3cf6ac56) had 1,274 passed / 1 failed / 20 ignored: `kill_nine_mid_upload_leaves_nothing_half_written`, cleanup timeout. Diagnostic isolated reproduction confirmed pending markers are retired (0) while an interrupted private image has `user.calternal.writing.v1=1`. #759 intentionally retains these ambiguous bytes privately; its deterministic interrupted-write safety test requires this across repeated recovery. The real-binary test instead requires all staging gone, so it fails depending on the exact SIGKILL boundary. I have not loosened its assertion or its 20-second deadline. Clarification on this conflicting contract is pending. **Rust gate remains FAIL; do not merge.** Standalone crash-test diagnostics: ```text base crash 0 storage crash 101 flaky crash 0 mockup crash 0 composer crash 0 merge-storage crash 0 merge-flaky crash 101 merge-mockup crash 0 merge-composer crash 0 train crash 0 ``` Logs, JSON reports, first-run traces, branch-isolation logs, deterministic red-test output, runtime-equivalence proof and full verbatim logs: `/tmp/train-bm2-fix-results` on `10by32-01-std`. Both created target directories are deleted and the lease heartbeat is stopped at handback. Worktree remains `/home/agent/wt/train-bm2-fix` on the requested train branch.
Author
Owner

Resolved the BM2 Rust upload crash failure. Fix commit: 1ee44c4b1a35ff277828105af2e8e59dc7d93533, based on the requested 3cf6ac568fb8339a646f26a7149f52a86387c46b. Production code changed; both browser halves need a rerun on the new head. The concurrent 10by32-01 WebKit run at 3cf6ac56 was not touched. No merge or deployment.

Machine: 10by32-02-std (arm64, shared). Worktree: /home/agent/wt/bm2-crash. Build-pool lease 12a015143f404d96944085f310f643ee was heartbeated throughout. Every Cargo command used /usr/local/bin/build-slot.sh with CALTERNAL_TRAIN=1, CARGO_BUILD_JOBS=3, and descriptor limit 8192. Diagnostic repetitions used one test thread; final gates used four test threads.

Five-run attribution matrix

Each cell is an actual invocation of cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact at that revision, with that revision's unchanged test. Each invocation selected exactly one test; no absent-test passes. FAIL means the reported 20-second cleanup timeout, not a visibility assertion or a build failure.

Revision Input Run 1 Run 2 Run 3 Run 4 Run 5 Passed
d83e54db dev PASS PASS PASS PASS PASS 5/5
c129eb38 #759 alone FAIL (cleanup timeout) PASS PASS FAIL (cleanup timeout) FAIL (cleanup timeout) 2/5
ca5b59c4 original train PASS PASS PASS FAIL (cleanup timeout) PASS 4/5
84cb1a4e first train fix FAIL (cleanup timeout) FAIL (cleanup timeout) PASS PASS PASS 3/5
3cf6ac56 requested head FAIL (cleanup timeout) PASS PASS PASS PASS 4/5

The failure is already present in #759 alone. Neither 84cb1a4e nor 3cf6ac56 introduced it. These five-attempt samples establish reproduction, not a statistical flake-rate comparison.

Root cause and contract

This is indefinite retention, not cleanup running slightly late. #759 changed RecordedFile::write to put a one-byte user.calternal.writing.v1 marker on the inode, write the payload, then update the creation receipt and clear the marker. SIGKILL between the payload syscall and receipt update leaves a receipt for the previous prefix. Recovery successfully claims the dead owner's transaction with a non-blocking kernel lock attempt, but the content/length proof fails. Quarantine::restore sees the writing marker and retains the image privately. Every subsequent recovery repeats that choice; there is no expiry or bounded retention period. A stale PID is not the cause, and increasing the test timeout would not fix it.

Contracts relied on:

  • Task product rule: “after kill -9 mid-upload, nothing half-written is visible, and leftovers are cleaned up at the next start or within a bounded time.”
  • Pre-change storage plan, Private temporary files: “The private directory is not a second user-data store.” Also: “Private cleanup rejects multiply linked files and existing outside descriptors. An exclusive lease covers verification and unlink”.
  • ADR 0062, private staging amendment: “Temporary cleanup removes entries only inside that directory; it never removes or overwrites a user-visible path.” And: “An unfinished upload is not acknowledged as saved.”
  • #759 decision table, comment 69306: “Keep ambiguous bytes private; never publish partial bytes”. The reviewer explicitly identified public conflict copies as a violation in #642 comment 69195. This is stricter than the attachment crash test's conflict exception, so simply publishing a partial conflict would regress the reviewed contract.

The old decision preserves genuinely ambiguous outside bytes, but supplies no bounded-retention justification for ordinary app-written upload prefixes. The fix supplies the missing creator proof instead of changing the wait or publishing the prefix.

Fix and deterministic evidence

RecordedFile records a bounded append intent before changing the payload: previous size/hash plus up to 2 KiB of intended bytes. Under the existing exclusive kernel file lease, recovery verifies either the completed receipt or the receipted prefix plus any short prefix of that intent. This covers a stop before the syscall, inside a short write, after the syscall, or during receipt update. The existing inode/path binding, single-link requirement, live-owner exclusion, lease checks and final unlink boundary remain in force. Same-length outside modifications fail the proof and remain private. No receipt is invented by hashing an unknown image.

The existing real-child SIGKILL reviewer regression now also requires an empty private root after recovery; its public-visibility assertion is unchanged. Against pre-fix production code, the added cleanup assertion fails deterministically with left: 1, right: 0; with the fix it passes. New proof checks cover 0, 1, 1024, 2047 and 2048 written bytes, repeated recovery, and same-length outside changes in both the previous prefix and pending suffix. The original attachments_crash.rs assertions and 20-second wait are unchanged.

The first four-thread attachment/fsio gate also exposed prepared-directory ownership that still used descriptor-close lifetime. A sibling fork could retain the open description after the owner guard ended, causing a single recovery pass to skip the directory. PreparedDirectory and its root construction handshake now use an explicit-unlock guard. A deterministic duplicate-descriptor regression fails with the unlock disabled and passes while the duplicate stays open. The final gates include this fix; the initial failure is disclosed below.

Limits and cost: old one-byte interrupted images have no recoverable intent, and unmatched outside bytes still cannot safely be discarded or published; they retain the pre-existing conservative private treatment. The new proof fixes newly interrupted app writes without fabricating provenance for old unknown bytes. This is process-death validation, not a physical power-loss experiment. A single local debug 128 MiB upload measured 302 MiB/s before and 150 MiB/s after the bounded write change; both bounded-memory checks passed. These shared-host samples are a disclosed throughput cost, not a formal performance gate.

Gates

Final gates passed with four test threads, including the full workspace and documentation tests. Existing configured ignored tests remain ignored; no test was disabled for this change. The crash case passed 20 consecutive invocations on the final production implementation (60 upload/restart kill rounds, plus completed-upload verification). Full attachment/fsio sets, storage startup, full attachment crash binary, fmt, Clippy with warnings denied, and workspace tests are included below.

Final gate exit output, verbatim:

crash-1 exit 0
crash-2 exit 0
crash-3 exit 0
crash-4 exit 0
crash-5 exit 0
crash-6 exit 0
crash-7 exit 0
crash-8 exit 0
crash-9 exit 0
crash-10 exit 0
crash-11 exit 0
crash-12 exit 0
crash-13 exit 0
crash-14 exit 0
crash-15 exit 0
crash-16 exit 0
crash-17 exit 0
crash-18 exit 0
crash-19 exit 0
crash-20 exit 0
attachments-fsio exit 0
storage-startup exit 0
attachments-crash exit 0
fmt exit 0
clippy exit 0
workspace exit 0
cargo test -p calternal-attachments -p calternal-fsio — exit 0
   Compiling calternal-fsio v0.1.0 (/home/agent/wt/bm2-crash/crates/fsio)
   Compiling calternal-server v0.1.0 (/home/agent/wt/bm2-crash/crates/server)
   Compiling calternal-attachments v0.1.0 (/home/agent/wt/bm2-crash/crates/attachments)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 1.26s
     Running unittests src/lib.rs (target/debug/deps/calternal_attachments-5c5a6b4f810ccce9)

running 19 tests
test serve::tests::dispositions_quote_safely ... ok
test serve::tests::only_plain_visible_paths_are_served ... ok
test serve::tests::ranges ... ok
test tests::http::a_connection_that_breaks_off_leaves_nothing ... ok
test tests::http::an_upload_lands_in_its_dated_folder_and_is_served_back ... ok
test tests::http::check_finds_only_your_own_files ... ok
test tests::http::a_retry_with_the_same_key_never_makes_a_second_copy ... ok
test tests::http::paths_that_climb_out_of_the_home_are_not_found ... ok
test tests::http::the_sweep_removes_what_a_crash_left_and_spares_live_uploads ... ok
test tests::http::the_limit_holds_while_streaming_without_a_length ... ok
test tests::http::uploads_need_a_session_our_page_and_a_key ... ok
test tests::sniffing::days_are_strict ... ok
test tests::sniffing::names_are_kept_but_made_safe ... ok
test tests::sniffing::pictures_and_videos_go_to_photos ... ok
test tests::sniffing::text_types_come_from_the_extension_and_html_never_runs ... ok
test tests::sniffing::the_name_never_decides_a_binary_type ... ok
test tests::http::names_can_not_steer_where_a_file_goes ... ok
test tests::http::the_same_file_again_says_already_uploaded_and_keeps_one_copy ... ok
test tests::http::unsafe_types_are_downloads_with_a_strict_policy ... ok

test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running unittests src/lib.rs (target/debug/deps/calternal_fsio-2221f901037f8e13)

running 104 tests
test beneath::tests::paths_that_climb_out_are_refused ... ok
test beneath::tests::temp_files_persist_without_replacing_and_vanish_when_dropped ... ok
test beneath::tests::upload_marker_still_finds_an_image_after_a_crash_during_publication ... ok
test beneath::tests::walking_without_openat2_refuses_symlinks_too ... ok
test names::directory::tests::a_full_kernel_queue_rebuilds_before_allocating ... ok
test beneath::tests::upload_cancel_and_publish_keep_a_replaced_temporary_inode ... ok
test directory::tests::abandoned_prepared_directory_ignores_inherited_owner_description ... ok
test private_directory::legacy_state::tests::active_legacy_transaction_is_not_migrated ... ok
test names::directory::tests::immediate_outside_events_case_duplicates_and_replacement_are_current ... ok
test private_directory::legacy_state::tests::legacy_state_equal_length_rewrite_at_migration_boundary_survives ... ok
test private_directory::legacy_state::tests::legacy_state_receipts_clear_files_without_removing_unproven_public_directories ... ok
test private_directory::owner::tests::transaction_and_recovery_lifetimes_ignore_inherited_descriptors ... ok
test private_directory::record::tests::interrupted_write_is_reclaimed_but_outside_edit_stays_private ... ok
test private_directory::roots::inheritance::tests::private_image_inheritance_matches_a_kernel_create_in_the_destination ... ok
test private_directory::roots::tests::a_symlink_cannot_replace_either_private_component ... ok
test private_directory::roots::tests::membership_requires_a_registered_root_and_refuses_parent_traversal ... ok
test private_directory::legacy_state::tests::split_state_restart_drains_private_scan_images_without_touching_the_data_home ... ok
test private_tmp_tests::creator_receipt_alone_cannot_authorize_legacy_state_migration ... ok
test private_tmp_tests::concurrent_startup_drain_accepts_a_peer_finishing_the_same_private_directory ... ok
test private_tmp_tests::legacy_state_never_adopts_a_published_key_moved_under_a_quarantine_name ... ok
test private_tmp_tests::interrupted_case_only_rename_never_discards_the_moved_user_inode ... ok
test private_tmp_tests::private_directory_is_shared_across_nested_destinations_and_not_a_symlink ... ok
test private_tmp_tests::no_producer_creates_temporary_files_outside_the_private_directory ... ok
test private_tmp_tests::private_root_loose_images_are_drained_without_deleting_unknown_bytes ... ok
test private_directory::record::tests::write_intent_proves_every_short_prefix_but_never_outside_bytes ... ok
test private_tmp_tests::unreadable_app_metadata_is_restored_without_deleting_unknown_bytes ... ok
test reviewer_744::private_cleanup_stop_child ... ok
test private_tmp_tests::reviewer_744_public_writer_after_last_private_check_survives_cleanup ... ok
test reviewer_744::reviewer_737_and_740_unknown_legacy_bytes_remain_at_original_name ... ok
test names::directory::tests::random_outside_entry_changes_match_the_real_directory ... ok
test reviewer_744::reviewer_742_three_equal_length_upload_rewrites_do_not_touch_public_names ... ok
test reviewer_744::reviewer_744_actual_private_images_retain_external_aliases ... ok
test reviewer_744::reviewer_744_actual_private_replacements_are_not_adopted_for_cleanup ... ok
test reviewer_750::crash_child ... ok
test reviewer_744::reviewer_744_public_cleanup_never_reaches_unlink_or_loses_alias_writes ... ok
test reviewer_750::destination_create_at_exclusive_placement_cannot_be_overwritten ... ok
test reviewer_750::existing_save_external_writes_at_each_exchange_and_unlink_boundary ... ok
test reviewer_750::killed_save_does_not_hide_or_delete_displaced_unknown_bytes ... ok
test reviewer_750::legacy_unproven_untouched_and_proven_moved_before_disposal ... ok
test reviewer_750::streaming_fill_is_private_even_while_the_input_blocks_or_destination_changes ... ok
test reviewer_750::descriptor_opened_on_public_file_keeps_a_visible_survivor_after_save ... ok
test reviewer_759::actual_owner_survives_recovery_and_kernel_releases_after_sigkill ... ok
test reviewer_759::disk_full_save_and_cancellation_keep_outside_bytes ... ok
test reviewer_750::unconditional_metadata_writers_preserve_unknown_displaced_versions ... ok
test reviewer_759::outside_private_writes_and_another_home_survive_owner_death ... ok
test reviewer_759::sigkill_between_payload_write_and_receipt_leaves_no_public_partial_upload ... ok
test reviewer_759::upload_owner_child ... ok
test safe_cleanup_tests::an_app_created_replacement_cannot_transfer_cleanup_authority ... ok
test safe_cleanup_tests::every_cleanup_path_preserves_concurrent_writer_property ... ok
test safe_cleanup_tests::public_unknown_bytes_are_not_renamed_to_conflicts_during_recovery ... ok
test staging::tests::staging_lease_break_child ... ok

running 1 test
test staging::tests::staging_lease_break_child ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 103 filtered out; finished in 0.00s

test staging::tests::staging_lease_break_retains_bytes_and_does_not_signal_server ... ok
test staging::tests::staging_recovery_preserves_unknown_and_racing_outside_bytes ... ok
test reviewer_744::reviewer_744_private_cleanup_abrupt_stop_preserves_public_writes ... ok
test staging::tests::staging_walk_never_follows_links_and_recognises_destinations ... ok
test staging_cleanup_tests::staging_claimed_path_reviewer_race_retains_unjournaled_replacement ... ok
test staging_cleanup_tests::staging_journal_proof_alone_does_not_discard_an_outside_alias_write ... ok
test staging_cleanup_tests::staging_migration_requires_the_complete_old_name_pattern ... ok
test staging_lease::tests::lease_waits_for_a_transient_inherited_writer_before_verifying ... ok
test staging_liveness_tests::a_private_entry_named_tmp_still_has_an_owner ... ok
test staging_liveness_tests::both_recovery_paths_skip_a_live_upload_even_with_journal_proof ... ok
test staging_liveness_tests::cancellation_and_staging_scan_do_not_orphan_a_private_upload ... ok
test staging_liveness_tests::history_proof_holds_the_abandoned_owner_against_other_recovery ... ok
test staging_liveness_tests::private_directory_ownership_covers_scans_and_restart ... ok
test staging_liveness_tests::private_names_preserve_long_unicode_destination_budget ... ok
test staging_liveness_tests::private_names_remain_unique_when_the_clock_does_not_advance ... ok
test staging_liveness_tests::recovery_skips_a_transaction_between_mkdir_and_owner_lock ... ok
test swap::create_tests::create_preserves_outside_file_appearing_after_absence_check ... ok
test swap::create_tests::displaced_replacement_and_rollback_replacement_keep_external_versions ... ok
test swap::create_tests::unsupported_exchange_never_replaces_an_existing_file ... ok
test tests::a_private_directory_is_invisible_until_exclusive_publication ... ok
test tests::a_published_directory_retains_ownership_when_a_parent_flush_fails ... ok
test tests::atomic_write_replaces_and_leaves_no_temp_files ... ok
test reviewer_759::misleading_pid_metadata_never_substitutes_for_a_kernel_owner ... ok
test tests::case_only_collision_rolls_back_or_keeps_the_staged_original ... ok
test tests::case_only_rename_preserves_a_different_destination ... ok
test tests::case_only_rename_works_and_other_clashes_are_refused ... ok
test tests::delta_rename_must_preserve_file_arriving_after_absence_check ... ok
test tests::directory_publication_rechecks_changed_inheritance_policy ... ok
test tests::dropping_data_lock_releases_it_even_with_an_inherited_file_handle ... ok
test tests::failed_write_keeps_the_old_file ... ok
test tests::many_files_are_replaced_whole ... ok
test tests::many_new_files_never_replace_anything ... ok
test tests::named_bulk_staging_is_whole_exclusive_and_leaves_no_temporary_name ... ok
test tests::names_fold_case_and_unicode_form ... ok
test tests::only_one_process_owns_a_data_folder ... ok
test tests::big_writes_arrive_whole ... ok
test tests::prepared_writes_land_only_when_placed ... ok
test tests::private_directory_publication_preserves_a_destination_that_arrives ... ok
test tests::rename_preserves_a_dangling_destination_symlink ... ok
test tests::staged_bulk_keeps_the_destination_default_acl ... ok
test tests::staged_bulk_preserves_occupied_files_and_falls_back_when_staging_is_missing ... ok
test tests::unique_names_skip_case_and_form_clashes ... ok
test tests::parallel_bulk_preserves_result_slots_and_observes_the_final_sync ... ok
test usage::private_usage_tests::transient_images_and_manifests_never_count_as_user_storage ... ok
test usage::tests::a_separate_state_root_counts_what_plugins_report ... ok
test usage::tests::bulk_writes_and_published_folders_count_without_a_recount ... ok
test usage::tests::reads_do_not_wait_for_the_counter_writer ... ok
test usage::tests::recount_preserves_concurrent_writes_and_deletes ... ok
test usage::tests::stale_metadata_cannot_replace_a_newer_update ... ok
test usage::tests::writes_moves_trash_and_purge_update_without_a_recount ... ok
test staging::tests::staging_recovery_retains_an_inode_with_an_open_outside_writer ... ok
test tests::write_unless_changed_keeps_someone_elses_version ... ok
test readonly_alias_tests::readonly_descriptors_cannot_lose_later_completed_writes ... ok

test result: ok. 104 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.96s

   Doc-tests calternal_attachments

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests calternal_fsio

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

cargo test -p calternal --test storage_startup — exit 0
   Compiling calternal v0.1.0 (/home/agent/wt/bm2-crash/crates/calternal)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 1.83s
     Running tests/storage_startup.rs (target/debug/deps/storage_startup-bb9b49e5611a44ef)

running 11 tests
test a_lock_held_past_the_longest_grace_still_fails_startup ... ok
test create_refuses_unpaired_notes_or_databases_before_creating_other_root ... ok
test both_missing_markers_with_existing_split_data_require_confirmed_re_pair ... ok
test legacy_history_read_only_and_invalid_state_are_refused ... ok
test original_storage_startup_scenario_repeats_100x_under_load ... ignored, stress gate; run explicitly during release validation
test missing_home_refuses_without_creating_directory_or_lock ... ok
test missing_state_never_recreates_databases_even_with_create ... ok
test single_root_upgrade_backup_split_cache_delete_and_rollback ... ok
test roots_must_keep_their_persistent_partner_and_admin_must_confirm ... ok
test startup_waits_for_a_previous_server_to_release_both_roots ... ok
test both_roots_remain_exclusively_locked ... ok

test result: ok. 10 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 10.02s

cargo test -p calternal --test attachments_crash -- --nocapture — exit 0
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s
     Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c)

running 2 tests
test kill_nine_mid_upload_leaves_nothing_half_written ... ok
upload 128 MiB in 0.79 s = 162 MiB/s; RSS before 30716 KiB, peak during 31964 KiB, after 32420 KiB, high-water 32420 KiB
peak above idle: 32 MiB upload 5340 KiB, 128 MiB upload 1704 KiB
test a_big_upload_streams_in_bounded_memory ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.19s

cargo fmt --all -- --check — exit 0
cargo clippy --workspace --all-targets -- -D warnings — exit 0
    Checking cfg-if v1.0.5
    Checking libc v0.2.190
    Checking itoa v1.0.18
    Checking memchr v2.8.3
    Checking serde_core v1.0.229
    Checking rand_core v0.10.1
    Checking once_cell v1.21.4
    Checking pin-project-lite v0.2.17
    Checking getrandom v0.4.3
    Checking log v0.4.34
    Checking zmij v1.0.23
    Checking bitflags v2.13.2
    Checking smallvec v1.16.3
    Checking bytes v1.12.1
    Checking scopeguard v1.2.0
    Checking lock_api v0.4.14
    Checking parking_lot_core v0.9.12
    Checking tracing-core v0.1.36
    Checking mio v1.2.4
    Checking errno v0.3.14
    Checking linux-raw-sys v0.12.1
    Checking signal-hook-registry v1.4.8
    Checking rustix v1.1.5
    Checking tracing v0.1.44
    Checking parking_lot v0.12.5
    Checking socket2 v0.6.5
    Checking tokio v1.53.2
    Checking serde v1.0.229
    Checking serde_json v1.0.154
    Checking uuid v1.28.0
    Checking thiserror v2.0.21
    Checking ref-cast v1.0.27
    Checking typenum v1.20.1
    Checking dyn-clone v1.0.20
    Checking base64 v0.22.1
    Checking schemars v1.2.3
    Checking foldhash v0.2.0
    Checking constant_time_eq v0.4.2
    Checking hashbrown v0.17.1
    Checking arrayvec v0.7.8
    Checking blake3 v1.8.7
    Checking tinyvec v1.13.3
    Checking arc-swap v1.9.2
    Checking unicode-normalization v0.1.25
    Checking libsqlite3-sys v0.38.2
    Checking hashlink v0.12.2
    Checking fallible-iterator v0.3.0
    Checking calternal-core v0.1.0 (/home/agent/wt/bm2-crash/crates/core)
    Checking fallible-streaming-iterator v0.1.9
    Checking calternal-fsio v0.1.0 (/home/agent/wt/bm2-crash/crates/fsio)
    Checking rusqlite v0.40.2
    Checking chacha20 v0.10.2
    Checking rand v0.10.3
   Compiling num-conv v0.2.2
   Compiling time-core v0.1.9
    Checking calternal-store v0.1.0 (/home/agent/wt/bm2-crash/crates/store)
   Compiling time-macros v0.2.32
    Checking calternal-memory v0.1.0 (/home/agent/wt/bm2-crash/crates/memory)
    Checking deranged v0.5.9
    Checking powerfmt v0.2.1
    Checking num-traits v0.2.19
    Checking ryu v1.0.23
    Checking unicase v2.10.0
    Checking calternal-engine v0.1.0 (/home/agent/wt/bm2-crash/crates/engine)
    Checking hybrid-array v0.4.15
    Checking futures-core v0.3.34
    Checking block-buffer v0.12.1
    Checking crypto-common v0.2.2
    Checking const-oid v0.10.2
    Checking cpufeatures v0.3.1
    Checking digest v0.11.3
    Checking fnv v1.0.7
    Checking http v1.5.0
    Checking futures-sink v0.3.34
    Checking fastrand v2.5.0
    Checking regex-syntax v0.8.11
    Checking httparse v1.10.1
    Checking futures-channel v0.3.34
    Checking calternal-testkit v0.1.0 (/home/agent/wt/bm2-crash/crates/testkit)
    Checking futures-io v0.3.34
    Checking time v0.3.55
    Checking slab v0.4.12
    Checking data-encoding v2.11.1
    Checking futures-task v0.3.34
    Checking percent-encoding v2.3.2
    Checking futures-util v0.3.34
    Checking zerocopy v0.8.62
    Checking lazy_static v1.5.1
    Checking getrandom v0.3.4
    Checking rand_core v0.9.5
    Checking zerofrom v0.1.8
    Checking generic-array v0.14.7
    Checking form_urlencoded v1.2.2
    Checking stable_deref_trait v1.2.1
    Checking http-body v1.1.0
    Checking yoke v0.8.3
    Checking alloc-no-stdlib v3.0.0
    Checking simd-adler32 v0.3.10
    Checking adler2 v2.0.1
    Checking alloc-stdlib v0.3.0
    Checking miniz_oxide v0.9.1
    Checking crc32fast v1.5.2
    Checking ppv-lite86 v0.2.21
    Checking crypto-common v0.1.7
    Checking block-buffer v0.10.4
    Checking tower-service v0.3.3
    Checking rand_chacha v0.9.0
    Checking digest v0.10.7
    Checking zerovec v0.11.8
    Checking rand v0.9.5
    Checking flate2 v1.1.10
    Checking brotli-decompressor v6.0.1
    Checking cpufeatures v0.2.17
    Checking tower-layer v0.3.3
    Checking mime v0.3.17
    Checking httpdate v1.0.3
   Compiling mime_guess v2.0.5
    Checking sha1 v0.10.7
    Checking brotli v9.0.0
    Checking http-body-util v0.1.5
    Checking tokio-util v0.7.20
    Checking sha1 v0.11.0
    Checking atomic-waker v1.1.2
    Checking sync_wrapper v1.0.2
    Checking compression-core v0.4.33
    Checking hyper v1.12.0
    Checking tungstenite v0.30.0
    Checking compression-codecs v0.4.45
    Checking tungstenite v0.29.0
    Checking parking v2.2.1
    Checking event-listener v5.4.2
    Checking async-compression v0.4.50
    Checking tokio-tungstenite v0.30.0
    Checking tokio-tungstenite v0.29.0
    Checking hyper-util v0.1.21
    Checking tower v0.5.3
    Checking axum-core v0.5.6
    Checking tinystr v0.8.4
    Checking serde_urlencoded v0.7.1
    Checking serde_path_to_error v0.1.20
    Checking writeable v0.6.4
    Checking matchit v0.8.4
    Checking litemap v0.8.3
    Checking http-range-header v0.4.2
    Checking icu_locale_core v2.3.0
    Checking axum v0.8.9
    Checking tower-http v0.6.11
    Checking crossbeam-utils v0.8.23
    Checking event-listener-strategy v0.5.4
    Checking inotify-sys v0.1.8
    Checking potential_utf v0.1.6
    Checking zerotrie v0.2.5
    Checking utf8_iter v1.0.4
    Checking equivalent v1.0.2
    Checking same-file v1.0.6
    Checking hashbrown v0.14.5
    Checking walkdir v2.5.0
    Checking indexmap v2.14.2
    Checking dashmap v6.2.1
    Checking icu_collections v2.3.0
    Checking icu_provider v2.3.1
    Checking inotify v0.11.5
    Checking async-lock v3.4.2
    Checking smallstr v0.3.1
    Checking notify-types v2.1.0
    Checking minimal-lexical v0.2.1
    Checking unsafe-libyaml v0.2.11
    Checking xxhash-rust v0.8.19
    Checking serde_yaml v0.9.34+deprecated
    Checking notify v9.0.0-rc.5
    Checking nom v7.1.3
    Checking yrs v0.28.0
    Checking pulldown-cmark v0.13.4
    Checking icu_normalizer_data v2.3.0
    Checking icu_properties_data v2.3.0
    Checking sha2 v0.11.1
    Checking hashbrown v0.16.1
    Checking similar v3.2.0
    Checking unicode-segmentation v1.13.3
    Checking thiserror v1.0.69
    Checking icu_properties v2.3.0
    Checking icu_normalizer v2.3.0
    Checking rusticata-macros v4.1.0
    Checking asn1-rs v0.6.2
    Checking calternal-server v0.1.0 (/home/agent/wt/bm2-crash/crates/server)
    Checking idna_adapter v1.2.2
    Checking num-integer v0.1.47
    Checking foreign-types-shared v0.1.1
    Checking zeroize v1.9.1
    Checking base64 v0.21.7
    Checking base64urlsafedata v0.5.5
    Checking calternal-notes v0.1.0 (/home/agent/wt/bm2-crash/crates/notes)
    Checking rustls-pki-types v1.15.1
    Checking foreign-types v0.3.2
    Checking num-bigint v0.4.8
    Checking idna v1.1.0
    Checking openssl-sys v0.9.117
    Checking getrandom v0.2.17
    Checking untrusted v0.9.0
    Checking ring v0.17.14
    Checking openssl v0.10.81
    Checking der-parser v9.0.0
    Checking url v2.5.8
    Checking oid-registry v0.7.1
    Checking half v2.7.1
    Checking calternal-plugin-hello v0.1.0 (/home/agent/wt/bm2-crash/crates/plugin-hello)
    Checking base64 v0.23.1
    Checking x509-parser v0.16.0
    Checking serde_cbor_2 v0.13.0
    Checking webauthn-rs-proto v0.5.5
    Checking webauthn-attestation-ca v0.5.5
    Checking rustls-webpki v0.103.15
    Checking web-time v1.1.0
    Checking imagesize v0.14.0
    Checking hex v0.4.3
    Checking subtle v2.6.1
    Checking webauthn-rs-core v0.5.5
    Checking rustls v0.23.46
    Checking cfb v0.14.0
    Checking ureq-proto v0.6.4
    Checking webpki-roots v1.0.9
    Checking utf8-zero v0.8.1
    Checking ureq v3.4.2
    Checking infer v0.22.0
    Checking tempfile v3.27.0
    Checking unicode-script v0.5.8
    Checking unicode-security v0.1.2
    Checking webauthn-rs v0.5.5
    Checking unicode-general-category v0.6.0
    Checking regex-automata v0.4.18
    Checking wait-timeout v0.2.1
    Checking quick-error v1.2.3
    Checking bit-vec v0.10.1
    Checking unicode-casefold v0.2.0
    Checking bit-set v0.11.1
    Checking rusty-fork v0.3.1
    Checking matchers v0.2.0
    Checking calternal-attachments v0.1.0 (/home/agent/wt/bm2-crash/crates/attachments)
    Checking calternal-backdrops v0.1.0 (/home/agent/wt/bm2-crash/crates/backdrops)
    Checking sharded-slab v0.1.7
    Checking calternal-contacts v0.1.0 (/home/agent/wt/bm2-crash/crates/contacts)
    Checking tracing-log v0.2.0
    Checking rand_xorshift v0.5.0
    Checking thread_local v1.1.10
    Checking nu-ansi-term v0.50.3
    Checking core_detect v1.0.0
    Checking unarray v0.1.4
    Checking proptest v1.12.0
    Checking tracing-subscriber v0.3.23
    Checking calternal-auth v0.1.0 (/home/agent/wt/bm2-crash/crates/auth)
    Checking futures-executor v0.3.34
   Compiling async-stream-impl v0.3.6
   Compiling webauthn-authenticator-rs v0.5.5
    Checking calternal-tasks v0.1.0 (/home/agent/wt/bm2-crash/crates/tasks)
    Checking futures v0.3.34
    Checking tokio-stream v0.1.19
    Checking serde_bytes v0.11.19
   Compiling num-derive v0.4.2
    Checking async-stream v0.3.6
    Checking bitflags v1.3.2
    Checking calternal-search v0.1.0 (/home/agent/wt/bm2-crash/crates/search)
    Checking calternal-daily v0.1.0 (/home/agent/wt/bm2-crash/crates/daily)
    Checking calternal-contacts-actions v0.1.0 (/home/agent/wt/bm2-crash/crates/contacts-actions)
    Checking calternal-migrate-v0 v0.1.0 (/home/agent/wt/bm2-crash/crates/migrate-v0)
    Checking calternal-prefs v0.1.0 (/home/agent/wt/bm2-crash/crates/prefs)
    Checking calternal-fixtures v0.1.0 (/home/agent/wt/bm2-crash/crates/fixtures)
    Checking calternal-perf v0.1.0 (/home/agent/wt/bm2-crash/crates/perf)
    Checking calternal v0.1.0 (/home/agent/wt/bm2-crash/crates/calternal)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.58s
cargo test --workspace — exit 0
   Compiling futures-channel v0.3.34
   Compiling futures-io v0.3.34
   Compiling tempfile v3.27.0
   Compiling calternal-notes v0.1.0 (/home/agent/wt/bm2-crash/crates/notes)
   Compiling futures-util v0.3.34
   Compiling rusty-fork v0.3.1
   Compiling tower v0.5.3
   Compiling tokio-tungstenite v0.29.0
   Compiling axum v0.8.9
   Compiling tower-http v0.6.11
   Compiling tokio-tungstenite v0.30.0
   Compiling proptest v1.12.0
   Compiling calternal-server v0.1.0 (/home/agent/wt/bm2-crash/crates/server)
   Compiling regex-automata v0.4.18
   Compiling matchers v0.2.0
   Compiling tracing-subscriber v0.3.23
   Compiling futures-executor v0.3.34
   Compiling async-stream v0.3.6
   Compiling futures v0.3.34
   Compiling tokio-stream v0.1.19
   Compiling calternal-backdrops v0.1.0 (/home/agent/wt/bm2-crash/crates/backdrops)
   Compiling calternal-attachments v0.1.0 (/home/agent/wt/bm2-crash/crates/attachments)
   Compiling calternal-auth v0.1.0 (/home/agent/wt/bm2-crash/crates/auth)
   Compiling serde_bytes v0.11.19
   Compiling bitflags v1.3.2
   Compiling webauthn-authenticator-rs v0.5.5
   Compiling calternal-fixtures v0.1.0 (/home/agent/wt/bm2-crash/crates/fixtures)
   Compiling calternal-tasks v0.1.0 (/home/agent/wt/bm2-crash/crates/tasks)
   Compiling calternal-daily v0.1.0 (/home/agent/wt/bm2-crash/crates/daily)
   Compiling calternal-contacts-actions v0.1.0 (/home/agent/wt/bm2-crash/crates/contacts-actions)
   Compiling calternal v0.1.0 (/home/agent/wt/bm2-crash/crates/calternal)
   Compiling calternal-perf v0.1.0 (/home/agent/wt/bm2-crash/crates/perf)
   Compiling calternal-search v0.1.0 (/home/agent/wt/bm2-crash/crates/search)
   Compiling calternal-contacts v0.1.0 (/home/agent/wt/bm2-crash/crates/contacts)
   Compiling calternal-fsio v0.1.0 (/home/agent/wt/bm2-crash/crates/fsio)
   Compiling calternal-migrate-v0 v0.1.0 (/home/agent/wt/bm2-crash/crates/migrate-v0)
   Compiling calternal-engine v0.1.0 (/home/agent/wt/bm2-crash/crates/engine)
   Compiling calternal-prefs v0.1.0 (/home/agent/wt/bm2-crash/crates/prefs)
   Compiling calternal-store v0.1.0 (/home/agent/wt/bm2-crash/crates/store)
   Compiling calternal-plugin-hello v0.1.0 (/home/agent/wt/bm2-crash/crates/plugin-hello)
   Compiling calternal-core v0.1.0 (/home/agent/wt/bm2-crash/crates/core)
   Compiling calternal-testkit v0.1.0 (/home/agent/wt/bm2-crash/crates/testkit)
   Compiling calternal-memory v0.1.0 (/home/agent/wt/bm2-crash/crates/memory)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 47.60s
     Running unittests src/main.rs (target/debug/deps/calternal-108149eafe5c4cdc)

running 32 tests
test admin::tests::a_stop_sent_before_subscribing_is_still_seen ... ok
test admin::tests::an_active_request_gets_a_graceful_shutdown_window ... ok
test args::tests::dev_user_never_on_a_public_address ... ok
test args::tests::defaults_and_flags ... ok
test args::tests::migrate_v0 ... ok
test args::tests::fix_commands ... ok
test args::tests::origin_defaults_to_the_local_port ... ok
test args::tests::state_defaults_to_resolved_data_and_flags_override_environment ... ok
test args::tests::user_create ... ok
test args::tests::setup_and_re_pair_are_explicit ... ok
test args::tests::user_recover ... ok
test args::tests::web_folder ... ok
test admin::tests::shutdown_stops_a_client_waiting_on_a_partial_request ... ok
test admin::tests::a_restart_waits_out_an_admin_request_longer_than_ten_seconds ... ok
test isolation::bob_cannot_reach_alices_attachments ... ok
test isolation::in_process_server_shutdown_releases_both_roots_200x_under_load ... ignored, stress gate; run explicitly during release validation
test isolation::contacts_and_tasks_in_one_home_keep_their_own_members ... ok
test isolation::people::backdrops_spend_the_same_counter_as_small_attachments ... ok
test isolation::people::duplicate_upload_at_quota_must_not_spend_bytes_twice ... ok
test isolation::people::normal_token_failures_do_not_log_or_persist_plaintext ... ok
test isolation::people::real_upload_storm_notes_trash_restore_and_delete_usage ... ok
test isolation::people_actions_hide_real_ids_from_members_other_users_and_anonymous_callers ... ok
test isolation::quota_refuses_large_and_small_uploads_while_notes_still_save ... ok
test isolation::bob_cannot_join_alices_note_room ... ok
test isolation::bob_reaches_nothing_of_alices_through_any_action ... ok
test isolation::renaming_a_task_retargets_task_and_contact_links_once ... ok
test isolation::split_storage_keeps_originals_and_databases_on_their_disks ... ok
test plugins::tests::contract_matches_the_server ... ok
test shutdown_io::tests::shutdown_finishes_an_idle_read_and_keeps_response_writes_open ... ok
test shutdown_io::tests::shutdown_bounds_response_writes_to_a_peer_that_stops_reading ... ok
test isolation::people::every_action_obeys_person_visibility ... ok
test isolation::randomized_home_shutdown_releases_both_roots ... ok

test result: ok. 31 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.62s

     Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-b2cb624769b95cc3)

running 2 tests
test kill_nine_mid_upload_leaves_nothing_half_written ... ok
test a_big_upload_streams_in_bounded_memory ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.96s

     Running tests/contacts_live.rs (target/debug/deps/contacts_live-8d9bb01c10636ba2)

running 2 tests
test a_phone_renames_a_contact_while_someone_types_in_a_linking_note ... ok
test a_live_h1_collision_keeps_contact_and_incoming_link_identity ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.05s

     Running tests/fix_tz_live.rs (target/debug/deps/fix_tz_live-ef1bc97e7a0c2deb)

running 2 tests
test fix_without_a_running_server_says_so ... ok
test strip_tz_markers_on_a_live_home_with_a_client_typing ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.31s

     Running tests/notes_crash.rs (target/debug/deps/notes_crash-50065b1868a6285f)

running 3 tests
test kill_nine_mid_tag_rename_renames_each_tag_once ... ok
test kill_nine_mid_append_on_a_long_note ... ok
test kill_nine_never_loses_or_doubles ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.52s

     Running tests/notes_crash_typing.rs (target/debug/deps/notes_crash_typing-69621e9e5c3af2a6)

running 1 test
test kill_nine_while_people_type_loses_and_doubles_nothing ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.95s

     Running tests/notes_live.rs (target/debug/deps/notes_live-f15abc5dd02bf82b)

running 2 tests
test joining_a_missing_note_fails_politely ... ok
test type_over_the_websocket_and_read_it_back ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

     Running tests/prefs_live.rs (target/debug/deps/prefs_live-51218f6718df02ea)

running 1 test
test preferences_are_saved_checked_and_kept ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

     Running tests/search_live.rs (target/debug/deps/search_live-2a42fb6b57e31110)

running 3 tests
test perf_live_empty_search_under_one_second ... ignored, live empty-search latency budget runs on the perf VM via perf/ordinary-latency-vm.sh
test block_markers_are_hidden_from_titles_snippets_and_search ... ok
test notes_from_everywhere_are_found ... ok

test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.79s

     Running tests/staging_canonical_race.rs (target/debug/deps/staging_canonical_race-aed8c607ed994711)

running 2 tests
ordinary startup recovery marked=False: unknown legacy names and bytes retained
canonical race before, rewrite: PASS
ordinary startup recovery marked=True: unknown legacy names and bytes retained
test reviewer_742_ordinary_startup_preserves_replacements_with_and_without_markers ... ok
canonical race before, replace: PASS
canonical race after, rewrite: PASS
canonical race after, replace: PASS
test staging_canonical_race_before_and_after_recovery ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s

     Running tests/startup.rs (target/debug/deps/startup-376fa11748dc23de)

running 6 tests
test perf_startup_under_500ms ... ignored, startup latency budget runs on the perf VM via perf/ordinary-latency-vm.sh
test refuses_dev_user_on_a_public_address ... ok
test refuses_plain_http_on_a_public_origin ... ok
test a_new_server_prints_a_setup_token ... ok
test answers_after_launch ... ok
test recover_only_knows_real_people ... ok

test result: ok. 5 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/storage_startup.rs (target/debug/deps/storage_startup-102740d70cbb4eb8)

running 11 tests
test a_lock_held_past_the_longest_grace_still_fails_startup ... ok
test create_refuses_unpaired_notes_or_databases_before_creating_other_root ... ok
test missing_home_refuses_without_creating_directory_or_lock ... ok
test both_missing_markers_with_existing_split_data_require_confirmed_re_pair ... ok
test legacy_history_read_only_and_invalid_state_are_refused ... ok
test original_storage_startup_scenario_repeats_100x_under_load ... ignored, stress gate; run explicitly during release validation
test missing_state_never_recreates_databases_even_with_create ... ok
test single_root_upgrade_backup_split_cache_delete_and_rollback ... ok
test roots_must_keep_their_persistent_partner_and_admin_must_confirm ... ok
test startup_waits_for_a_previous_server_to_release_both_roots ... ok
test both_roots_remain_exclusively_locked ... ok

test result: ok. 10 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 10.02s

     Running unittests src/lib.rs (target/debug/deps/calternal_attachments-a0ecb4cd83747940)

running 19 tests
test serve::tests::only_plain_visible_paths_are_served ... ok
test serve::tests::ranges ... ok
test serve::tests::dispositions_quote_safely ... ok
test tests::http::a_connection_that_breaks_off_leaves_nothing ... ok
test tests::http::a_retry_with_the_same_key_never_makes_a_second_copy ... ok
test tests::http::an_upload_lands_in_its_dated_folder_and_is_served_back ... ok
test tests::http::check_finds_only_your_own_files ... ok
test tests::http::names_can_not_steer_where_a_file_goes ... ok
test tests::http::paths_that_climb_out_of_the_home_are_not_found ... ok
test tests::http::the_sweep_removes_what_a_crash_left_and_spares_live_uploads ... ok
test tests::http::uploads_need_a_session_our_page_and_a_key ... ok
test tests::sniffing::days_are_strict ... ok
test tests::sniffing::names_are_kept_but_made_safe ... ok
test tests::sniffing::pictures_and_videos_go_to_photos ... ok
test tests::sniffing::text_types_come_from_the_extension_and_html_never_runs ... ok
test tests::sniffing::the_name_never_decides_a_binary_type ... ok
test tests::http::the_limit_holds_while_streaming_without_a_length ... ok
test tests::http::unsafe_types_are_downloads_with_a_strict_policy ... ok
test tests::http::the_same_file_again_says_already_uploaded_and_keeps_one_copy ... ok

test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

     Running unittests src/lib.rs (target/debug/deps/calternal_auth-703206bf9c48da69)

running 30 tests
test config::tests::origins ... ok
test ceremony::tests::full_pool_refuses_foreign_source_without_discarding_live_prompt ... ok
test ceremony::tests::anonymous_pool_stays_bounded_and_evicts_oldest ... ok
test db::tests::a_version_1_database_gets_passkey_names ... ok
test http::cookie_tests::session_cookie_is_host_only_and_secure ... ok
test db::tests::migration_keeps_the_first_owner_when_creation_times_tie ... ok
test db::tests::existing_database_keeps_people_credentials_and_sessions ... ok
test invite_key::tests::lookup_uses_a_separate_derived_key_and_depends_on_the_server_key ... ok
test invite_redeem::tests::expiry_and_clock_rollback_use_the_same_validation_path ... ok
test invite_redeem::tests::invalid_invite_classes_perform_one_lookup_and_one_secret_comparison ... ok
test invite_redeem::tests::invalid_invites_do_not_reveal_name_conflicts ... ok
test limit::reliability_tests::backoff_expires_is_capped_and_refusals_do_not_extend_it ... ok
test limit::reliability_tests::buckets_are_independent_and_bounded ... ok
test http::proxy_tests::forwarding_stops_at_first_untrusted_hop_and_rejects_malformed_chains ... ok
test db::tests::opens_twice_and_keeps_schema ... ok
test limit::reliability_tests::target_capacity_preserves_live_budgets_and_evicts_only_oldest_expired ... ok
test passkeys::tests::ids_round_trip ... ok
test passkeys::tests::names_are_trimmed_short_and_never_empty ... ok
test session::tests::names_are_cleaned ... ok
test invite_key::tests::key_round_trips_but_modified_ciphertext_and_another_id_fail ... ok
test limit::reliability_tests::full_map_evicts_least_recent_without_refusing_new_sources ... ok
test setup::tests::names_reject_invisible_and_normalize_nfc ... ok
test setup::tests::names ... ok
test setup::tests::recover_needs_a_known_person ... ok
test setup::tests::usernames ... ok
test token::tests::junk_is_not_a_token ... ok
test token::tests::setup_tokens_round_trip_through_pasting ... ok
test setup::tests::cli_creation_refuses_admin_name_confusables ... ok
test setup::tests::recovery_requires_exact_username_or_uuid_never_display_name ... ok
test limit::reliability_tests::source_churn_cannot_reset_target_budget ... ok

test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.09s

     Running tests/abuse.rs (target/debug/deps/abuse-b4f2927b34dec802)

running 12 tests
test bad_json_and_unknown_fields_are_refused ... ok
test anonymous_prompt_flood_preserves_login_setup_and_add ... ok
test forged_sessions_get_nowhere ... ok
test duplicate_session_cookies_never_choose_an_identity ... ok
test junk_setup_tokens_are_refused_then_rate_limited ... ok
test non_json_requests_are_refused ... ok
test login_source_limit_does_not_block_another_client ... ok
test one_source_cannot_lock_out_another_and_cannot_spoof_forwarding ... ok
test other_sites_cannot_act_for_you ... ok
test nothing_about_the_server_leaks_before_sign_in ... ok
test oversized_bodies_are_refused ... ok
test garbage_credentials_never_crash ... ok

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s

     Running tests/create.rs (target/debug/deps/create-62d3e6471dfb5e68)

running 6 tests
test an_earlier_first_owner_token_stops_working ... ok
test names_must_be_usable_and_unique ... ok
test an_expired_enrolment_token_is_refused ... ok
test nothing_about_the_person_leaks_before_sign_in ... ok
test a_created_person_enrolls_their_first_passkey_and_is_the_same_person ... ok
test an_enrolment_token_works_exactly_once_under_a_storm ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

     Running tests/groups.rs (target/debug/deps/groups-815969257eb1cf8e)

running 1 test
test shared_groups_control_visibility_and_managers_only_edit_local_members ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/host_cookies.rs (target/debug/deps/host_cookies-6e03f5ea1a901a63)

running 3 tests
test old_name_is_ignored_and_cleared_once_without_touching_host_session ... ok
test duplicate_host_headers_and_stale_requests_never_clear_new_session ... ok
test upgrading_schema_six_removes_cookie_state_and_keeps_passkeys ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/invites.rs (target/debug/deps/invites-10261cb70b148b14)

running 8 tests
test invite_finish_rechecks_admin_names_after_role_changes ... ok
test invite_admin_names_cannot_be_impersonated_and_failure_preserves_invite ... ok
test invite_redemption_joins_its_groups_and_other_inviters_cannot_copy_it ... ok
test legacy_invite_indexes_upgrade_atomically_and_keep_copy_and_redemption ... ok
test invite_can_be_copied_after_restart_and_only_one_racing_passkey_wins ... ok
test losing_the_key_does_not_replace_it_and_invite_secrets_never_enter_action_history ... ok
test wrong_expired_used_and_revoked_invites_give_one_answer ... ok
test invite_redemption_reaches_a_visible_admin_but_not_an_unrelated_member ... ok

test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s

     Running tests/isolation.rs (target/debug/deps/isolation-dadd7a81ee29fe1e)

running 3 tests
test a_cookie_sent_from_another_sites_page_does_not_count ... ok
test devices_and_passkeys_of_another_person_are_not_found ... ok
test another_persons_passkey_prompt_cannot_be_used_or_cancelled ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

     Running tests/login.rs (target/debug/deps/login-9f6dca58a91514b6)

running 11 tests
test foreign_status_cannot_sign_the_browser_out ... ok
test a_sign_in_answer_cannot_be_replayed ... ok
test bearer_tokens_work_like_cookies ... ok
test an_unknown_passkey_is_refused ... ok
test logout_revokes_the_installation_and_rejects_live_cookies ... ok
test sign_in_with_a_passkey_creates_a_new_installation ... ok
test signing_in_shows_up_live_on_another_device ... ok
test revoking_another_device_signs_it_out ... ok
test sign_out_ends_the_session_immediately ... ok
test signing_out_shows_up_live_on_another_device ... ok
test sessions_expire_when_unused ... ok

test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s

     Running tests/migration.rs (target/debug/deps/migration-f4dacdb22be609ad)

running 1 test
test schema_two_copy_keeps_real_credentials_sessions_and_recovery ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

     Running tests/passkeys.rs (target/debug/deps/passkeys-4b7e64f9cdc008dc)

running 7 tests
test an_empty_name_is_refused_and_a_long_one_is_cut ... ok
test the_first_passkey_is_listed_with_the_device_it_was_made_on ... ok
test a_removed_passkey_that_is_gone_or_unknown_is_not_found ... ok
test add_rename_and_remove_each_leave_a_journal_event ... ok
test the_same_device_cannot_be_added_twice ... ok
test adding_needs_a_sign_in_and_an_add_prompt_works_once ... ok
test the_last_passkey_cannot_be_removed ... ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s

     Running tests/people.rs (target/debug/deps/people-efc7cccf1f0e0865)

running 4 tests
test promotion_cannot_create_confusable_admin_names ... ok
test member_cannot_change_roles_and_new_capability_sets_work ... ok
test first_owner_has_capabilities_and_cannot_demote_the_last_admin ... ok
test two_admins_racing_to_demote_themselves_leave_one_admin ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

     Running tests/quota_counter.rs (target/debug/deps/quota_counter-1e9503a2dbb24bfc)

running 3 tests
test perf_signin_during_large_recount_under_fifty_ms ... ignored, sign-in latency budget runs on the perf VM via perf/ordinary-latency-vm.sh
test small_uploads_spend_the_same_allowance_as_large_uploads ... ok
test signin_finishes_before_a_large_recount ... ok

test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.99s

     Running tests/reliability_review.rs (target/debug/deps/reliability_review-95c7ecd72b1447de)

running 22 tests
test authentication_database_does_not_wait_for_general_blocking_workers ... ok
test anonymous_flood_must_not_evict_other_persons_prompt ... ok
test crash_child_exit ... ignored
test concurrent_quota_admissions_do_not_overspend ... ok
test counter_concurrent_mutations_drift_and_restart ... ok
test directory_moves_keep_child_accounting_and_deletes_correct ... ok
test directory_move_during_initial_recount_must_track_later_deletes ... ok
test independent_login_latency_during_recount ... ignored, latency budget runs on the perf VM via perf/auth-latency-vm.sh
test ipv6_prefix_must_share_budget ... ok
test default_twenty_mib_stream_boundary ... ok
test names_normalization_recovery_and_invisibles ... ok
test normalized_setup_token_must_share_target_budget ... ok
test perf_ipv6_source_rotation_under_fifty_five_seconds ... ignored, IPv6 source-churn latency budget runs on the perf VM via perf/ordinary-latency-vm.sh
test repeated_bad_signatures_for_one_account_must_share_budget ... ok
test restart_recovers_disk_update_missing_counter_notification ... ok
test slow_uploads_must_not_starve_authentication_blocking_pool ... ok
test source_isolation_and_untrusted_forwarding ... ok
test ipv6_rotation_must_not_lock_out_new_source ... ok
test trusted_proxy_uses_nearest_untrusted_hop ... ok
test streamed_slow_exact_over_abort_and_quota_replacement ... ok
test independent_login_completes_before_recount ... ok
test account_owner_can_sign_in_after_backoff_and_success_resets_failures ... ok

test result: ok. 19 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 1.12s

     Running tests/reliability_round3.rs (target/debug/deps/reliability_round3-0f70bebb89d07ece)

running 12 tests
test canonical_recovery_token_variants_share_one_target_without_spending_other_tokens ... ok
test attachment_and_backdrop_routes_share_caps_and_cancel_cleanup ... ok
test fifty_slow_upload_attempts_preserve_full_signin_and_status ... ok
test ipv4_mapped_v6_and_native_v4_share_budget_but_adjacent_prefix_does_not ... ok
test over_ten_thousand_distinct_source_buckets_still_admit_new_clients ... ok
test perf_signin_and_status_during_slow_uploads_under_fifty_ms ... ignored, sign-in and status latency budgets run on the perf VM via perf/ordinary-latency-vm.sh
test perf_source_bucket_churn_under_fifty_five_seconds ... ignored, source-bucket churn latency budget runs on the perf VM via perf/ordinary-latency-vm.sh
test rename_collision_and_replacement_keep_correct_usage ... ok
test setup_target_budget_survives_more_than_ten_thousand_sources ... ok
test idle_deadline_cleans_files_and_reopens_each_person_capacity ... ok
test attachment_slow_bodies_must_not_hold_all_general_blocking_workers ... ok
test maximum_account_backoff_releases_owner_despite_refused_retries has been running for over 60 seconds
test maximum_account_backoff_releases_owner_despite_refused_retries ... ok

test result: ok. 10 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 123.82s

     Running tests/security_regressions.rs (target/debug/deps/security_regressions-26737666eae29f89)

running 15 tests
test eight_parallel_redeemers_create_exactly_one_account ... ok
test concurrent_key_creation_publishes_one_complete_key ... ok
test expiry_during_passkey_registration_consumes_nothing ... ok
test every_action_rejects_anonymous_expired_and_unprivileged_writes ... ok
test groups_manager_must_obey_single_person_visibility_rule ... ok
test invite_lookup_must_use_keyed_hash ... ok
test new_modules_are_small_and_documented ... ok
test key_permissions_missing_corrupt_and_no_plaintext_history ... ok
test perf_invite_failure_timing_classes_within_ratio ... ignored, invite failure timing budget runs on the perf VM via perf/ordinary-latency-vm.sh
test malformed_token_must_have_same_generic_response ... ok
test origin_dev_schema_migrates_idempotently_and_rolls_back_partial_failure ... ok
test revoked_expired_used_and_wrong_fail_equally ... ok
test two_admins_demoting_each_other_keep_one_manager ... ok
test all_five_invite_failures_have_the_same_body_and_status ... ok
test quota_serializes_large_placements_and_tracks_delete_trash ... ok

test result: ok. 14 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.10s

     Running tests/setup.rs (target/debug/deps/setup-48a3c76d1d2047c1)

running 8 tests
test a_restart_replaces_the_first_owner_token ... ok
test first_owner_needs_a_name ... ok
test a_finished_prompt_cannot_be_replayed ... ok
test a_token_works_exactly_once_under_a_storm ... ok
test session_cookie_is_locked_down ... ok
test first_owner_signs_up_with_the_printed_token ... ok
test recovery_adds_a_new_passkey_for_the_same_person ... ok
test an_expired_setup_token_is_refused ... ok

test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s

     Running unittests src/lib.rs (target/debug/deps/calternal_backdrops-ce5bc27a915d7901)

running 26 tests
test tests::an_answer_that_is_not_a_picture_is_refused_and_not_kept ... ok
test tests::an_upload_is_private_to_the_person_who_made_it ... ok
test tests::a_photo_unknown_to_us_is_looked_up ... ok
test tests::an_upload_is_kept_once_and_served_back ... ok
test tests::changes_need_our_own_page_and_a_signed_in_person ... ok
test tests::bad_ids_never_reach_the_disk_or_the_network ... ok
test tests::picking_is_reported_to_unsplash_once ... ok
test tests::nobody_can_read_or_list_someone_elses_uploads ... ok
test tests::pictures_are_proxied_cached_and_never_given_the_key ... ok
test tests::a_stricter_attachment_limit_also_bounds_backdrops ... ok
test tests::pictures_from_other_hosts_are_refused ... ok
test tests::storage_cache::private_staging_directory_does_not_evict_cached_pictures ... ok
test tests::search_lists_photos_with_our_own_addresses_and_credit ... ok
test tests::storage_cache::split_cache_deletion_refetches_upstream_and_keeps_original_upload ... ok
test tests::the_real_client_sends_the_key_and_caps_the_size ... ok
test tests::the_real_client_speaks_https_to_unsplash ... ignored, needs the internet
test tests::the_same_search_is_answered_once ... ok
test tests::the_cache_drops_the_oldest_files_past_its_cap ... ok
test tests::unsplash_running_out_of_requests_is_a_plain_slow_down ... ok
test tests::uploads_are_checked_by_content_not_by_what_they_claim ... ok
test tests::without_a_key_photos_are_off_but_uploads_work ... ok
test uploads::reliability_tests::idle_upload_removes_temporary_file_and_releases_admission ... ok
test uploads::reliability_tests::upload_admission_is_bounded_and_cancellation_restores_capacity ... ok
test tests::too_many_pixels_are_refused_but_files_within_the_byte_limit_work ... ok
test tests::backdrop_quota_refuses_new_files_and_releases_space_on_delete ... ok
test tests::streaming_upload_stops_at_byte_limit_and_leaves_no_artifact ... ok

test result: ok. 25 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.18s

     Running unittests src/lib.rs (target/debug/deps/calternal_contacts-82048935b19ca5c8)

running 1 test
test note::related_links_tests::only_the_cards_related_group_names_related_people ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/apple.rs (target/debug/deps/apple-741b13c6ca9da5de)

running 4 tests
test apple_rewrite_keeps_canonical_extensions_and_takes_real_edits ... ok
test unchanged_duplicate_ungrouped_occurrences_merge ... ok
test client_deletion_requires_sent_field_and_uid_is_immutable ... ok
test unsent_note_changes_survive_and_concurrent_edits_return_history ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/break_codec.rs (target/debug/deps/break_codec-2ca3eabde7c193e9)

running 11 tests
test envelope_checks_and_original_copy_reject_ambiguous_or_edited_state ... ok
test escaped_separator_parity_keeps_component_and_list_boundaries ... ok
test bare_properties_and_ignored_parameter_properties_decode_the_same_values ... ok
test canonical_note_comparison_checks_every_byte_and_falls_back_for_local_sections ... ok
test folded_and_unfolded_utf8_lines_keep_values_and_their_original_bytes ... ok
test multiline_google_custom_labels_cannot_create_other_card_groups ... ok
test component_and_list_comparisons_preserve_empty_parts_and_noncanonical_escapes ... ok
test quoted_parameter_delimiters_and_value_colons_keep_their_meaning ... ok
test original_and_edited_note_snapshots_both_preserve_later_typed_edits ... ok
test typed_reordering_and_value_tag_changes_use_the_exported_wire_projection ... ok
test mixed_rendered_values_keep_all_other_bytes_during_a_client_edit ... ok

test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/break_generated.rs (target/debug/deps/break_generated-89c57de0c1824c0e)

running 9 tests
test fixed_seed_generated_shapes_include_every_reaudit_case ... ok
test arbitrary_wire_and_note_inputs_preserve_bytes_or_explain_rejection ... ok
test independent_vendor_shaped_cards_keep_foldings_metadata_and_unknowns ... ok
test generated_notes_shapes_and_repeated_fact_edits_round_trip ... ok
test synthetic_vendor_corpus_is_bidirectionally_byte_identical ... ok
test five_megabyte_notes_survive_both_conversions ... ok
test generated_valid_cards_and_messy_notes_keep_every_field ... ok
test ten_thousand_new_custom_labels_get_unique_groups_and_round_trip ... ok
test megabyte_value_ten_thousand_visible_fields_and_ten_megabyte_photo ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.00s

     Running tests/break_inventory.rs (target/debug/deps/break_inventory-b82bc61a5162a159)

running 1 test
test every_inventory_property_survives_a_neighbour_edit ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/break_labels.rs (target/debug/deps/break_labels-bcac3ae73f727df6)

running 2 tests
test names_use_human_order_even_when_vendor_properties_are_reordered ... ok
test builtin_labels_show_the_words_on_the_phone_and_recover_original_codes ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/break_layout.rs (target/debug/deps/break_layout-45f2b1011f19c174)

running 27 tests
test a_phone_note_containing_h2_or_h1_round_trips ... ok
test colon_label_renames_survive_a_following_client_edit ... ok
test ambiguous_simultaneous_colon_edit_returns_phone_group_and_history ... ok
test colon_bearing_label_edits_change_only_the_label_and_value_edits_only_the_value ... ok
test company_and_department_edits_share_one_org_in_either_note_order ... ok
test colons_delimiters_and_unicode_keep_their_exact_wire_values ... ok
test crlf_notes_preserve_original_escape_spelling_and_do_not_create_merge_conflicts ... ok
test duplicate_structured_name_parts_are_unrepresentable ... ok
test entering_a_birthday_year_clears_the_apple_omit_year_flag ... ok
test empty_visible_properties_are_not_deleted_on_an_unchanged_round_trip ... ok
test first_list_ends_at_a_paragraph_and_second_list_stays_local ... ok
test flat_repeatable_lines_stay_and_are_reported ... ok
test later_notes_headings_are_phone_text ... ok
test missing_h1_explains_rejection_and_empty_card_is_allowed ... ok
test missing_wire_display_name_is_not_silently_created_by_a_round_trip ... ok
test multiline_labels_never_turn_into_unreported_fields ... ok
test multiple_unrepresentable_document_fields_explain_rejection ... ok
test note_headings_and_crlf_do_not_change_plain_text ... ok
test multiple_edits_to_indistinguishable_occurrences_do_not_guess_hidden_parameters ... ok
test notes_heading_after_a_local_h1_owns_the_tail ... ok
test org_hierarchy_is_one_fact_and_unchanged_components_stay_lossless ... ok
test tags_keep_list_boundaries_when_a_category_contains_comma_space ... ok
test unchanged_values_that_differ_only_by_trailing_spaces_keep_both_occurrences ... ok
test utf8_bom_is_document_framing ... ok
test unicode_names_keep_normalisation_scripts_direction_and_joiners ... ok
test one_property_edit_changes_only_its_original_logical_line ... ok
test markdown_whitespace_and_bullets_do_not_edit_the_phone ... ok

test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/break_links.rs (target/debug/deps/break_links-d63a3855a2c4df37)

running 4 tests
test a_colon_in_a_related_name_is_text_and_an_explicit_uri_stays_a_uri ... ok
test escaped_closing_brackets_inside_a_name_are_not_link_delimiters ... ok
test a_plain_name_that_looks_like_a_link_stays_that_name ... ok
test related_brackets_and_angle_brackets_are_valid_markdown_and_editable ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/break_merge.rs (target/debug/deps/break_merge-31cfabbfa4b99daa)

running 16 tests
test crlf_new_group_is_written_once_for_multiple_incoming_values ... ok
test additions_removals_values_and_labels_preserve_customised_note ... ok
test distinct_repeated_types_return_quiet_concurrent_edit_notice ... ok
test apple_reordering_churn_photo_and_dropped_extension_do_not_lose_local_edits ... ok
test dropped_extension_parameters_keep_their_order_and_do_not_conflict_with_local_values ... ok
test distinct_ungrouped_types_merge_reorders_edits_additions_and_deletions ... ok
test identical_visible_rows_keep_both_occurrences_during_noop_and_changed_merges ... ok
test phone_note_deletion_does_not_reappear_as_an_empty_note_on_read ... ok
test phone_label_rename_replaces_local_value_edit ... ok
test phone_notes_with_headings_merge_successfully ... ok
test simultaneous_grouped_phone_and_photo_additions_put_photo_before_card ... ok
test local_label_renames_take_phone_deletes_or_value_edits ... ok
test related_links_with_custom_relative_targets_bind_to_the_original_person ... ok
test same_line_concurrent_edits_and_deletes_take_phone_group ... ok
test the_first_card_group_is_added_after_an_existing_photo ... ok
test unchanged_repeated_ungrouped_properties_keep_occurrences ... ok

test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/format3.rs (target/debug/deps/format3-55f88a806283cfca)

running 21 tests
test ambiguous_single_fact_delete_and_edit_returns_all_previous_lines ... ok
test colliding_colon_renderings_keep_occurrences_or_return_the_phone_group ... ok
test ambiguous_occurrence_replaces_only_its_group_and_returns_exact_old_lines ... ok
test ambiguous_client_group_takes_phone_order_while_other_groups_merge ... ok
test company_and_department_merge_as_separate_single_facts ... ok
test department_hierarchy_is_one_fact_when_both_sides_edit_it ... ok
test identical_repeatable_rows_return_history_instead_of_guessing_hidden_occurrences ... ok
test equal_single_fact_values_still_bind_by_line_order_when_edited ... ok
test concurrent_org_additions_and_deletes_never_stop_sync ... ok
test indistinguishable_single_fact_deletion_returns_phone_group_and_history ... ok
test local_sections_above_notes_stay_local_and_below_become_phone_notes ... ok
test exact_client_occurrences_win_before_parameterless_identical_additions ... ok
test identical_syncs_do_not_repeat_a_phone_group_replacement_notice ... ok
test phone_notes_keep_headings_dividers_lists_and_all_blank_lines_exactly ... ok
test repeated_single_facts_typed_from_scratch_create_separate_properties ... ok
test repeated_company_conflict_keeps_independent_department_edits ... ok
test org_deletions_use_unique_departments_or_return_every_ambiguous_fact ... ok
test repeated_single_facts_bind_edit_delete_and_multiple_edits_to_occurrences ... ok
test several_ambiguous_groups_report_each_previous_group_once ... ok
test unique_values_anchor_client_deletions_even_when_extension_parameters_are_omitted ... ok
test unambiguous_repeated_client_edits_and_deletes_keep_other_occurrences ... ok

test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/hostile.rs (target/debug/deps/hostile-48ee2efd81746739)

running 10 tests
test escapes_empty_values_caret_parameters_and_unknown_sequences ... ok
test ambiguous_sources_damaged_notes_and_line_injection_are_errors ... ok
test malformed_lines_and_mixed_endings_survive_a_neighbor_edit ... ok
test folds_at_arbitrary_byte_boundaries_recover_utf8 ... ok
test arbitrary_note_text_never_panics ... ok
test arbitrary_bytes_never_panic_or_drop_a_byte ... ok
test random_unicode_fields_survive_edits ... ok
test ten_thousand_properties_keep_order_and_raw_lines ... ok
test random_repeated_grouped_properties_keep_their_inventory ... ok
test ten_megabyte_photo_stays_in_original_card_and_round_trips ... ok

test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.01s

     Running tests/layout.rs (target/debug/deps/layout-4de5503637bac687)

running 13 tests
test apple_example_note_matches_the_published_layout ... ok
test google_custom_labels_and_non_gregorian_birthdays_keep_their_wire_details ... ok
test adr_has_three_readable_examples ... ok
test markdown_related_links_with_spaces_and_unicode_are_reversible ... ok
test not_a_field_and_other_sections_stay_exact ... ok
test independent_phone_and_note_edits_preserve_local_spelling ... ok
test photo_reference_is_an_attachment_io_boundary ... ok
test notes_are_plain_text_two_way_through_nested_headings ... ok
test phone_edit_appends_to_group_and_keeps_spacing_and_local_lines ... ok
test renaming_an_apple_label_changes_only_its_label_property ... ok
test each_visible_edit_preserves_other_raw_lines ... ok
test typed_edits_after_reading_a_note_patch_the_readable_card ... ok
test readable_layout_and_all_agreed_fields ... ok

test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/roundtrip.rs (target/debug/deps/roundtrip-f53f3de90d5b16fb)

running 10 tests
test editing_geo_keeps_coordinate_precision_and_semicolon_structure ... ok
test add_delete_and_repeated_fields_keep_the_right_occurrence ... ok
test new_and_edited_canonical_notes_are_identical_after_wire_import ... ok
test hand_edit_uses_external_original_until_export ... ok
test new_contact_uid_is_note_id_and_default_is_three ... ok
test structured_names_addresses_labels_and_partial_dates_are_typed ... ok
test reordering_fields_and_changing_value_tags_cannot_make_an_unstable_note ... ok
test version_mapping_keeps_phone_text_preferences_and_photo_bytes ... ok
test corpus_is_identical_in_both_directions ... ok
test editing_each_field_changes_only_its_raw_occurrence ... ok

test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

     Running unittests src/lib.rs (target/debug/deps/calternal_contacts_actions-4cce71708a73acdc)

running 132 tests
test facts::tests::a_card_without_a_name ... ok
test frontmatter::tests::a_body_divider_is_not_frontmatter ... ok
test frontmatter::tests::no_frontmatter_is_left_alone ... ok
test frontmatter::tests::splits_and_joins_back_exactly ... ok
test cards::tests::ids_cannot_leave_the_folder ... ok
test facts::tests::reads_name_and_facts_in_order ... ok
test jobs::tests::attempts_are_stable_and_distinct ... ok
test import::tests::identity_is_the_uid_or_the_bytes ... ok
test names::tests::bidi_controls_never_reach_a_file_name_but_joiners_do ... ok
test namer::tests::names_come_from_the_note_and_its_card ... ok
test names::tests::case_and_unicode_form_clash ... ok
test names::tests::empty_and_emoji_names ... ok
test names::tests::clashes_add_the_first_fact_then_a_number ... ok
test cards::tests::copies_are_written_whole_and_removed ... ok
test names::tests::illegal_characters_become_dashes ... ok
test names::tests::nfd_and_nfc_give_one_name ... ok
test names::tests::a_fact_equal_to_the_name_is_skipped ... ok
test names::tests::long_names_are_cut_between_whole_characters ... ok
test tests::basics::bad_cards_are_refused_and_nothing_is_written ... ok
test tests::basics::contact_actions_never_touch_other_notes ... ok
test tests::basics::a_retry_with_the_same_key_makes_one_contact ... ok
test tests::basics::a_new_name_renames_and_links_follow ... ok
test tests::basics::create_writes_the_note_and_its_card ... ok
test tests::basics::update_merges_and_keeps_typing ... ok
test tests::basics::delete_goes_to_the_trash_and_restore_brings_it_back ... ok
test tests::break_links::a_rename_onto_an_existing_file ... ok
test tests::break_links::case_only_renames ... ok
test tests::break_links::code_stays_and_anchors_travel ... ok
test tests::break_links::deleted_forever_links_say_so ... ok
test tests::break_links::nfc_and_nfd_names ... ok
test tests::break_links::relative_links_from_subfolders ... ok
test tests::break_links::rename_chains ... ok
test tests::break_links::rename_while_another_client_edits_a_linking_note ... ok
test tests::break_links::the_checker_finds_dangling_links ... ok
test tests::break_links::swapping_two_names ... ok
test tests::break_links::the_title_never_renames_a_contact_file ... ok
test tests::break_names::a_name_an_existing_note_has ... ok
test tests::break_names::names_differing_only_in_case_are_one_name ... ok
test tests::break_names::empty_and_emoji_names ... ok
test tests::break_names::clashes_add_company_then_city_then_nickname_then_domain_then_a_number ... ok
test tests::break_names::the_folder_is_a_setting ... ok
test tests::break_names::unsafe_characters_never_reach_the_file_name ... ok
test tests::correctness::acknowledged_edit_between_undo_preparation_and_deletion_survives ... ok
test tests::break_names::very_long_names_fit_the_byte_limit ... ok
test tests::correctness::deletion_crash_child ... ok
test tests::correctness::deletion_recovery_preserves_an_outside_edit_made_while_down ... ok
test tests::correctness::crash_after_trash_move_retains_history_and_quota_on_restart ... ok
test tests::env::fixture_releases_its_engine_and_stores ... ok
test tests::env::pause_markers_accept_serial_and_parallel_child_harness_output ... ok
test tests::correctness::failed_partial_import_retains_prepared_cards_until_trash_removal ... ok
test tests::correctness::bounded_shutdown_joins_the_card_write_and_refuses_later_copies ... ok
test tests::import::an_import_makes_every_new_contact_in_one_job ... ok
test tests::import::a_final_flush_failure_undoes_every_published_contact_and_can_retry ... ok
test tests::import::a_final_flush_failure_in_an_existing_folder_preserves_earlier_contacts ... ok
test tests::import::limits_hold ... ok
test tests::import::the_same_file_twice_changes_nothing ... ok
test tests::kill9::child ... ok
test tests::import::parallel_import_keeps_input_order_and_compares_existing_peer_facts ... ok
test tests::import::bulk_import_preserves_an_id_held_only_by_trash_details ... ok
test tests::kill9::create_killed_prepared ... ok
test tests::break_links::five_thousand_links_across_a_thousand_notes ... ok
test tests::kill9::create_killed_committed ... ok
test tests::kill9::create_killed_copying ... ok
test tests::kill9::edit_killed_committed ... ok
test tests::kill9::import_killed_committed ... ok
test tests::kill9::import_killed_copying ... ok
test tests::kill9::import_killed_mid_import ... ok
test tests::kill9::import_killed_planned ... ok
test tests::kill9::rename_killed_committed ... ok
test tests::kill9::edit_killed_copying ... ok
test tests::kill9::import_killed_prepared ... ok
test tests::kill9::rename_killed_copying ... ok
test tests::kill9::rename_killed_mid_rename ... ok
test tests::kill9::rename_killed_planned ... ok
test tests::naming::restoring_into_a_taken_name_uses_the_contacts_rule ... ok
test tests::naming::an_h1_typed_in_the_app_renames_by_the_contacts_rule ... ok
test tests::related::a_related_namesake_in_the_same_import_wins_over_the_book ... ok
test tests::related::an_unchanged_phone_resend_changes_nothing ... ok
test tests::related::create_and_update_link_one_person_and_leave_namesakes_plain ... ok
test tests::related::every_related_link_reaches_the_person_it_names ... ok
test tests::related::related_names_from_one_import_link_to_the_files_made ... ok
test tests::review3::a_card_saved_with_a_byte_order_mark_is_read ... ok
test tests::review3::a_uidless_card_edited_on_the_phone_then_imported_again_is_not_a_duplicate ... ok
test tests::review3::bidi_controls_never_reach_a_file_name ... ok
test tests::review3::contact_writes_are_refused_after_shutdown ... ok
test tests::props::random_sequences_keep_every_invariant ... ok
test tests::review3::imports_and_photo_cards_count_against_the_storage_limit ... ok
test tests::review3::undo_of_a_contact_change_is_held_to_the_limit ... ok
test tests::review3::same_size_photo_swaps_are_held_to_the_limit ... ok
test tests::kill9::edit_killed_prepared ... ok
test tests::review::both_ends_in_trash_restore_source_before_target_keeps_identity ... ok
test tests::review::crash_child ... ok
test tests::review::device_name_before_extension_is_safe ... ok
test tests::review::import_shared_company_uses_distinguishing_city_and_identical_facts_use_numbers ... ok
test tests::review::kill9_delete_before_progress ... ok
test tests::review::kill9_delete_only_runtime_inverse ... ok
test tests::review::concurrent_undo_and_staged_update_keep_note_and_card_together ... ok
test tests::review3::undoing_an_import_retains_history_until_trash_is_purged ... ok
test tests::kill9::rename_killed_prepared ... ok
test tests::review::kill9_import_after_history_transaction ... ok
test tests::review::kill9_import_during_file_placement ... ok
test tests::review::kill9_import_after_first_file ... ok
test tests::review::kill9_import_after_directory_sync ... ok
test tests::review::kill9_restore_after_incoming_link_repair ... ok
test tests::review::kill9_restore_after_outgoing_link_repair ... ok
test tests::review::kill9_import_into_existing_folder_after_first_file ... ok
test tests::review::kill9_restore_before_outgoing_link_repair ... ok
test tests::review::kill9_restore_before_progress ... ok
test tests::review::kill9_runtime_inverse ... ok
test tests::review::link_in_trash_follows_rename ... ok
test tests::review::kill9_import_private_files_before_history ... ok
test tests::review::rename_to_unbalanced_bracket_keeps_a_markdown_link ... ok
test tests::review::replayed_delete_only_runtime_inverse_restores_only_job_edit ... ok
test tests::review::replayed_runtime_inverse_restores_only_job_edit ... ok
test tests::review::restore_does_not_resurrect_a_removed_link_or_retarget_its_identical_replacement ... ok
test tests::review::restore_into_taken_name_preserves_link_identity ... ok
test tests::review::ordinary_tag_job_and_undo_preserve_concurrent_typing ... ok
test tests::review::same_company_uses_city ... ok
test tests::review::kill9_import_into_existing_folder_after_directory_sync ... ok
test tests::review::undo_refuses_a_later_phone_card_before_moving_or_retargeting_anything ... ok
test tests::sweep::the_sweep_drops_cards_of_contacts_gone_for_good ... ok
test tests::sweep::undo_and_deleting_forever_sweep_at_once ... ok
test tests::review::kill9_restore_before_incoming_link_repair ... ok
test tests::undo::a_retry_after_a_failed_rename_retries_cleanly_and_never_doubles ... ok
test tests::undo::import_undo_keeps_card_only_edits ... ok
test tests::undo::undo_of_a_rename_takes_the_card_back_with_the_note ... ok
test tests::undo::undo_of_an_import_takes_every_contact_back ... ok
test write::tests::keyed_ids_are_stable ... ok
test write::tests::old_titles_cover_name_file_and_clash_forms ... ok
test tests::undo::a_batch_that_fails_part_way_is_undone_completely ... ok
test tests::sweep::a_sweep_waits_for_a_copy_selected_before_import_undo ... ok
test tests::review::ring_import_1000_swaps_chains_unicode_h1_and_undo ... ok

test result: ok. 132 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 16.00s

     Running unittests src/lib.rs (target/debug/deps/calternal_core-4895863f7e6ebde2)

running 15 tests
test action::tests::namespace_is_enforced ... ok
test batch::tests::visits_everything_once_in_order ... ok
test drain::tests::close_waits_for_work_already_in_and_refuses_new_work ... ok
test drain::tests::close_gives_up_after_its_bound ... ok
test error::tests::every_code_has_a_friendly_message ... ok
test batch::tests::stops_at_the_first_error ... ok
test journal::tests::junk_tokens_ask_for_a_refresh ... ok
test journal::tests::tokens_round_trip ... ok
test plugin::tests::plugins_stay_in_their_namespace ... ok
test room_queue::tests::budgets_count_bytes_and_release_on_receive_and_drop ... ok
test room_queue::tests::control_messages_can_release_rooms_when_payload_budgets_are_full ... ok
test room_queue::tests::failed_admission_does_not_leak_reservations ... ok
test visible::tests::hides_current_and_legacy_markers ... ok
test room_queue::tests::deferred_payload_keeps_local_and_global_byte_admission ... ok
test visible::tests::preserves_caret_notation_and_borrows_plain_text ... ok

test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/calternal_daily-2361bec1d921b55a)

running 23 tests
test day::tests::daylight_saving_uses_the_offset_the_device_sends ... ok
test day::tests::midnight_follows_the_device_in_ist ... ok
test day::tests::titles_read_like_the_web_app ... ok
test day::tests::names_and_ids ... ok
test tests::any_text_is_safe_to_read_and_plan ... ok
test tests::bad_input_is_refused_kindly ... ok
test tests::an_existing_day_file_is_reused_whatever_its_id ... ok
test tests::add_inserts_exactly_one_entry_and_keeps_the_rest ... ok
test tests::close_turns_one_open_entry_into_a_range ... ok
test tests::a_day_whose_note_is_in_the_trash_still_opens ... ok
test tests::log_add_then_close_makes_a_range ... ok
test tests::shared_vectors ... ok
test tests::today_follows_the_device_offset ... ok
test tests::opening_the_same_day_at_once_makes_one_note ... ok
test times_tests::a_line_with_only_tags_stays_words ... ok
test tests::make_note_on_a_log_line_keeps_times_and_tags ... ok
test times_tests::any_line_is_safe ... ok
test times_tests::invalid_spaced_twelve_hour_suffix_stays_a_word_after_a_24_hour_time ... ok
test times_tests::only_a_day_note_has_times ... ok
test times_tests::a_log_line_splits_into_times_words_and_tags ... ok
test times_tests::trailing_tags_on_any_line ... ok
test tests::two_offline_devices_starting_the_same_day_merge_into_one_note ... ok
test tests::no_file_until_the_first_keystroke ... ok

test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.34s

     Running unittests src/lib.rs (target/debug/deps/calternal_engine-e1b5da0627c2b6bc)

running 18 tests
test hash::tests::key_order_does_not_matter_but_content_does ... ok
test tests::a_retry_runs_once_and_replays_the_result ... ok
test tests::action_scopes_are_distinct_and_cannot_alias_legacy_keys ... ok
test tests::a_plugin_cannot_write_outside_its_namespace ... ok
test tests::a_huge_job_never_delays_anyone ... ok
test tests::bad_input_and_unknown_actions_are_friendly ... ok
test tests::changes_need_a_key_reads_do_not ... ok
test tests::connected_follows_live_views ... ok
test tests::identical_calls_at_the_same_moment_run_once ... ok
test tests::journal_pages_continue_where_they_stopped ... ok
test tests::a_user_with_a_live_view_or_a_running_action_is_kept ... ok
test tests::perf_huge_job_action_latency ... ignored, action latency budgets run on the perf VM via perf/ordinary-latency-vm.sh
test tests::an_action_that_outlives_shutdown_commits_nothing ... ok
test tests::shutdown_waits_for_running_actions_and_refuses_new_ones ... ok
test tests::users_never_see_each_other ... ok
test tests::the_same_request_key_is_scoped_to_its_action ... ok
test tests::no_write_is_lost_while_users_are_released_and_reopened ... ok
test tests::an_idle_user_is_released_and_comes_back_with_nothing_lost ... ok

test result: ok. 17 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.46s

     Running unittests src/lib.rs (target/debug/deps/calternal_fixtures-550ece350f28bedf)

running 5 tests
test dates::tests::round_trips_and_formats ... ok
test rng::tests::same_seed_same_numbers ... ok
test tests::same_seed_same_bytes_other_seed_other_bytes ... ok
test tests::looks_like_a_real_home ... ok
test tests::full_gate_has_enough_disjoint_samples ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.37s

     Running unittests src/main.rs (target/debug/deps/calternal_fixtures-4b98893a30fba695)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/calternal_fsio-6f8ee3ef0efe91ad)

running 104 tests
test beneath::tests::paths_that_climb_out_are_refused ... ok
test beneath::tests::upload_marker_still_finds_an_image_after_a_crash_during_publication ... ok
test beneath::tests::temp_files_persist_without_replacing_and_vanish_when_dropped ... ok
test beneath::tests::walking_without_openat2_refuses_symlinks_too ... ok
test names::directory::tests::a_full_kernel_queue_rebuilds_before_allocating ... ok
test beneath::tests::upload_cancel_and_publish_keep_a_replaced_temporary_inode ... ok
test directory::tests::abandoned_prepared_directory_ignores_inherited_owner_description ... ok
test private_directory::legacy_state::tests::active_legacy_transaction_is_not_migrated ... ok
test private_directory::legacy_state::tests::legacy_state_receipts_clear_files_without_removing_unproven_public_directories ... ok
test private_directory::legacy_state::tests::legacy_state_equal_length_rewrite_at_migration_boundary_survives ... ok
test names::directory::tests::immediate_outside_events_case_duplicates_and_replacement_are_current ... ok
test private_directory::owner::tests::transaction_and_recovery_lifetimes_ignore_inherited_descriptors ... ok
test private_directory::record::tests::write_intent_proves_every_short_prefix_but_never_outside_bytes ... ok
test private_directory::roots::inheritance::tests::private_image_inheritance_matches_a_kernel_create_in_the_destination ... ok
test private_directory::record::tests::interrupted_write_is_reclaimed_but_outside_edit_stays_private ... ok
test private_directory::legacy_state::tests::split_state_restart_drains_private_scan_images_without_touching_the_data_home ... ok
test private_directory::roots::tests::a_symlink_cannot_replace_either_private_component ... ok
test private_directory::roots::tests::membership_requires_a_registered_root_and_refuses_parent_traversal ... ok
test private_tmp_tests::creator_receipt_alone_cannot_authorize_legacy_state_migration ... ok
test private_tmp_tests::interrupted_case_only_rename_never_discards_the_moved_user_inode ... ok
test private_tmp_tests::concurrent_startup_drain_accepts_a_peer_finishing_the_same_private_directory ... ok
test private_tmp_tests::legacy_state_never_adopts_a_published_key_moved_under_a_quarantine_name ... ok
test private_tmp_tests::private_root_loose_images_are_drained_without_deleting_unknown_bytes ... ok
test private_tmp_tests::private_directory_is_shared_across_nested_destinations_and_not_a_symlink ... ok
test private_tmp_tests::unreadable_app_metadata_is_restored_without_deleting_unknown_bytes ... ok
test private_tmp_tests::reviewer_744_public_writer_after_last_private_check_survives_cleanup ... ok
test private_tmp_tests::no_producer_creates_temporary_files_outside_the_private_directory ... ok
test reviewer_744::private_cleanup_stop_child ... ok
test reviewer_744::reviewer_737_and_740_unknown_legacy_bytes_remain_at_original_name ... ok
test names::directory::tests::random_outside_entry_changes_match_the_real_directory ... ok
test reviewer_744::reviewer_742_three_equal_length_upload_rewrites_do_not_touch_public_names ... ok
test reviewer_744::reviewer_744_actual_private_images_retain_external_aliases ... ok
test reviewer_744::reviewer_744_actual_private_replacements_are_not_adopted_for_cleanup ... ok
test reviewer_750::crash_child ... ok
test reviewer_744::reviewer_744_public_cleanup_never_reaches_unlink_or_loses_alias_writes ... ok
test reviewer_750::destination_create_at_exclusive_placement_cannot_be_overwritten ... ok
test reviewer_750::existing_save_external_writes_at_each_exchange_and_unlink_boundary ... ok
test reviewer_750::descriptor_opened_on_public_file_keeps_a_visible_survivor_after_save ... ok
test reviewer_750::legacy_unproven_untouched_and_proven_moved_before_disposal ... ok
test reviewer_750::killed_save_does_not_hide_or_delete_displaced_unknown_bytes ... ok
test reviewer_750::streaming_fill_is_private_even_while_the_input_blocks_or_destination_changes ... ok
test reviewer_759::actual_owner_survives_recovery_and_kernel_releases_after_sigkill ... ok
test reviewer_759::disk_full_save_and_cancellation_keep_outside_bytes ... ok
test reviewer_750::unconditional_metadata_writers_preserve_unknown_displaced_versions ... ok
test reviewer_759::outside_private_writes_and_another_home_survive_owner_death ... ok
test reviewer_759::sigkill_between_payload_write_and_receipt_leaves_no_public_partial_upload ... ok
test reviewer_759::upload_owner_child ... ok
test safe_cleanup_tests::an_app_created_replacement_cannot_transfer_cleanup_authority ... ok
test safe_cleanup_tests::every_cleanup_path_preserves_concurrent_writer_property ... ok
test safe_cleanup_tests::public_unknown_bytes_are_not_renamed_to_conflicts_during_recovery ... ok
test staging::tests::staging_lease_break_child ... ok

running 1 test
test staging::tests::staging_lease_break_child ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 103 filtered out; finished in 0.00s

test staging::tests::staging_lease_break_retains_bytes_and_does_not_signal_server ... ok
test staging::tests::staging_recovery_preserves_unknown_and_racing_outside_bytes ... ok
test reviewer_759::misleading_pid_metadata_never_substitutes_for_a_kernel_owner ... ok
test staging::tests::staging_walk_never_follows_links_and_recognises_destinations ... ok
test staging_cleanup_tests::staging_claimed_path_reviewer_race_retains_unjournaled_replacement ... ok
test staging_cleanup_tests::staging_journal_proof_alone_does_not_discard_an_outside_alias_write ... ok
test staging_cleanup_tests::staging_migration_requires_the_complete_old_name_pattern ... ok
test staging_lease::tests::lease_waits_for_a_transient_inherited_writer_before_verifying ... ok
test staging_liveness_tests::a_private_entry_named_tmp_still_has_an_owner ... ok
test staging_liveness_tests::both_recovery_paths_skip_a_live_upload_even_with_journal_proof ... ok
test staging_liveness_tests::cancellation_and_staging_scan_do_not_orphan_a_private_upload ... ok
test staging_liveness_tests::history_proof_holds_the_abandoned_owner_against_other_recovery ... ok
test staging_liveness_tests::private_directory_ownership_covers_scans_and_restart ... ok
test staging_liveness_tests::private_names_preserve_long_unicode_destination_budget ... ok
test staging_liveness_tests::private_names_remain_unique_when_the_clock_does_not_advance ... ok
test staging_liveness_tests::recovery_skips_a_transaction_between_mkdir_and_owner_lock ... ok
test swap::create_tests::create_preserves_outside_file_appearing_after_absence_check ... ok
test swap::create_tests::displaced_replacement_and_rollback_replacement_keep_external_versions ... ok
test swap::create_tests::unsupported_exchange_never_replaces_an_existing_file ... ok
test tests::a_private_directory_is_invisible_until_exclusive_publication ... ok
test tests::a_published_directory_retains_ownership_when_a_parent_flush_fails ... ok
test tests::atomic_write_replaces_and_leaves_no_temp_files ... ok
test reviewer_744::reviewer_744_private_cleanup_abrupt_stop_preserves_public_writes ... ok
test tests::case_only_collision_rolls_back_or_keeps_the_staged_original ... ok
test tests::case_only_rename_preserves_a_different_destination ... ok
test tests::case_only_rename_works_and_other_clashes_are_refused ... ok
test tests::delta_rename_must_preserve_file_arriving_after_absence_check ... ok
test tests::directory_publication_rechecks_changed_inheritance_policy ... ok
test tests::dropping_data_lock_releases_it_even_with_an_inherited_file_handle ... ok
test tests::failed_write_keeps_the_old_file ... ok
test tests::many_files_are_replaced_whole ... ok
test tests::many_new_files_never_replace_anything ... ok
test tests::named_bulk_staging_is_whole_exclusive_and_leaves_no_temporary_name ... ok
test tests::names_fold_case_and_unicode_form ... ok
test tests::only_one_process_owns_a_data_folder ... ok
test tests::parallel_bulk_preserves_result_slots_and_observes_the_final_sync ... ok
test tests::prepared_writes_land_only_when_placed ... ok
test tests::private_directory_publication_preserves_a_destination_that_arrives ... ok
test tests::rename_preserves_a_dangling_destination_symlink ... ok
test tests::staged_bulk_keeps_the_destination_default_acl ... ok
test tests::staged_bulk_preserves_occupied_files_and_falls_back_when_staging_is_missing ... ok
test tests::unique_names_skip_case_and_form_clashes ... ok
test tests::big_writes_arrive_whole ... ok
test usage::private_usage_tests::transient_images_and_manifests_never_count_as_user_storage ... ok
test usage::tests::a_separate_state_root_counts_what_plugins_report ... ok
test usage::tests::bulk_writes_and_published_folders_count_without_a_recount ... ok
test usage::tests::reads_do_not_wait_for_the_counter_writer ... ok
test usage::tests::recount_preserves_concurrent_writes_and_deletes ... ok
test usage::tests::stale_metadata_cannot_replace_a_newer_update ... ok
test usage::tests::writes_moves_trash_and_purge_update_without_a_recount ... ok
test staging::tests::staging_recovery_retains_an_inode_with_an_open_outside_writer ... ok
test tests::write_unless_changed_keeps_someone_elses_version ... ok
test readonly_alias_tests::readonly_descriptors_cannot_lose_later_completed_writes ... ok

test result: ok. 104 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.97s

     Running unittests src/lib.rs (target/debug/deps/calternal_memory-a4983f7386377b31)

running 2 tests
test tests::huge_pages_go_off ... ok
test tests::trimming_is_harmless ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/calternal_migrate_v0-9921b9a7fe9d6530)

running 37 tests
test tests::rules::dry_run_writes_nothing ... ok
test tests::rules::edited_files_are_never_overwritten_without_asking ... ok
test tests::rules::m10_tz_markers_go_and_other_zones_convert_to_the_notes_zone ... ok
test tests::rules::m1_custom_daily_title_and_heading_stay ... ok
test tests::rules::m1_daily_notes_get_day_names_ids_and_lose_generated_headings ... ok
test tests::rules::m1_titles_come_from_title_then_h1_then_file_name_and_stay_unique ... ok
test tests::rules::m2_code_is_never_rewritten ... ok
test tests::rules::m2_attachments_that_exist_are_copied_and_relinked ... ok
test tests::rules::m2_links_are_repaired_by_name_date_title_and_slug ... ok
test tests::rules::m2_unresolved_links_stay_as_written_and_are_reported ... ok
test tests::rules::m3_m5_frontmatter_keys_drop_and_times_convert ... ok
test tests::rules::m2_wikilinks_always_become_standard_links ... ok
test tests::rules::m4_unreferenced_block_ids_go_and_referenced_ones_stay ... ok
test tests::rules::m5_unreadable_dates_fall_back ... ok
test tests::rules::m6_conflict_copies_are_not_migrated ... ok
test tests::rules::m8_only_notes_and_linked_files_move ... ok
test tests::rules::m7_tasks_blocks_are_stripped_and_listed ... ok
test tests::units::every_v0_time_shape_converts ... ok
test tests::units::file_names_give_titles ... ok
test tests::units::keys_ignore_case_encoding_quotes_and_md ... ok
test tests::units::links_parse_in_every_shape ... ok
test tests::units::unix_times_become_india_time ... ok
test tzmarker::tests::a_conversion_that_leaves_the_day_is_kept_and_reported ... ok
test tzmarker::tests::berlin_converts_inside_the_day ... ok
test tzmarker::tests::code_is_never_touched ... ok
test tzmarker::tests::day_from_a_date_value ... ok
test tzmarker::tests::eu_summer_time_edges ... ok
test tzmarker::tests::marker_at_the_end_or_tight_leaves_no_stray_space ... ok
test tzmarker::tests::no_zone_in_the_note_means_strip_only ... ok
test tzmarker::tests::not_a_marker_is_left_alone ... ok
test tzmarker::tests::same_zone_just_goes ... ok
test tzmarker::tests::second_run_changes_nothing ... ok
test tests::rules::running_twice_gives_the_same_bytes ... ok
test tzmarker::tests::styles_survive_conversion ... ok
test tzmarker::tests::unknown_zone_or_a_non_log_line_is_kept_and_counted ... ok
test write::tests::migration_preserves_files_changed_after_preflight ... ok
test tests::no_new_markers::nothing_writes_a_tz_marker ... ok

test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

     Running unittests src/lib.rs (target/debug/deps/calternal_notes-ebdca8a8833586bd)

running 459 tests
test anchor::tests::lines_by_utf16_index ... ok
test backlinks::tests::snippets_are_the_trimmed_line ... ok
test blocks::tests::finds_list_children_and_heading_sections ... ok
test anchor::tests::hash_is_plain_sha256_hex ... ok
test backlinks::tests::links_are_fold_keys_and_lines ... ok
test blocks::tests::line_edits ... ok
test blocks::tests::shapes_keep_markers ... ok
test blocks::tests::titles_from_the_first_sentence ... ok
test bulk::undo::tests::inverse_restores_the_text ... ok
test bulk::undo::tests::inverse_roundtrips ... ok
test bulk::error_tests::legacy_job_reports_hide_stored_source_details ... ok
test capture_tests::crash_child ... ok
test bulk::error_tests::failed_job_reports_keep_source_details_in_the_server_error ... ok
test bulk::recovery::tests::create_placement_recovers_only_the_matching_embedded_identity ... ok
test diff::tests::an_inserted_line_starts_at_a_line_start ... ok
test deletion::tests::recovery_keeps_its_intent_until_missing_history_is_restorable ... ok
test diff::tests::edits_never_split_a_character ... ok
test diff::tests::emoji_positions_are_utf16 ... ok
test diff::tests::small_change_is_a_small_edit ... ok
test frontmatter::tests::h1_skips_code_and_frontmatter ... ok
test frontmatter::tests::quoting ... ok
test frontmatter::tests::reads_keys ... ok
test frontmatter::tests::set_adds_a_line_or_a_block ... ok
test frontmatter::tests::set_changes_only_the_value ... ok
test diff::tests::edits_turn_old_into_new ... ok
test frontmatter::tests::set_is_utf16_aware ... ok
test health::tests::anchors ... ok
test history::blobs::tests::photo_chunks_preserve_folding_unknown_fields_and_line_endings ... ok
test history::companions::import_cache_tests::import_cache_budget_returns_after_success_and_failure ... ok
test capture_tests::capture_allocates_around_unindexed_case_and_exact_names ... ok
test history::companions::import_cache_tests::prepared_companions_are_applied_on_insert_or_roll_back_with_the_plan ... ok
test history::companions::migration_tests::old_staging_allocation_order_migrates_to_application_order ... ok
test history::companions::tests::a_companion_lands_with_its_change ... ok
test history::companions::tests::rejected_companion_writes_leave_history_and_quota_unchanged ... ok
test history::companions::tests::keys_answer_without_reading_bytes_and_cover_older_rows ... ok
test history::companions::tests::staged_rows_wait_for_their_step ... ok
test history::companions::tests::retained_bytes_follow_every_change_and_match_a_full_count ... ok
test history::companions::tests::written_marks_and_unwritten_rows ... ok
test history::memory_tests::batch_admission_failure_dooms_its_lane_before_a_later_write ... ok
test history::memory_tests::history_payload_bytes_are_bounded_per_home_and_globally_until_completion ... ok
test history::receipts::tests::legacy_card_only_changes_get_a_whole_note_journal_position ... ok
test history::staging::liveness_tests::cold_note_home_must_not_claim_another_plugins_live_upload ... ok
test history::staging::tests::stage_child ... ok
test history::staging::race_tests::staging_canonical_race_keeps_equal_unjournaled_bytes ... ok
test history::tests::a_busy_begin_reports_its_cause_without_running_the_job ... ok
test history::tests::a_competing_writer_cannot_invalidate_a_history_write_snapshot ... ok
test history::tests::a_failed_commit_never_replies_with_a_successful_statement_result ... ok
test history::tests::a_failed_statement_rolls_back_and_reports_the_cause_to_the_whole_group ... ok

running 1 test
test history::tests::appends_are_ordered_and_readable ... ok

running 1 test

running 1 test

running 1 test
test history::tests::disk_full_keeps_the_cause_and_failed_writes_can_be_retried ... ok

running 1 test
test history::tests::pending_save_promotes_to_base ... ok

running 1 test
test history::staging::tests::staging_recovery_removes_journal_versions_and_keeps_outside_bytes ... ok
test index::tests::a_shared_path_answers_with_the_newest_note ... ok
test index::tests::a_torn_tail_cannot_swallow_the_next_durable_mapping ... ok
test home::background_task_tests::finished_background_tasks_are_reaped_during_normal_operation ... ok
test index::tests::compacts_when_it_grows ... ok
test history::blobs::tests::fifty_two_weekly_edits_share_the_unchanged_original_photo ... ok
test index::tests::imported_mappings_share_one_log_append_and_survive_reload ... ok
test index::tests::reload_speed ... ignored
test index::tests::survives_reload_renames_and_torn_lines ... ok
test index::tests::under_finds_exact_paths_and_descendants_with_folded_names ... ok
test index::tests::under_keeps_shadowed_paths_for_watcher_removal ... ok
test index::tests::unloads_and_reloads ... ok
test links::escaped_labels::generated_labels_round_trip_and_custom_markup_survives_retargeting ... ok
test index::tests::answers_like_plain_maps ... ok
test links::tests::finds_standard_and_old_style_links ... ok
test links::tests::frontmatter_code_samples_do_not_hide_body_links ... ok
test links::tests::generated_reserved_destinations_roundtrip ... ok
test links::tests::generated_title_destination_roundtrips ... ok
test links::tests::longer_backtick_fence_does_not_close_on_three_ticks ... ok
test links::tests::nested_brackets_in_text ... ok
test links::tests::nested_fences_and_indented_code_follow_commonmark_boundaries ... ok
test links::tests::normal_fence_control_keeps_links_after_the_block ... ok
test links::tests::relative_paths ... ok
test links::tests::resolves_relative_to_the_linking_note ... ok
test links::tests::retarget_follows_the_title_and_keeps_custom_text ... ok
test links::tests::retarget_from_a_subfolder ... ok
test links::tests::retarget_matches_case_and_unicode_forms ... ok
test links::tests::skips_code_images_and_the_web ... ok
test links::tests::tilde_fence_does_not_close_on_trailing_text ... ok
test links::tests::unclosed_fence_hides_links_through_eof ... ok
test meta::tests::cursors_round_trip_and_reject_junk ... ok
test meta::tests::snippets_skip_frontmatter_and_headings ... ok
test missing::targets::tests::a_name_is_the_file_without_its_folder_and_extension ... ok
test missing::targets::tests::names_rank_exact_then_prefix_then_word_then_inside ... ok
test naming::tests::what_fits_and_what_to_try ... ok
test props::tests::adds_removes_and_quotes_links ... ok
test props::tests::already_typed_text_lists_keep_their_comments_and_quotes ... ok
test props::tests::changes_only_the_touched_key ... ok
test props::tests::list_items_are_written_as_text_too ... ok
test props::tests::obsidian_written_yaml_reads ... ok
test index::tests::directory_counts_match_full_scan_after_moves_and_reload ... ok
test props::tests::outside_keys_win_whole_and_unrelated_pending_keys_survive ... ok
test props::tests::quoting_round_trips_tricky_text ... ok
test props::tests::reads_every_list_form ... ok
test props::tests::refuses_what_it_cannot_read ... ok
test props::tests::review_malformed_unrelated_property_blocks_writes ... ok
test props::tests::review_property_case_override_is_honored ... ok
test props::tests::review_text_yaml_types ... ok
test props::tests::scalar_writes_preserve_types_in_both_directions ... ok
test rename::tests::clash_numbers ... ok
test rename::tests::daily_names ... ok
test rename::tests::h1_is_set_or_added ... ok
test capture_tests::kill9_at_every_capture_and_undo_journal_step ... ok
test room::acks::tests::varuints_round_trip ... ok
test room::actor::retry_tests::malformed_update_remains_a_permanent_refusal ... ok
test room::actor::retry_tests::overdue_failed_saves_do_not_starve_room_requests ... ok
test room::actor::retry_tests::retry_budget_failure_requests_rejoin_without_permanent_refusal ... ok
test room::edit::tests::checks_bounds_overlap_and_surrogates ... ok
test room::pipeline::memory_tests::actor_api_payload_remains_byte_bounded_when_deferred ... ok
test room::pipeline::memory_tests::global_retry_bytes_refuse_before_mutation_and_release_after_commit ... ok
test room::pipeline::memory_tests::parked_cross_writer_input_is_journaled_before_its_dependency_releases_it ... ok
test room::pipeline::memory_tests::per_room_retry_bytes_apply_backpressure_before_another_update ... ok
test room::pipeline::memory_tests::server_and_outside_updates_are_admitted_before_live_mutation ... ok
test room::save::tests::concurrent_typists_and_saves_converge ... ok
test room::save::tests::kill_nine_mid_save_recovers_title_and_bytes ... ok
test room::save::tests::review::failed_history_outside_edit_cannot_be_acknowledged_before_recovery ... ok
test room::save::tests::review::failed_history_server_edit_cannot_be_acknowledged_before_recovery ... ok
test links::tests::code_block_spans_match_pulldown_on_random_markdown ... ok
test room::save::tests::review::group_commit::a_parked_step_two_does_not_answer_save_checks ... ok
test room::save::tests::review::group_commit::a_peer_joining_mid_retry_and_typing_is_saved_once_durable ... ok
test room::save::tests::review::group_commit::a_retried_api_edit_sends_its_changed_event ... ok
test room::save::tests::review::group_commit::an_incomplete_step_two_cannot_release_held_save_checks ... ok
test room::save::tests::review::group_commit::edits_typed_during_a_write_commit_together ... ok
test room::save::tests::review::group_commit::a_failed_write_is_never_overtaken ... ok
test reviewer_759::continuous_acknowledged_edits_reach_home_within_one_second ... ok
test room::save::tests::review::group_commit::lanes::doomed_lanes_do_not_roll_back_others ... ok
test room::save::tests::review::group_commit::lanes::checks_after_each_edit_stay_bounded_per_connection ... ok
test room::save::tests::review::group_commit::mixed_paths_keep_applied_order_through_retry ... ok
test room::save::tests::review::group_commit::perf_save_checks_under_twenty_seconds ... ignored, outage-check latency budget runs on the perf VM via perf/ordinary-latency-vm.sh
test room::save::tests::review::group_commit::save_checks_during_an_outage_stay_bounded ... ok
test room::save::tests::review::group_commit::saved_arrives_after_storage_recovers_without_new_activity ... ok
test room::save::tests::review::group_commit::two_notes_keep_their_own_order ... ok
test props::tests::only_intended_keys_change ... ok
test room::save::tests::review::history_durability::independent_652_failed_first_typed_edit_must_precede_second ... ok
test room::save::tests::review::group_commit::lanes::mid_batch_failure_with_other_note_typing ... ok
test room::save::tests::review::history_durability::independent_652_queued_api_requires_replay_after_kill9 ... ok
test room::save::tests::review::history_durability::independent_652_queued_crash_child ... ok
test room::save::tests::review::history_durability::independent_652_disk_full_mid_burst_then_recovery ... ok
test room::save::tests::review::history_durability::independent_652_real_syncclient_joining_snapshot_is_not_saved ... ok
test room::save::tests::review::history_durability::metadata_refresh_does_not_block_sync_behind_an_uncommitted_seed ... ok
test room::save::tests::review::history_durability::perf_outage_checks_under_two_seconds ... ignored, outage-check latency budget runs on the perf VM via perf/ordinary-latency-vm.sh
test room::save::tests::review::history_durability::retained_failed_edits_keep_the_file_and_list_cache_dirty ... ok
test room::save::tests::review::review_acknowledged_save_child ... ok
test room::save::tests::review::review_delete_set_before_insert_and_trailing_format_marks ... ok
test room::save::tests::review::review_failed_save_retry_and_outside_retry_keep_base_cache ... ok
test room::save::tests::review::history_durability::independent_652_real_syncclient_peers_and_restart_replay ... ok
test room::save::tests::review::review_kill_nine_after_save_reply_preserves_exact_file_history_and_version ... ok
test room::save::tests::review::history_durability::independent_652_outage_queue_and_save_checks ... ok
test room::save::tests::review::slow_disk::slow_disk_long ... ignored, measurement for the perf VM, not a gate
test room::save::tests::review::slow_disk::slow_disk_matrix ... ignored, measurement for the perf VM, not a gate
test room::save::tests::save_kill_child ... ok
test room::save::tests::review::review_title_precedence_edge_matrix ... ok
test room::save::tests::title_sync_does_not_decode_the_saved_document ... ok
test scan::tests::day_ids_name_their_files ... ok
test scan::tests::state_round_trips_and_skips_odd_names ... ok
test search::tests::a_note_becomes_a_document ... ok
test search::tests::plain_search_lines_borrow_their_text ... ok
test search::tests::search_lines_keep_link_text_and_replacement_order ... ok
test search::tests::titles_fall_back_to_the_file_name ... ok
test smartline::tests::a_plain_line ... ok
test smartline::tests::only_tags_are_words ... ok
test smartline::tests::trailing_tags_only ... ok
test stamp::tests::formats_with_offset ... ok
test storage_crash::kill9_after_ack_during_split_hdd_save_recovers_exact_text ... ok
test storage_crash::storage_child ... ok
test tags::front::tests::every_way_of_writing_tags ... ok
test tags::merge::tests::property_tags_go_with_their_comma_or_line ... ok
test tags::merge::tests::text_tags_go_with_one_space ... ok
test tags::rewrite::tests::merging_keeps_every_tag_once_at_most ... ok
test tags::rewrite::tests::nothing_to_do_is_no_edits ... ok
test tags::rewrite::tests::only_real_tags_change ... ok
test tags::rewrite::tests::positions_count_utf16 ... ok
test tags::rewrite::tests::properties_change_name_only ... ok
test tags::rewrite::tests::rename_and_back_is_the_same_text ... ok
test tags::rewrite::tests::renames_tags_and_nested_tags_only ... ok
test tags::rewrite::tests::renaming_onto_an_existing_tag_merges ... ok
test tags::rewrite::tests::words_code_links_and_headings ... ok
test tags::scan::tests::code_is_never_tags ... ok
test tags::scan::tests::hash_free_lines_still_open_and_close_code_fences ... ok
test tags::scan::tests::headings_and_quotes_keep_their_tags ... ok
test tags::scan::tests::link_targets_and_addresses_are_never_tags ... ok
test tags::scan::tests::not_tags ... ok
test tags::scan::tests::plain_tags ... ok
test tags::tests::nesting_and_cleaning ... ok
test tags::tests::properties_and_text ... ok
test tests::acks::an_older_lineage_is_refused_before_anything_is_sent ... ok
test tests::acks::checks_advance_in_order_and_cover_every_earlier_edit ... ok
test tests::acks::lineage_survives_a_restart ... ok
test tests::acks::saved_means_the_change_is_in_history ... ok
test tests::anchors::an_anchor_follows_its_block_when_lines_shift ... ok
test tests::anchors::an_edited_block_is_refused_never_the_wrong_one ... ok
test tests::anchors::anchors_need_a_hash_and_block_ids_work ... ok
test tests::anchors::history_folds_typing_and_names_jobs ... ok
test tests::anchors::shifting_lines_never_move_the_wrong_block ... ok
test tests::appends::an_append_to_a_long_note_stays_small ... ok
test room::save::tests::saved_bytes_and_titles_match_the_old_copy_path ... ok
test tests::appends::appends_built_directly_match_the_copy_byte_for_byte ... ok
test tests::appends_review::delete_whole_tail_then_append_matches ... ok
test tests::appends_review::frontmatter_map_write_falls_back ... ok
test tests::appends::typists_and_appends_interleave_on_one_note ... ok
test tests::appends_review::trailing_format_marker_bytes ... ok
test tests::delta_review::deleting_preserves_an_occupied_trash_destination ... ok
test tests::delta_review::delta_independent_same_id_create_retries_joined_must_not_panic ... ok
test tests::appends_review::fuzz_deletes_restarts_parked ... ok
test tests::delta_review::placement_review_bulk_create_cannot_adopt_an_outside_file ... ok
test tests::delta_review::placement_review_bulk_create_retry_keeps_original_version_for_undo ... ok
test tests::delta_review::placement_review_planned_rename_conflict_keeps_links_unchanged ... ok
test tests::delta_review::placement_review_rename_retargets_links_to_the_actual_suffix ... ok
test tests::delta_review::placement_review_undo_rename_conflict_keeps_links_at_the_live_note ... ok
test tests::delta_review::rename_uses_a_suffix_for_an_unindexed_destination ... ok
test tests::delta_review::same_id_sibling_creates_with_different_text_conflict ... ok
test tests::event_visibility::a_failed_list_commit_cannot_announce_a_pin ... ok
test tests::event_visibility::a_scan_cannot_replace_an_announced_live_pin_with_the_old_file ... ok
test tests::event_visibility::create ... ok
test tests::delta_review::delta_permanent_deletion_history_failure_must_terminate_scan ... ok
test tests::event_visibility::create_text ... ok
test tests::event_visibility::delete ... ok
test tests::event_visibility::edit ... ok
test tests::event_visibility::edit_title ... ok
test tests::event_visibility::edit_title_property ... ok
test tests::event_visibility::move_note ... ok
test tests::event_visibility::failed_delete_then_restore_announces_the_current_state ... ok
test tests::event_visibility::outside_create ... ok
test room::save::tests::review::review_fuzz_old_new_bytes_history_versions_and_restarts ... ok
test tests::event_visibility::outside_delete ... ok
test tests::event_visibility::outside_edit ... ok
test tests::event_visibility::outside_edit_closed ... ok
test tests::event_visibility::outside_rename ... ok
test tests::event_visibility::regression_backup_discovery_cannot_reuse_a_forgotten_id ... ok
test tests::event_visibility::regression_create_retry_after_restart_uses_file_without_intent ... ok
test tests::event_visibility::regression_create_retry_conflicts_with_different_file_text ... ok
test tests::event_visibility::regression_create_retry_normalizes_server_keys_consistently ... ok
test tests::event_visibility::regression_create_retry_with_crlf_and_bom_keeps_bytes ... ok
test tests::event_visibility::outside_rename_closed ... ok
test tests::event_visibility::regression_create_with_text_writes_only_managed_frontmatter ... ok
test tests::event_visibility::regression_delayed_depart_cannot_clear_gone ... ok
test tests::event_visibility::regression_create_with_text_still_renames_after_its_h1 ... ok
test tests::event_visibility::regression_failed_create_cannot_resurrect_forgotten_id ... ok
test tests::event_visibility::regression_failed_initial_file_write_can_retry ... ok
test tests::event_visibility::regression_failed_save_hint_still_schedules_title_rename ... ok
test tests::event_visibility::regression_failed_unsaved_edit_restart_reconciles_from_journal ... ok
test tests::event_visibility::regression_forgotten_id_stays_gone_after_path_reuse_and_restart ... ok
test tests::event_visibility::regression_initial_file_precedes_visible_identity ... ok
test tests::event_visibility::regression_kill_after_outside_commit_repairs_list_on_start ... ok
test tests::event_visibility::pin ... ok
test tests::event_visibility::regression_outside_commit_child ... ok
test tests::event_visibility::regression_purge_commits_path_state_before_unlink_or_event ... ok
test tests::event_visibility::rename ... ok
test tests::event_visibility::rename_public_retry ... ok
test tests::event_visibility::rename_retry ... ok
test tests::event_visibility::restore ... ok
test tests::event_visibility::restore_retry_repairs_a_missing_list_row_for_an_open_room ... ok
test tests::event_visibility::review_create_retry_preserves_initial_text_explicit_id ... ok
test tests::event_visibility::review_create_retry_preserves_initial_text_key_id ... ok
test tests::event_visibility::review_create_retry_without_key_preserves_initial_text_once ... ok
test tests::event_visibility::review_discovery_publication_retries_after_metadata_failure ... ok
test tests::event_visibility::regression_delete_failure_then_forget_keeps_gone ... ok
test tests::event_visibility::review_load_event_recovers_after_meta_failure ... ok
test tests::event_visibility::review_restore_event_recovers_after_meta_failure ... ok
test tests::event_visibility::review_restore_publication_survives_home_restart ... ok
test tests::event_visibility::round4_create_retry_does_not_wait_for_scan_under_lifecycle ... ok
test tests::event_visibility::round4_daily_create_retry_does_not_reenter_lifecycle ... ok
test tests::event_visibility::regression_one_reconcile_path_after_failed_edit ... ok
test tests::event_visibility::round4_startup_retries_failed_list_stamp_read ... ok
test tests::event_visibility::round4_startup_retries_journal_discovery_before_file_rows ... ok
test tests::event_visibility::save ... ok
test tests::event_visibility::save_background_retry ... ok
test tests::event_visibility::round4_unreadable_note_does_not_block_healthy_repair_or_ack ... ok
test tests::event_visibility::save_retry ... ok
test tests::event_visibility::saved_list_fields_keep_file_date_fallback_current ... ok
test tests::event_visibility::saved_list_fields_rebuild_after_eviction_and_follow_later_edits ... ok
test tests::event_visibility::saved_rows_keep_file_stamps_for_warm_scans ... ok
test tests::event_visibility::saved_stamp_describes_our_write_before_a_later_outside_write ... ok
test tests::event_visibility::startup_scan_events_are_listed_before_the_scan_finishes ... ok
test room::save::tests::review::group_commit::lanes::a_failing_note_does_not_starve_another_typist ... ok
test tests::event_visibility::unread_external_bytes_do_not_get_a_clean_stamp ... ok
test tests::fanout::a_crash_before_the_seed_is_durable_never_doubles_text ... ok
test tests::fanout::a_crash_between_fan_out_and_disk_loses_nothing ... ok
test tests::event_visibility::unpin ... ok
test tests::fanout::a_first_open_does_not_wait_for_the_disk ... ok
test tests::fanout::a_version_always_matches_its_text ... ok
test tests::fanout::bursts_converge_and_reach_history ... ok
test tests::fresh::a_note_made_with_text_opens_with_its_frontmatter ... ok
test tests::held::a_held_note_answers_before_its_file_and_writes_it_after ... ok
test tests::held::a_lost_identity_whose_path_was_taken_uses_the_plugins_naming_order ... ok
test tests::held::a_synced_first_file_with_a_lost_index_keeps_its_original_path ... ok
test tests::held::history_without_identity_comes_back_on_the_next_start ... ok
test tests::held::identity_without_history_is_dropped_on_the_next_start ... ok
test tests::kill9::child ... ok
test tests::kill9::delete_killed_after_its_answer_finishes_once ... ok
test tests::fanout::collaborators_see_typing_before_the_disk ... ok
test tests::kill9::permanent_delete_after_restore_cannot_delete_the_live_note ... ok
test tests::kill9::quick_delete_restore_survives_kill ... ok
test tests::kill9::restore_delete_forget_does_not_resurrect_after_kill ... ok
test tests::kill9::quick_restore_delete_survives_kill ... ok
test tests::kill9::restore_killed_after_its_answer_finishes_once ... ok
test tests::listing::a_common_tag_pages_the_same_in_every_order ... ok
test tests::listing::filters_by_tag_kind_and_created_range ... ok
test tests::listing::pages_cover_every_note_once_in_a_stable_order ... ok
test tests::listing::pinning_shows_in_the_list_and_unpinning_leaves_no_trace ... ok
test tests::listing::private_home_images_are_not_listed_or_opened_as_notes ... ok
test tests::listing::the_first_page_never_waits_for_the_home_to_open ... ok
test tests::listing::the_kept_count_follows_adds_and_deletes ... ok
test tests::listing::the_list_stays_live_with_new_notes_saves_and_outside_edits ... ok
test tests::missing::a_move_outside_is_found_and_relink_repoints_the_links ... ok
test tests::missing::a_path_tells_here_trash_and_gone ... ok
test tests::missing::a_rename_in_the_app_leaves_the_old_path_moved ... ok
test tests::missing::make_from_link_makes_the_note_where_the_link_points_and_undo_takes_it_back ... ok
test tests::missing::never_made_targets_are_offered_with_their_capitals_and_link_counts ... ok
test tests::missing::never_written_paths_are_new_and_bad_ones_too ... ok
test tests::missing::notes_in_the_trash_from_before_are_found ... ok
test tests::missing::restored_with_a_new_name_reads_as_moved ... ok
test tests::opening::a_cold_fill_ends_with_every_index_and_right_answers ... ok
test tests::opening::a_cold_home_indexes_every_file_once_with_its_own_id ... ok
test tests::opening::a_note_never_typed_in_is_still_forgotten_on_restart ... ok
test tests::opening::a_warm_open_announces_only_what_changed_while_closed ... ok
test tests::opening::asking_mid_scan_never_says_not_found_and_never_duplicates_a_day ... ok
test tests::opening::identifying_an_already_indexed_file_never_makes_it_a_copy ... ok
test tests::opening::shutting_down_leaves_the_list_log_empty ... ok
test tests::event_visibility::round4_recorder_outage_bounds_deleted_ids_and_drains_overflow ... ok
test tests::opening::upgrading_without_a_saved_scan_announces_nothing_for_known_notes ... ok
test tests::outside::copied_note_gets_a_fresh_id ... ok
test tests::outside::edit_while_closed_is_merged_on_open ... ok
test tests::outside::missed_watcher_event_is_caught_before_saving ... ok
test tests::outside::outside_create_and_delete ... ok
test tests::outside::outside_edit_while_typing_merges ... ok
test tests::outside::outside_rename_keeps_the_id ... ok
test tests::listing::an_idle_home_with_one_thousand_notes_does_not_reconcile ... ok
test tests::outside::own_saves_are_not_outside_edits ... ok
test tests::peek::an_open_room_answers_with_its_live_text ... ok
test tests::peek::reads_files_without_opening_rooms ... ok
test tests::peek::returns_at_most_fifty ... ok
test tests::pending::apply_places_changes_in_any_order ... ok
test tests::pending::changes_out_of_order_all_arrive_and_saved_is_true ... ok
test tests::pending::yrs_alone_loses_a_parked_change ... ok
test tests::opening::typing_saved_only_in_history_survives_a_restart_before_the_first_save ... ok
test tests::renames::a_format_note_is_never_renamed_after_its_title ... ok
test tests::renames::a_taken_name_gets_a_number_and_daily_notes_keep_theirs ... ok
test tests::renames::a_title_ending_in_a_number_does_not_schedule_a_rename ... ok
test tests::outside::polling_finds_outside_changes ... ok
test tests::renames::backlinks_list_linked_and_unlinked_mentions ... ok
test tests::renames::cancelled_prepared_import_drops_its_private_image_and_replays_the_plan ... ok
test tests::renames::delta2_rename_collision_must_not_apply_dependent_title_edit ... ok
test tests::renames::make_note_moves_the_block_and_undoes_as_one_step ... ok
test tests::renames::move_block_to_another_note_and_back ... ok
test tests::renames::rename_killed_after_placement_before_index_recovers_and_undoes ... ok
test tests::renames::rename_killed_after_title_before_progress_recovers_and_undoes ... ok
test tests::renames::rename_killed_between_move_and_title_recovers_and_undoes ... ok
test tests::renames::rename_moves_the_file_and_repoints_every_link ... ok
test tests::renames::rename_recovery_child ... ok
test tests::renames::backlinks_follow_edits_and_deletes ... ok
test tests::renames::saving_a_title_ending_in_a_number_does_not_schedule_a_rename ... ok
test tests::renames::typing_in_a_linking_note_during_a_rename_is_kept ... ok
test tests::renames::undo_keeps_a_made_note_someone_typed_in ... ok
test tests::rooms::fresh_note_opened_by_many_at_once_is_not_doubled ... ok
test tests::rooms::late_joiner_gets_full_state ... ok
test tests::rooms::patches_use_utf16_positions ... ok
test tests::renames::typing_a_new_title_renames_the_file_after_a_pause ... ok
test tests::rooms::retried_change_applies_once ... ok
test tests::rooms::retried_create_makes_one_note ... ok
test tests::rooms::stale_replace_keeps_newer_typing ... ok
test tests::rooms::typing_survives_a_concurrent_delete ... ok
test tests::round4_review::create_reports_conflict_when_an_outside_file_arrives_before_placement ... ok
test tests::round4_review::independent_creates_joined_in_one_task_do_not_reenter ... ok
test tests::round4_review::scan_propagates_deletion_history_failure_after_reacquiring_lifecycle ... ok
test tests::round4_review::scan_propagates_deletion_history_read_failure_and_retries ... ok
test tests::rooms::random_concurrent_editing_converges_without_duplicates ... ok
test tests::saving::a_write_error_keeps_the_change ... ok
test tests::round4_review::startup_keeps_unknown_notes_incomplete_until_deletion_history_retry ... ok
test tests::saving::an_error_after_the_write_does_not_double_text ... ok
test tests::saving::crash_after_write_does_not_double_text ... ok
test tests::saving::failed_save_keeps_the_change ... ok
test tests::saving::crash_before_write_loses_nothing ... ok
test tests::saving::line_endings_and_bom_are_kept ... ok
test tests::saving::first_keystroke_creates_the_file ... ok
test tests::saving::opening_never_writes ... ok
test tests::saving::properties_continue_during_file_io ... ok
test tests::saving::saving_does_not_loop ... ok
test tests::saving::title_and_h1_stay_in_step ... ok
test tests::saving::typing_and_history_continue_during_file_io ... ok
test tests::saving::nonstop_typing_still_saves ... ok
test tests::shutdown::a_create_that_outlives_shutdown_writes_nothing ... ok
test tests::shutdown::a_shutdown_wait_made_after_shutdown_ends_at_once ... ok
test tests::renames::a_crash_mid_rename_resumes_and_applies_each_edit_once ... ok
test tests::shutdown::no_background_work_starts_after_shutdown ... ok
test tests::shutdown::healthy_shutdown_settles_pending_typing_before_saving ... ok
test tests::shutdown::scan_waiters_stay_released_once_shutdown_releases_them ... ok
test tests::shutdown::nothing_opens_or_writes_on_a_home_after_shutdown ... ok
test tests::shutdown::settlement::shutdown_settlement_late_disk_recovery_requires_replay ... ok
test tests::shutdown::settlement::shutdown_settlement_failed_promotion_preserves_written_snapshot ... ok
test tests::shutdown::a_create_running_at_shutdown_finishes_before_shutdown_returns ... ok
test tests::shutdown::shutdown_cancels_a_reconciler_waiting_for_startup_scan ... ok
test tests::shutdown::shutdown_closes_the_home_history_writer_before_returning ... ok
test tests::shutdown::shutdown_finishes_when_history_writes_keep_failing ... ok
test tests::shutdown::settlement::shutdown_settlement_live_file_io_failure_joins_writer ... ok
test tests::shutdown::shutdown_many_full_history_rooms_12 ... ok
test tests::storm::outside_rewrites_during_a_storm_all_land ... ok
test tests::event_visibility::save_outside_retry ... ok
test tests::tags::a_big_tag_rename_allows_typing_while_a_batch_is_held ... ok
test tests::tags::bad_names_are_refused ... ok
test tests::tags::perf_big_tag_rename_keystrokes_under_one_second ... ignored, tag-rename typing latency runs on the perf VM via perf/ordinary-latency-vm.sh
test tests::tags::renames_every_tag_and_undoes_as_one_step ... ok
test tests::tags::typing_during_a_tag_rename_is_kept ... ok
test tests::trash::a_closed_note_is_trashed_without_opening_it ... ok
test tests::shutdown::shutdown_many_full_history_rooms_100 ... ok
test tests::trash::a_file_deleted_outside_goes_to_the_trash ... ok
test tests::trash::a_never_typed_note_is_simply_forgotten ... ok
test tests::trash::a_note_deleted_before_its_first_save_keeps_its_text ... ok
test tests::trash::cached_restore_names_see_unindexed_case_and_unicode_collisions ... ok
test tests::trash::delete_and_restore_answer_once_per_job_id ... ok
test tests::trash::delete_moves_to_trash_and_undo_brings_it_back ... ok
test tests::trash::delete_replay_with_a_stale_index_keeps_the_only_file ... ok
test tests::trash::delete_waits_for_imported_incoming_links_before_remembering_their_identity ... ok
test tests::trash::folder_rename_and_outside_move_bursts_keep_every_descendant ... ok
test tests::trash::forget_deletes_file_and_history_forever ... ok
test tests::trash::half_written_trash_folders_never_hide_a_live_note ... ok
test tests::trash::outside_copy_finishes_a_metadata_only_interruption ... ok
test tests::trash::restore_durably_indexes_a_note_without_an_embedded_id ... ok
test tests::trash::restore_keeps_id_and_history_and_takes_a_free_name ... ok
test tests::trash::restore_with_a_stale_index_really_moves_the_file_back ... ok
test tests::trash::the_sweep_empties_only_notes_older_than_thirty_days ... ok
test tests::trash::trash_ids_never_reach_another_home ... ok
test tests::trash::trash_pages_newest_first ... ok
test tests::trash::trashed_notes_leave_search_lists_and_backlinks_and_come_back ... ok
test tests::trash::a_crash_mid_delete_finishes_on_restart_exactly_once ... ok
test tests::undo_guard::adding_an_attachment_keeps_the_note_and_attachment_when_creation_is_undone ... ok
test tests::tags::a_crash_mid_rename_resumes_and_renames_each_tag_once ... ok
test tests::undo_guard::crash_recovery_retains_a_descriptor_open_before_pending_undo_save ... ok
test tests::undo_guard::descriptor_open_before_daily_splice_survives_the_entire_undo ... ok
test tests::undo_guard::open_descriptor_after_undo_move_is_restorable ... ok
test tests::undo_guard::outside_daily_edit_after_final_undo_check_is_kept ... ok
test tests::undo_guard::ordinary_creation_keeps_later_job_history_when_its_text_was_undone ... ok
test tests::undo_guard::undo_keeps_prose_in_a_daily_placeholder_before_capture ... ok
test tests::unloading::a_connected_client_keeps_it ... ok
test tests::unloading::an_open_note_keeps_it ... ok
test tests::unloading::an_unused_home_unloads_and_answers_after ... ok
test tests::writers::every_writer_at_once_loses_and_doubles_nothing ... ok
test tests::writers::every_writer_at_once_with_the_watcher ... ok
test text::tests::mixed_endings_take_the_majority ... ok
test text::tests::styles_round_trip ... ok
test text::tests::uniform_files_round_trip_exactly ... ok
test trash::tests::a_note_without_details_still_reads ... ok
test trash::tests::candidates_include_notes_and_orphan_details_with_a_bounded_scan ... ok
test trash::tests::details_without_a_note_are_not_a_note ... ok
test trash::tests::missing_details_never_age_trash_from_the_notes_old_mtime ... ok
test trash::tests::outside_copy_has_its_details_when_the_file_first_becomes_readable ... ok
test versions::tests::folds_runs_by_author_kind_and_gap ... ok
test watch::native_tests::bulk_files_only_notify_the_watcher_when_the_whole_note_is_placed ... ok
test watch::native_tests::native_watch_ignores_reads_but_keeps_every_kind_of_outside_change ... ok
test watch::private_directory_tests::private_home_images_do_not_wake_the_native_note_watcher ... ok
test watch::private_directory_tests::private_images_never_enter_the_note_scan_or_event_paths ... ok
test ydoc::seed_tests::initial_seed_matches_yrs_and_accepts_later_utf16_edits ... ok
test ydoc::tests::fork_and_merge_keeps_concurrent_typing ... ok
test ydoc::tests::reapplying_an_update_changes_nothing ... ok
test ydoc::tests::utf16_offsets ... ok
test tests::undo_guard::acknowledged_edits_survive_random_job_undo ... ok
test tests::undo_guard::whole_note_undo_never_loses_acknowledged_changes ... ok
test tests::shutdown::settlement::shutdown_settlement_state_machine ... ok

test result: ok. 453 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 39.36s

     Running unittests src/main.rs (target/debug/deps/calternal_perf-cf29767b213fba41)

running 7 tests
test args::tests::parses_trash_only_mode ... ok
test scenarios::soak::tests::slope_of_a_line ... ok
test scenarios::storm::tests::typing_stops_before_the_newline_ahead_of_outside_lines ... ok
test live::tests::frames_round_trip_and_keystrokes_stay_whole ... ok
test stats::tests::medians_of_runs_and_pooled_singles ... ok
test scenarios::trash::tests::permanent_deletion_never_removes_a_later_runs_live_note ... ok
test stats::tests::summary_max_is_the_largest_observed_sample_across_runs ... ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/bin/storage-bench.rs (target/debug/deps/storage_bench-39bf3a5688ca4a08)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/bin/tasks-bench.rs (target/debug/deps/tasks_bench-359b526adcee5ad4)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/bin/tasks-create-bench.rs (target/debug/deps/tasks_create_bench-b7d5b14daf0e14cd)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/calternal_plugin_hello-7b095be94893acb6)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/calternal_prefs-117cfa2ade4f2377)

running 9 tests
test tests::a_retry_with_the_same_key_acts_once ... ok
test tests::keys_are_an_area_then_dotted_parts ... ok
test tests::a_change_on_one_device_reaches_the_other ... ok
test tests::people_do_not_share_preferences ... ok
test tests::bad_keys_and_big_values_get_friendly_errors ... ok
test tests::saving_the_same_value_again_is_quiet ... ok
test tests::set_then_get_and_survive_a_restart ... ok
test tests::quick_saves_from_two_devices_all_land ... ok
test tests::at_most_200_keys_but_existing_ones_can_still_change ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s

     Running unittests src/lib.rs (target/debug/deps/calternal_search-21b0741e90ae9948)

running 13 tests
test query::tests::lone_symbols_are_ignored ... ok
test fuzzy::tests::common_typos_are_fixed ... ok
test query::tests::words_filters_and_phrases ... ok
test query::tests::dates_cover_whole_periods ... ok
test fuzzy::tests::distance_counts_swaps_as_one ... ok
test read::tests::block_ids_are_found ... ok
test read::tests::renumbering_shifts_placeholders ... ok
test read::tests::text_matches_like_the_index ... ok
test read::tests::excerpts_mark_matches_in_context ... ok
test text::tests::bigrams_cover_unspaced_scripts ... ok
test text::tests::fold_drops_accents_and_case ... ok
test text::tests::words_keep_indic_vowel_signs ... ok
test schema::tests::an_older_index_gets_its_titles_filled ... ok

test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/search.rs (target/debug/deps/search-2055b976b861134d)

running 13 tests
test an_empty_search_shows_recent_things ... ok
test every_script_is_searchable ... ok
test behind_answers_at_once_and_catching_up_is_announced_once ... ok
test filters_by_tag_kind_and_date ... ok
test perf_search_answer_under_five_hundred_ms ... ignored, first-search latency budget runs on the perf VM via perf/ordinary-latency-vm.sh
test odd_input_never_breaks_search ... ok
test a_restart_heals_whatever_was_missed ... ok
test searches_answer_while_indexing_runs ... ok
test results_show_why_they_matched_and_where ... ok
test prefixes_and_typos_are_forgiven ... ok
test people_only_ever_find_their_own_things ... ok
test titles_first_then_recent_use_then_body ... ok
test the_index_follows_changes_live ... ok

test result: ok. 12 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.59s

     Running unittests src/lib.rs (target/debug/deps/calternal_server-a26729874196f066)

running 12 tests
test live::tests::room_join_metadata_has_explicit_byte_bounds ... ok
test rooms::tests::assembly_is_bounded_per_connection_and_globally_and_expiry_releases_it ... ok
test rooms::tests::a_message_in_numbered_pieces_arrives_whole ... ok
test rooms::tests::backpressure_refuses_the_room_before_later_checks ... ok
test rooms::tests::duplicated_missing_and_inconsistent_chunks_never_deliver ... ok
test rooms::tests::frames_round_trip ... ok
test rooms::tests::malformed_chunk_headers_never_allow_later_checks ... ok
test rooms::tests::old_membership_packets_and_results_cannot_reach_a_rejoined_room ... ok
test rooms::tests::wire_nonces_reject_old_frames_joins_and_leaves_without_tombstones ... ok
test rooms::tests::pending_and_joined_memberships_share_one_connection_count_bound ... ok
test compress::tests::big_answers_are_compressed_and_small_ones_are_not ... ok
test rooms::tests::exact_size_limit_is_delivered_but_a_larger_declaration_is_refused ... ok

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

     Running tests/access.rs (target/debug/deps/access-359916e1d1280f18)

running 1 test
test one_line_per_request_with_no_secrets ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/live.rs (target/debug/deps/live-75f7d8ef64dcc88d)

running 6 tests
test health_answers_without_signing_in ... ok
test a_stranger_token_asks_for_a_refresh ... ok
test errors_carry_codes_not_internals ... ok
test signed_out_calls_get_a_friendly_refusal ... ok
test reconnecting_catches_up_from_a_token ... ok
test http_to_journal_to_websocket ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s

     Running tests/signout.rs (target/debug/deps/signout-5cf453c3564bbc0f)

running 1 test
test signing_a_device_out_closes_its_live_socket ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s

     Running tests/web.rs (target/debug/deps/web-4886fcbcb6a5f32c)

running 3 tests
test precompressed_files_are_sent_as_they_are_to_whoever_accepts_them ... ok
test files_deep_links_and_the_api_live_side_by_side ... ok
test caching_and_security_headers_follow_what_each_file_is ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/calternal_store-aaaa4d1f9c2a9af7)

running 8 tests
test tests::a_store_with_a_listener_or_a_copy_is_in_use ... ok
test tests::idempotency_is_saved_with_the_events_or_not_at_all ... ok
test tests::commits_are_read_back_in_order ... ok
test tests::live_entries_arrive_in_journal_order ... ok
test tests::tokens_survive_a_restart_and_reject_strangers ... ok
test tests::reads_are_capped ... ok
test tests::old_idempotency_records_are_swept_after_commits ... ok
test tests::old_idempotency_records_are_swept_when_the_store_opens ... ok

test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.33s

     Running unittests src/lib.rs (target/debug/deps/calternal_tasks-ebac627bcdf7cc2c)

running 41 tests
test create_tests::concurrent_creates_name_clash_and_new_daily_undo ... ok
test create_tests::create_ack_can_be_undone_immediately_and_reuses_daily_placeholder ... ok
test create_tests::daily_uses_device_offset_and_invalid_slots_write_nothing ... ok
test create_tests::create_and_undo_restore_daily_bytes_and_remove_task ... ok
test create_tests::only_links_are_reduced_in_the_note_title ... ok
test create_tests::description_heading_keeps_the_given_task_title ... ok
test create_tests::opening_today_then_creating_tasks_scopes_keys_and_retries ... ok
test create_tests::create_isolation_and_idempotent_retry ... ok
test found::tests::checkbox_forms ... ok
test found::tests::child_task_link_keeps_parent_people_and_block ... ok
test found::tests::days_and_times ... ok
test found::tests::every_unrecognised_status_reads_as_open_without_changing_the_source ... ok
test found::tests::finds_checkboxes_everywhere_but_code_and_frontmatter ... ok
test found::tests::first_link_on_the_line_is_the_target ... ok
test found::tests::lenient_reading ... ok
test found::tests::linked_tasks_after_fences_keep_their_targets ... ok
test create_tests::undo_new_daily_capture_keeps_later_prose_and_removes_its_lines ... ok
test found::tests::reads_a_task_note ... ok
test found::tests::review_code_and_html_are_not_checkboxes ... ok
test found::tests::several_child_links_do_not_choose_a_task_by_order ... ok
test found::tests::markdown_links_and_task_items_share_commonmark_boundaries ... ok
test tests::crash_child ... ok
test create_tests::repeated_create_undo_recreates_daily_with_retained_history ... ok
test tests::lists_groups_and_counts ... ok
test create_tests::create_and_undo_one_mb_daily ... ok
test tests::outside_edits_reach_the_lists ... ok
test tests::rebuild_gives_the_same_rows ... ok
test tests::order::sql_and_rust_sort_the_same ... ok
test tests::review_broken_frontmatter_refuses_update ... ok
test tests::review_long_code_fence_hides_checkboxes ... ok
test tests::review_outside_edit_during_pending_task_write ... ok
test tests::review_upcoming_with_past_and_future_dates ... ok
test tests::task_notes_are_hidden_only_from_notes_lists_and_unknown_status_is_kept ... ok
test tests::unreadable_frontmatter_is_shown_but_never_changed ... ok
test tests::a_cold_fill_gives_the_same_rows_as_the_usual_way ... ok
test tests::untracked_is_open_checkboxes_that_are_not_tasks ... ok
test update::tests::checks_values ... ok
test update::tests::null_and_missing_differ ... ok
test tests::update_changes_only_its_keys_and_lists_follow_at_once ... ok
test tests::review_live_list_has_consistent_rows_and_counts ... ok
test tests::kill_9_during_field_writes_loses_nothing_acknowledged ... ok

test result: ok. 41 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.41s

     Running unittests src/lib.rs (target/debug/deps/calternal_testkit-0f72e1749ceda3ae)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests calternal_attachments

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests calternal_auth

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests calternal_backdrops

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests calternal_contacts

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests calternal_contacts_actions

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests calternal_core

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests calternal_daily

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests calternal_engine

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests calternal_fixtures

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests calternal_fsio

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests calternal_memory

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests calternal_migrate_v0

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests calternal_notes

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests calternal_plugin_hello

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests calternal_prefs

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests calternal_search

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests calternal_server

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests calternal_store

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests calternal_tasks

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests calternal_testkit

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 1/20) — exit 0
   Compiling calternal-fsio v0.1.0 (/home/agent/wt/bm2-crash/crates/fsio)
   Compiling calternal-server v0.1.0 (/home/agent/wt/bm2-crash/crates/server)
   Compiling calternal-notes v0.1.0 (/home/agent/wt/bm2-crash/crates/notes)
   Compiling calternal-migrate-v0 v0.1.0 (/home/agent/wt/bm2-crash/crates/migrate-v0)
   Compiling calternal-search v0.1.0 (/home/agent/wt/bm2-crash/crates/search)
   Compiling calternal-backdrops v0.1.0 (/home/agent/wt/bm2-crash/crates/backdrops)
   Compiling calternal-auth v0.1.0 (/home/agent/wt/bm2-crash/crates/auth)
   Compiling calternal-attachments v0.1.0 (/home/agent/wt/bm2-crash/crates/attachments)
   Compiling calternal-prefs v0.1.0 (/home/agent/wt/bm2-crash/crates/prefs)
   Compiling calternal-tasks v0.1.0 (/home/agent/wt/bm2-crash/crates/tasks)
   Compiling calternal-daily v0.1.0 (/home/agent/wt/bm2-crash/crates/daily)
   Compiling calternal-contacts-actions v0.1.0 (/home/agent/wt/bm2-crash/crates/contacts-actions)
   Compiling calternal v0.1.0 (/home/agent/wt/bm2-crash/crates/calternal)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 6.75s
     Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c)

running 1 test
test kill_nine_mid_upload_leaves_nothing_half_written ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.27s

cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 2/20) — exit 0
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
     Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c)

running 1 test
test kill_nine_mid_upload_leaves_nothing_half_written ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.27s

cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 3/20) — exit 0
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
     Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c)

running 1 test
test kill_nine_mid_upload_leaves_nothing_half_written ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.26s

cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 4/20) — exit 0
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
     Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c)

running 1 test
test kill_nine_mid_upload_leaves_nothing_half_written ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.24s

cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 5/20) — exit 0
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
     Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c)

running 1 test
test kill_nine_mid_upload_leaves_nothing_half_written ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.28s

cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 6/20) — exit 0
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
     Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c)

running 1 test
test kill_nine_mid_upload_leaves_nothing_half_written ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.25s

cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 7/20) — exit 0
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
     Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c)

running 1 test
test kill_nine_mid_upload_leaves_nothing_half_written ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.24s

cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 8/20) — exit 0
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
     Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c)

running 1 test
test kill_nine_mid_upload_leaves_nothing_half_written ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.26s

cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 9/20) — exit 0
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
     Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c)

running 1 test
test kill_nine_mid_upload_leaves_nothing_half_written ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.28s

cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 10/20) — exit 0
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s
     Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c)

running 1 test
test kill_nine_mid_upload_leaves_nothing_half_written ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.23s

cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 11/20) — exit 0
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s
     Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c)

running 1 test
test kill_nine_mid_upload_leaves_nothing_half_written ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.27s

cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 12/20) — exit 0
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
     Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c)

running 1 test
test kill_nine_mid_upload_leaves_nothing_half_written ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.27s

cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 13/20) — exit 0
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
     Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c)

running 1 test
test kill_nine_mid_upload_leaves_nothing_half_written ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.26s

cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 14/20) — exit 0
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
     Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c)

running 1 test
test kill_nine_mid_upload_leaves_nothing_half_written ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.27s

cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 15/20) — exit 0
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s
     Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c)

running 1 test
test kill_nine_mid_upload_leaves_nothing_half_written ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.28s

cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 16/20) — exit 0
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s
     Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c)

running 1 test
test kill_nine_mid_upload_leaves_nothing_half_written ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.28s

cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 17/20) — exit 0
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s
     Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c)

running 1 test
test kill_nine_mid_upload_leaves_nothing_half_written ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.27s

cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 18/20) — exit 0
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
     Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c)

running 1 test
test kill_nine_mid_upload_leaves_nothing_half_written ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.23s

cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 19/20) — exit 0
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
     Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c)

running 1 test
test kill_nine_mid_upload_leaves_nothing_half_written ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.25s

cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 20/20) — exit 0
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
     Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c)

running 1 test
test kill_nine_mid_upload_leaves_nothing_half_written ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.26s

Initial failure, negative controls and throughput evidence

These are diagnostic outputs, not final gate failures. The first parallel gate failure was fixed by the explicit prepared-directory unlock, and the whole final gate sequence was rerun.

attachments-fsio-initial — verbatim diagnostic output
   Compiling syn v3.0.9
   Compiling smallvec v1.16.3
   Compiling serde_core v1.0.229
   Compiling parking_lot_core v0.9.12
   Compiling parking_lot v0.12.5
   Compiling mio v1.2.4
   Compiling tokio-macros v2.7.2
   Compiling log v0.4.34
   Compiling tracing v0.1.44
   Compiling serde v1.0.229
   Compiling typenum v1.20.1
   Compiling tokio v1.53.2
   Compiling zerocopy v0.8.62
   Compiling generic-array v0.14.7
   Compiling serde_derive v1.0.229
   Compiling thiserror-impl v2.0.21
   Compiling uuid v1.28.0
   Compiling serde_json v1.0.154
   Compiling thiserror v2.0.21
   Compiling ppv-lite86 v0.2.21
   Compiling block-buffer v0.10.4
   Compiling crypto-common v0.1.7
   Compiling futures-macro v0.3.34
   Compiling ref-cast-impl v1.0.27
   Compiling serde_derive_internals v0.30.0
   Compiling futures-util v0.3.34
   Compiling schemars_derive v1.2.3
   Compiling ref-cast v1.0.27
   Compiling digest v0.10.7
   Compiling rand_chacha v0.9.0
   Compiling rand v0.9.5
   Compiling sha1 v0.10.7
   Compiling rusqlite v0.40.2
   Compiling tungstenite v0.29.0
   Compiling hyper v1.12.0
   Compiling serde_urlencoded v0.7.1
   Compiling hyper-util v0.1.21
   Compiling schemars v1.2.3
   Compiling async-compression v0.4.50
   Compiling tokio-tungstenite v0.29.0
   Compiling axum-core v0.5.6
   Compiling tower v0.5.3
   Compiling calternal-fsio v0.1.0 (/home/agent/wt/bm2-crash/crates/fsio)
   Compiling calternal-core v0.1.0 (/home/agent/wt/bm2-crash/crates/core)
   Compiling tokio-util v0.7.20
   Compiling calternal-store v0.1.0 (/home/agent/wt/bm2-crash/crates/store)
   Compiling serde_path_to_error v0.1.20
   Compiling cfb v0.14.0
   Compiling tower-http v0.6.11
   Compiling axum v0.8.9
   Compiling time-macros v0.2.32
   Compiling calternal-engine v0.1.0 (/home/agent/wt/bm2-crash/crates/engine)
   Compiling time v0.3.55
   Compiling infer v0.22.0
   Compiling calternal-testkit v0.1.0 (/home/agent/wt/bm2-crash/crates/testkit)
   Compiling calternal-server v0.1.0 (/home/agent/wt/bm2-crash/crates/server)
   Compiling calternal-attachments v0.1.0 (/home/agent/wt/bm2-crash/crates/attachments)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 7.42s
     Running unittests src/lib.rs (target/debug/deps/calternal_attachments-5c5a6b4f810ccce9)

running 19 tests
test serve::tests::dispositions_quote_safely ... ok
test serve::tests::only_plain_visible_paths_are_served ... ok
test serve::tests::ranges ... ok
test tests::http::a_connection_that_breaks_off_leaves_nothing ... ok
test tests::http::a_retry_with_the_same_key_never_makes_a_second_copy ... ok
test tests::http::paths_that_climb_out_of_the_home_are_not_found ... ok
test tests::http::an_upload_lands_in_its_dated_folder_and_is_served_back ... ok
test tests::http::check_finds_only_your_own_files ... ok
test tests::http::the_sweep_removes_what_a_crash_left_and_spares_live_uploads ... ok
test tests::http::the_limit_holds_while_streaming_without_a_length ... ok
test tests::http::uploads_need_a_session_our_page_and_a_key ... ok
test tests::sniffing::days_are_strict ... ok
test tests::sniffing::names_are_kept_but_made_safe ... ok
test tests::sniffing::pictures_and_videos_go_to_photos ... ok
test tests::sniffing::text_types_come_from_the_extension_and_html_never_runs ... ok
test tests::sniffing::the_name_never_decides_a_binary_type ... ok
test tests::http::names_can_not_steer_where_a_file_goes ... ok
test tests::http::the_same_file_again_says_already_uploaded_and_keeps_one_copy ... ok
test tests::http::unsafe_types_are_downloads_with_a_strict_policy ... ok

test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

     Running unittests src/lib.rs (target/debug/deps/calternal_fsio-2221f901037f8e13)

running 103 tests
test beneath::tests::upload_marker_still_finds_an_image_after_a_crash_during_publication ... ok
test beneath::tests::walking_without_openat2_refuses_symlinks_too ... ok
test beneath::tests::paths_that_climb_out_are_refused ... ok
test names::directory::tests::a_full_kernel_queue_rebuilds_before_allocating ... ok
test beneath::tests::temp_files_persist_without_replacing_and_vanish_when_dropped ... ok
test beneath::tests::upload_cancel_and_publish_keep_a_replaced_temporary_inode ... ok
test private_directory::legacy_state::tests::active_legacy_transaction_is_not_migrated ... ok
test private_directory::legacy_state::tests::legacy_state_receipts_clear_files_without_removing_unproven_public_directories ... ok
test private_directory::legacy_state::tests::legacy_state_equal_length_rewrite_at_migration_boundary_survives ... ok
test names::directory::tests::immediate_outside_events_case_duplicates_and_replacement_are_current ... ok
test private_directory::owner::tests::transaction_and_recovery_lifetimes_ignore_inherited_descriptors ... ok
test private_directory::record::tests::interrupted_write_is_reclaimed_but_outside_edit_stays_private ... ok
test private_directory::roots::inheritance::tests::private_image_inheritance_matches_a_kernel_create_in_the_destination ... ok
test private_directory::roots::tests::a_symlink_cannot_replace_either_private_component ... ok
test private_directory::roots::tests::membership_requires_a_registered_root_and_refuses_parent_traversal ... ok
test private_tmp_tests::concurrent_startup_drain_accepts_a_peer_finishing_the_same_private_directory ... ok
test private_tmp_tests::creator_receipt_alone_cannot_authorize_legacy_state_migration ... ok
test private_tmp_tests::interrupted_case_only_rename_never_discards_the_moved_user_inode ... ok
test private_tmp_tests::legacy_state_never_adopts_a_published_key_moved_under_a_quarantine_name ... ok
test private_directory::record::tests::write_intent_proves_every_short_prefix_but_never_outside_bytes ... ok
test private_tmp_tests::no_producer_creates_temporary_files_outside_the_private_directory ... ok
test private_tmp_tests::private_directory_is_shared_across_nested_destinations_and_not_a_symlink ... ok
test private_directory::legacy_state::tests::split_state_restart_drains_private_scan_images_without_touching_the_data_home ... ok
test private_tmp_tests::unreadable_app_metadata_is_restored_without_deleting_unknown_bytes ... ok
test private_tmp_tests::private_root_loose_images_are_drained_without_deleting_unknown_bytes ... ok
test reviewer_744::private_cleanup_stop_child ... ok
test private_tmp_tests::reviewer_744_public_writer_after_last_private_check_survives_cleanup ... ok
test reviewer_744::reviewer_737_and_740_unknown_legacy_bytes_remain_at_original_name ... ok
test reviewer_744::reviewer_742_three_equal_length_upload_rewrites_do_not_touch_public_names ... ok
test names::directory::tests::random_outside_entry_changes_match_the_real_directory ... ok
test reviewer_744::reviewer_744_actual_private_images_retain_external_aliases ... ok
test reviewer_744::reviewer_744_actual_private_replacements_are_not_adopted_for_cleanup ... ok
test reviewer_750::crash_child ... ok
test reviewer_744::reviewer_744_public_cleanup_never_reaches_unlink_or_loses_alias_writes ... ok
test reviewer_750::destination_create_at_exclusive_placement_cannot_be_overwritten ... ok
test reviewer_750::existing_save_external_writes_at_each_exchange_and_unlink_boundary ... ok
test reviewer_750::killed_save_does_not_hide_or_delete_displaced_unknown_bytes ... ok
test reviewer_750::legacy_unproven_untouched_and_proven_moved_before_disposal ... ok
test reviewer_750::streaming_fill_is_private_even_while_the_input_blocks_or_destination_changes ... ok
test reviewer_750::descriptor_opened_on_public_file_keeps_a_visible_survivor_after_save ... ok
test reviewer_759::actual_owner_survives_recovery_and_kernel_releases_after_sigkill ... ok
test reviewer_759::disk_full_save_and_cancellation_keep_outside_bytes ... ok
test reviewer_750::unconditional_metadata_writers_preserve_unknown_displaced_versions ... ok
test reviewer_759::outside_private_writes_and_another_home_survive_owner_death ... ok
test reviewer_759::sigkill_between_payload_write_and_receipt_leaves_no_public_partial_upload ... ok
test reviewer_759::upload_owner_child ... ok
test safe_cleanup_tests::an_app_created_replacement_cannot_transfer_cleanup_authority ... ok
test safe_cleanup_tests::every_cleanup_path_preserves_concurrent_writer_property ... ok
test safe_cleanup_tests::public_unknown_bytes_are_not_renamed_to_conflicts_during_recovery ... ok
test staging::tests::staging_lease_break_child ... ok

running 1 test
test staging::tests::staging_lease_break_child ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 102 filtered out; finished in 0.00s

test staging::tests::staging_lease_break_retains_bytes_and_does_not_signal_server ... ok
test staging::tests::staging_recovery_preserves_unknown_and_racing_outside_bytes ... ok
test reviewer_759::misleading_pid_metadata_never_substitutes_for_a_kernel_owner ... ok
test staging::tests::staging_walk_never_follows_links_and_recognises_destinations ... ok
test staging_cleanup_tests::staging_claimed_path_reviewer_race_retains_unjournaled_replacement ... ok
test staging_cleanup_tests::staging_journal_proof_alone_does_not_discard_an_outside_alias_write ... ok
test staging_cleanup_tests::staging_migration_requires_the_complete_old_name_pattern ... ok
test staging_lease::tests::lease_waits_for_a_transient_inherited_writer_before_verifying ... ok
test staging_liveness_tests::a_private_entry_named_tmp_still_has_an_owner ... ok
test staging_liveness_tests::both_recovery_paths_skip_a_live_upload_even_with_journal_proof ... ok
test staging_liveness_tests::cancellation_and_staging_scan_do_not_orphan_a_private_upload ... ok
test staging_liveness_tests::history_proof_holds_the_abandoned_owner_against_other_recovery ... ok
test staging_liveness_tests::private_directory_ownership_covers_scans_and_restart ... FAILED
test staging_liveness_tests::private_names_preserve_long_unicode_destination_budget ... ok
test staging_liveness_tests::private_names_remain_unique_when_the_clock_does_not_advance ... ok
test staging_liveness_tests::recovery_skips_a_transaction_between_mkdir_and_owner_lock ... ok
test swap::create_tests::create_preserves_outside_file_appearing_after_absence_check ... ok
test swap::create_tests::displaced_replacement_and_rollback_replacement_keep_external_versions ... ok
test swap::create_tests::unsupported_exchange_never_replaces_an_existing_file ... ok
test tests::a_private_directory_is_invisible_until_exclusive_publication ... ok
test tests::a_published_directory_retains_ownership_when_a_parent_flush_fails ... ok
test tests::atomic_write_replaces_and_leaves_no_temp_files ... ok
test reviewer_744::reviewer_744_private_cleanup_abrupt_stop_preserves_public_writes ... ok
test tests::case_only_collision_rolls_back_or_keeps_the_staged_original ... ok
test tests::case_only_rename_preserves_a_different_destination ... ok
test tests::case_only_rename_works_and_other_clashes_are_refused ... ok
test tests::delta_rename_must_preserve_file_arriving_after_absence_check ... ok
test tests::directory_publication_rechecks_changed_inheritance_policy ... ok
test tests::dropping_data_lock_releases_it_even_with_an_inherited_file_handle ... ok
test tests::failed_write_keeps_the_old_file ... ok
test tests::many_files_are_replaced_whole ... ok
test tests::many_new_files_never_replace_anything ... ok
test tests::named_bulk_staging_is_whole_exclusive_and_leaves_no_temporary_name ... ok
test tests::names_fold_case_and_unicode_form ... ok
test tests::only_one_process_owns_a_data_folder ... ok
test tests::parallel_bulk_preserves_result_slots_and_observes_the_final_sync ... ok
test tests::prepared_writes_land_only_when_placed ... ok
test tests::private_directory_publication_preserves_a_destination_that_arrives ... ok
test tests::rename_preserves_a_dangling_destination_symlink ... ok
test tests::staged_bulk_keeps_the_destination_default_acl ... ok
test tests::staged_bulk_preserves_occupied_files_and_falls_back_when_staging_is_missing ... ok
test tests::unique_names_skip_case_and_form_clashes ... ok
test tests::big_writes_arrive_whole ... ok
test usage::private_usage_tests::transient_images_and_manifests_never_count_as_user_storage ... ok
test usage::tests::a_separate_state_root_counts_what_plugins_report ... ok
test usage::tests::bulk_writes_and_published_folders_count_without_a_recount ... ok
test usage::tests::reads_do_not_wait_for_the_counter_writer ... ok
test usage::tests::recount_preserves_concurrent_writes_and_deletes ... ok
test usage::tests::stale_metadata_cannot_replace_a_newer_update ... ok
test usage::tests::writes_moves_trash_and_purge_update_without_a_recount ... ok
test staging::tests::staging_recovery_retains_an_inode_with_an_open_outside_writer ... ok
test tests::write_unless_changed_keeps_someone_elses_version ... ok
test readonly_alias_tests::readonly_descriptors_cannot_lose_later_completed_writes ... ok

failures:

---- staging_liveness_tests::private_directory_ownership_covers_scans_and_restart stdout ----

thread 'staging_liveness_tests::private_directory_ownership_covers_scans_and_restart' (3481416) panicked at crates/fsio/src/staging_liveness_tests.rs:128:5:
assertion `left == right` failed
  left: 1
 right: 0


failures:
    staging_liveness_tests::private_directory_ownership_covers_scans_and_restart

test result: FAILED. 102 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.97s

error: test failed, to rerun pass `-p calternal-fsio --lib`
deterministic-before — verbatim diagnostic output
   Compiling calternal-fsio v0.1.0 (/home/agent/wt/bm2-crash/crates/fsio)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.82s
     Running unittests src/lib.rs (target/debug/deps/calternal_fsio-de57200a9dafab35)

running 1 test
test reviewer_759::sigkill_between_payload_write_and_receipt_leaves_no_public_partial_upload ... SIGKILL after payload write, before receipt update: public entries=[]

thread 'reviewer_759::sigkill_between_payload_write_and_receipt_leaves_no_public_partial_upload' (3472306) panicked at crates/fsio/src/reviewer_759.rs:265:5:
assertion `left == right` failed: dead owner's app-written payload must be reclaimed on the next recovery
  left: 1
 right: 0
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
FAILED

failures:

failures:
    reviewer_759::sigkill_between_payload_write_and_receipt_leaves_no_public_partial_upload

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 101 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p calternal-fsio --lib`
directory-before — verbatim diagnostic output
   Compiling calternal-fsio v0.1.0 (/home/agent/wt/bm2-crash/crates/fsio)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.54s
     Running unittests src/lib.rs (target/debug/deps/calternal_fsio-de57200a9dafab35)

running 1 test
test directory::tests::abandoned_prepared_directory_ignores_inherited_owner_description ... FAILED

failures:

---- directory::tests::abandoned_prepared_directory_ignores_inherited_owner_description stdout ----

thread 'directory::tests::abandoned_prepared_directory_ignores_inherited_owner_description' (3482818) panicked at crates/fsio/src/directory.rs:317:9:
assertion `left == right` failed
  left: 1
 right: 0
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    directory::tests::abandoned_prepared_directory_ignores_inherited_owner_description

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 103 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p calternal-fsio --lib`
baseline-upload — verbatim diagnostic output
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.15s
     Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c)

running 1 test
upload 128 MiB in 0.42 s = 302 MiB/s; RSS before 30776 KiB, peak during 31600 KiB, after 32976 KiB, high-water 32976 KiB
peak above idle: 32 MiB upload 5152 KiB, 128 MiB upload 2200 KiB
test a_big_upload_streams_in_bounded_memory ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.74s

intent-upload — verbatim diagnostic output
   Compiling calternal-fsio v0.1.0 (/home/agent/wt/bm2-crash/crates/fsio)
   Compiling calternal-server v0.1.0 (/home/agent/wt/bm2-crash/crates/server)
   Compiling calternal-notes v0.1.0 (/home/agent/wt/bm2-crash/crates/notes)
   Compiling calternal-migrate-v0 v0.1.0 (/home/agent/wt/bm2-crash/crates/migrate-v0)
   Compiling calternal-auth v0.1.0 (/home/agent/wt/bm2-crash/crates/auth)
   Compiling calternal-attachments v0.1.0 (/home/agent/wt/bm2-crash/crates/attachments)
   Compiling calternal-backdrops v0.1.0 (/home/agent/wt/bm2-crash/crates/backdrops)
   Compiling calternal-search v0.1.0 (/home/agent/wt/bm2-crash/crates/search)
   Compiling calternal-prefs v0.1.0 (/home/agent/wt/bm2-crash/crates/prefs)
   Compiling calternal-contacts-actions v0.1.0 (/home/agent/wt/bm2-crash/crates/contacts-actions)
   Compiling calternal-tasks v0.1.0 (/home/agent/wt/bm2-crash/crates/tasks)
   Compiling calternal-daily v0.1.0 (/home/agent/wt/bm2-crash/crates/daily)
   Compiling calternal v0.1.0 (/home/agent/wt/bm2-crash/crates/calternal)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 6.56s
     Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c)

running 2 tests
test a_big_upload_streams_in_bounded_memory ... upload 128 MiB in 0.85 s = 150 MiB/s; RSS before 30824 KiB, peak during 31472 KiB, after 31528 KiB, high-water 31528 KiB
peak above idle: 32 MiB upload 5380 KiB, 128 MiB upload 704 KiB
ok
test kill_nine_mid_upload_leaves_nothing_half_written ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.55s

Resolved the BM2 Rust upload crash failure. Fix commit: `1ee44c4b1a35ff277828105af2e8e59dc7d93533`, based on the requested `3cf6ac568fb8339a646f26a7149f52a86387c46b`. **Production code changed; both browser halves need a rerun on the new head.** The concurrent 10by32-01 WebKit run at 3cf6ac56 was not touched. No merge or deployment. Machine: 10by32-02-std (arm64, shared). Worktree: `/home/agent/wt/bm2-crash`. Build-pool lease `12a015143f404d96944085f310f643ee` was heartbeated throughout. Every Cargo command used `/usr/local/bin/build-slot.sh` with `CALTERNAL_TRAIN=1`, `CARGO_BUILD_JOBS=3`, and descriptor limit 8192. Diagnostic repetitions used one test thread; final gates used four test threads. ## Five-run attribution matrix Each cell is an actual invocation of `cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact` at that revision, with that revision's unchanged test. Each invocation selected exactly one test; no absent-test passes. FAIL means the reported 20-second cleanup timeout, not a visibility assertion or a build failure. | Revision | Input | Run 1 | Run 2 | Run 3 | Run 4 | Run 5 | Passed | |---|---|---|---|---|---|---|---| | d83e54db | dev | PASS | PASS | PASS | PASS | PASS | 5/5 | | c129eb38 | #759 alone | FAIL (cleanup timeout) | PASS | PASS | FAIL (cleanup timeout) | FAIL (cleanup timeout) | 2/5 | | ca5b59c4 | original train | PASS | PASS | PASS | FAIL (cleanup timeout) | PASS | 4/5 | | 84cb1a4e | first train fix | FAIL (cleanup timeout) | FAIL (cleanup timeout) | PASS | PASS | PASS | 3/5 | | 3cf6ac56 | requested head | FAIL (cleanup timeout) | PASS | PASS | PASS | PASS | 4/5 | The failure is already present in #759 alone. Neither 84cb1a4e nor 3cf6ac56 introduced it. These five-attempt samples establish reproduction, not a statistical flake-rate comparison. ## Root cause and contract This is indefinite retention, not cleanup running slightly late. #759 changed `RecordedFile::write` to put a one-byte `user.calternal.writing.v1` marker on the inode, write the payload, then update the creation receipt and clear the marker. SIGKILL between the payload syscall and receipt update leaves a receipt for the previous prefix. Recovery successfully claims the dead owner's transaction with a non-blocking kernel lock attempt, but the content/length proof fails. `Quarantine::restore` sees the writing marker and retains the image privately. Every subsequent recovery repeats that choice; there is no expiry or bounded retention period. A stale PID is not the cause, and increasing the test timeout would not fix it. Contracts relied on: - Task product rule: “after kill -9 mid-upload, nothing half-written is visible, and leftovers are cleaned up at the next start or within a bounded time.” - [Pre-change storage plan, Private temporary files](https://git.kayg.org/kayg/calternal/src/commit/3cf6ac568fb8339a646f26a7149f52a86387c46b/docs/storage.md): “The private directory is not a second user-data store.” Also: “Private cleanup rejects multiply linked files and existing outside descriptors. An exclusive lease covers verification and unlink”. - [ADR 0062, private staging amendment](https://git.kayg.org/kayg/calternal/src/commit/3cf6ac568fb8339a646f26a7149f52a86387c46b/docs/adr/0062-user-files-on-hdd-app-data-on-ssd.md): “Temporary cleanup removes entries only inside that directory; it never removes or overwrites a user-visible path.” And: “An unfinished upload is not acknowledged as saved.” - [#759 decision table, comment 69306](https://git.kayg.org/kayg/calternal/pulls/759#issuecomment-69306): “Keep ambiguous bytes private; never publish partial bytes”. The reviewer explicitly identified public conflict copies as a violation in [#642 comment 69195](https://git.kayg.org/kayg/calternal/issues/642#issuecomment-69195). This is stricter than the attachment crash test's conflict exception, so simply publishing a partial conflict would regress the reviewed contract. The old decision preserves genuinely ambiguous outside bytes, but supplies no bounded-retention justification for ordinary app-written upload prefixes. The fix supplies the missing creator proof instead of changing the wait or publishing the prefix. ## Fix and deterministic evidence `RecordedFile` records a bounded append intent before changing the payload: previous size/hash plus up to 2 KiB of intended bytes. Under the existing exclusive kernel file lease, recovery verifies either the completed receipt or the receipted prefix plus any short prefix of that intent. This covers a stop before the syscall, inside a short write, after the syscall, or during receipt update. The existing inode/path binding, single-link requirement, live-owner exclusion, lease checks and final unlink boundary remain in force. Same-length outside modifications fail the proof and remain private. No receipt is invented by hashing an unknown image. The existing real-child SIGKILL reviewer regression now also requires an empty private root after recovery; its public-visibility assertion is unchanged. Against pre-fix production code, the added cleanup assertion fails deterministically with `left: 1, right: 0`; with the fix it passes. New proof checks cover 0, 1, 1024, 2047 and 2048 written bytes, repeated recovery, and same-length outside changes in both the previous prefix and pending suffix. The original `attachments_crash.rs` assertions and 20-second wait are unchanged. The first four-thread attachment/fsio gate also exposed prepared-directory ownership that still used descriptor-close lifetime. A sibling fork could retain the open description after the owner guard ended, causing a single recovery pass to skip the directory. `PreparedDirectory` and its root construction handshake now use an explicit-unlock guard. A deterministic duplicate-descriptor regression fails with the unlock disabled and passes while the duplicate stays open. The final gates include this fix; the initial failure is disclosed below. Limits and cost: old one-byte interrupted images have no recoverable intent, and unmatched outside bytes still cannot safely be discarded or published; they retain the pre-existing conservative private treatment. The new proof fixes newly interrupted app writes without fabricating provenance for old unknown bytes. This is process-death validation, not a physical power-loss experiment. A single local debug 128 MiB upload measured 302 MiB/s before and 150 MiB/s after the bounded write change; both bounded-memory checks passed. These shared-host samples are a disclosed throughput cost, not a formal performance gate. ## Gates Final gates passed with four test threads, including the full workspace and documentation tests. Existing configured ignored tests remain ignored; no test was disabled for this change. The crash case passed 20 consecutive invocations on the final production implementation (60 upload/restart kill rounds, plus completed-upload verification). Full attachment/fsio sets, storage startup, full attachment crash binary, fmt, Clippy with warnings denied, and workspace tests are included below. Final gate exit output, verbatim: ```text crash-1 exit 0 crash-2 exit 0 crash-3 exit 0 crash-4 exit 0 crash-5 exit 0 crash-6 exit 0 crash-7 exit 0 crash-8 exit 0 crash-9 exit 0 crash-10 exit 0 crash-11 exit 0 crash-12 exit 0 crash-13 exit 0 crash-14 exit 0 crash-15 exit 0 crash-16 exit 0 crash-17 exit 0 crash-18 exit 0 crash-19 exit 0 crash-20 exit 0 attachments-fsio exit 0 storage-startup exit 0 attachments-crash exit 0 fmt exit 0 clippy exit 0 workspace exit 0 ``` <details><summary>cargo test -p calternal-attachments -p calternal-fsio — exit 0</summary> ```text Compiling calternal-fsio v0.1.0 (/home/agent/wt/bm2-crash/crates/fsio) Compiling calternal-server v0.1.0 (/home/agent/wt/bm2-crash/crates/server) Compiling calternal-attachments v0.1.0 (/home/agent/wt/bm2-crash/crates/attachments) Finished `test` profile [unoptimized + debuginfo] target(s) in 1.26s Running unittests src/lib.rs (target/debug/deps/calternal_attachments-5c5a6b4f810ccce9) running 19 tests test serve::tests::dispositions_quote_safely ... ok test serve::tests::only_plain_visible_paths_are_served ... ok test serve::tests::ranges ... ok test tests::http::a_connection_that_breaks_off_leaves_nothing ... ok test tests::http::an_upload_lands_in_its_dated_folder_and_is_served_back ... ok test tests::http::check_finds_only_your_own_files ... ok test tests::http::a_retry_with_the_same_key_never_makes_a_second_copy ... ok test tests::http::paths_that_climb_out_of_the_home_are_not_found ... ok test tests::http::the_sweep_removes_what_a_crash_left_and_spares_live_uploads ... ok test tests::http::the_limit_holds_while_streaming_without_a_length ... ok test tests::http::uploads_need_a_session_our_page_and_a_key ... ok test tests::sniffing::days_are_strict ... ok test tests::sniffing::names_are_kept_but_made_safe ... ok test tests::sniffing::pictures_and_videos_go_to_photos ... ok test tests::sniffing::text_types_come_from_the_extension_and_html_never_runs ... ok test tests::sniffing::the_name_never_decides_a_binary_type ... ok test tests::http::names_can_not_steer_where_a_file_goes ... ok test tests::http::the_same_file_again_says_already_uploaded_and_keeps_one_copy ... ok test tests::http::unsafe_types_are_downloads_with_a_strict_policy ... ok test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running unittests src/lib.rs (target/debug/deps/calternal_fsio-2221f901037f8e13) running 104 tests test beneath::tests::paths_that_climb_out_are_refused ... ok test beneath::tests::temp_files_persist_without_replacing_and_vanish_when_dropped ... ok test beneath::tests::upload_marker_still_finds_an_image_after_a_crash_during_publication ... ok test beneath::tests::walking_without_openat2_refuses_symlinks_too ... ok test names::directory::tests::a_full_kernel_queue_rebuilds_before_allocating ... ok test beneath::tests::upload_cancel_and_publish_keep_a_replaced_temporary_inode ... ok test directory::tests::abandoned_prepared_directory_ignores_inherited_owner_description ... ok test private_directory::legacy_state::tests::active_legacy_transaction_is_not_migrated ... ok test names::directory::tests::immediate_outside_events_case_duplicates_and_replacement_are_current ... ok test private_directory::legacy_state::tests::legacy_state_equal_length_rewrite_at_migration_boundary_survives ... ok test private_directory::legacy_state::tests::legacy_state_receipts_clear_files_without_removing_unproven_public_directories ... ok test private_directory::owner::tests::transaction_and_recovery_lifetimes_ignore_inherited_descriptors ... ok test private_directory::record::tests::interrupted_write_is_reclaimed_but_outside_edit_stays_private ... ok test private_directory::roots::inheritance::tests::private_image_inheritance_matches_a_kernel_create_in_the_destination ... ok test private_directory::roots::tests::a_symlink_cannot_replace_either_private_component ... ok test private_directory::roots::tests::membership_requires_a_registered_root_and_refuses_parent_traversal ... ok test private_directory::legacy_state::tests::split_state_restart_drains_private_scan_images_without_touching_the_data_home ... ok test private_tmp_tests::creator_receipt_alone_cannot_authorize_legacy_state_migration ... ok test private_tmp_tests::concurrent_startup_drain_accepts_a_peer_finishing_the_same_private_directory ... ok test private_tmp_tests::legacy_state_never_adopts_a_published_key_moved_under_a_quarantine_name ... ok test private_tmp_tests::interrupted_case_only_rename_never_discards_the_moved_user_inode ... ok test private_tmp_tests::private_directory_is_shared_across_nested_destinations_and_not_a_symlink ... ok test private_tmp_tests::no_producer_creates_temporary_files_outside_the_private_directory ... ok test private_tmp_tests::private_root_loose_images_are_drained_without_deleting_unknown_bytes ... ok test private_directory::record::tests::write_intent_proves_every_short_prefix_but_never_outside_bytes ... ok test private_tmp_tests::unreadable_app_metadata_is_restored_without_deleting_unknown_bytes ... ok test reviewer_744::private_cleanup_stop_child ... ok test private_tmp_tests::reviewer_744_public_writer_after_last_private_check_survives_cleanup ... ok test reviewer_744::reviewer_737_and_740_unknown_legacy_bytes_remain_at_original_name ... ok test names::directory::tests::random_outside_entry_changes_match_the_real_directory ... ok test reviewer_744::reviewer_742_three_equal_length_upload_rewrites_do_not_touch_public_names ... ok test reviewer_744::reviewer_744_actual_private_images_retain_external_aliases ... ok test reviewer_744::reviewer_744_actual_private_replacements_are_not_adopted_for_cleanup ... ok test reviewer_750::crash_child ... ok test reviewer_744::reviewer_744_public_cleanup_never_reaches_unlink_or_loses_alias_writes ... ok test reviewer_750::destination_create_at_exclusive_placement_cannot_be_overwritten ... ok test reviewer_750::existing_save_external_writes_at_each_exchange_and_unlink_boundary ... ok test reviewer_750::killed_save_does_not_hide_or_delete_displaced_unknown_bytes ... ok test reviewer_750::legacy_unproven_untouched_and_proven_moved_before_disposal ... ok test reviewer_750::streaming_fill_is_private_even_while_the_input_blocks_or_destination_changes ... ok test reviewer_750::descriptor_opened_on_public_file_keeps_a_visible_survivor_after_save ... ok test reviewer_759::actual_owner_survives_recovery_and_kernel_releases_after_sigkill ... ok test reviewer_759::disk_full_save_and_cancellation_keep_outside_bytes ... ok test reviewer_750::unconditional_metadata_writers_preserve_unknown_displaced_versions ... ok test reviewer_759::outside_private_writes_and_another_home_survive_owner_death ... ok test reviewer_759::sigkill_between_payload_write_and_receipt_leaves_no_public_partial_upload ... ok test reviewer_759::upload_owner_child ... ok test safe_cleanup_tests::an_app_created_replacement_cannot_transfer_cleanup_authority ... ok test safe_cleanup_tests::every_cleanup_path_preserves_concurrent_writer_property ... ok test safe_cleanup_tests::public_unknown_bytes_are_not_renamed_to_conflicts_during_recovery ... ok test staging::tests::staging_lease_break_child ... ok running 1 test test staging::tests::staging_lease_break_child ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 103 filtered out; finished in 0.00s test staging::tests::staging_lease_break_retains_bytes_and_does_not_signal_server ... ok test staging::tests::staging_recovery_preserves_unknown_and_racing_outside_bytes ... ok test reviewer_744::reviewer_744_private_cleanup_abrupt_stop_preserves_public_writes ... ok test staging::tests::staging_walk_never_follows_links_and_recognises_destinations ... ok test staging_cleanup_tests::staging_claimed_path_reviewer_race_retains_unjournaled_replacement ... ok test staging_cleanup_tests::staging_journal_proof_alone_does_not_discard_an_outside_alias_write ... ok test staging_cleanup_tests::staging_migration_requires_the_complete_old_name_pattern ... ok test staging_lease::tests::lease_waits_for_a_transient_inherited_writer_before_verifying ... ok test staging_liveness_tests::a_private_entry_named_tmp_still_has_an_owner ... ok test staging_liveness_tests::both_recovery_paths_skip_a_live_upload_even_with_journal_proof ... ok test staging_liveness_tests::cancellation_and_staging_scan_do_not_orphan_a_private_upload ... ok test staging_liveness_tests::history_proof_holds_the_abandoned_owner_against_other_recovery ... ok test staging_liveness_tests::private_directory_ownership_covers_scans_and_restart ... ok test staging_liveness_tests::private_names_preserve_long_unicode_destination_budget ... ok test staging_liveness_tests::private_names_remain_unique_when_the_clock_does_not_advance ... ok test staging_liveness_tests::recovery_skips_a_transaction_between_mkdir_and_owner_lock ... ok test swap::create_tests::create_preserves_outside_file_appearing_after_absence_check ... ok test swap::create_tests::displaced_replacement_and_rollback_replacement_keep_external_versions ... ok test swap::create_tests::unsupported_exchange_never_replaces_an_existing_file ... ok test tests::a_private_directory_is_invisible_until_exclusive_publication ... ok test tests::a_published_directory_retains_ownership_when_a_parent_flush_fails ... ok test tests::atomic_write_replaces_and_leaves_no_temp_files ... ok test reviewer_759::misleading_pid_metadata_never_substitutes_for_a_kernel_owner ... ok test tests::case_only_collision_rolls_back_or_keeps_the_staged_original ... ok test tests::case_only_rename_preserves_a_different_destination ... ok test tests::case_only_rename_works_and_other_clashes_are_refused ... ok test tests::delta_rename_must_preserve_file_arriving_after_absence_check ... ok test tests::directory_publication_rechecks_changed_inheritance_policy ... ok test tests::dropping_data_lock_releases_it_even_with_an_inherited_file_handle ... ok test tests::failed_write_keeps_the_old_file ... ok test tests::many_files_are_replaced_whole ... ok test tests::many_new_files_never_replace_anything ... ok test tests::named_bulk_staging_is_whole_exclusive_and_leaves_no_temporary_name ... ok test tests::names_fold_case_and_unicode_form ... ok test tests::only_one_process_owns_a_data_folder ... ok test tests::big_writes_arrive_whole ... ok test tests::prepared_writes_land_only_when_placed ... ok test tests::private_directory_publication_preserves_a_destination_that_arrives ... ok test tests::rename_preserves_a_dangling_destination_symlink ... ok test tests::staged_bulk_keeps_the_destination_default_acl ... ok test tests::staged_bulk_preserves_occupied_files_and_falls_back_when_staging_is_missing ... ok test tests::unique_names_skip_case_and_form_clashes ... ok test tests::parallel_bulk_preserves_result_slots_and_observes_the_final_sync ... ok test usage::private_usage_tests::transient_images_and_manifests_never_count_as_user_storage ... ok test usage::tests::a_separate_state_root_counts_what_plugins_report ... ok test usage::tests::bulk_writes_and_published_folders_count_without_a_recount ... ok test usage::tests::reads_do_not_wait_for_the_counter_writer ... ok test usage::tests::recount_preserves_concurrent_writes_and_deletes ... ok test usage::tests::stale_metadata_cannot_replace_a_newer_update ... ok test usage::tests::writes_moves_trash_and_purge_update_without_a_recount ... ok test staging::tests::staging_recovery_retains_an_inode_with_an_open_outside_writer ... ok test tests::write_unless_changed_keeps_someone_elses_version ... ok test readonly_alias_tests::readonly_descriptors_cannot_lose_later_completed_writes ... ok test result: ok. 104 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.96s Doc-tests calternal_attachments running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_fsio running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s ``` </details> <details><summary>cargo test -p calternal --test storage_startup — exit 0</summary> ```text Compiling calternal v0.1.0 (/home/agent/wt/bm2-crash/crates/calternal) Finished `test` profile [unoptimized + debuginfo] target(s) in 1.83s Running tests/storage_startup.rs (target/debug/deps/storage_startup-bb9b49e5611a44ef) running 11 tests test a_lock_held_past_the_longest_grace_still_fails_startup ... ok test create_refuses_unpaired_notes_or_databases_before_creating_other_root ... ok test both_missing_markers_with_existing_split_data_require_confirmed_re_pair ... ok test legacy_history_read_only_and_invalid_state_are_refused ... ok test original_storage_startup_scenario_repeats_100x_under_load ... ignored, stress gate; run explicitly during release validation test missing_home_refuses_without_creating_directory_or_lock ... ok test missing_state_never_recreates_databases_even_with_create ... ok test single_root_upgrade_backup_split_cache_delete_and_rollback ... ok test roots_must_keep_their_persistent_partner_and_admin_must_confirm ... ok test startup_waits_for_a_previous_server_to_release_both_roots ... ok test both_roots_remain_exclusively_locked ... ok test result: ok. 10 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 10.02s ``` </details> <details><summary>cargo test -p calternal --test attachments_crash -- --nocapture — exit 0</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c) running 2 tests test kill_nine_mid_upload_leaves_nothing_half_written ... ok upload 128 MiB in 0.79 s = 162 MiB/s; RSS before 30716 KiB, peak during 31964 KiB, after 32420 KiB, high-water 32420 KiB peak above idle: 32 MiB upload 5340 KiB, 128 MiB upload 1704 KiB test a_big_upload_streams_in_bounded_memory ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.19s ``` </details> <details><summary>cargo fmt --all -- --check — exit 0</summary> ```text ``` </details> <details><summary>cargo clippy --workspace --all-targets -- -D warnings — exit 0</summary> ```text Checking cfg-if v1.0.5 Checking libc v0.2.190 Checking itoa v1.0.18 Checking memchr v2.8.3 Checking serde_core v1.0.229 Checking rand_core v0.10.1 Checking once_cell v1.21.4 Checking pin-project-lite v0.2.17 Checking getrandom v0.4.3 Checking log v0.4.34 Checking zmij v1.0.23 Checking bitflags v2.13.2 Checking smallvec v1.16.3 Checking bytes v1.12.1 Checking scopeguard v1.2.0 Checking lock_api v0.4.14 Checking parking_lot_core v0.9.12 Checking tracing-core v0.1.36 Checking mio v1.2.4 Checking errno v0.3.14 Checking linux-raw-sys v0.12.1 Checking signal-hook-registry v1.4.8 Checking rustix v1.1.5 Checking tracing v0.1.44 Checking parking_lot v0.12.5 Checking socket2 v0.6.5 Checking tokio v1.53.2 Checking serde v1.0.229 Checking serde_json v1.0.154 Checking uuid v1.28.0 Checking thiserror v2.0.21 Checking ref-cast v1.0.27 Checking typenum v1.20.1 Checking dyn-clone v1.0.20 Checking base64 v0.22.1 Checking schemars v1.2.3 Checking foldhash v0.2.0 Checking constant_time_eq v0.4.2 Checking hashbrown v0.17.1 Checking arrayvec v0.7.8 Checking blake3 v1.8.7 Checking tinyvec v1.13.3 Checking arc-swap v1.9.2 Checking unicode-normalization v0.1.25 Checking libsqlite3-sys v0.38.2 Checking hashlink v0.12.2 Checking fallible-iterator v0.3.0 Checking calternal-core v0.1.0 (/home/agent/wt/bm2-crash/crates/core) Checking fallible-streaming-iterator v0.1.9 Checking calternal-fsio v0.1.0 (/home/agent/wt/bm2-crash/crates/fsio) Checking rusqlite v0.40.2 Checking chacha20 v0.10.2 Checking rand v0.10.3 Compiling num-conv v0.2.2 Compiling time-core v0.1.9 Checking calternal-store v0.1.0 (/home/agent/wt/bm2-crash/crates/store) Compiling time-macros v0.2.32 Checking calternal-memory v0.1.0 (/home/agent/wt/bm2-crash/crates/memory) Checking deranged v0.5.9 Checking powerfmt v0.2.1 Checking num-traits v0.2.19 Checking ryu v1.0.23 Checking unicase v2.10.0 Checking calternal-engine v0.1.0 (/home/agent/wt/bm2-crash/crates/engine) Checking hybrid-array v0.4.15 Checking futures-core v0.3.34 Checking block-buffer v0.12.1 Checking crypto-common v0.2.2 Checking const-oid v0.10.2 Checking cpufeatures v0.3.1 Checking digest v0.11.3 Checking fnv v1.0.7 Checking http v1.5.0 Checking futures-sink v0.3.34 Checking fastrand v2.5.0 Checking regex-syntax v0.8.11 Checking httparse v1.10.1 Checking futures-channel v0.3.34 Checking calternal-testkit v0.1.0 (/home/agent/wt/bm2-crash/crates/testkit) Checking futures-io v0.3.34 Checking time v0.3.55 Checking slab v0.4.12 Checking data-encoding v2.11.1 Checking futures-task v0.3.34 Checking percent-encoding v2.3.2 Checking futures-util v0.3.34 Checking zerocopy v0.8.62 Checking lazy_static v1.5.1 Checking getrandom v0.3.4 Checking rand_core v0.9.5 Checking zerofrom v0.1.8 Checking generic-array v0.14.7 Checking form_urlencoded v1.2.2 Checking stable_deref_trait v1.2.1 Checking http-body v1.1.0 Checking yoke v0.8.3 Checking alloc-no-stdlib v3.0.0 Checking simd-adler32 v0.3.10 Checking adler2 v2.0.1 Checking alloc-stdlib v0.3.0 Checking miniz_oxide v0.9.1 Checking crc32fast v1.5.2 Checking ppv-lite86 v0.2.21 Checking crypto-common v0.1.7 Checking block-buffer v0.10.4 Checking tower-service v0.3.3 Checking rand_chacha v0.9.0 Checking digest v0.10.7 Checking zerovec v0.11.8 Checking rand v0.9.5 Checking flate2 v1.1.10 Checking brotli-decompressor v6.0.1 Checking cpufeatures v0.2.17 Checking tower-layer v0.3.3 Checking mime v0.3.17 Checking httpdate v1.0.3 Compiling mime_guess v2.0.5 Checking sha1 v0.10.7 Checking brotli v9.0.0 Checking http-body-util v0.1.5 Checking tokio-util v0.7.20 Checking sha1 v0.11.0 Checking atomic-waker v1.1.2 Checking sync_wrapper v1.0.2 Checking compression-core v0.4.33 Checking hyper v1.12.0 Checking tungstenite v0.30.0 Checking compression-codecs v0.4.45 Checking tungstenite v0.29.0 Checking parking v2.2.1 Checking event-listener v5.4.2 Checking async-compression v0.4.50 Checking tokio-tungstenite v0.30.0 Checking tokio-tungstenite v0.29.0 Checking hyper-util v0.1.21 Checking tower v0.5.3 Checking axum-core v0.5.6 Checking tinystr v0.8.4 Checking serde_urlencoded v0.7.1 Checking serde_path_to_error v0.1.20 Checking writeable v0.6.4 Checking matchit v0.8.4 Checking litemap v0.8.3 Checking http-range-header v0.4.2 Checking icu_locale_core v2.3.0 Checking axum v0.8.9 Checking tower-http v0.6.11 Checking crossbeam-utils v0.8.23 Checking event-listener-strategy v0.5.4 Checking inotify-sys v0.1.8 Checking potential_utf v0.1.6 Checking zerotrie v0.2.5 Checking utf8_iter v1.0.4 Checking equivalent v1.0.2 Checking same-file v1.0.6 Checking hashbrown v0.14.5 Checking walkdir v2.5.0 Checking indexmap v2.14.2 Checking dashmap v6.2.1 Checking icu_collections v2.3.0 Checking icu_provider v2.3.1 Checking inotify v0.11.5 Checking async-lock v3.4.2 Checking smallstr v0.3.1 Checking notify-types v2.1.0 Checking minimal-lexical v0.2.1 Checking unsafe-libyaml v0.2.11 Checking xxhash-rust v0.8.19 Checking serde_yaml v0.9.34+deprecated Checking notify v9.0.0-rc.5 Checking nom v7.1.3 Checking yrs v0.28.0 Checking pulldown-cmark v0.13.4 Checking icu_normalizer_data v2.3.0 Checking icu_properties_data v2.3.0 Checking sha2 v0.11.1 Checking hashbrown v0.16.1 Checking similar v3.2.0 Checking unicode-segmentation v1.13.3 Checking thiserror v1.0.69 Checking icu_properties v2.3.0 Checking icu_normalizer v2.3.0 Checking rusticata-macros v4.1.0 Checking asn1-rs v0.6.2 Checking calternal-server v0.1.0 (/home/agent/wt/bm2-crash/crates/server) Checking idna_adapter v1.2.2 Checking num-integer v0.1.47 Checking foreign-types-shared v0.1.1 Checking zeroize v1.9.1 Checking base64 v0.21.7 Checking base64urlsafedata v0.5.5 Checking calternal-notes v0.1.0 (/home/agent/wt/bm2-crash/crates/notes) Checking rustls-pki-types v1.15.1 Checking foreign-types v0.3.2 Checking num-bigint v0.4.8 Checking idna v1.1.0 Checking openssl-sys v0.9.117 Checking getrandom v0.2.17 Checking untrusted v0.9.0 Checking ring v0.17.14 Checking openssl v0.10.81 Checking der-parser v9.0.0 Checking url v2.5.8 Checking oid-registry v0.7.1 Checking half v2.7.1 Checking calternal-plugin-hello v0.1.0 (/home/agent/wt/bm2-crash/crates/plugin-hello) Checking base64 v0.23.1 Checking x509-parser v0.16.0 Checking serde_cbor_2 v0.13.0 Checking webauthn-rs-proto v0.5.5 Checking webauthn-attestation-ca v0.5.5 Checking rustls-webpki v0.103.15 Checking web-time v1.1.0 Checking imagesize v0.14.0 Checking hex v0.4.3 Checking subtle v2.6.1 Checking webauthn-rs-core v0.5.5 Checking rustls v0.23.46 Checking cfb v0.14.0 Checking ureq-proto v0.6.4 Checking webpki-roots v1.0.9 Checking utf8-zero v0.8.1 Checking ureq v3.4.2 Checking infer v0.22.0 Checking tempfile v3.27.0 Checking unicode-script v0.5.8 Checking unicode-security v0.1.2 Checking webauthn-rs v0.5.5 Checking unicode-general-category v0.6.0 Checking regex-automata v0.4.18 Checking wait-timeout v0.2.1 Checking quick-error v1.2.3 Checking bit-vec v0.10.1 Checking unicode-casefold v0.2.0 Checking bit-set v0.11.1 Checking rusty-fork v0.3.1 Checking matchers v0.2.0 Checking calternal-attachments v0.1.0 (/home/agent/wt/bm2-crash/crates/attachments) Checking calternal-backdrops v0.1.0 (/home/agent/wt/bm2-crash/crates/backdrops) Checking sharded-slab v0.1.7 Checking calternal-contacts v0.1.0 (/home/agent/wt/bm2-crash/crates/contacts) Checking tracing-log v0.2.0 Checking rand_xorshift v0.5.0 Checking thread_local v1.1.10 Checking nu-ansi-term v0.50.3 Checking core_detect v1.0.0 Checking unarray v0.1.4 Checking proptest v1.12.0 Checking tracing-subscriber v0.3.23 Checking calternal-auth v0.1.0 (/home/agent/wt/bm2-crash/crates/auth) Checking futures-executor v0.3.34 Compiling async-stream-impl v0.3.6 Compiling webauthn-authenticator-rs v0.5.5 Checking calternal-tasks v0.1.0 (/home/agent/wt/bm2-crash/crates/tasks) Checking futures v0.3.34 Checking tokio-stream v0.1.19 Checking serde_bytes v0.11.19 Compiling num-derive v0.4.2 Checking async-stream v0.3.6 Checking bitflags v1.3.2 Checking calternal-search v0.1.0 (/home/agent/wt/bm2-crash/crates/search) Checking calternal-daily v0.1.0 (/home/agent/wt/bm2-crash/crates/daily) Checking calternal-contacts-actions v0.1.0 (/home/agent/wt/bm2-crash/crates/contacts-actions) Checking calternal-migrate-v0 v0.1.0 (/home/agent/wt/bm2-crash/crates/migrate-v0) Checking calternal-prefs v0.1.0 (/home/agent/wt/bm2-crash/crates/prefs) Checking calternal-fixtures v0.1.0 (/home/agent/wt/bm2-crash/crates/fixtures) Checking calternal-perf v0.1.0 (/home/agent/wt/bm2-crash/crates/perf) Checking calternal v0.1.0 (/home/agent/wt/bm2-crash/crates/calternal) Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.58s ``` </details> <details><summary>cargo test --workspace — exit 0</summary> ```text Compiling futures-channel v0.3.34 Compiling futures-io v0.3.34 Compiling tempfile v3.27.0 Compiling calternal-notes v0.1.0 (/home/agent/wt/bm2-crash/crates/notes) Compiling futures-util v0.3.34 Compiling rusty-fork v0.3.1 Compiling tower v0.5.3 Compiling tokio-tungstenite v0.29.0 Compiling axum v0.8.9 Compiling tower-http v0.6.11 Compiling tokio-tungstenite v0.30.0 Compiling proptest v1.12.0 Compiling calternal-server v0.1.0 (/home/agent/wt/bm2-crash/crates/server) Compiling regex-automata v0.4.18 Compiling matchers v0.2.0 Compiling tracing-subscriber v0.3.23 Compiling futures-executor v0.3.34 Compiling async-stream v0.3.6 Compiling futures v0.3.34 Compiling tokio-stream v0.1.19 Compiling calternal-backdrops v0.1.0 (/home/agent/wt/bm2-crash/crates/backdrops) Compiling calternal-attachments v0.1.0 (/home/agent/wt/bm2-crash/crates/attachments) Compiling calternal-auth v0.1.0 (/home/agent/wt/bm2-crash/crates/auth) Compiling serde_bytes v0.11.19 Compiling bitflags v1.3.2 Compiling webauthn-authenticator-rs v0.5.5 Compiling calternal-fixtures v0.1.0 (/home/agent/wt/bm2-crash/crates/fixtures) Compiling calternal-tasks v0.1.0 (/home/agent/wt/bm2-crash/crates/tasks) Compiling calternal-daily v0.1.0 (/home/agent/wt/bm2-crash/crates/daily) Compiling calternal-contacts-actions v0.1.0 (/home/agent/wt/bm2-crash/crates/contacts-actions) Compiling calternal v0.1.0 (/home/agent/wt/bm2-crash/crates/calternal) Compiling calternal-perf v0.1.0 (/home/agent/wt/bm2-crash/crates/perf) Compiling calternal-search v0.1.0 (/home/agent/wt/bm2-crash/crates/search) Compiling calternal-contacts v0.1.0 (/home/agent/wt/bm2-crash/crates/contacts) Compiling calternal-fsio v0.1.0 (/home/agent/wt/bm2-crash/crates/fsio) Compiling calternal-migrate-v0 v0.1.0 (/home/agent/wt/bm2-crash/crates/migrate-v0) Compiling calternal-engine v0.1.0 (/home/agent/wt/bm2-crash/crates/engine) Compiling calternal-prefs v0.1.0 (/home/agent/wt/bm2-crash/crates/prefs) Compiling calternal-store v0.1.0 (/home/agent/wt/bm2-crash/crates/store) Compiling calternal-plugin-hello v0.1.0 (/home/agent/wt/bm2-crash/crates/plugin-hello) Compiling calternal-core v0.1.0 (/home/agent/wt/bm2-crash/crates/core) Compiling calternal-testkit v0.1.0 (/home/agent/wt/bm2-crash/crates/testkit) Compiling calternal-memory v0.1.0 (/home/agent/wt/bm2-crash/crates/memory) Finished `test` profile [unoptimized + debuginfo] target(s) in 47.60s Running unittests src/main.rs (target/debug/deps/calternal-108149eafe5c4cdc) running 32 tests test admin::tests::a_stop_sent_before_subscribing_is_still_seen ... ok test admin::tests::an_active_request_gets_a_graceful_shutdown_window ... ok test args::tests::dev_user_never_on_a_public_address ... ok test args::tests::defaults_and_flags ... ok test args::tests::migrate_v0 ... ok test args::tests::fix_commands ... ok test args::tests::origin_defaults_to_the_local_port ... ok test args::tests::state_defaults_to_resolved_data_and_flags_override_environment ... ok test args::tests::user_create ... ok test args::tests::setup_and_re_pair_are_explicit ... ok test args::tests::user_recover ... ok test args::tests::web_folder ... ok test admin::tests::shutdown_stops_a_client_waiting_on_a_partial_request ... ok test admin::tests::a_restart_waits_out_an_admin_request_longer_than_ten_seconds ... ok test isolation::bob_cannot_reach_alices_attachments ... ok test isolation::in_process_server_shutdown_releases_both_roots_200x_under_load ... ignored, stress gate; run explicitly during release validation test isolation::contacts_and_tasks_in_one_home_keep_their_own_members ... ok test isolation::people::backdrops_spend_the_same_counter_as_small_attachments ... ok test isolation::people::duplicate_upload_at_quota_must_not_spend_bytes_twice ... ok test isolation::people::normal_token_failures_do_not_log_or_persist_plaintext ... ok test isolation::people::real_upload_storm_notes_trash_restore_and_delete_usage ... ok test isolation::people_actions_hide_real_ids_from_members_other_users_and_anonymous_callers ... ok test isolation::quota_refuses_large_and_small_uploads_while_notes_still_save ... ok test isolation::bob_cannot_join_alices_note_room ... ok test isolation::bob_reaches_nothing_of_alices_through_any_action ... ok test isolation::renaming_a_task_retargets_task_and_contact_links_once ... ok test isolation::split_storage_keeps_originals_and_databases_on_their_disks ... ok test plugins::tests::contract_matches_the_server ... ok test shutdown_io::tests::shutdown_finishes_an_idle_read_and_keeps_response_writes_open ... ok test shutdown_io::tests::shutdown_bounds_response_writes_to_a_peer_that_stops_reading ... ok test isolation::people::every_action_obeys_person_visibility ... ok test isolation::randomized_home_shutdown_releases_both_roots ... ok test result: ok. 31 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.62s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-b2cb624769b95cc3) running 2 tests test kill_nine_mid_upload_leaves_nothing_half_written ... ok test a_big_upload_streams_in_bounded_memory ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.96s Running tests/contacts_live.rs (target/debug/deps/contacts_live-8d9bb01c10636ba2) running 2 tests test a_phone_renames_a_contact_while_someone_types_in_a_linking_note ... ok test a_live_h1_collision_keeps_contact_and_incoming_link_identity ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.05s Running tests/fix_tz_live.rs (target/debug/deps/fix_tz_live-ef1bc97e7a0c2deb) running 2 tests test fix_without_a_running_server_says_so ... ok test strip_tz_markers_on_a_live_home_with_a_client_typing ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.31s Running tests/notes_crash.rs (target/debug/deps/notes_crash-50065b1868a6285f) running 3 tests test kill_nine_mid_tag_rename_renames_each_tag_once ... ok test kill_nine_mid_append_on_a_long_note ... ok test kill_nine_never_loses_or_doubles ... ok test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.52s Running tests/notes_crash_typing.rs (target/debug/deps/notes_crash_typing-69621e9e5c3af2a6) running 1 test test kill_nine_while_people_type_loses_and_doubles_nothing ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.95s Running tests/notes_live.rs (target/debug/deps/notes_live-f15abc5dd02bf82b) running 2 tests test joining_a_missing_note_fails_politely ... ok test type_over_the_websocket_and_read_it_back ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s Running tests/prefs_live.rs (target/debug/deps/prefs_live-51218f6718df02ea) running 1 test test preferences_are_saved_checked_and_kept ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s Running tests/search_live.rs (target/debug/deps/search_live-2a42fb6b57e31110) running 3 tests test perf_live_empty_search_under_one_second ... ignored, live empty-search latency budget runs on the perf VM via perf/ordinary-latency-vm.sh test block_markers_are_hidden_from_titles_snippets_and_search ... ok test notes_from_everywhere_are_found ... ok test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.79s Running tests/staging_canonical_race.rs (target/debug/deps/staging_canonical_race-aed8c607ed994711) running 2 tests ordinary startup recovery marked=False: unknown legacy names and bytes retained canonical race before, rewrite: PASS ordinary startup recovery marked=True: unknown legacy names and bytes retained test reviewer_742_ordinary_startup_preserves_replacements_with_and_without_markers ... ok canonical race before, replace: PASS canonical race after, rewrite: PASS canonical race after, replace: PASS test staging_canonical_race_before_and_after_recovery ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s Running tests/startup.rs (target/debug/deps/startup-376fa11748dc23de) running 6 tests test perf_startup_under_500ms ... ignored, startup latency budget runs on the perf VM via perf/ordinary-latency-vm.sh test refuses_dev_user_on_a_public_address ... ok test refuses_plain_http_on_a_public_origin ... ok test a_new_server_prints_a_setup_token ... ok test answers_after_launch ... ok test recover_only_knows_real_people ... ok test result: ok. 5 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.01s Running tests/storage_startup.rs (target/debug/deps/storage_startup-102740d70cbb4eb8) running 11 tests test a_lock_held_past_the_longest_grace_still_fails_startup ... ok test create_refuses_unpaired_notes_or_databases_before_creating_other_root ... ok test missing_home_refuses_without_creating_directory_or_lock ... ok test both_missing_markers_with_existing_split_data_require_confirmed_re_pair ... ok test legacy_history_read_only_and_invalid_state_are_refused ... ok test original_storage_startup_scenario_repeats_100x_under_load ... ignored, stress gate; run explicitly during release validation test missing_state_never_recreates_databases_even_with_create ... ok test single_root_upgrade_backup_split_cache_delete_and_rollback ... ok test roots_must_keep_their_persistent_partner_and_admin_must_confirm ... ok test startup_waits_for_a_previous_server_to_release_both_roots ... ok test both_roots_remain_exclusively_locked ... ok test result: ok. 10 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 10.02s Running unittests src/lib.rs (target/debug/deps/calternal_attachments-a0ecb4cd83747940) running 19 tests test serve::tests::only_plain_visible_paths_are_served ... ok test serve::tests::ranges ... ok test serve::tests::dispositions_quote_safely ... ok test tests::http::a_connection_that_breaks_off_leaves_nothing ... ok test tests::http::a_retry_with_the_same_key_never_makes_a_second_copy ... ok test tests::http::an_upload_lands_in_its_dated_folder_and_is_served_back ... ok test tests::http::check_finds_only_your_own_files ... ok test tests::http::names_can_not_steer_where_a_file_goes ... ok test tests::http::paths_that_climb_out_of_the_home_are_not_found ... ok test tests::http::the_sweep_removes_what_a_crash_left_and_spares_live_uploads ... ok test tests::http::uploads_need_a_session_our_page_and_a_key ... ok test tests::sniffing::days_are_strict ... ok test tests::sniffing::names_are_kept_but_made_safe ... ok test tests::sniffing::pictures_and_videos_go_to_photos ... ok test tests::sniffing::text_types_come_from_the_extension_and_html_never_runs ... ok test tests::sniffing::the_name_never_decides_a_binary_type ... ok test tests::http::the_limit_holds_while_streaming_without_a_length ... ok test tests::http::unsafe_types_are_downloads_with_a_strict_policy ... ok test tests::http::the_same_file_again_says_already_uploaded_and_keeps_one_copy ... ok test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s Running unittests src/lib.rs (target/debug/deps/calternal_auth-703206bf9c48da69) running 30 tests test config::tests::origins ... ok test ceremony::tests::full_pool_refuses_foreign_source_without_discarding_live_prompt ... ok test ceremony::tests::anonymous_pool_stays_bounded_and_evicts_oldest ... ok test db::tests::a_version_1_database_gets_passkey_names ... ok test http::cookie_tests::session_cookie_is_host_only_and_secure ... ok test db::tests::migration_keeps_the_first_owner_when_creation_times_tie ... ok test db::tests::existing_database_keeps_people_credentials_and_sessions ... ok test invite_key::tests::lookup_uses_a_separate_derived_key_and_depends_on_the_server_key ... ok test invite_redeem::tests::expiry_and_clock_rollback_use_the_same_validation_path ... ok test invite_redeem::tests::invalid_invite_classes_perform_one_lookup_and_one_secret_comparison ... ok test invite_redeem::tests::invalid_invites_do_not_reveal_name_conflicts ... ok test limit::reliability_tests::backoff_expires_is_capped_and_refusals_do_not_extend_it ... ok test limit::reliability_tests::buckets_are_independent_and_bounded ... ok test http::proxy_tests::forwarding_stops_at_first_untrusted_hop_and_rejects_malformed_chains ... ok test db::tests::opens_twice_and_keeps_schema ... ok test limit::reliability_tests::target_capacity_preserves_live_budgets_and_evicts_only_oldest_expired ... ok test passkeys::tests::ids_round_trip ... ok test passkeys::tests::names_are_trimmed_short_and_never_empty ... ok test session::tests::names_are_cleaned ... ok test invite_key::tests::key_round_trips_but_modified_ciphertext_and_another_id_fail ... ok test limit::reliability_tests::full_map_evicts_least_recent_without_refusing_new_sources ... ok test setup::tests::names_reject_invisible_and_normalize_nfc ... ok test setup::tests::names ... ok test setup::tests::recover_needs_a_known_person ... ok test setup::tests::usernames ... ok test token::tests::junk_is_not_a_token ... ok test token::tests::setup_tokens_round_trip_through_pasting ... ok test setup::tests::cli_creation_refuses_admin_name_confusables ... ok test setup::tests::recovery_requires_exact_username_or_uuid_never_display_name ... ok test limit::reliability_tests::source_churn_cannot_reset_target_budget ... ok test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.09s Running tests/abuse.rs (target/debug/deps/abuse-b4f2927b34dec802) running 12 tests test bad_json_and_unknown_fields_are_refused ... ok test anonymous_prompt_flood_preserves_login_setup_and_add ... ok test forged_sessions_get_nowhere ... ok test duplicate_session_cookies_never_choose_an_identity ... ok test junk_setup_tokens_are_refused_then_rate_limited ... ok test non_json_requests_are_refused ... ok test login_source_limit_does_not_block_another_client ... ok test one_source_cannot_lock_out_another_and_cannot_spoof_forwarding ... ok test other_sites_cannot_act_for_you ... ok test nothing_about_the_server_leaks_before_sign_in ... ok test oversized_bodies_are_refused ... ok test garbage_credentials_never_crash ... ok test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s Running tests/create.rs (target/debug/deps/create-62d3e6471dfb5e68) running 6 tests test an_earlier_first_owner_token_stops_working ... ok test names_must_be_usable_and_unique ... ok test an_expired_enrolment_token_is_refused ... ok test nothing_about_the_person_leaks_before_sign_in ... ok test a_created_person_enrolls_their_first_passkey_and_is_the_same_person ... ok test an_enrolment_token_works_exactly_once_under_a_storm ... ok test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s Running tests/groups.rs (target/debug/deps/groups-815969257eb1cf8e) running 1 test test shared_groups_control_visibility_and_managers_only_edit_local_members ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running tests/host_cookies.rs (target/debug/deps/host_cookies-6e03f5ea1a901a63) running 3 tests test old_name_is_ignored_and_cleared_once_without_touching_host_session ... ok test duplicate_host_headers_and_stale_requests_never_clear_new_session ... ok test upgrading_schema_six_removes_cookie_state_and_keeps_passkeys ... ok test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running tests/invites.rs (target/debug/deps/invites-10261cb70b148b14) running 8 tests test invite_finish_rechecks_admin_names_after_role_changes ... ok test invite_admin_names_cannot_be_impersonated_and_failure_preserves_invite ... ok test invite_redemption_joins_its_groups_and_other_inviters_cannot_copy_it ... ok test legacy_invite_indexes_upgrade_atomically_and_keep_copy_and_redemption ... ok test invite_can_be_copied_after_restart_and_only_one_racing_passkey_wins ... ok test losing_the_key_does_not_replace_it_and_invite_secrets_never_enter_action_history ... ok test wrong_expired_used_and_revoked_invites_give_one_answer ... ok test invite_redemption_reaches_a_visible_admin_but_not_an_unrelated_member ... ok test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s Running tests/isolation.rs (target/debug/deps/isolation-dadd7a81ee29fe1e) running 3 tests test a_cookie_sent_from_another_sites_page_does_not_count ... ok test devices_and_passkeys_of_another_person_are_not_found ... ok test another_persons_passkey_prompt_cannot_be_used_or_cancelled ... ok test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s Running tests/login.rs (target/debug/deps/login-9f6dca58a91514b6) running 11 tests test foreign_status_cannot_sign_the_browser_out ... ok test a_sign_in_answer_cannot_be_replayed ... ok test bearer_tokens_work_like_cookies ... ok test an_unknown_passkey_is_refused ... ok test logout_revokes_the_installation_and_rejects_live_cookies ... ok test sign_in_with_a_passkey_creates_a_new_installation ... ok test signing_in_shows_up_live_on_another_device ... ok test revoking_another_device_signs_it_out ... ok test sign_out_ends_the_session_immediately ... ok test signing_out_shows_up_live_on_another_device ... ok test sessions_expire_when_unused ... ok test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s Running tests/migration.rs (target/debug/deps/migration-f4dacdb22be609ad) running 1 test test schema_two_copy_keeps_real_credentials_sessions_and_recovery ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s Running tests/passkeys.rs (target/debug/deps/passkeys-4b7e64f9cdc008dc) running 7 tests test an_empty_name_is_refused_and_a_long_one_is_cut ... ok test the_first_passkey_is_listed_with_the_device_it_was_made_on ... ok test a_removed_passkey_that_is_gone_or_unknown_is_not_found ... ok test add_rename_and_remove_each_leave_a_journal_event ... ok test the_same_device_cannot_be_added_twice ... ok test adding_needs_a_sign_in_and_an_add_prompt_works_once ... ok test the_last_passkey_cannot_be_removed ... ok test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s Running tests/people.rs (target/debug/deps/people-efc7cccf1f0e0865) running 4 tests test promotion_cannot_create_confusable_admin_names ... ok test member_cannot_change_roles_and_new_capability_sets_work ... ok test first_owner_has_capabilities_and_cannot_demote_the_last_admin ... ok test two_admins_racing_to_demote_themselves_leave_one_admin ... ok test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s Running tests/quota_counter.rs (target/debug/deps/quota_counter-1e9503a2dbb24bfc) running 3 tests test perf_signin_during_large_recount_under_fifty_ms ... ignored, sign-in latency budget runs on the perf VM via perf/ordinary-latency-vm.sh test small_uploads_spend_the_same_allowance_as_large_uploads ... ok test signin_finishes_before_a_large_recount ... ok test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.99s Running tests/reliability_review.rs (target/debug/deps/reliability_review-95c7ecd72b1447de) running 22 tests test authentication_database_does_not_wait_for_general_blocking_workers ... ok test anonymous_flood_must_not_evict_other_persons_prompt ... ok test crash_child_exit ... ignored test concurrent_quota_admissions_do_not_overspend ... ok test counter_concurrent_mutations_drift_and_restart ... ok test directory_moves_keep_child_accounting_and_deletes_correct ... ok test directory_move_during_initial_recount_must_track_later_deletes ... ok test independent_login_latency_during_recount ... ignored, latency budget runs on the perf VM via perf/auth-latency-vm.sh test ipv6_prefix_must_share_budget ... ok test default_twenty_mib_stream_boundary ... ok test names_normalization_recovery_and_invisibles ... ok test normalized_setup_token_must_share_target_budget ... ok test perf_ipv6_source_rotation_under_fifty_five_seconds ... ignored, IPv6 source-churn latency budget runs on the perf VM via perf/ordinary-latency-vm.sh test repeated_bad_signatures_for_one_account_must_share_budget ... ok test restart_recovers_disk_update_missing_counter_notification ... ok test slow_uploads_must_not_starve_authentication_blocking_pool ... ok test source_isolation_and_untrusted_forwarding ... ok test ipv6_rotation_must_not_lock_out_new_source ... ok test trusted_proxy_uses_nearest_untrusted_hop ... ok test streamed_slow_exact_over_abort_and_quota_replacement ... ok test independent_login_completes_before_recount ... ok test account_owner_can_sign_in_after_backoff_and_success_resets_failures ... ok test result: ok. 19 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 1.12s Running tests/reliability_round3.rs (target/debug/deps/reliability_round3-0f70bebb89d07ece) running 12 tests test canonical_recovery_token_variants_share_one_target_without_spending_other_tokens ... ok test attachment_and_backdrop_routes_share_caps_and_cancel_cleanup ... ok test fifty_slow_upload_attempts_preserve_full_signin_and_status ... ok test ipv4_mapped_v6_and_native_v4_share_budget_but_adjacent_prefix_does_not ... ok test over_ten_thousand_distinct_source_buckets_still_admit_new_clients ... ok test perf_signin_and_status_during_slow_uploads_under_fifty_ms ... ignored, sign-in and status latency budgets run on the perf VM via perf/ordinary-latency-vm.sh test perf_source_bucket_churn_under_fifty_five_seconds ... ignored, source-bucket churn latency budget runs on the perf VM via perf/ordinary-latency-vm.sh test rename_collision_and_replacement_keep_correct_usage ... ok test setup_target_budget_survives_more_than_ten_thousand_sources ... ok test idle_deadline_cleans_files_and_reopens_each_person_capacity ... ok test attachment_slow_bodies_must_not_hold_all_general_blocking_workers ... ok test maximum_account_backoff_releases_owner_despite_refused_retries has been running for over 60 seconds test maximum_account_backoff_releases_owner_despite_refused_retries ... ok test result: ok. 10 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 123.82s Running tests/security_regressions.rs (target/debug/deps/security_regressions-26737666eae29f89) running 15 tests test eight_parallel_redeemers_create_exactly_one_account ... ok test concurrent_key_creation_publishes_one_complete_key ... ok test expiry_during_passkey_registration_consumes_nothing ... ok test every_action_rejects_anonymous_expired_and_unprivileged_writes ... ok test groups_manager_must_obey_single_person_visibility_rule ... ok test invite_lookup_must_use_keyed_hash ... ok test new_modules_are_small_and_documented ... ok test key_permissions_missing_corrupt_and_no_plaintext_history ... ok test perf_invite_failure_timing_classes_within_ratio ... ignored, invite failure timing budget runs on the perf VM via perf/ordinary-latency-vm.sh test malformed_token_must_have_same_generic_response ... ok test origin_dev_schema_migrates_idempotently_and_rolls_back_partial_failure ... ok test revoked_expired_used_and_wrong_fail_equally ... ok test two_admins_demoting_each_other_keep_one_manager ... ok test all_five_invite_failures_have_the_same_body_and_status ... ok test quota_serializes_large_placements_and_tracks_delete_trash ... ok test result: ok. 14 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.10s Running tests/setup.rs (target/debug/deps/setup-48a3c76d1d2047c1) running 8 tests test a_restart_replaces_the_first_owner_token ... ok test first_owner_needs_a_name ... ok test a_finished_prompt_cannot_be_replayed ... ok test a_token_works_exactly_once_under_a_storm ... ok test session_cookie_is_locked_down ... ok test first_owner_signs_up_with_the_printed_token ... ok test recovery_adds_a_new_passkey_for_the_same_person ... ok test an_expired_setup_token_is_refused ... ok test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s Running unittests src/lib.rs (target/debug/deps/calternal_backdrops-ce5bc27a915d7901) running 26 tests test tests::an_answer_that_is_not_a_picture_is_refused_and_not_kept ... ok test tests::an_upload_is_private_to_the_person_who_made_it ... ok test tests::a_photo_unknown_to_us_is_looked_up ... ok test tests::an_upload_is_kept_once_and_served_back ... ok test tests::changes_need_our_own_page_and_a_signed_in_person ... ok test tests::bad_ids_never_reach_the_disk_or_the_network ... ok test tests::picking_is_reported_to_unsplash_once ... ok test tests::nobody_can_read_or_list_someone_elses_uploads ... ok test tests::pictures_are_proxied_cached_and_never_given_the_key ... ok test tests::a_stricter_attachment_limit_also_bounds_backdrops ... ok test tests::pictures_from_other_hosts_are_refused ... ok test tests::storage_cache::private_staging_directory_does_not_evict_cached_pictures ... ok test tests::search_lists_photos_with_our_own_addresses_and_credit ... ok test tests::storage_cache::split_cache_deletion_refetches_upstream_and_keeps_original_upload ... ok test tests::the_real_client_sends_the_key_and_caps_the_size ... ok test tests::the_real_client_speaks_https_to_unsplash ... ignored, needs the internet test tests::the_same_search_is_answered_once ... ok test tests::the_cache_drops_the_oldest_files_past_its_cap ... ok test tests::unsplash_running_out_of_requests_is_a_plain_slow_down ... ok test tests::uploads_are_checked_by_content_not_by_what_they_claim ... ok test tests::without_a_key_photos_are_off_but_uploads_work ... ok test uploads::reliability_tests::idle_upload_removes_temporary_file_and_releases_admission ... ok test uploads::reliability_tests::upload_admission_is_bounded_and_cancellation_restores_capacity ... ok test tests::too_many_pixels_are_refused_but_files_within_the_byte_limit_work ... ok test tests::backdrop_quota_refuses_new_files_and_releases_space_on_delete ... ok test tests::streaming_upload_stops_at_byte_limit_and_leaves_no_artifact ... ok test result: ok. 25 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.18s Running unittests src/lib.rs (target/debug/deps/calternal_contacts-82048935b19ca5c8) running 1 test test note::related_links_tests::only_the_cards_related_group_names_related_people ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/apple.rs (target/debug/deps/apple-741b13c6ca9da5de) running 4 tests test apple_rewrite_keeps_canonical_extensions_and_takes_real_edits ... ok test unchanged_duplicate_ungrouped_occurrences_merge ... ok test client_deletion_requires_sent_field_and_uid_is_immutable ... ok test unsent_note_changes_survive_and_concurrent_edits_return_history ... ok test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/break_codec.rs (target/debug/deps/break_codec-2ca3eabde7c193e9) running 11 tests test envelope_checks_and_original_copy_reject_ambiguous_or_edited_state ... ok test escaped_separator_parity_keeps_component_and_list_boundaries ... ok test bare_properties_and_ignored_parameter_properties_decode_the_same_values ... ok test canonical_note_comparison_checks_every_byte_and_falls_back_for_local_sections ... ok test folded_and_unfolded_utf8_lines_keep_values_and_their_original_bytes ... ok test multiline_google_custom_labels_cannot_create_other_card_groups ... ok test component_and_list_comparisons_preserve_empty_parts_and_noncanonical_escapes ... ok test quoted_parameter_delimiters_and_value_colons_keep_their_meaning ... ok test original_and_edited_note_snapshots_both_preserve_later_typed_edits ... ok test typed_reordering_and_value_tag_changes_use_the_exported_wire_projection ... ok test mixed_rendered_values_keep_all_other_bytes_during_a_client_edit ... ok test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/break_generated.rs (target/debug/deps/break_generated-89c57de0c1824c0e) running 9 tests test fixed_seed_generated_shapes_include_every_reaudit_case ... ok test arbitrary_wire_and_note_inputs_preserve_bytes_or_explain_rejection ... ok test independent_vendor_shaped_cards_keep_foldings_metadata_and_unknowns ... ok test generated_notes_shapes_and_repeated_fact_edits_round_trip ... ok test synthetic_vendor_corpus_is_bidirectionally_byte_identical ... ok test five_megabyte_notes_survive_both_conversions ... ok test generated_valid_cards_and_messy_notes_keep_every_field ... ok test ten_thousand_new_custom_labels_get_unique_groups_and_round_trip ... ok test megabyte_value_ten_thousand_visible_fields_and_ten_megabyte_photo ... ok test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.00s Running tests/break_inventory.rs (target/debug/deps/break_inventory-b82bc61a5162a159) running 1 test test every_inventory_property_survives_a_neighbour_edit ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/break_labels.rs (target/debug/deps/break_labels-bcac3ae73f727df6) running 2 tests test names_use_human_order_even_when_vendor_properties_are_reordered ... ok test builtin_labels_show_the_words_on_the_phone_and_recover_original_codes ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/break_layout.rs (target/debug/deps/break_layout-45f2b1011f19c174) running 27 tests test a_phone_note_containing_h2_or_h1_round_trips ... ok test colon_label_renames_survive_a_following_client_edit ... ok test ambiguous_simultaneous_colon_edit_returns_phone_group_and_history ... ok test colon_bearing_label_edits_change_only_the_label_and_value_edits_only_the_value ... ok test company_and_department_edits_share_one_org_in_either_note_order ... ok test colons_delimiters_and_unicode_keep_their_exact_wire_values ... ok test crlf_notes_preserve_original_escape_spelling_and_do_not_create_merge_conflicts ... ok test duplicate_structured_name_parts_are_unrepresentable ... ok test entering_a_birthday_year_clears_the_apple_omit_year_flag ... ok test empty_visible_properties_are_not_deleted_on_an_unchanged_round_trip ... ok test first_list_ends_at_a_paragraph_and_second_list_stays_local ... ok test flat_repeatable_lines_stay_and_are_reported ... ok test later_notes_headings_are_phone_text ... ok test missing_h1_explains_rejection_and_empty_card_is_allowed ... ok test missing_wire_display_name_is_not_silently_created_by_a_round_trip ... ok test multiline_labels_never_turn_into_unreported_fields ... ok test multiple_unrepresentable_document_fields_explain_rejection ... ok test note_headings_and_crlf_do_not_change_plain_text ... ok test multiple_edits_to_indistinguishable_occurrences_do_not_guess_hidden_parameters ... ok test notes_heading_after_a_local_h1_owns_the_tail ... ok test org_hierarchy_is_one_fact_and_unchanged_components_stay_lossless ... ok test tags_keep_list_boundaries_when_a_category_contains_comma_space ... ok test unchanged_values_that_differ_only_by_trailing_spaces_keep_both_occurrences ... ok test utf8_bom_is_document_framing ... ok test unicode_names_keep_normalisation_scripts_direction_and_joiners ... ok test one_property_edit_changes_only_its_original_logical_line ... ok test markdown_whitespace_and_bullets_do_not_edit_the_phone ... ok test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/break_links.rs (target/debug/deps/break_links-d63a3855a2c4df37) running 4 tests test a_colon_in_a_related_name_is_text_and_an_explicit_uri_stays_a_uri ... ok test escaped_closing_brackets_inside_a_name_are_not_link_delimiters ... ok test a_plain_name_that_looks_like_a_link_stays_that_name ... ok test related_brackets_and_angle_brackets_are_valid_markdown_and_editable ... ok test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/break_merge.rs (target/debug/deps/break_merge-31cfabbfa4b99daa) running 16 tests test crlf_new_group_is_written_once_for_multiple_incoming_values ... ok test additions_removals_values_and_labels_preserve_customised_note ... ok test distinct_repeated_types_return_quiet_concurrent_edit_notice ... ok test apple_reordering_churn_photo_and_dropped_extension_do_not_lose_local_edits ... ok test dropped_extension_parameters_keep_their_order_and_do_not_conflict_with_local_values ... ok test distinct_ungrouped_types_merge_reorders_edits_additions_and_deletions ... ok test identical_visible_rows_keep_both_occurrences_during_noop_and_changed_merges ... ok test phone_note_deletion_does_not_reappear_as_an_empty_note_on_read ... ok test phone_label_rename_replaces_local_value_edit ... ok test phone_notes_with_headings_merge_successfully ... ok test simultaneous_grouped_phone_and_photo_additions_put_photo_before_card ... ok test local_label_renames_take_phone_deletes_or_value_edits ... ok test related_links_with_custom_relative_targets_bind_to_the_original_person ... ok test same_line_concurrent_edits_and_deletes_take_phone_group ... ok test the_first_card_group_is_added_after_an_existing_photo ... ok test unchanged_repeated_ungrouped_properties_keep_occurrences ... ok test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/format3.rs (target/debug/deps/format3-55f88a806283cfca) running 21 tests test ambiguous_single_fact_delete_and_edit_returns_all_previous_lines ... ok test colliding_colon_renderings_keep_occurrences_or_return_the_phone_group ... ok test ambiguous_occurrence_replaces_only_its_group_and_returns_exact_old_lines ... ok test ambiguous_client_group_takes_phone_order_while_other_groups_merge ... ok test company_and_department_merge_as_separate_single_facts ... ok test department_hierarchy_is_one_fact_when_both_sides_edit_it ... ok test identical_repeatable_rows_return_history_instead_of_guessing_hidden_occurrences ... ok test equal_single_fact_values_still_bind_by_line_order_when_edited ... ok test concurrent_org_additions_and_deletes_never_stop_sync ... ok test indistinguishable_single_fact_deletion_returns_phone_group_and_history ... ok test local_sections_above_notes_stay_local_and_below_become_phone_notes ... ok test exact_client_occurrences_win_before_parameterless_identical_additions ... ok test identical_syncs_do_not_repeat_a_phone_group_replacement_notice ... ok test phone_notes_keep_headings_dividers_lists_and_all_blank_lines_exactly ... ok test repeated_single_facts_typed_from_scratch_create_separate_properties ... ok test repeated_company_conflict_keeps_independent_department_edits ... ok test org_deletions_use_unique_departments_or_return_every_ambiguous_fact ... ok test repeated_single_facts_bind_edit_delete_and_multiple_edits_to_occurrences ... ok test several_ambiguous_groups_report_each_previous_group_once ... ok test unique_values_anchor_client_deletions_even_when_extension_parameters_are_omitted ... ok test unambiguous_repeated_client_edits_and_deletes_keep_other_occurrences ... ok test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/hostile.rs (target/debug/deps/hostile-48ee2efd81746739) running 10 tests test escapes_empty_values_caret_parameters_and_unknown_sequences ... ok test ambiguous_sources_damaged_notes_and_line_injection_are_errors ... ok test malformed_lines_and_mixed_endings_survive_a_neighbor_edit ... ok test folds_at_arbitrary_byte_boundaries_recover_utf8 ... ok test arbitrary_note_text_never_panics ... ok test arbitrary_bytes_never_panic_or_drop_a_byte ... ok test random_unicode_fields_survive_edits ... ok test ten_thousand_properties_keep_order_and_raw_lines ... ok test random_repeated_grouped_properties_keep_their_inventory ... ok test ten_megabyte_photo_stays_in_original_card_and_round_trips ... ok test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.01s Running tests/layout.rs (target/debug/deps/layout-4de5503637bac687) running 13 tests test apple_example_note_matches_the_published_layout ... ok test google_custom_labels_and_non_gregorian_birthdays_keep_their_wire_details ... ok test adr_has_three_readable_examples ... ok test markdown_related_links_with_spaces_and_unicode_are_reversible ... ok test not_a_field_and_other_sections_stay_exact ... ok test independent_phone_and_note_edits_preserve_local_spelling ... ok test photo_reference_is_an_attachment_io_boundary ... ok test notes_are_plain_text_two_way_through_nested_headings ... ok test phone_edit_appends_to_group_and_keeps_spacing_and_local_lines ... ok test renaming_an_apple_label_changes_only_its_label_property ... ok test each_visible_edit_preserves_other_raw_lines ... ok test typed_edits_after_reading_a_note_patch_the_readable_card ... ok test readable_layout_and_all_agreed_fields ... ok test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/roundtrip.rs (target/debug/deps/roundtrip-f53f3de90d5b16fb) running 10 tests test editing_geo_keeps_coordinate_precision_and_semicolon_structure ... ok test add_delete_and_repeated_fields_keep_the_right_occurrence ... ok test new_and_edited_canonical_notes_are_identical_after_wire_import ... ok test hand_edit_uses_external_original_until_export ... ok test new_contact_uid_is_note_id_and_default_is_three ... ok test structured_names_addresses_labels_and_partial_dates_are_typed ... ok test reordering_fields_and_changing_value_tags_cannot_make_an_unstable_note ... ok test version_mapping_keeps_phone_text_preferences_and_photo_bytes ... ok test corpus_is_identical_in_both_directions ... ok test editing_each_field_changes_only_its_raw_occurrence ... ok test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s Running unittests src/lib.rs (target/debug/deps/calternal_contacts_actions-4cce71708a73acdc) running 132 tests test facts::tests::a_card_without_a_name ... ok test frontmatter::tests::a_body_divider_is_not_frontmatter ... ok test frontmatter::tests::no_frontmatter_is_left_alone ... ok test frontmatter::tests::splits_and_joins_back_exactly ... ok test cards::tests::ids_cannot_leave_the_folder ... ok test facts::tests::reads_name_and_facts_in_order ... ok test jobs::tests::attempts_are_stable_and_distinct ... ok test import::tests::identity_is_the_uid_or_the_bytes ... ok test names::tests::bidi_controls_never_reach_a_file_name_but_joiners_do ... ok test namer::tests::names_come_from_the_note_and_its_card ... ok test names::tests::case_and_unicode_form_clash ... ok test names::tests::empty_and_emoji_names ... ok test names::tests::clashes_add_the_first_fact_then_a_number ... ok test cards::tests::copies_are_written_whole_and_removed ... ok test names::tests::illegal_characters_become_dashes ... ok test names::tests::nfd_and_nfc_give_one_name ... ok test names::tests::a_fact_equal_to_the_name_is_skipped ... ok test names::tests::long_names_are_cut_between_whole_characters ... ok test tests::basics::bad_cards_are_refused_and_nothing_is_written ... ok test tests::basics::contact_actions_never_touch_other_notes ... ok test tests::basics::a_retry_with_the_same_key_makes_one_contact ... ok test tests::basics::a_new_name_renames_and_links_follow ... ok test tests::basics::create_writes_the_note_and_its_card ... ok test tests::basics::update_merges_and_keeps_typing ... ok test tests::basics::delete_goes_to_the_trash_and_restore_brings_it_back ... ok test tests::break_links::a_rename_onto_an_existing_file ... ok test tests::break_links::case_only_renames ... ok test tests::break_links::code_stays_and_anchors_travel ... ok test tests::break_links::deleted_forever_links_say_so ... ok test tests::break_links::nfc_and_nfd_names ... ok test tests::break_links::relative_links_from_subfolders ... ok test tests::break_links::rename_chains ... ok test tests::break_links::rename_while_another_client_edits_a_linking_note ... ok test tests::break_links::the_checker_finds_dangling_links ... ok test tests::break_links::swapping_two_names ... ok test tests::break_links::the_title_never_renames_a_contact_file ... ok test tests::break_names::a_name_an_existing_note_has ... ok test tests::break_names::names_differing_only_in_case_are_one_name ... ok test tests::break_names::empty_and_emoji_names ... ok test tests::break_names::clashes_add_company_then_city_then_nickname_then_domain_then_a_number ... ok test tests::break_names::the_folder_is_a_setting ... ok test tests::break_names::unsafe_characters_never_reach_the_file_name ... ok test tests::correctness::acknowledged_edit_between_undo_preparation_and_deletion_survives ... ok test tests::break_names::very_long_names_fit_the_byte_limit ... ok test tests::correctness::deletion_crash_child ... ok test tests::correctness::deletion_recovery_preserves_an_outside_edit_made_while_down ... ok test tests::correctness::crash_after_trash_move_retains_history_and_quota_on_restart ... ok test tests::env::fixture_releases_its_engine_and_stores ... ok test tests::env::pause_markers_accept_serial_and_parallel_child_harness_output ... ok test tests::correctness::failed_partial_import_retains_prepared_cards_until_trash_removal ... ok test tests::correctness::bounded_shutdown_joins_the_card_write_and_refuses_later_copies ... ok test tests::import::an_import_makes_every_new_contact_in_one_job ... ok test tests::import::a_final_flush_failure_undoes_every_published_contact_and_can_retry ... ok test tests::import::a_final_flush_failure_in_an_existing_folder_preserves_earlier_contacts ... ok test tests::import::limits_hold ... ok test tests::import::the_same_file_twice_changes_nothing ... ok test tests::kill9::child ... ok test tests::import::parallel_import_keeps_input_order_and_compares_existing_peer_facts ... ok test tests::import::bulk_import_preserves_an_id_held_only_by_trash_details ... ok test tests::kill9::create_killed_prepared ... ok test tests::break_links::five_thousand_links_across_a_thousand_notes ... ok test tests::kill9::create_killed_committed ... ok test tests::kill9::create_killed_copying ... ok test tests::kill9::edit_killed_committed ... ok test tests::kill9::import_killed_committed ... ok test tests::kill9::import_killed_copying ... ok test tests::kill9::import_killed_mid_import ... ok test tests::kill9::import_killed_planned ... ok test tests::kill9::rename_killed_committed ... ok test tests::kill9::edit_killed_copying ... ok test tests::kill9::import_killed_prepared ... ok test tests::kill9::rename_killed_copying ... ok test tests::kill9::rename_killed_mid_rename ... ok test tests::kill9::rename_killed_planned ... ok test tests::naming::restoring_into_a_taken_name_uses_the_contacts_rule ... ok test tests::naming::an_h1_typed_in_the_app_renames_by_the_contacts_rule ... ok test tests::related::a_related_namesake_in_the_same_import_wins_over_the_book ... ok test tests::related::an_unchanged_phone_resend_changes_nothing ... ok test tests::related::create_and_update_link_one_person_and_leave_namesakes_plain ... ok test tests::related::every_related_link_reaches_the_person_it_names ... ok test tests::related::related_names_from_one_import_link_to_the_files_made ... ok test tests::review3::a_card_saved_with_a_byte_order_mark_is_read ... ok test tests::review3::a_uidless_card_edited_on_the_phone_then_imported_again_is_not_a_duplicate ... ok test tests::review3::bidi_controls_never_reach_a_file_name ... ok test tests::review3::contact_writes_are_refused_after_shutdown ... ok test tests::props::random_sequences_keep_every_invariant ... ok test tests::review3::imports_and_photo_cards_count_against_the_storage_limit ... ok test tests::review3::undo_of_a_contact_change_is_held_to_the_limit ... ok test tests::review3::same_size_photo_swaps_are_held_to_the_limit ... ok test tests::kill9::edit_killed_prepared ... ok test tests::review::both_ends_in_trash_restore_source_before_target_keeps_identity ... ok test tests::review::crash_child ... ok test tests::review::device_name_before_extension_is_safe ... ok test tests::review::import_shared_company_uses_distinguishing_city_and_identical_facts_use_numbers ... ok test tests::review::kill9_delete_before_progress ... ok test tests::review::kill9_delete_only_runtime_inverse ... ok test tests::review::concurrent_undo_and_staged_update_keep_note_and_card_together ... ok test tests::review3::undoing_an_import_retains_history_until_trash_is_purged ... ok test tests::kill9::rename_killed_prepared ... ok test tests::review::kill9_import_after_history_transaction ... ok test tests::review::kill9_import_during_file_placement ... ok test tests::review::kill9_import_after_first_file ... ok test tests::review::kill9_import_after_directory_sync ... ok test tests::review::kill9_restore_after_incoming_link_repair ... ok test tests::review::kill9_restore_after_outgoing_link_repair ... ok test tests::review::kill9_import_into_existing_folder_after_first_file ... ok test tests::review::kill9_restore_before_outgoing_link_repair ... ok test tests::review::kill9_restore_before_progress ... ok test tests::review::kill9_runtime_inverse ... ok test tests::review::link_in_trash_follows_rename ... ok test tests::review::kill9_import_private_files_before_history ... ok test tests::review::rename_to_unbalanced_bracket_keeps_a_markdown_link ... ok test tests::review::replayed_delete_only_runtime_inverse_restores_only_job_edit ... ok test tests::review::replayed_runtime_inverse_restores_only_job_edit ... ok test tests::review::restore_does_not_resurrect_a_removed_link_or_retarget_its_identical_replacement ... ok test tests::review::restore_into_taken_name_preserves_link_identity ... ok test tests::review::ordinary_tag_job_and_undo_preserve_concurrent_typing ... ok test tests::review::same_company_uses_city ... ok test tests::review::kill9_import_into_existing_folder_after_directory_sync ... ok test tests::review::undo_refuses_a_later_phone_card_before_moving_or_retargeting_anything ... ok test tests::sweep::the_sweep_drops_cards_of_contacts_gone_for_good ... ok test tests::sweep::undo_and_deleting_forever_sweep_at_once ... ok test tests::review::kill9_restore_before_incoming_link_repair ... ok test tests::undo::a_retry_after_a_failed_rename_retries_cleanly_and_never_doubles ... ok test tests::undo::import_undo_keeps_card_only_edits ... ok test tests::undo::undo_of_a_rename_takes_the_card_back_with_the_note ... ok test tests::undo::undo_of_an_import_takes_every_contact_back ... ok test write::tests::keyed_ids_are_stable ... ok test write::tests::old_titles_cover_name_file_and_clash_forms ... ok test tests::undo::a_batch_that_fails_part_way_is_undone_completely ... ok test tests::sweep::a_sweep_waits_for_a_copy_selected_before_import_undo ... ok test tests::review::ring_import_1000_swaps_chains_unicode_h1_and_undo ... ok test result: ok. 132 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 16.00s Running unittests src/lib.rs (target/debug/deps/calternal_core-4895863f7e6ebde2) running 15 tests test action::tests::namespace_is_enforced ... ok test batch::tests::visits_everything_once_in_order ... ok test drain::tests::close_waits_for_work_already_in_and_refuses_new_work ... ok test drain::tests::close_gives_up_after_its_bound ... ok test error::tests::every_code_has_a_friendly_message ... ok test batch::tests::stops_at_the_first_error ... ok test journal::tests::junk_tokens_ask_for_a_refresh ... ok test journal::tests::tokens_round_trip ... ok test plugin::tests::plugins_stay_in_their_namespace ... ok test room_queue::tests::budgets_count_bytes_and_release_on_receive_and_drop ... ok test room_queue::tests::control_messages_can_release_rooms_when_payload_budgets_are_full ... ok test room_queue::tests::failed_admission_does_not_leak_reservations ... ok test visible::tests::hides_current_and_legacy_markers ... ok test room_queue::tests::deferred_payload_keeps_local_and_global_byte_admission ... ok test visible::tests::preserves_caret_notation_and_borrows_plain_text ... ok test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/calternal_daily-2361bec1d921b55a) running 23 tests test day::tests::daylight_saving_uses_the_offset_the_device_sends ... ok test day::tests::midnight_follows_the_device_in_ist ... ok test day::tests::titles_read_like_the_web_app ... ok test day::tests::names_and_ids ... ok test tests::any_text_is_safe_to_read_and_plan ... ok test tests::bad_input_is_refused_kindly ... ok test tests::an_existing_day_file_is_reused_whatever_its_id ... ok test tests::add_inserts_exactly_one_entry_and_keeps_the_rest ... ok test tests::close_turns_one_open_entry_into_a_range ... ok test tests::a_day_whose_note_is_in_the_trash_still_opens ... ok test tests::log_add_then_close_makes_a_range ... ok test tests::shared_vectors ... ok test tests::today_follows_the_device_offset ... ok test tests::opening_the_same_day_at_once_makes_one_note ... ok test times_tests::a_line_with_only_tags_stays_words ... ok test tests::make_note_on_a_log_line_keeps_times_and_tags ... ok test times_tests::any_line_is_safe ... ok test times_tests::invalid_spaced_twelve_hour_suffix_stays_a_word_after_a_24_hour_time ... ok test times_tests::only_a_day_note_has_times ... ok test times_tests::a_log_line_splits_into_times_words_and_tags ... ok test times_tests::trailing_tags_on_any_line ... ok test tests::two_offline_devices_starting_the_same_day_merge_into_one_note ... ok test tests::no_file_until_the_first_keystroke ... ok test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.34s Running unittests src/lib.rs (target/debug/deps/calternal_engine-e1b5da0627c2b6bc) running 18 tests test hash::tests::key_order_does_not_matter_but_content_does ... ok test tests::a_retry_runs_once_and_replays_the_result ... ok test tests::action_scopes_are_distinct_and_cannot_alias_legacy_keys ... ok test tests::a_plugin_cannot_write_outside_its_namespace ... ok test tests::a_huge_job_never_delays_anyone ... ok test tests::bad_input_and_unknown_actions_are_friendly ... ok test tests::changes_need_a_key_reads_do_not ... ok test tests::connected_follows_live_views ... ok test tests::identical_calls_at_the_same_moment_run_once ... ok test tests::journal_pages_continue_where_they_stopped ... ok test tests::a_user_with_a_live_view_or_a_running_action_is_kept ... ok test tests::perf_huge_job_action_latency ... ignored, action latency budgets run on the perf VM via perf/ordinary-latency-vm.sh test tests::an_action_that_outlives_shutdown_commits_nothing ... ok test tests::shutdown_waits_for_running_actions_and_refuses_new_ones ... ok test tests::users_never_see_each_other ... ok test tests::the_same_request_key_is_scoped_to_its_action ... ok test tests::no_write_is_lost_while_users_are_released_and_reopened ... ok test tests::an_idle_user_is_released_and_comes_back_with_nothing_lost ... ok test result: ok. 17 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.46s Running unittests src/lib.rs (target/debug/deps/calternal_fixtures-550ece350f28bedf) running 5 tests test dates::tests::round_trips_and_formats ... ok test rng::tests::same_seed_same_numbers ... ok test tests::same_seed_same_bytes_other_seed_other_bytes ... ok test tests::looks_like_a_real_home ... ok test tests::full_gate_has_enough_disjoint_samples ... ok test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.37s Running unittests src/main.rs (target/debug/deps/calternal_fixtures-4b98893a30fba695) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/calternal_fsio-6f8ee3ef0efe91ad) running 104 tests test beneath::tests::paths_that_climb_out_are_refused ... ok test beneath::tests::upload_marker_still_finds_an_image_after_a_crash_during_publication ... ok test beneath::tests::temp_files_persist_without_replacing_and_vanish_when_dropped ... ok test beneath::tests::walking_without_openat2_refuses_symlinks_too ... ok test names::directory::tests::a_full_kernel_queue_rebuilds_before_allocating ... ok test beneath::tests::upload_cancel_and_publish_keep_a_replaced_temporary_inode ... ok test directory::tests::abandoned_prepared_directory_ignores_inherited_owner_description ... ok test private_directory::legacy_state::tests::active_legacy_transaction_is_not_migrated ... ok test private_directory::legacy_state::tests::legacy_state_receipts_clear_files_without_removing_unproven_public_directories ... ok test private_directory::legacy_state::tests::legacy_state_equal_length_rewrite_at_migration_boundary_survives ... ok test names::directory::tests::immediate_outside_events_case_duplicates_and_replacement_are_current ... ok test private_directory::owner::tests::transaction_and_recovery_lifetimes_ignore_inherited_descriptors ... ok test private_directory::record::tests::write_intent_proves_every_short_prefix_but_never_outside_bytes ... ok test private_directory::roots::inheritance::tests::private_image_inheritance_matches_a_kernel_create_in_the_destination ... ok test private_directory::record::tests::interrupted_write_is_reclaimed_but_outside_edit_stays_private ... ok test private_directory::legacy_state::tests::split_state_restart_drains_private_scan_images_without_touching_the_data_home ... ok test private_directory::roots::tests::a_symlink_cannot_replace_either_private_component ... ok test private_directory::roots::tests::membership_requires_a_registered_root_and_refuses_parent_traversal ... ok test private_tmp_tests::creator_receipt_alone_cannot_authorize_legacy_state_migration ... ok test private_tmp_tests::interrupted_case_only_rename_never_discards_the_moved_user_inode ... ok test private_tmp_tests::concurrent_startup_drain_accepts_a_peer_finishing_the_same_private_directory ... ok test private_tmp_tests::legacy_state_never_adopts_a_published_key_moved_under_a_quarantine_name ... ok test private_tmp_tests::private_root_loose_images_are_drained_without_deleting_unknown_bytes ... ok test private_tmp_tests::private_directory_is_shared_across_nested_destinations_and_not_a_symlink ... ok test private_tmp_tests::unreadable_app_metadata_is_restored_without_deleting_unknown_bytes ... ok test private_tmp_tests::reviewer_744_public_writer_after_last_private_check_survives_cleanup ... ok test private_tmp_tests::no_producer_creates_temporary_files_outside_the_private_directory ... ok test reviewer_744::private_cleanup_stop_child ... ok test reviewer_744::reviewer_737_and_740_unknown_legacy_bytes_remain_at_original_name ... ok test names::directory::tests::random_outside_entry_changes_match_the_real_directory ... ok test reviewer_744::reviewer_742_three_equal_length_upload_rewrites_do_not_touch_public_names ... ok test reviewer_744::reviewer_744_actual_private_images_retain_external_aliases ... ok test reviewer_744::reviewer_744_actual_private_replacements_are_not_adopted_for_cleanup ... ok test reviewer_750::crash_child ... ok test reviewer_744::reviewer_744_public_cleanup_never_reaches_unlink_or_loses_alias_writes ... ok test reviewer_750::destination_create_at_exclusive_placement_cannot_be_overwritten ... ok test reviewer_750::existing_save_external_writes_at_each_exchange_and_unlink_boundary ... ok test reviewer_750::descriptor_opened_on_public_file_keeps_a_visible_survivor_after_save ... ok test reviewer_750::legacy_unproven_untouched_and_proven_moved_before_disposal ... ok test reviewer_750::killed_save_does_not_hide_or_delete_displaced_unknown_bytes ... ok test reviewer_750::streaming_fill_is_private_even_while_the_input_blocks_or_destination_changes ... ok test reviewer_759::actual_owner_survives_recovery_and_kernel_releases_after_sigkill ... ok test reviewer_759::disk_full_save_and_cancellation_keep_outside_bytes ... ok test reviewer_750::unconditional_metadata_writers_preserve_unknown_displaced_versions ... ok test reviewer_759::outside_private_writes_and_another_home_survive_owner_death ... ok test reviewer_759::sigkill_between_payload_write_and_receipt_leaves_no_public_partial_upload ... ok test reviewer_759::upload_owner_child ... ok test safe_cleanup_tests::an_app_created_replacement_cannot_transfer_cleanup_authority ... ok test safe_cleanup_tests::every_cleanup_path_preserves_concurrent_writer_property ... ok test safe_cleanup_tests::public_unknown_bytes_are_not_renamed_to_conflicts_during_recovery ... ok test staging::tests::staging_lease_break_child ... ok running 1 test test staging::tests::staging_lease_break_child ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 103 filtered out; finished in 0.00s test staging::tests::staging_lease_break_retains_bytes_and_does_not_signal_server ... ok test staging::tests::staging_recovery_preserves_unknown_and_racing_outside_bytes ... ok test reviewer_759::misleading_pid_metadata_never_substitutes_for_a_kernel_owner ... ok test staging::tests::staging_walk_never_follows_links_and_recognises_destinations ... ok test staging_cleanup_tests::staging_claimed_path_reviewer_race_retains_unjournaled_replacement ... ok test staging_cleanup_tests::staging_journal_proof_alone_does_not_discard_an_outside_alias_write ... ok test staging_cleanup_tests::staging_migration_requires_the_complete_old_name_pattern ... ok test staging_lease::tests::lease_waits_for_a_transient_inherited_writer_before_verifying ... ok test staging_liveness_tests::a_private_entry_named_tmp_still_has_an_owner ... ok test staging_liveness_tests::both_recovery_paths_skip_a_live_upload_even_with_journal_proof ... ok test staging_liveness_tests::cancellation_and_staging_scan_do_not_orphan_a_private_upload ... ok test staging_liveness_tests::history_proof_holds_the_abandoned_owner_against_other_recovery ... ok test staging_liveness_tests::private_directory_ownership_covers_scans_and_restart ... ok test staging_liveness_tests::private_names_preserve_long_unicode_destination_budget ... ok test staging_liveness_tests::private_names_remain_unique_when_the_clock_does_not_advance ... ok test staging_liveness_tests::recovery_skips_a_transaction_between_mkdir_and_owner_lock ... ok test swap::create_tests::create_preserves_outside_file_appearing_after_absence_check ... ok test swap::create_tests::displaced_replacement_and_rollback_replacement_keep_external_versions ... ok test swap::create_tests::unsupported_exchange_never_replaces_an_existing_file ... ok test tests::a_private_directory_is_invisible_until_exclusive_publication ... ok test tests::a_published_directory_retains_ownership_when_a_parent_flush_fails ... ok test tests::atomic_write_replaces_and_leaves_no_temp_files ... ok test reviewer_744::reviewer_744_private_cleanup_abrupt_stop_preserves_public_writes ... ok test tests::case_only_collision_rolls_back_or_keeps_the_staged_original ... ok test tests::case_only_rename_preserves_a_different_destination ... ok test tests::case_only_rename_works_and_other_clashes_are_refused ... ok test tests::delta_rename_must_preserve_file_arriving_after_absence_check ... ok test tests::directory_publication_rechecks_changed_inheritance_policy ... ok test tests::dropping_data_lock_releases_it_even_with_an_inherited_file_handle ... ok test tests::failed_write_keeps_the_old_file ... ok test tests::many_files_are_replaced_whole ... ok test tests::many_new_files_never_replace_anything ... ok test tests::named_bulk_staging_is_whole_exclusive_and_leaves_no_temporary_name ... ok test tests::names_fold_case_and_unicode_form ... ok test tests::only_one_process_owns_a_data_folder ... ok test tests::parallel_bulk_preserves_result_slots_and_observes_the_final_sync ... ok test tests::prepared_writes_land_only_when_placed ... ok test tests::private_directory_publication_preserves_a_destination_that_arrives ... ok test tests::rename_preserves_a_dangling_destination_symlink ... ok test tests::staged_bulk_keeps_the_destination_default_acl ... ok test tests::staged_bulk_preserves_occupied_files_and_falls_back_when_staging_is_missing ... ok test tests::unique_names_skip_case_and_form_clashes ... ok test tests::big_writes_arrive_whole ... ok test usage::private_usage_tests::transient_images_and_manifests_never_count_as_user_storage ... ok test usage::tests::a_separate_state_root_counts_what_plugins_report ... ok test usage::tests::bulk_writes_and_published_folders_count_without_a_recount ... ok test usage::tests::reads_do_not_wait_for_the_counter_writer ... ok test usage::tests::recount_preserves_concurrent_writes_and_deletes ... ok test usage::tests::stale_metadata_cannot_replace_a_newer_update ... ok test usage::tests::writes_moves_trash_and_purge_update_without_a_recount ... ok test staging::tests::staging_recovery_retains_an_inode_with_an_open_outside_writer ... ok test tests::write_unless_changed_keeps_someone_elses_version ... ok test readonly_alias_tests::readonly_descriptors_cannot_lose_later_completed_writes ... ok test result: ok. 104 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.97s Running unittests src/lib.rs (target/debug/deps/calternal_memory-a4983f7386377b31) running 2 tests test tests::huge_pages_go_off ... ok test tests::trimming_is_harmless ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/calternal_migrate_v0-9921b9a7fe9d6530) running 37 tests test tests::rules::dry_run_writes_nothing ... ok test tests::rules::edited_files_are_never_overwritten_without_asking ... ok test tests::rules::m10_tz_markers_go_and_other_zones_convert_to_the_notes_zone ... ok test tests::rules::m1_custom_daily_title_and_heading_stay ... ok test tests::rules::m1_daily_notes_get_day_names_ids_and_lose_generated_headings ... ok test tests::rules::m1_titles_come_from_title_then_h1_then_file_name_and_stay_unique ... ok test tests::rules::m2_code_is_never_rewritten ... ok test tests::rules::m2_attachments_that_exist_are_copied_and_relinked ... ok test tests::rules::m2_links_are_repaired_by_name_date_title_and_slug ... ok test tests::rules::m2_unresolved_links_stay_as_written_and_are_reported ... ok test tests::rules::m3_m5_frontmatter_keys_drop_and_times_convert ... ok test tests::rules::m2_wikilinks_always_become_standard_links ... ok test tests::rules::m4_unreferenced_block_ids_go_and_referenced_ones_stay ... ok test tests::rules::m5_unreadable_dates_fall_back ... ok test tests::rules::m6_conflict_copies_are_not_migrated ... ok test tests::rules::m8_only_notes_and_linked_files_move ... ok test tests::rules::m7_tasks_blocks_are_stripped_and_listed ... ok test tests::units::every_v0_time_shape_converts ... ok test tests::units::file_names_give_titles ... ok test tests::units::keys_ignore_case_encoding_quotes_and_md ... ok test tests::units::links_parse_in_every_shape ... ok test tests::units::unix_times_become_india_time ... ok test tzmarker::tests::a_conversion_that_leaves_the_day_is_kept_and_reported ... ok test tzmarker::tests::berlin_converts_inside_the_day ... ok test tzmarker::tests::code_is_never_touched ... ok test tzmarker::tests::day_from_a_date_value ... ok test tzmarker::tests::eu_summer_time_edges ... ok test tzmarker::tests::marker_at_the_end_or_tight_leaves_no_stray_space ... ok test tzmarker::tests::no_zone_in_the_note_means_strip_only ... ok test tzmarker::tests::not_a_marker_is_left_alone ... ok test tzmarker::tests::same_zone_just_goes ... ok test tzmarker::tests::second_run_changes_nothing ... ok test tests::rules::running_twice_gives_the_same_bytes ... ok test tzmarker::tests::styles_survive_conversion ... ok test tzmarker::tests::unknown_zone_or_a_non_log_line_is_kept_and_counted ... ok test write::tests::migration_preserves_files_changed_after_preflight ... ok test tests::no_new_markers::nothing_writes_a_tz_marker ... ok test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s Running unittests src/lib.rs (target/debug/deps/calternal_notes-ebdca8a8833586bd) running 459 tests test anchor::tests::lines_by_utf16_index ... ok test backlinks::tests::snippets_are_the_trimmed_line ... ok test blocks::tests::finds_list_children_and_heading_sections ... ok test anchor::tests::hash_is_plain_sha256_hex ... ok test backlinks::tests::links_are_fold_keys_and_lines ... ok test blocks::tests::line_edits ... ok test blocks::tests::shapes_keep_markers ... ok test blocks::tests::titles_from_the_first_sentence ... ok test bulk::undo::tests::inverse_restores_the_text ... ok test bulk::undo::tests::inverse_roundtrips ... ok test bulk::error_tests::legacy_job_reports_hide_stored_source_details ... ok test capture_tests::crash_child ... ok test bulk::error_tests::failed_job_reports_keep_source_details_in_the_server_error ... ok test bulk::recovery::tests::create_placement_recovers_only_the_matching_embedded_identity ... ok test diff::tests::an_inserted_line_starts_at_a_line_start ... ok test deletion::tests::recovery_keeps_its_intent_until_missing_history_is_restorable ... ok test diff::tests::edits_never_split_a_character ... ok test diff::tests::emoji_positions_are_utf16 ... ok test diff::tests::small_change_is_a_small_edit ... ok test frontmatter::tests::h1_skips_code_and_frontmatter ... ok test frontmatter::tests::quoting ... ok test frontmatter::tests::reads_keys ... ok test frontmatter::tests::set_adds_a_line_or_a_block ... ok test frontmatter::tests::set_changes_only_the_value ... ok test diff::tests::edits_turn_old_into_new ... ok test frontmatter::tests::set_is_utf16_aware ... ok test health::tests::anchors ... ok test history::blobs::tests::photo_chunks_preserve_folding_unknown_fields_and_line_endings ... ok test history::companions::import_cache_tests::import_cache_budget_returns_after_success_and_failure ... ok test capture_tests::capture_allocates_around_unindexed_case_and_exact_names ... ok test history::companions::import_cache_tests::prepared_companions_are_applied_on_insert_or_roll_back_with_the_plan ... ok test history::companions::migration_tests::old_staging_allocation_order_migrates_to_application_order ... ok test history::companions::tests::a_companion_lands_with_its_change ... ok test history::companions::tests::rejected_companion_writes_leave_history_and_quota_unchanged ... ok test history::companions::tests::keys_answer_without_reading_bytes_and_cover_older_rows ... ok test history::companions::tests::staged_rows_wait_for_their_step ... ok test history::companions::tests::retained_bytes_follow_every_change_and_match_a_full_count ... ok test history::companions::tests::written_marks_and_unwritten_rows ... ok test history::memory_tests::batch_admission_failure_dooms_its_lane_before_a_later_write ... ok test history::memory_tests::history_payload_bytes_are_bounded_per_home_and_globally_until_completion ... ok test history::receipts::tests::legacy_card_only_changes_get_a_whole_note_journal_position ... ok test history::staging::liveness_tests::cold_note_home_must_not_claim_another_plugins_live_upload ... ok test history::staging::tests::stage_child ... ok test history::staging::race_tests::staging_canonical_race_keeps_equal_unjournaled_bytes ... ok test history::tests::a_busy_begin_reports_its_cause_without_running_the_job ... ok test history::tests::a_competing_writer_cannot_invalidate_a_history_write_snapshot ... ok test history::tests::a_failed_commit_never_replies_with_a_successful_statement_result ... ok test history::tests::a_failed_statement_rolls_back_and_reports_the_cause_to_the_whole_group ... ok running 1 test test history::tests::appends_are_ordered_and_readable ... ok running 1 test running 1 test running 1 test test history::tests::disk_full_keeps_the_cause_and_failed_writes_can_be_retried ... ok running 1 test test history::tests::pending_save_promotes_to_base ... ok running 1 test test history::staging::tests::staging_recovery_removes_journal_versions_and_keeps_outside_bytes ... ok test index::tests::a_shared_path_answers_with_the_newest_note ... ok test index::tests::a_torn_tail_cannot_swallow_the_next_durable_mapping ... ok test home::background_task_tests::finished_background_tasks_are_reaped_during_normal_operation ... ok test index::tests::compacts_when_it_grows ... ok test history::blobs::tests::fifty_two_weekly_edits_share_the_unchanged_original_photo ... ok test index::tests::imported_mappings_share_one_log_append_and_survive_reload ... ok test index::tests::reload_speed ... ignored test index::tests::survives_reload_renames_and_torn_lines ... ok test index::tests::under_finds_exact_paths_and_descendants_with_folded_names ... ok test index::tests::under_keeps_shadowed_paths_for_watcher_removal ... ok test index::tests::unloads_and_reloads ... ok test links::escaped_labels::generated_labels_round_trip_and_custom_markup_survives_retargeting ... ok test index::tests::answers_like_plain_maps ... ok test links::tests::finds_standard_and_old_style_links ... ok test links::tests::frontmatter_code_samples_do_not_hide_body_links ... ok test links::tests::generated_reserved_destinations_roundtrip ... ok test links::tests::generated_title_destination_roundtrips ... ok test links::tests::longer_backtick_fence_does_not_close_on_three_ticks ... ok test links::tests::nested_brackets_in_text ... ok test links::tests::nested_fences_and_indented_code_follow_commonmark_boundaries ... ok test links::tests::normal_fence_control_keeps_links_after_the_block ... ok test links::tests::relative_paths ... ok test links::tests::resolves_relative_to_the_linking_note ... ok test links::tests::retarget_follows_the_title_and_keeps_custom_text ... ok test links::tests::retarget_from_a_subfolder ... ok test links::tests::retarget_matches_case_and_unicode_forms ... ok test links::tests::skips_code_images_and_the_web ... ok test links::tests::tilde_fence_does_not_close_on_trailing_text ... ok test links::tests::unclosed_fence_hides_links_through_eof ... ok test meta::tests::cursors_round_trip_and_reject_junk ... ok test meta::tests::snippets_skip_frontmatter_and_headings ... ok test missing::targets::tests::a_name_is_the_file_without_its_folder_and_extension ... ok test missing::targets::tests::names_rank_exact_then_prefix_then_word_then_inside ... ok test naming::tests::what_fits_and_what_to_try ... ok test props::tests::adds_removes_and_quotes_links ... ok test props::tests::already_typed_text_lists_keep_their_comments_and_quotes ... ok test props::tests::changes_only_the_touched_key ... ok test props::tests::list_items_are_written_as_text_too ... ok test props::tests::obsidian_written_yaml_reads ... ok test index::tests::directory_counts_match_full_scan_after_moves_and_reload ... ok test props::tests::outside_keys_win_whole_and_unrelated_pending_keys_survive ... ok test props::tests::quoting_round_trips_tricky_text ... ok test props::tests::reads_every_list_form ... ok test props::tests::refuses_what_it_cannot_read ... ok test props::tests::review_malformed_unrelated_property_blocks_writes ... ok test props::tests::review_property_case_override_is_honored ... ok test props::tests::review_text_yaml_types ... ok test props::tests::scalar_writes_preserve_types_in_both_directions ... ok test rename::tests::clash_numbers ... ok test rename::tests::daily_names ... ok test rename::tests::h1_is_set_or_added ... ok test capture_tests::kill9_at_every_capture_and_undo_journal_step ... ok test room::acks::tests::varuints_round_trip ... ok test room::actor::retry_tests::malformed_update_remains_a_permanent_refusal ... ok test room::actor::retry_tests::overdue_failed_saves_do_not_starve_room_requests ... ok test room::actor::retry_tests::retry_budget_failure_requests_rejoin_without_permanent_refusal ... ok test room::edit::tests::checks_bounds_overlap_and_surrogates ... ok test room::pipeline::memory_tests::actor_api_payload_remains_byte_bounded_when_deferred ... ok test room::pipeline::memory_tests::global_retry_bytes_refuse_before_mutation_and_release_after_commit ... ok test room::pipeline::memory_tests::parked_cross_writer_input_is_journaled_before_its_dependency_releases_it ... ok test room::pipeline::memory_tests::per_room_retry_bytes_apply_backpressure_before_another_update ... ok test room::pipeline::memory_tests::server_and_outside_updates_are_admitted_before_live_mutation ... ok test room::save::tests::concurrent_typists_and_saves_converge ... ok test room::save::tests::kill_nine_mid_save_recovers_title_and_bytes ... ok test room::save::tests::review::failed_history_outside_edit_cannot_be_acknowledged_before_recovery ... ok test room::save::tests::review::failed_history_server_edit_cannot_be_acknowledged_before_recovery ... ok test links::tests::code_block_spans_match_pulldown_on_random_markdown ... ok test room::save::tests::review::group_commit::a_parked_step_two_does_not_answer_save_checks ... ok test room::save::tests::review::group_commit::a_peer_joining_mid_retry_and_typing_is_saved_once_durable ... ok test room::save::tests::review::group_commit::a_retried_api_edit_sends_its_changed_event ... ok test room::save::tests::review::group_commit::an_incomplete_step_two_cannot_release_held_save_checks ... ok test room::save::tests::review::group_commit::edits_typed_during_a_write_commit_together ... ok test room::save::tests::review::group_commit::a_failed_write_is_never_overtaken ... ok test reviewer_759::continuous_acknowledged_edits_reach_home_within_one_second ... ok test room::save::tests::review::group_commit::lanes::doomed_lanes_do_not_roll_back_others ... ok test room::save::tests::review::group_commit::lanes::checks_after_each_edit_stay_bounded_per_connection ... ok test room::save::tests::review::group_commit::mixed_paths_keep_applied_order_through_retry ... ok test room::save::tests::review::group_commit::perf_save_checks_under_twenty_seconds ... ignored, outage-check latency budget runs on the perf VM via perf/ordinary-latency-vm.sh test room::save::tests::review::group_commit::save_checks_during_an_outage_stay_bounded ... ok test room::save::tests::review::group_commit::saved_arrives_after_storage_recovers_without_new_activity ... ok test room::save::tests::review::group_commit::two_notes_keep_their_own_order ... ok test props::tests::only_intended_keys_change ... ok test room::save::tests::review::history_durability::independent_652_failed_first_typed_edit_must_precede_second ... ok test room::save::tests::review::group_commit::lanes::mid_batch_failure_with_other_note_typing ... ok test room::save::tests::review::history_durability::independent_652_queued_api_requires_replay_after_kill9 ... ok test room::save::tests::review::history_durability::independent_652_queued_crash_child ... ok test room::save::tests::review::history_durability::independent_652_disk_full_mid_burst_then_recovery ... ok test room::save::tests::review::history_durability::independent_652_real_syncclient_joining_snapshot_is_not_saved ... ok test room::save::tests::review::history_durability::metadata_refresh_does_not_block_sync_behind_an_uncommitted_seed ... ok test room::save::tests::review::history_durability::perf_outage_checks_under_two_seconds ... ignored, outage-check latency budget runs on the perf VM via perf/ordinary-latency-vm.sh test room::save::tests::review::history_durability::retained_failed_edits_keep_the_file_and_list_cache_dirty ... ok test room::save::tests::review::review_acknowledged_save_child ... ok test room::save::tests::review::review_delete_set_before_insert_and_trailing_format_marks ... ok test room::save::tests::review::review_failed_save_retry_and_outside_retry_keep_base_cache ... ok test room::save::tests::review::history_durability::independent_652_real_syncclient_peers_and_restart_replay ... ok test room::save::tests::review::review_kill_nine_after_save_reply_preserves_exact_file_history_and_version ... ok test room::save::tests::review::history_durability::independent_652_outage_queue_and_save_checks ... ok test room::save::tests::review::slow_disk::slow_disk_long ... ignored, measurement for the perf VM, not a gate test room::save::tests::review::slow_disk::slow_disk_matrix ... ignored, measurement for the perf VM, not a gate test room::save::tests::save_kill_child ... ok test room::save::tests::review::review_title_precedence_edge_matrix ... ok test room::save::tests::title_sync_does_not_decode_the_saved_document ... ok test scan::tests::day_ids_name_their_files ... ok test scan::tests::state_round_trips_and_skips_odd_names ... ok test search::tests::a_note_becomes_a_document ... ok test search::tests::plain_search_lines_borrow_their_text ... ok test search::tests::search_lines_keep_link_text_and_replacement_order ... ok test search::tests::titles_fall_back_to_the_file_name ... ok test smartline::tests::a_plain_line ... ok test smartline::tests::only_tags_are_words ... ok test smartline::tests::trailing_tags_only ... ok test stamp::tests::formats_with_offset ... ok test storage_crash::kill9_after_ack_during_split_hdd_save_recovers_exact_text ... ok test storage_crash::storage_child ... ok test tags::front::tests::every_way_of_writing_tags ... ok test tags::merge::tests::property_tags_go_with_their_comma_or_line ... ok test tags::merge::tests::text_tags_go_with_one_space ... ok test tags::rewrite::tests::merging_keeps_every_tag_once_at_most ... ok test tags::rewrite::tests::nothing_to_do_is_no_edits ... ok test tags::rewrite::tests::only_real_tags_change ... ok test tags::rewrite::tests::positions_count_utf16 ... ok test tags::rewrite::tests::properties_change_name_only ... ok test tags::rewrite::tests::rename_and_back_is_the_same_text ... ok test tags::rewrite::tests::renames_tags_and_nested_tags_only ... ok test tags::rewrite::tests::renaming_onto_an_existing_tag_merges ... ok test tags::rewrite::tests::words_code_links_and_headings ... ok test tags::scan::tests::code_is_never_tags ... ok test tags::scan::tests::hash_free_lines_still_open_and_close_code_fences ... ok test tags::scan::tests::headings_and_quotes_keep_their_tags ... ok test tags::scan::tests::link_targets_and_addresses_are_never_tags ... ok test tags::scan::tests::not_tags ... ok test tags::scan::tests::plain_tags ... ok test tags::tests::nesting_and_cleaning ... ok test tags::tests::properties_and_text ... ok test tests::acks::an_older_lineage_is_refused_before_anything_is_sent ... ok test tests::acks::checks_advance_in_order_and_cover_every_earlier_edit ... ok test tests::acks::lineage_survives_a_restart ... ok test tests::acks::saved_means_the_change_is_in_history ... ok test tests::anchors::an_anchor_follows_its_block_when_lines_shift ... ok test tests::anchors::an_edited_block_is_refused_never_the_wrong_one ... ok test tests::anchors::anchors_need_a_hash_and_block_ids_work ... ok test tests::anchors::history_folds_typing_and_names_jobs ... ok test tests::anchors::shifting_lines_never_move_the_wrong_block ... ok test tests::appends::an_append_to_a_long_note_stays_small ... ok test room::save::tests::saved_bytes_and_titles_match_the_old_copy_path ... ok test tests::appends::appends_built_directly_match_the_copy_byte_for_byte ... ok test tests::appends_review::delete_whole_tail_then_append_matches ... ok test tests::appends_review::frontmatter_map_write_falls_back ... ok test tests::appends::typists_and_appends_interleave_on_one_note ... ok test tests::appends_review::trailing_format_marker_bytes ... ok test tests::delta_review::deleting_preserves_an_occupied_trash_destination ... ok test tests::delta_review::delta_independent_same_id_create_retries_joined_must_not_panic ... ok test tests::appends_review::fuzz_deletes_restarts_parked ... ok test tests::delta_review::placement_review_bulk_create_cannot_adopt_an_outside_file ... ok test tests::delta_review::placement_review_bulk_create_retry_keeps_original_version_for_undo ... ok test tests::delta_review::placement_review_planned_rename_conflict_keeps_links_unchanged ... ok test tests::delta_review::placement_review_rename_retargets_links_to_the_actual_suffix ... ok test tests::delta_review::placement_review_undo_rename_conflict_keeps_links_at_the_live_note ... ok test tests::delta_review::rename_uses_a_suffix_for_an_unindexed_destination ... ok test tests::delta_review::same_id_sibling_creates_with_different_text_conflict ... ok test tests::event_visibility::a_failed_list_commit_cannot_announce_a_pin ... ok test tests::event_visibility::a_scan_cannot_replace_an_announced_live_pin_with_the_old_file ... ok test tests::event_visibility::create ... ok test tests::delta_review::delta_permanent_deletion_history_failure_must_terminate_scan ... ok test tests::event_visibility::create_text ... ok test tests::event_visibility::delete ... ok test tests::event_visibility::edit ... ok test tests::event_visibility::edit_title ... ok test tests::event_visibility::edit_title_property ... ok test tests::event_visibility::move_note ... ok test tests::event_visibility::failed_delete_then_restore_announces_the_current_state ... ok test tests::event_visibility::outside_create ... ok test room::save::tests::review::review_fuzz_old_new_bytes_history_versions_and_restarts ... ok test tests::event_visibility::outside_delete ... ok test tests::event_visibility::outside_edit ... ok test tests::event_visibility::outside_edit_closed ... ok test tests::event_visibility::outside_rename ... ok test tests::event_visibility::regression_backup_discovery_cannot_reuse_a_forgotten_id ... ok test tests::event_visibility::regression_create_retry_after_restart_uses_file_without_intent ... ok test tests::event_visibility::regression_create_retry_conflicts_with_different_file_text ... ok test tests::event_visibility::regression_create_retry_normalizes_server_keys_consistently ... ok test tests::event_visibility::regression_create_retry_with_crlf_and_bom_keeps_bytes ... ok test tests::event_visibility::outside_rename_closed ... ok test tests::event_visibility::regression_create_with_text_writes_only_managed_frontmatter ... ok test tests::event_visibility::regression_delayed_depart_cannot_clear_gone ... ok test tests::event_visibility::regression_create_with_text_still_renames_after_its_h1 ... ok test tests::event_visibility::regression_failed_create_cannot_resurrect_forgotten_id ... ok test tests::event_visibility::regression_failed_initial_file_write_can_retry ... ok test tests::event_visibility::regression_failed_save_hint_still_schedules_title_rename ... ok test tests::event_visibility::regression_failed_unsaved_edit_restart_reconciles_from_journal ... ok test tests::event_visibility::regression_forgotten_id_stays_gone_after_path_reuse_and_restart ... ok test tests::event_visibility::regression_initial_file_precedes_visible_identity ... ok test tests::event_visibility::regression_kill_after_outside_commit_repairs_list_on_start ... ok test tests::event_visibility::pin ... ok test tests::event_visibility::regression_outside_commit_child ... ok test tests::event_visibility::regression_purge_commits_path_state_before_unlink_or_event ... ok test tests::event_visibility::rename ... ok test tests::event_visibility::rename_public_retry ... ok test tests::event_visibility::rename_retry ... ok test tests::event_visibility::restore ... ok test tests::event_visibility::restore_retry_repairs_a_missing_list_row_for_an_open_room ... ok test tests::event_visibility::review_create_retry_preserves_initial_text_explicit_id ... ok test tests::event_visibility::review_create_retry_preserves_initial_text_key_id ... ok test tests::event_visibility::review_create_retry_without_key_preserves_initial_text_once ... ok test tests::event_visibility::review_discovery_publication_retries_after_metadata_failure ... ok test tests::event_visibility::regression_delete_failure_then_forget_keeps_gone ... ok test tests::event_visibility::review_load_event_recovers_after_meta_failure ... ok test tests::event_visibility::review_restore_event_recovers_after_meta_failure ... ok test tests::event_visibility::review_restore_publication_survives_home_restart ... ok test tests::event_visibility::round4_create_retry_does_not_wait_for_scan_under_lifecycle ... ok test tests::event_visibility::round4_daily_create_retry_does_not_reenter_lifecycle ... ok test tests::event_visibility::regression_one_reconcile_path_after_failed_edit ... ok test tests::event_visibility::round4_startup_retries_failed_list_stamp_read ... ok test tests::event_visibility::round4_startup_retries_journal_discovery_before_file_rows ... ok test tests::event_visibility::save ... ok test tests::event_visibility::save_background_retry ... ok test tests::event_visibility::round4_unreadable_note_does_not_block_healthy_repair_or_ack ... ok test tests::event_visibility::save_retry ... ok test tests::event_visibility::saved_list_fields_keep_file_date_fallback_current ... ok test tests::event_visibility::saved_list_fields_rebuild_after_eviction_and_follow_later_edits ... ok test tests::event_visibility::saved_rows_keep_file_stamps_for_warm_scans ... ok test tests::event_visibility::saved_stamp_describes_our_write_before_a_later_outside_write ... ok test tests::event_visibility::startup_scan_events_are_listed_before_the_scan_finishes ... ok test room::save::tests::review::group_commit::lanes::a_failing_note_does_not_starve_another_typist ... ok test tests::event_visibility::unread_external_bytes_do_not_get_a_clean_stamp ... ok test tests::fanout::a_crash_before_the_seed_is_durable_never_doubles_text ... ok test tests::fanout::a_crash_between_fan_out_and_disk_loses_nothing ... ok test tests::event_visibility::unpin ... ok test tests::fanout::a_first_open_does_not_wait_for_the_disk ... ok test tests::fanout::a_version_always_matches_its_text ... ok test tests::fanout::bursts_converge_and_reach_history ... ok test tests::fresh::a_note_made_with_text_opens_with_its_frontmatter ... ok test tests::held::a_held_note_answers_before_its_file_and_writes_it_after ... ok test tests::held::a_lost_identity_whose_path_was_taken_uses_the_plugins_naming_order ... ok test tests::held::a_synced_first_file_with_a_lost_index_keeps_its_original_path ... ok test tests::held::history_without_identity_comes_back_on_the_next_start ... ok test tests::held::identity_without_history_is_dropped_on_the_next_start ... ok test tests::kill9::child ... ok test tests::kill9::delete_killed_after_its_answer_finishes_once ... ok test tests::fanout::collaborators_see_typing_before_the_disk ... ok test tests::kill9::permanent_delete_after_restore_cannot_delete_the_live_note ... ok test tests::kill9::quick_delete_restore_survives_kill ... ok test tests::kill9::restore_delete_forget_does_not_resurrect_after_kill ... ok test tests::kill9::quick_restore_delete_survives_kill ... ok test tests::kill9::restore_killed_after_its_answer_finishes_once ... ok test tests::listing::a_common_tag_pages_the_same_in_every_order ... ok test tests::listing::filters_by_tag_kind_and_created_range ... ok test tests::listing::pages_cover_every_note_once_in_a_stable_order ... ok test tests::listing::pinning_shows_in_the_list_and_unpinning_leaves_no_trace ... ok test tests::listing::private_home_images_are_not_listed_or_opened_as_notes ... ok test tests::listing::the_first_page_never_waits_for_the_home_to_open ... ok test tests::listing::the_kept_count_follows_adds_and_deletes ... ok test tests::listing::the_list_stays_live_with_new_notes_saves_and_outside_edits ... ok test tests::missing::a_move_outside_is_found_and_relink_repoints_the_links ... ok test tests::missing::a_path_tells_here_trash_and_gone ... ok test tests::missing::a_rename_in_the_app_leaves_the_old_path_moved ... ok test tests::missing::make_from_link_makes_the_note_where_the_link_points_and_undo_takes_it_back ... ok test tests::missing::never_made_targets_are_offered_with_their_capitals_and_link_counts ... ok test tests::missing::never_written_paths_are_new_and_bad_ones_too ... ok test tests::missing::notes_in_the_trash_from_before_are_found ... ok test tests::missing::restored_with_a_new_name_reads_as_moved ... ok test tests::opening::a_cold_fill_ends_with_every_index_and_right_answers ... ok test tests::opening::a_cold_home_indexes_every_file_once_with_its_own_id ... ok test tests::opening::a_note_never_typed_in_is_still_forgotten_on_restart ... ok test tests::opening::a_warm_open_announces_only_what_changed_while_closed ... ok test tests::opening::asking_mid_scan_never_says_not_found_and_never_duplicates_a_day ... ok test tests::opening::identifying_an_already_indexed_file_never_makes_it_a_copy ... ok test tests::opening::shutting_down_leaves_the_list_log_empty ... ok test tests::event_visibility::round4_recorder_outage_bounds_deleted_ids_and_drains_overflow ... ok test tests::opening::upgrading_without_a_saved_scan_announces_nothing_for_known_notes ... ok test tests::outside::copied_note_gets_a_fresh_id ... ok test tests::outside::edit_while_closed_is_merged_on_open ... ok test tests::outside::missed_watcher_event_is_caught_before_saving ... ok test tests::outside::outside_create_and_delete ... ok test tests::outside::outside_edit_while_typing_merges ... ok test tests::outside::outside_rename_keeps_the_id ... ok test tests::listing::an_idle_home_with_one_thousand_notes_does_not_reconcile ... ok test tests::outside::own_saves_are_not_outside_edits ... ok test tests::peek::an_open_room_answers_with_its_live_text ... ok test tests::peek::reads_files_without_opening_rooms ... ok test tests::peek::returns_at_most_fifty ... ok test tests::pending::apply_places_changes_in_any_order ... ok test tests::pending::changes_out_of_order_all_arrive_and_saved_is_true ... ok test tests::pending::yrs_alone_loses_a_parked_change ... ok test tests::opening::typing_saved_only_in_history_survives_a_restart_before_the_first_save ... ok test tests::renames::a_format_note_is_never_renamed_after_its_title ... ok test tests::renames::a_taken_name_gets_a_number_and_daily_notes_keep_theirs ... ok test tests::renames::a_title_ending_in_a_number_does_not_schedule_a_rename ... ok test tests::outside::polling_finds_outside_changes ... ok test tests::renames::backlinks_list_linked_and_unlinked_mentions ... ok test tests::renames::cancelled_prepared_import_drops_its_private_image_and_replays_the_plan ... ok test tests::renames::delta2_rename_collision_must_not_apply_dependent_title_edit ... ok test tests::renames::make_note_moves_the_block_and_undoes_as_one_step ... ok test tests::renames::move_block_to_another_note_and_back ... ok test tests::renames::rename_killed_after_placement_before_index_recovers_and_undoes ... ok test tests::renames::rename_killed_after_title_before_progress_recovers_and_undoes ... ok test tests::renames::rename_killed_between_move_and_title_recovers_and_undoes ... ok test tests::renames::rename_moves_the_file_and_repoints_every_link ... ok test tests::renames::rename_recovery_child ... ok test tests::renames::backlinks_follow_edits_and_deletes ... ok test tests::renames::saving_a_title_ending_in_a_number_does_not_schedule_a_rename ... ok test tests::renames::typing_in_a_linking_note_during_a_rename_is_kept ... ok test tests::renames::undo_keeps_a_made_note_someone_typed_in ... ok test tests::rooms::fresh_note_opened_by_many_at_once_is_not_doubled ... ok test tests::rooms::late_joiner_gets_full_state ... ok test tests::rooms::patches_use_utf16_positions ... ok test tests::renames::typing_a_new_title_renames_the_file_after_a_pause ... ok test tests::rooms::retried_change_applies_once ... ok test tests::rooms::retried_create_makes_one_note ... ok test tests::rooms::stale_replace_keeps_newer_typing ... ok test tests::rooms::typing_survives_a_concurrent_delete ... ok test tests::round4_review::create_reports_conflict_when_an_outside_file_arrives_before_placement ... ok test tests::round4_review::independent_creates_joined_in_one_task_do_not_reenter ... ok test tests::round4_review::scan_propagates_deletion_history_failure_after_reacquiring_lifecycle ... ok test tests::round4_review::scan_propagates_deletion_history_read_failure_and_retries ... ok test tests::rooms::random_concurrent_editing_converges_without_duplicates ... ok test tests::saving::a_write_error_keeps_the_change ... ok test tests::round4_review::startup_keeps_unknown_notes_incomplete_until_deletion_history_retry ... ok test tests::saving::an_error_after_the_write_does_not_double_text ... ok test tests::saving::crash_after_write_does_not_double_text ... ok test tests::saving::failed_save_keeps_the_change ... ok test tests::saving::crash_before_write_loses_nothing ... ok test tests::saving::line_endings_and_bom_are_kept ... ok test tests::saving::first_keystroke_creates_the_file ... ok test tests::saving::opening_never_writes ... ok test tests::saving::properties_continue_during_file_io ... ok test tests::saving::saving_does_not_loop ... ok test tests::saving::title_and_h1_stay_in_step ... ok test tests::saving::typing_and_history_continue_during_file_io ... ok test tests::saving::nonstop_typing_still_saves ... ok test tests::shutdown::a_create_that_outlives_shutdown_writes_nothing ... ok test tests::shutdown::a_shutdown_wait_made_after_shutdown_ends_at_once ... ok test tests::renames::a_crash_mid_rename_resumes_and_applies_each_edit_once ... ok test tests::shutdown::no_background_work_starts_after_shutdown ... ok test tests::shutdown::healthy_shutdown_settles_pending_typing_before_saving ... ok test tests::shutdown::scan_waiters_stay_released_once_shutdown_releases_them ... ok test tests::shutdown::nothing_opens_or_writes_on_a_home_after_shutdown ... ok test tests::shutdown::settlement::shutdown_settlement_late_disk_recovery_requires_replay ... ok test tests::shutdown::settlement::shutdown_settlement_failed_promotion_preserves_written_snapshot ... ok test tests::shutdown::a_create_running_at_shutdown_finishes_before_shutdown_returns ... ok test tests::shutdown::shutdown_cancels_a_reconciler_waiting_for_startup_scan ... ok test tests::shutdown::shutdown_closes_the_home_history_writer_before_returning ... ok test tests::shutdown::shutdown_finishes_when_history_writes_keep_failing ... ok test tests::shutdown::settlement::shutdown_settlement_live_file_io_failure_joins_writer ... ok test tests::shutdown::shutdown_many_full_history_rooms_12 ... ok test tests::storm::outside_rewrites_during_a_storm_all_land ... ok test tests::event_visibility::save_outside_retry ... ok test tests::tags::a_big_tag_rename_allows_typing_while_a_batch_is_held ... ok test tests::tags::bad_names_are_refused ... ok test tests::tags::perf_big_tag_rename_keystrokes_under_one_second ... ignored, tag-rename typing latency runs on the perf VM via perf/ordinary-latency-vm.sh test tests::tags::renames_every_tag_and_undoes_as_one_step ... ok test tests::tags::typing_during_a_tag_rename_is_kept ... ok test tests::trash::a_closed_note_is_trashed_without_opening_it ... ok test tests::shutdown::shutdown_many_full_history_rooms_100 ... ok test tests::trash::a_file_deleted_outside_goes_to_the_trash ... ok test tests::trash::a_never_typed_note_is_simply_forgotten ... ok test tests::trash::a_note_deleted_before_its_first_save_keeps_its_text ... ok test tests::trash::cached_restore_names_see_unindexed_case_and_unicode_collisions ... ok test tests::trash::delete_and_restore_answer_once_per_job_id ... ok test tests::trash::delete_moves_to_trash_and_undo_brings_it_back ... ok test tests::trash::delete_replay_with_a_stale_index_keeps_the_only_file ... ok test tests::trash::delete_waits_for_imported_incoming_links_before_remembering_their_identity ... ok test tests::trash::folder_rename_and_outside_move_bursts_keep_every_descendant ... ok test tests::trash::forget_deletes_file_and_history_forever ... ok test tests::trash::half_written_trash_folders_never_hide_a_live_note ... ok test tests::trash::outside_copy_finishes_a_metadata_only_interruption ... ok test tests::trash::restore_durably_indexes_a_note_without_an_embedded_id ... ok test tests::trash::restore_keeps_id_and_history_and_takes_a_free_name ... ok test tests::trash::restore_with_a_stale_index_really_moves_the_file_back ... ok test tests::trash::the_sweep_empties_only_notes_older_than_thirty_days ... ok test tests::trash::trash_ids_never_reach_another_home ... ok test tests::trash::trash_pages_newest_first ... ok test tests::trash::trashed_notes_leave_search_lists_and_backlinks_and_come_back ... ok test tests::trash::a_crash_mid_delete_finishes_on_restart_exactly_once ... ok test tests::undo_guard::adding_an_attachment_keeps_the_note_and_attachment_when_creation_is_undone ... ok test tests::tags::a_crash_mid_rename_resumes_and_renames_each_tag_once ... ok test tests::undo_guard::crash_recovery_retains_a_descriptor_open_before_pending_undo_save ... ok test tests::undo_guard::descriptor_open_before_daily_splice_survives_the_entire_undo ... ok test tests::undo_guard::open_descriptor_after_undo_move_is_restorable ... ok test tests::undo_guard::outside_daily_edit_after_final_undo_check_is_kept ... ok test tests::undo_guard::ordinary_creation_keeps_later_job_history_when_its_text_was_undone ... ok test tests::undo_guard::undo_keeps_prose_in_a_daily_placeholder_before_capture ... ok test tests::unloading::a_connected_client_keeps_it ... ok test tests::unloading::an_open_note_keeps_it ... ok test tests::unloading::an_unused_home_unloads_and_answers_after ... ok test tests::writers::every_writer_at_once_loses_and_doubles_nothing ... ok test tests::writers::every_writer_at_once_with_the_watcher ... ok test text::tests::mixed_endings_take_the_majority ... ok test text::tests::styles_round_trip ... ok test text::tests::uniform_files_round_trip_exactly ... ok test trash::tests::a_note_without_details_still_reads ... ok test trash::tests::candidates_include_notes_and_orphan_details_with_a_bounded_scan ... ok test trash::tests::details_without_a_note_are_not_a_note ... ok test trash::tests::missing_details_never_age_trash_from_the_notes_old_mtime ... ok test trash::tests::outside_copy_has_its_details_when_the_file_first_becomes_readable ... ok test versions::tests::folds_runs_by_author_kind_and_gap ... ok test watch::native_tests::bulk_files_only_notify_the_watcher_when_the_whole_note_is_placed ... ok test watch::native_tests::native_watch_ignores_reads_but_keeps_every_kind_of_outside_change ... ok test watch::private_directory_tests::private_home_images_do_not_wake_the_native_note_watcher ... ok test watch::private_directory_tests::private_images_never_enter_the_note_scan_or_event_paths ... ok test ydoc::seed_tests::initial_seed_matches_yrs_and_accepts_later_utf16_edits ... ok test ydoc::tests::fork_and_merge_keeps_concurrent_typing ... ok test ydoc::tests::reapplying_an_update_changes_nothing ... ok test ydoc::tests::utf16_offsets ... ok test tests::undo_guard::acknowledged_edits_survive_random_job_undo ... ok test tests::undo_guard::whole_note_undo_never_loses_acknowledged_changes ... ok test tests::shutdown::settlement::shutdown_settlement_state_machine ... ok test result: ok. 453 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 39.36s Running unittests src/main.rs (target/debug/deps/calternal_perf-cf29767b213fba41) running 7 tests test args::tests::parses_trash_only_mode ... ok test scenarios::soak::tests::slope_of_a_line ... ok test scenarios::storm::tests::typing_stops_before_the_newline_ahead_of_outside_lines ... ok test live::tests::frames_round_trip_and_keystrokes_stay_whole ... ok test stats::tests::medians_of_runs_and_pooled_singles ... ok test scenarios::trash::tests::permanent_deletion_never_removes_a_later_runs_live_note ... ok test stats::tests::summary_max_is_the_largest_observed_sample_across_runs ... ok test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/bin/storage-bench.rs (target/debug/deps/storage_bench-39bf3a5688ca4a08) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/bin/tasks-bench.rs (target/debug/deps/tasks_bench-359b526adcee5ad4) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/bin/tasks-create-bench.rs (target/debug/deps/tasks_create_bench-b7d5b14daf0e14cd) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/calternal_plugin_hello-7b095be94893acb6) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/calternal_prefs-117cfa2ade4f2377) running 9 tests test tests::a_retry_with_the_same_key_acts_once ... ok test tests::keys_are_an_area_then_dotted_parts ... ok test tests::a_change_on_one_device_reaches_the_other ... ok test tests::people_do_not_share_preferences ... ok test tests::bad_keys_and_big_values_get_friendly_errors ... ok test tests::saving_the_same_value_again_is_quiet ... ok test tests::set_then_get_and_survive_a_restart ... ok test tests::quick_saves_from_two_devices_all_land ... ok test tests::at_most_200_keys_but_existing_ones_can_still_change ... ok test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s Running unittests src/lib.rs (target/debug/deps/calternal_search-21b0741e90ae9948) running 13 tests test query::tests::lone_symbols_are_ignored ... ok test fuzzy::tests::common_typos_are_fixed ... ok test query::tests::words_filters_and_phrases ... ok test query::tests::dates_cover_whole_periods ... ok test fuzzy::tests::distance_counts_swaps_as_one ... ok test read::tests::block_ids_are_found ... ok test read::tests::renumbering_shifts_placeholders ... ok test read::tests::text_matches_like_the_index ... ok test read::tests::excerpts_mark_matches_in_context ... ok test text::tests::bigrams_cover_unspaced_scripts ... ok test text::tests::fold_drops_accents_and_case ... ok test text::tests::words_keep_indic_vowel_signs ... ok test schema::tests::an_older_index_gets_its_titles_filled ... ok test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/search.rs (target/debug/deps/search-2055b976b861134d) running 13 tests test an_empty_search_shows_recent_things ... ok test every_script_is_searchable ... ok test behind_answers_at_once_and_catching_up_is_announced_once ... ok test filters_by_tag_kind_and_date ... ok test perf_search_answer_under_five_hundred_ms ... ignored, first-search latency budget runs on the perf VM via perf/ordinary-latency-vm.sh test odd_input_never_breaks_search ... ok test a_restart_heals_whatever_was_missed ... ok test searches_answer_while_indexing_runs ... ok test results_show_why_they_matched_and_where ... ok test prefixes_and_typos_are_forgiven ... ok test people_only_ever_find_their_own_things ... ok test titles_first_then_recent_use_then_body ... ok test the_index_follows_changes_live ... ok test result: ok. 12 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.59s Running unittests src/lib.rs (target/debug/deps/calternal_server-a26729874196f066) running 12 tests test live::tests::room_join_metadata_has_explicit_byte_bounds ... ok test rooms::tests::assembly_is_bounded_per_connection_and_globally_and_expiry_releases_it ... ok test rooms::tests::a_message_in_numbered_pieces_arrives_whole ... ok test rooms::tests::backpressure_refuses_the_room_before_later_checks ... ok test rooms::tests::duplicated_missing_and_inconsistent_chunks_never_deliver ... ok test rooms::tests::frames_round_trip ... ok test rooms::tests::malformed_chunk_headers_never_allow_later_checks ... ok test rooms::tests::old_membership_packets_and_results_cannot_reach_a_rejoined_room ... ok test rooms::tests::wire_nonces_reject_old_frames_joins_and_leaves_without_tombstones ... ok test rooms::tests::pending_and_joined_memberships_share_one_connection_count_bound ... ok test compress::tests::big_answers_are_compressed_and_small_ones_are_not ... ok test rooms::tests::exact_size_limit_is_delivered_but_a_larger_declaration_is_refused ... ok test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s Running tests/access.rs (target/debug/deps/access-359916e1d1280f18) running 1 test test one_line_per_request_with_no_secrets ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/live.rs (target/debug/deps/live-75f7d8ef64dcc88d) running 6 tests test health_answers_without_signing_in ... ok test a_stranger_token_asks_for_a_refresh ... ok test errors_carry_codes_not_internals ... ok test signed_out_calls_get_a_friendly_refusal ... ok test reconnecting_catches_up_from_a_token ... ok test http_to_journal_to_websocket ... ok test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s Running tests/signout.rs (target/debug/deps/signout-5cf453c3564bbc0f) running 1 test test signing_a_device_out_closes_its_live_socket ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s Running tests/web.rs (target/debug/deps/web-4886fcbcb6a5f32c) running 3 tests test precompressed_files_are_sent_as_they_are_to_whoever_accepts_them ... ok test files_deep_links_and_the_api_live_side_by_side ... ok test caching_and_security_headers_follow_what_each_file_is ... ok test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running unittests src/lib.rs (target/debug/deps/calternal_store-aaaa4d1f9c2a9af7) running 8 tests test tests::a_store_with_a_listener_or_a_copy_is_in_use ... ok test tests::idempotency_is_saved_with_the_events_or_not_at_all ... ok test tests::commits_are_read_back_in_order ... ok test tests::live_entries_arrive_in_journal_order ... ok test tests::tokens_survive_a_restart_and_reject_strangers ... ok test tests::reads_are_capped ... ok test tests::old_idempotency_records_are_swept_after_commits ... ok test tests::old_idempotency_records_are_swept_when_the_store_opens ... ok test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.33s Running unittests src/lib.rs (target/debug/deps/calternal_tasks-ebac627bcdf7cc2c) running 41 tests test create_tests::concurrent_creates_name_clash_and_new_daily_undo ... ok test create_tests::create_ack_can_be_undone_immediately_and_reuses_daily_placeholder ... ok test create_tests::daily_uses_device_offset_and_invalid_slots_write_nothing ... ok test create_tests::create_and_undo_restore_daily_bytes_and_remove_task ... ok test create_tests::only_links_are_reduced_in_the_note_title ... ok test create_tests::description_heading_keeps_the_given_task_title ... ok test create_tests::opening_today_then_creating_tasks_scopes_keys_and_retries ... ok test create_tests::create_isolation_and_idempotent_retry ... ok test found::tests::checkbox_forms ... ok test found::tests::child_task_link_keeps_parent_people_and_block ... ok test found::tests::days_and_times ... ok test found::tests::every_unrecognised_status_reads_as_open_without_changing_the_source ... ok test found::tests::finds_checkboxes_everywhere_but_code_and_frontmatter ... ok test found::tests::first_link_on_the_line_is_the_target ... ok test found::tests::lenient_reading ... ok test found::tests::linked_tasks_after_fences_keep_their_targets ... ok test create_tests::undo_new_daily_capture_keeps_later_prose_and_removes_its_lines ... ok test found::tests::reads_a_task_note ... ok test found::tests::review_code_and_html_are_not_checkboxes ... ok test found::tests::several_child_links_do_not_choose_a_task_by_order ... ok test found::tests::markdown_links_and_task_items_share_commonmark_boundaries ... ok test tests::crash_child ... ok test create_tests::repeated_create_undo_recreates_daily_with_retained_history ... ok test tests::lists_groups_and_counts ... ok test create_tests::create_and_undo_one_mb_daily ... ok test tests::outside_edits_reach_the_lists ... ok test tests::rebuild_gives_the_same_rows ... ok test tests::order::sql_and_rust_sort_the_same ... ok test tests::review_broken_frontmatter_refuses_update ... ok test tests::review_long_code_fence_hides_checkboxes ... ok test tests::review_outside_edit_during_pending_task_write ... ok test tests::review_upcoming_with_past_and_future_dates ... ok test tests::task_notes_are_hidden_only_from_notes_lists_and_unknown_status_is_kept ... ok test tests::unreadable_frontmatter_is_shown_but_never_changed ... ok test tests::a_cold_fill_gives_the_same_rows_as_the_usual_way ... ok test tests::untracked_is_open_checkboxes_that_are_not_tasks ... ok test update::tests::checks_values ... ok test update::tests::null_and_missing_differ ... ok test tests::update_changes_only_its_keys_and_lists_follow_at_once ... ok test tests::review_live_list_has_consistent_rows_and_counts ... ok test tests::kill_9_during_field_writes_loses_nothing_acknowledged ... ok test result: ok. 41 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.41s Running unittests src/lib.rs (target/debug/deps/calternal_testkit-0f72e1749ceda3ae) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_attachments running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_auth running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_backdrops running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_contacts running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_contacts_actions running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_core running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_daily running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_engine running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_fixtures running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_fsio running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_memory running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_migrate_v0 running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_notes running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_plugin_hello running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_prefs running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_search running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_server running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_store running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_tasks running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests calternal_testkit running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s ``` </details> <details><summary>cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 1/20) — exit 0</summary> ```text Compiling calternal-fsio v0.1.0 (/home/agent/wt/bm2-crash/crates/fsio) Compiling calternal-server v0.1.0 (/home/agent/wt/bm2-crash/crates/server) Compiling calternal-notes v0.1.0 (/home/agent/wt/bm2-crash/crates/notes) Compiling calternal-migrate-v0 v0.1.0 (/home/agent/wt/bm2-crash/crates/migrate-v0) Compiling calternal-search v0.1.0 (/home/agent/wt/bm2-crash/crates/search) Compiling calternal-backdrops v0.1.0 (/home/agent/wt/bm2-crash/crates/backdrops) Compiling calternal-auth v0.1.0 (/home/agent/wt/bm2-crash/crates/auth) Compiling calternal-attachments v0.1.0 (/home/agent/wt/bm2-crash/crates/attachments) Compiling calternal-prefs v0.1.0 (/home/agent/wt/bm2-crash/crates/prefs) Compiling calternal-tasks v0.1.0 (/home/agent/wt/bm2-crash/crates/tasks) Compiling calternal-daily v0.1.0 (/home/agent/wt/bm2-crash/crates/daily) Compiling calternal-contacts-actions v0.1.0 (/home/agent/wt/bm2-crash/crates/contacts-actions) Compiling calternal v0.1.0 (/home/agent/wt/bm2-crash/crates/calternal) Finished `test` profile [unoptimized + debuginfo] target(s) in 6.75s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c) running 1 test test kill_nine_mid_upload_leaves_nothing_half_written ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.27s ``` </details> <details><summary>cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 2/20) — exit 0</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c) running 1 test test kill_nine_mid_upload_leaves_nothing_half_written ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.27s ``` </details> <details><summary>cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 3/20) — exit 0</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c) running 1 test test kill_nine_mid_upload_leaves_nothing_half_written ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.26s ``` </details> <details><summary>cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 4/20) — exit 0</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c) running 1 test test kill_nine_mid_upload_leaves_nothing_half_written ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.24s ``` </details> <details><summary>cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 5/20) — exit 0</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c) running 1 test test kill_nine_mid_upload_leaves_nothing_half_written ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.28s ``` </details> <details><summary>cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 6/20) — exit 0</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c) running 1 test test kill_nine_mid_upload_leaves_nothing_half_written ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.25s ``` </details> <details><summary>cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 7/20) — exit 0</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c) running 1 test test kill_nine_mid_upload_leaves_nothing_half_written ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.24s ``` </details> <details><summary>cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 8/20) — exit 0</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c) running 1 test test kill_nine_mid_upload_leaves_nothing_half_written ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.26s ``` </details> <details><summary>cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 9/20) — exit 0</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c) running 1 test test kill_nine_mid_upload_leaves_nothing_half_written ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.28s ``` </details> <details><summary>cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 10/20) — exit 0</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c) running 1 test test kill_nine_mid_upload_leaves_nothing_half_written ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.23s ``` </details> <details><summary>cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 11/20) — exit 0</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c) running 1 test test kill_nine_mid_upload_leaves_nothing_half_written ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.27s ``` </details> <details><summary>cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 12/20) — exit 0</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c) running 1 test test kill_nine_mid_upload_leaves_nothing_half_written ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.27s ``` </details> <details><summary>cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 13/20) — exit 0</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c) running 1 test test kill_nine_mid_upload_leaves_nothing_half_written ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.26s ``` </details> <details><summary>cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 14/20) — exit 0</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c) running 1 test test kill_nine_mid_upload_leaves_nothing_half_written ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.27s ``` </details> <details><summary>cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 15/20) — exit 0</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c) running 1 test test kill_nine_mid_upload_leaves_nothing_half_written ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.28s ``` </details> <details><summary>cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 16/20) — exit 0</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c) running 1 test test kill_nine_mid_upload_leaves_nothing_half_written ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.28s ``` </details> <details><summary>cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 17/20) — exit 0</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c) running 1 test test kill_nine_mid_upload_leaves_nothing_half_written ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.27s ``` </details> <details><summary>cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 18/20) — exit 0</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c) running 1 test test kill_nine_mid_upload_leaves_nothing_half_written ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.23s ``` </details> <details><summary>cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 19/20) — exit 0</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c) running 1 test test kill_nine_mid_upload_leaves_nothing_half_written ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.25s ``` </details> <details><summary>cargo test -p calternal --test attachments_crash kill_nine_mid_upload_leaves_nothing_half_written -- --exact (repeat 20/20) — exit 0</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c) running 1 test test kill_nine_mid_upload_leaves_nothing_half_written ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.26s ``` </details> ## Initial failure, negative controls and throughput evidence These are diagnostic outputs, not final gate failures. The first parallel gate failure was fixed by the explicit prepared-directory unlock, and the whole final gate sequence was rerun. <details><summary>attachments-fsio-initial — verbatim diagnostic output</summary> ```text Compiling syn v3.0.9 Compiling smallvec v1.16.3 Compiling serde_core v1.0.229 Compiling parking_lot_core v0.9.12 Compiling parking_lot v0.12.5 Compiling mio v1.2.4 Compiling tokio-macros v2.7.2 Compiling log v0.4.34 Compiling tracing v0.1.44 Compiling serde v1.0.229 Compiling typenum v1.20.1 Compiling tokio v1.53.2 Compiling zerocopy v0.8.62 Compiling generic-array v0.14.7 Compiling serde_derive v1.0.229 Compiling thiserror-impl v2.0.21 Compiling uuid v1.28.0 Compiling serde_json v1.0.154 Compiling thiserror v2.0.21 Compiling ppv-lite86 v0.2.21 Compiling block-buffer v0.10.4 Compiling crypto-common v0.1.7 Compiling futures-macro v0.3.34 Compiling ref-cast-impl v1.0.27 Compiling serde_derive_internals v0.30.0 Compiling futures-util v0.3.34 Compiling schemars_derive v1.2.3 Compiling ref-cast v1.0.27 Compiling digest v0.10.7 Compiling rand_chacha v0.9.0 Compiling rand v0.9.5 Compiling sha1 v0.10.7 Compiling rusqlite v0.40.2 Compiling tungstenite v0.29.0 Compiling hyper v1.12.0 Compiling serde_urlencoded v0.7.1 Compiling hyper-util v0.1.21 Compiling schemars v1.2.3 Compiling async-compression v0.4.50 Compiling tokio-tungstenite v0.29.0 Compiling axum-core v0.5.6 Compiling tower v0.5.3 Compiling calternal-fsio v0.1.0 (/home/agent/wt/bm2-crash/crates/fsio) Compiling calternal-core v0.1.0 (/home/agent/wt/bm2-crash/crates/core) Compiling tokio-util v0.7.20 Compiling calternal-store v0.1.0 (/home/agent/wt/bm2-crash/crates/store) Compiling serde_path_to_error v0.1.20 Compiling cfb v0.14.0 Compiling tower-http v0.6.11 Compiling axum v0.8.9 Compiling time-macros v0.2.32 Compiling calternal-engine v0.1.0 (/home/agent/wt/bm2-crash/crates/engine) Compiling time v0.3.55 Compiling infer v0.22.0 Compiling calternal-testkit v0.1.0 (/home/agent/wt/bm2-crash/crates/testkit) Compiling calternal-server v0.1.0 (/home/agent/wt/bm2-crash/crates/server) Compiling calternal-attachments v0.1.0 (/home/agent/wt/bm2-crash/crates/attachments) Finished `test` profile [unoptimized + debuginfo] target(s) in 7.42s Running unittests src/lib.rs (target/debug/deps/calternal_attachments-5c5a6b4f810ccce9) running 19 tests test serve::tests::dispositions_quote_safely ... ok test serve::tests::only_plain_visible_paths_are_served ... ok test serve::tests::ranges ... ok test tests::http::a_connection_that_breaks_off_leaves_nothing ... ok test tests::http::a_retry_with_the_same_key_never_makes_a_second_copy ... ok test tests::http::paths_that_climb_out_of_the_home_are_not_found ... ok test tests::http::an_upload_lands_in_its_dated_folder_and_is_served_back ... ok test tests::http::check_finds_only_your_own_files ... ok test tests::http::the_sweep_removes_what_a_crash_left_and_spares_live_uploads ... ok test tests::http::the_limit_holds_while_streaming_without_a_length ... ok test tests::http::uploads_need_a_session_our_page_and_a_key ... ok test tests::sniffing::days_are_strict ... ok test tests::sniffing::names_are_kept_but_made_safe ... ok test tests::sniffing::pictures_and_videos_go_to_photos ... ok test tests::sniffing::text_types_come_from_the_extension_and_html_never_runs ... ok test tests::sniffing::the_name_never_decides_a_binary_type ... ok test tests::http::names_can_not_steer_where_a_file_goes ... ok test tests::http::the_same_file_again_says_already_uploaded_and_keeps_one_copy ... ok test tests::http::unsafe_types_are_downloads_with_a_strict_policy ... ok test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s Running unittests src/lib.rs (target/debug/deps/calternal_fsio-2221f901037f8e13) running 103 tests test beneath::tests::upload_marker_still_finds_an_image_after_a_crash_during_publication ... ok test beneath::tests::walking_without_openat2_refuses_symlinks_too ... ok test beneath::tests::paths_that_climb_out_are_refused ... ok test names::directory::tests::a_full_kernel_queue_rebuilds_before_allocating ... ok test beneath::tests::temp_files_persist_without_replacing_and_vanish_when_dropped ... ok test beneath::tests::upload_cancel_and_publish_keep_a_replaced_temporary_inode ... ok test private_directory::legacy_state::tests::active_legacy_transaction_is_not_migrated ... ok test private_directory::legacy_state::tests::legacy_state_receipts_clear_files_without_removing_unproven_public_directories ... ok test private_directory::legacy_state::tests::legacy_state_equal_length_rewrite_at_migration_boundary_survives ... ok test names::directory::tests::immediate_outside_events_case_duplicates_and_replacement_are_current ... ok test private_directory::owner::tests::transaction_and_recovery_lifetimes_ignore_inherited_descriptors ... ok test private_directory::record::tests::interrupted_write_is_reclaimed_but_outside_edit_stays_private ... ok test private_directory::roots::inheritance::tests::private_image_inheritance_matches_a_kernel_create_in_the_destination ... ok test private_directory::roots::tests::a_symlink_cannot_replace_either_private_component ... ok test private_directory::roots::tests::membership_requires_a_registered_root_and_refuses_parent_traversal ... ok test private_tmp_tests::concurrent_startup_drain_accepts_a_peer_finishing_the_same_private_directory ... ok test private_tmp_tests::creator_receipt_alone_cannot_authorize_legacy_state_migration ... ok test private_tmp_tests::interrupted_case_only_rename_never_discards_the_moved_user_inode ... ok test private_tmp_tests::legacy_state_never_adopts_a_published_key_moved_under_a_quarantine_name ... ok test private_directory::record::tests::write_intent_proves_every_short_prefix_but_never_outside_bytes ... ok test private_tmp_tests::no_producer_creates_temporary_files_outside_the_private_directory ... ok test private_tmp_tests::private_directory_is_shared_across_nested_destinations_and_not_a_symlink ... ok test private_directory::legacy_state::tests::split_state_restart_drains_private_scan_images_without_touching_the_data_home ... ok test private_tmp_tests::unreadable_app_metadata_is_restored_without_deleting_unknown_bytes ... ok test private_tmp_tests::private_root_loose_images_are_drained_without_deleting_unknown_bytes ... ok test reviewer_744::private_cleanup_stop_child ... ok test private_tmp_tests::reviewer_744_public_writer_after_last_private_check_survives_cleanup ... ok test reviewer_744::reviewer_737_and_740_unknown_legacy_bytes_remain_at_original_name ... ok test reviewer_744::reviewer_742_three_equal_length_upload_rewrites_do_not_touch_public_names ... ok test names::directory::tests::random_outside_entry_changes_match_the_real_directory ... ok test reviewer_744::reviewer_744_actual_private_images_retain_external_aliases ... ok test reviewer_744::reviewer_744_actual_private_replacements_are_not_adopted_for_cleanup ... ok test reviewer_750::crash_child ... ok test reviewer_744::reviewer_744_public_cleanup_never_reaches_unlink_or_loses_alias_writes ... ok test reviewer_750::destination_create_at_exclusive_placement_cannot_be_overwritten ... ok test reviewer_750::existing_save_external_writes_at_each_exchange_and_unlink_boundary ... ok test reviewer_750::killed_save_does_not_hide_or_delete_displaced_unknown_bytes ... ok test reviewer_750::legacy_unproven_untouched_and_proven_moved_before_disposal ... ok test reviewer_750::streaming_fill_is_private_even_while_the_input_blocks_or_destination_changes ... ok test reviewer_750::descriptor_opened_on_public_file_keeps_a_visible_survivor_after_save ... ok test reviewer_759::actual_owner_survives_recovery_and_kernel_releases_after_sigkill ... ok test reviewer_759::disk_full_save_and_cancellation_keep_outside_bytes ... ok test reviewer_750::unconditional_metadata_writers_preserve_unknown_displaced_versions ... ok test reviewer_759::outside_private_writes_and_another_home_survive_owner_death ... ok test reviewer_759::sigkill_between_payload_write_and_receipt_leaves_no_public_partial_upload ... ok test reviewer_759::upload_owner_child ... ok test safe_cleanup_tests::an_app_created_replacement_cannot_transfer_cleanup_authority ... ok test safe_cleanup_tests::every_cleanup_path_preserves_concurrent_writer_property ... ok test safe_cleanup_tests::public_unknown_bytes_are_not_renamed_to_conflicts_during_recovery ... ok test staging::tests::staging_lease_break_child ... ok running 1 test test staging::tests::staging_lease_break_child ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 102 filtered out; finished in 0.00s test staging::tests::staging_lease_break_retains_bytes_and_does_not_signal_server ... ok test staging::tests::staging_recovery_preserves_unknown_and_racing_outside_bytes ... ok test reviewer_759::misleading_pid_metadata_never_substitutes_for_a_kernel_owner ... ok test staging::tests::staging_walk_never_follows_links_and_recognises_destinations ... ok test staging_cleanup_tests::staging_claimed_path_reviewer_race_retains_unjournaled_replacement ... ok test staging_cleanup_tests::staging_journal_proof_alone_does_not_discard_an_outside_alias_write ... ok test staging_cleanup_tests::staging_migration_requires_the_complete_old_name_pattern ... ok test staging_lease::tests::lease_waits_for_a_transient_inherited_writer_before_verifying ... ok test staging_liveness_tests::a_private_entry_named_tmp_still_has_an_owner ... ok test staging_liveness_tests::both_recovery_paths_skip_a_live_upload_even_with_journal_proof ... ok test staging_liveness_tests::cancellation_and_staging_scan_do_not_orphan_a_private_upload ... ok test staging_liveness_tests::history_proof_holds_the_abandoned_owner_against_other_recovery ... ok test staging_liveness_tests::private_directory_ownership_covers_scans_and_restart ... FAILED test staging_liveness_tests::private_names_preserve_long_unicode_destination_budget ... ok test staging_liveness_tests::private_names_remain_unique_when_the_clock_does_not_advance ... ok test staging_liveness_tests::recovery_skips_a_transaction_between_mkdir_and_owner_lock ... ok test swap::create_tests::create_preserves_outside_file_appearing_after_absence_check ... ok test swap::create_tests::displaced_replacement_and_rollback_replacement_keep_external_versions ... ok test swap::create_tests::unsupported_exchange_never_replaces_an_existing_file ... ok test tests::a_private_directory_is_invisible_until_exclusive_publication ... ok test tests::a_published_directory_retains_ownership_when_a_parent_flush_fails ... ok test tests::atomic_write_replaces_and_leaves_no_temp_files ... ok test reviewer_744::reviewer_744_private_cleanup_abrupt_stop_preserves_public_writes ... ok test tests::case_only_collision_rolls_back_or_keeps_the_staged_original ... ok test tests::case_only_rename_preserves_a_different_destination ... ok test tests::case_only_rename_works_and_other_clashes_are_refused ... ok test tests::delta_rename_must_preserve_file_arriving_after_absence_check ... ok test tests::directory_publication_rechecks_changed_inheritance_policy ... ok test tests::dropping_data_lock_releases_it_even_with_an_inherited_file_handle ... ok test tests::failed_write_keeps_the_old_file ... ok test tests::many_files_are_replaced_whole ... ok test tests::many_new_files_never_replace_anything ... ok test tests::named_bulk_staging_is_whole_exclusive_and_leaves_no_temporary_name ... ok test tests::names_fold_case_and_unicode_form ... ok test tests::only_one_process_owns_a_data_folder ... ok test tests::parallel_bulk_preserves_result_slots_and_observes_the_final_sync ... ok test tests::prepared_writes_land_only_when_placed ... ok test tests::private_directory_publication_preserves_a_destination_that_arrives ... ok test tests::rename_preserves_a_dangling_destination_symlink ... ok test tests::staged_bulk_keeps_the_destination_default_acl ... ok test tests::staged_bulk_preserves_occupied_files_and_falls_back_when_staging_is_missing ... ok test tests::unique_names_skip_case_and_form_clashes ... ok test tests::big_writes_arrive_whole ... ok test usage::private_usage_tests::transient_images_and_manifests_never_count_as_user_storage ... ok test usage::tests::a_separate_state_root_counts_what_plugins_report ... ok test usage::tests::bulk_writes_and_published_folders_count_without_a_recount ... ok test usage::tests::reads_do_not_wait_for_the_counter_writer ... ok test usage::tests::recount_preserves_concurrent_writes_and_deletes ... ok test usage::tests::stale_metadata_cannot_replace_a_newer_update ... ok test usage::tests::writes_moves_trash_and_purge_update_without_a_recount ... ok test staging::tests::staging_recovery_retains_an_inode_with_an_open_outside_writer ... ok test tests::write_unless_changed_keeps_someone_elses_version ... ok test readonly_alias_tests::readonly_descriptors_cannot_lose_later_completed_writes ... ok failures: ---- staging_liveness_tests::private_directory_ownership_covers_scans_and_restart stdout ---- thread 'staging_liveness_tests::private_directory_ownership_covers_scans_and_restart' (3481416) panicked at crates/fsio/src/staging_liveness_tests.rs:128:5: assertion `left == right` failed left: 1 right: 0 failures: staging_liveness_tests::private_directory_ownership_covers_scans_and_restart test result: FAILED. 102 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.97s error: test failed, to rerun pass `-p calternal-fsio --lib` ``` </details> <details><summary>deterministic-before — verbatim diagnostic output</summary> ```text Compiling calternal-fsio v0.1.0 (/home/agent/wt/bm2-crash/crates/fsio) Finished `test` profile [unoptimized + debuginfo] target(s) in 0.82s Running unittests src/lib.rs (target/debug/deps/calternal_fsio-de57200a9dafab35) running 1 test test reviewer_759::sigkill_between_payload_write_and_receipt_leaves_no_public_partial_upload ... SIGKILL after payload write, before receipt update: public entries=[] thread 'reviewer_759::sigkill_between_payload_write_and_receipt_leaves_no_public_partial_upload' (3472306) panicked at crates/fsio/src/reviewer_759.rs:265:5: assertion `left == right` failed: dead owner's app-written payload must be reclaimed on the next recovery left: 1 right: 0 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace FAILED failures: failures: reviewer_759::sigkill_between_payload_write_and_receipt_leaves_no_public_partial_upload test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 101 filtered out; finished in 0.00s error: test failed, to rerun pass `-p calternal-fsio --lib` ``` </details> <details><summary>directory-before — verbatim diagnostic output</summary> ```text Compiling calternal-fsio v0.1.0 (/home/agent/wt/bm2-crash/crates/fsio) Finished `test` profile [unoptimized + debuginfo] target(s) in 0.54s Running unittests src/lib.rs (target/debug/deps/calternal_fsio-de57200a9dafab35) running 1 test test directory::tests::abandoned_prepared_directory_ignores_inherited_owner_description ... FAILED failures: ---- directory::tests::abandoned_prepared_directory_ignores_inherited_owner_description stdout ---- thread 'directory::tests::abandoned_prepared_directory_ignores_inherited_owner_description' (3482818) panicked at crates/fsio/src/directory.rs:317:9: assertion `left == right` failed left: 1 right: 0 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace failures: directory::tests::abandoned_prepared_directory_ignores_inherited_owner_description test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 103 filtered out; finished in 0.00s error: test failed, to rerun pass `-p calternal-fsio --lib` ``` </details> <details><summary>baseline-upload — verbatim diagnostic output</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.15s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c) running 1 test upload 128 MiB in 0.42 s = 302 MiB/s; RSS before 30776 KiB, peak during 31600 KiB, after 32976 KiB, high-water 32976 KiB peak above idle: 32 MiB upload 5152 KiB, 128 MiB upload 2200 KiB test a_big_upload_streams_in_bounded_memory ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.74s ``` </details> <details><summary>intent-upload — verbatim diagnostic output</summary> ```text Compiling calternal-fsio v0.1.0 (/home/agent/wt/bm2-crash/crates/fsio) Compiling calternal-server v0.1.0 (/home/agent/wt/bm2-crash/crates/server) Compiling calternal-notes v0.1.0 (/home/agent/wt/bm2-crash/crates/notes) Compiling calternal-migrate-v0 v0.1.0 (/home/agent/wt/bm2-crash/crates/migrate-v0) Compiling calternal-auth v0.1.0 (/home/agent/wt/bm2-crash/crates/auth) Compiling calternal-attachments v0.1.0 (/home/agent/wt/bm2-crash/crates/attachments) Compiling calternal-backdrops v0.1.0 (/home/agent/wt/bm2-crash/crates/backdrops) Compiling calternal-search v0.1.0 (/home/agent/wt/bm2-crash/crates/search) Compiling calternal-prefs v0.1.0 (/home/agent/wt/bm2-crash/crates/prefs) Compiling calternal-contacts-actions v0.1.0 (/home/agent/wt/bm2-crash/crates/contacts-actions) Compiling calternal-tasks v0.1.0 (/home/agent/wt/bm2-crash/crates/tasks) Compiling calternal-daily v0.1.0 (/home/agent/wt/bm2-crash/crates/daily) Compiling calternal v0.1.0 (/home/agent/wt/bm2-crash/crates/calternal) Finished `test` profile [unoptimized + debuginfo] target(s) in 6.56s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-d472ff9e2276282c) running 2 tests test a_big_upload_streams_in_bounded_memory ... upload 128 MiB in 0.85 s = 150 MiB/s; RSS before 30824 KiB, peak during 31472 KiB, after 31528 KiB, high-water 31528 KiB peak above idle: 32 MiB upload 5380 KiB, 128 MiB upload 704 KiB ok test kill_nine_mid_upload_leaves_nothing_half_written ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.55s ``` </details>
Author
Owner

Superseded for merging by BM3: #772 (train/2026-10-30-bm3 → dev, head 14bd77f0b9f5da7ad6de41c3b159be74db55507a). BM3 excludes #759 and its storage follow-up fixes, retaining the independent toast/auth/binary-resolver fixes. All non-browser gates pass. Both complete Playwright halves ran on that head; half A has one first-run throttled-390 layout-shift failure, with 3/3 failure-only reruns passing and no reproducible merge-stage boundary; half B and primitives pass. Full evidence and limitations are in #772. No merge or deployment performed; kayg approves.

Superseded for merging by BM3: https://git.kayg.org/kayg/calternal/pulls/772 (`train/2026-10-30-bm3` → `dev`, head `14bd77f0b9f5da7ad6de41c3b159be74db55507a`). BM3 excludes #759 and its storage follow-up fixes, retaining the independent toast/auth/binary-resolver fixes. All non-browser gates pass. Both complete Playwright halves ran on that head; half A has one first-run throttled-390 layout-shift failure, with 3/3 failure-only reruns passing and no reproducible merge-stage boundary; half B and primitives pass. Full evidence and limitations are in #772. No merge or deployment performed; kayg approves.
Author
Owner

Closing: BM2 was replaced by BM3 (#772, merged into dev). Branch kept.

Closing: BM2 was replaced by BM3 (#772, merged into dev). Branch kept.
kayg closed this pull request 2026-11-04 13:04:38 +00:00
Some checks failed
CI / rust (pull_request) Failing after 30s
CI / server (pull_request) Successful in 1m4s
CI / web (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!770
No description provided.