Train BM3 (BM2 minus #759) #772

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

Train BM3 ships BM2’s accepted inputs without #759 private storage staging. #759 returns for a redesign because of indefinite retention after SIGKILL, inherited-descriptor races, and the disclosed upload-throughput cost of its latest fix.
Base: d83e54dbe571b625504001a8b6add90d44ca6161. Final head: 14bd77f0b9f5da7ad6de41c3b159be74db55507a.

Inputs: #763 fix/flaky-sweep (628a7dd8), port/mockup-values (04a69711), port/composer (10659f25). Palette merge resolution matches BM2's UI-only resolution at d5000d47; retains var(--r-sheet) with the Composer layout.

Independent BM2 picks:

  • 09982195: partial cherry-pick of 84cb1a4e, selecting only toast ResizeObserver/fit timing, auth v2→v3 created_at,rowid tie ordering plus regression test, and shared CALTERNAL_BIN executable resolver plus unit tests/config/fixture wiring. Toast is shared UI code unchanged by #759; auth migration acts only on auth SQLite data; resolver acts only on E2E executable discovery. No private staging interfaces are used.
  • 14bd77f0: cherry-pick of 3cf6ac56; resolver unit tests use a scoped filesystem mock so lint does not require a Rust binary. No storage code.
  • 9041b509 was attempted and omitted: cherry-pick conflicts in crates/fsio/src/beneath.rs because its context includes #759's register_home. No conflict was forced or adapted. The conflict is retained in local evidence.

Excluded: #759, all inherited-descriptor lease/guard fixes, RecordedFile append-intent, PreparedDirectory changes, #759's added sweep regression, ca5b59c4, 1ee44c4b. crates/fsio and the existing contacts sweep tests exactly match Composer input 10659f25.

BM2 log d83e54db..1ee44c4b and #770 reports 70275 and 70298 were read to establish this selection.

Lease: 054fd612585b46e5a917401745853456. Host 02 was unreachable through both supplied DNS and NetBird IP (SSH connection timeout), so both browser halves ran sequentially on 10by32-01-std, as authorized. Host 02 was neither built on nor modified; its heartbeat could not be started. Heartbeat disclosure: the initial nohup loop was cleaned up with its tool session (file timestamp 12:04:13). This was discovered during half A at 12:32 and restored under user systemd at 12:32:14; later timestamps confirmed continued refreshes. This is a lease-heartbeat gap, not continuous coverage. Host 01 exports CALTERNAL_BIN=/home/agent/wt/train-bm3/target/release/calternal before commands; the release executable is checked with test -x before Playwright. Heavy commands use CALTERNAL_TRAIN=1 /usr/local/bin/build-slot.sh.

Browser split uses a temporary wrapper around the unchanged repository config. Each project keeps its cases, assertions, one app worker, and zero retries. Dependency edges to projects assigned to the other half are removed. In the sequential fallback, E2E environment and admin account/session from half A are retained for half B; the admin server restarts without the setup script's destructive reset. The full primitives CI matrix runs with CI=true, including the existing WebKit toast exclusion. No repository tests were weakened.

First-run failure and attribution

All non-browser gates pass. The complete Playwright first run is NOT all green: half A has one failed case, half B and primitives pass. The failed case is throttled-390 → editor.spec.ts:59 → “no layout shift while loading, typing or switching modes (cpu ×6) @throttled”. It observed a CodeMirror content layout shift of 0.03528868939117755 at about 2188 ms, with several lines moving one line height (33.1875 px). The unchanged assertion at line 104 requires no content shifts; it was not weakened.

Only that failed case was rerun three times, with one worker, zero retries and no dependency projects. All three passed (one selected case per invocation). Classification: intermittent/flaky, not reproducible on every attempt. These reruns do not replace the first-run failure.

Merge-stage attribution used the unchanged failed case three times on dev, then each successive input merge. Each stage built its own matching release server and frontend, used fresh browser harness environment, one worker and no retries. Every attempt passed. Thus this matrix does not attribute the intermittent failure to a train input and does not prove it pre-existed. No speculative product fix or test change was made because a local train-input cause was not established.

Revision Stage Attempt 1 Attempt 2 Attempt 3
14bd77f0 Final head, failure-only reruns PASS PASS PASS
d83e54db dev baseline PASS PASS PASS
87b8dc4e merge #763 PASS PASS PASS
af668240 merge mockup values PASS PASS PASS
f95610c3 merge Composer PASS PASS PASS

Full first-run results remain in the per-project table below. There was no second full-suite run and no hidden retry.

Verification

Commands: cargo fmt --all --check; cargo clippy --workspace --all-targets --locked -- -D warnings; cargo test --workspace --locked --no-fail-fast -- --test-threads=4; web check, lint, test; editor check, test; UI test:primitives; perf/web.sh --bundle-only --gate. Bundle results: first JS 239 KB brotli (≤240), all JS 312 KB brotli (≤315). Existing configured ignored/skipped cases are disclosed in raw output and the table.

All listed gates ran on final head 14bd77f0b9f5da7ad6de41c3b159be74db55507a.

fmt exit 0
clippy exit 0
web-check exit 0
web-lint exit 0
web-unit exit 0
editor-check exit 0
editor-unit exit 0
primitives-unit exit 0
bundle exit 0
rust-tests exit 0
primitives exit 0
half-A exit 1
half-B exit 0

Playwright first-run results

Half A SHA: 14bd77f0b9f5da7ad6de41c3b159be74db55507a. Half B SHA: 14bd77f0b9f5da7ad6de41c3b159be74db55507a. Both halves ran on 10by32-01-std using the authorized sequential fallback.

Half Project Passed Failed Skipped Not run Verdict
A chromium-1440 385 0 586 0 PASS
A chromium-390 820 0 151 0 PASS
A throttled-1440 2 0 0 0 PASS
A throttled-390 1 1 0 0 FAIL
A admin-chromium-1440 12 0 9 0 PASS
A admin-chromium-390 12 0 9 0 PASS
A flow 1 0 0 0 PASS
A passkeys 1 0 0 0 PASS
A admin-setup 1 0 0 0 PASS
A prefs-chromium 7 0 0 0 PASS
A contrast 9 0 0 0 PASS
A sidebar-band-chromium 3 0 0 0 PASS
A sidebar-band-webkit 3 0 0 0 PASS
B webkit-1440 380 0 591 0 PASS
B webkit-390 819 0 152 0 PASS
B admin-webkit-1440 9 0 9 0 PASS
B admin-webkit-390 9 0 9 0 PASS
B prefs-webkit 3 0 4 0 PASS
A / primitives chromium 48 0 0 0 PASS
A / primitives webkit 36 0 0 0 PASS

Gate output (verbatim)

fmt

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

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

running 32 tests
test admin::tests::an_active_request_gets_a_graceful_shutdown_window ... ok
test admin::tests::a_stop_sent_before_subscribing_is_still_seen ... ok
test args::tests::dev_user_never_on_a_public_address ... ok
test args::tests::defaults_and_flags ... ok
test args::tests::fix_commands ... ok
test args::tests::migrate_v0 ... ok
test args::tests::origin_defaults_to_the_local_port ... ok
test args::tests::setup_and_re_pair_are_explicit ... ok
test args::tests::state_defaults_to_resolved_data_and_flags_override_environment ... ok
test args::tests::user_create ... 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::people::backdrops_spend_the_same_counter_as_small_attachments ... ok
test isolation::contacts_and_tasks_in_one_home_keep_their_own_members ... 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::bob_cannot_join_alices_note_room ... ok
test isolation::people::real_upload_storm_notes_trash_restore_and_delete_usage ... ok
test isolation::quota_refuses_large_and_small_uploads_while_notes_still_save ... ok
test isolation::people_actions_hide_real_ids_from_members_other_users_and_anonymous_callers ... 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_bounds_response_writes_to_a_peer_that_stops_reading ... ok
test shutdown_io::tests::shutdown_finishes_an_idle_read_and_keeps_response_writes_open ... ok
test isolation::bob_reaches_nothing_of_alices_through_any_action ... ok
test isolation::randomized_home_shutdown_releases_both_roots ... ok
test isolation::people::every_action_obeys_person_visibility ... ok

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

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

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.77s

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

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-fdcf212fdda35d84)

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.34s

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

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.41s

     Running tests/notes_crash_typing.rs (target/debug/deps/notes_crash_typing-52e49630d87909e4)

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.87s

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

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.04s

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

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-28039d0268f9ac84)

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/startup.rs (target/debug/deps/startup-a60dc5a1ff991b62)

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 answers_after_launch ... ok
test a_new_server_prints_a_setup_token ... 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-b017092e84d8a841)

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 legacy_history_read_only_and_invalid_state_are_refused ... ok
test both_missing_markers_with_existing_split_data_require_confirmed_re_pair ... 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

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

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::a_retry_with_the_same_key_never_makes_a_second_copy ... ok
test tests::http::check_finds_only_your_own_files ... 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_auth-d188677225329773)

running 30 tests
test config::tests::origins ... ok
test ceremony::tests::anonymous_pool_stays_bounded_and_evicts_oldest ... ok
test ceremony::tests::full_pool_refuses_foreign_source_without_discarding_live_prompt ... ok
test db::tests::existing_database_keeps_people_credentials_and_sessions ... 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 http::proxy_tests::forwarding_stops_at_first_untrusted_hop_and_rejects_malformed_chains ... 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 db::tests::a_version_1_database_gets_passkey_names ... ok
test invite_key::tests::key_round_trips_but_modified_ciphertext_and_another_id_fail ... ok
test db::tests::opens_twice_and_keeps_schema ... ok
test passkeys::tests::ids_round_trip ... ok
test limit::reliability_tests::target_capacity_preserves_live_budgets_and_evicts_only_oldest_expired ... ok
test passkeys::tests::names_are_trimmed_short_and_never_empty ... ok
test session::tests::names_are_cleaned ... ok
test setup::tests::names ... ok
test setup::tests::names_reject_invisible_and_normalize_nfc ... ok
test limit::reliability_tests::full_map_evicts_least_recent_without_refusing_new_sources ... 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::recovery_requires_exact_username_or_uuid_never_display_name ... ok
test setup::tests::cli_creation_refuses_admin_name_confusables ... 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.03s

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

running 12 tests
test bad_json_and_unknown_fields_are_refused ... ok
test forged_sessions_get_nowhere ... ok
test anonymous_prompt_flood_preserves_login_setup_and_add ... ok
test junk_setup_tokens_are_refused_then_rate_limited ... ok
test duplicate_session_cookies_never_choose_an_identity ... ok
test login_source_limit_does_not_block_another_client ... ok
test non_json_requests_are_refused ... ok
test nothing_about_the_server_leaks_before_sign_in ... ok
test one_source_cannot_lock_out_another_and_cannot_spoof_forwarding ... ok
test other_sites_cannot_act_for_you ... 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.04s

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

running 6 tests
test an_expired_enrolment_token_is_refused ... ok
test an_earlier_first_owner_token_stops_working ... 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 names_must_be_usable_and_unique ... ok
test nothing_about_the_person_leaks_before_sign_in ... 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-e3dcb28700fd0d28)

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-2bd6f2e034777a38)

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-19d1831415a9ccf7)

running 8 tests
test invite_admin_names_cannot_be_impersonated_and_failure_preserves_invite ... ok
test invite_can_be_copied_after_restart_and_only_one_racing_passkey_wins ... ok
test invite_finish_rechecks_admin_names_after_role_changes ... ok
test invite_redemption_joins_its_groups_and_other_inviters_cannot_copy_it ... ok
test losing_the_key_does_not_replace_it_and_invite_secrets_never_enter_action_history ... ok
test legacy_invite_indexes_upgrade_atomically_and_keep_copy_and_redemption ... 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.18s

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

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

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

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

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 logout_revokes_the_installation_and_rejects_live_cookies ... ok
test an_unknown_passkey_is_refused ... ok
test sign_in_with_a_passkey_creates_a_new_installation ... 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 signing_in_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.17s

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

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.01s

     Running tests/passkeys.rs (target/debug/deps/passkeys-8687c52e280baa48)

running 7 tests
test adding_needs_a_sign_in_and_an_add_prompt_works_once ... ok
test add_rename_and_remove_each_leave_a_journal_event ... ok
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 the_same_device_cannot_be_added_twice ... 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.01s

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

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

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

     Running tests/quota_counter.rs (target/debug/deps/quota_counter-09ad635659f7619b)

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.94s

     Running tests/reliability_review.rs (target/debug/deps/reliability_review-1df4fbcdcc4e747c)

running 22 tests
test anonymous_flood_must_not_evict_other_persons_prompt ... ok
test authentication_database_does_not_wait_for_general_blocking_workers ... 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 default_twenty_mib_stream_boundary ... 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 directory_move_during_initial_recount_must_track_later_deletes ... 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 ipv6_rotation_must_not_lock_out_new_source ... ok
test source_isolation_and_untrusted_forwarding ... ok
test slow_uploads_must_not_starve_authentication_blocking_pool ... 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.11s

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

running 12 tests
test attachment_and_backdrop_routes_share_caps_and_cancel_cleanup ... ok
test canonical_recovery_token_variants_share_one_target_without_spending_other_tokens ... ok
test ipv4_mapped_v6_and_native_v4_share_budget_but_adjacent_prefix_does_not ... ok
test fifty_slow_upload_attempts_preserve_full_signin_and_status ... 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.81s

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

running 15 tests
test concurrent_key_creation_publishes_one_complete_key ... ok
test eight_parallel_redeemers_create_exactly_one_account ... ok
test every_action_rejects_anonymous_expired_and_unprivileged_writes ... ok
test expiry_during_passkey_registration_consumes_nothing ... 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 malformed_token_must_have_same_generic_response ... 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 key_permissions_missing_corrupt_and_no_plaintext_history ... 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.09s

     Running tests/setup.rs (target/debug/deps/setup-580226bf7edb625f)

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 first_owner_signs_up_with_the_printed_token ... ok
test a_token_works_exactly_once_under_a_storm ... ok
test recovery_adds_a_new_passkey_for_the_same_person ... ok
test session_cookie_is_locked_down ... 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-f3fab057b6c741f8)

running 25 tests
test tests::a_photo_unknown_to_us_is_looked_up ... ok
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_stricter_attachment_limit_also_bounds_backdrops ... ok
test tests::bad_ids_never_reach_the_disk_or_the_network ... ok
test tests::changes_need_our_own_page_and_a_signed_in_person ... ok
test tests::an_upload_is_kept_once_and_served_back ... 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::pictures_from_other_hosts_are_refused ... 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::too_many_pixels_are_refused_but_files_within_the_byte_limit_work ... 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::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 tests::the_cache_drops_the_oldest_files_past_its_cap ... ok

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

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

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-606fa949d5da01ba)

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-79925f2683c9250d)

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 canonical_note_comparison_checks_every_byte_and_falls_back_for_local_sections ... ok
test bare_properties_and_ignored_parameter_properties_decode_the_same_values ... 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 quoted_parameter_delimiters_and_value_colons_keep_their_meaning ... ok
test component_and_list_comparisons_preserve_empty_parts_and_noncanonical_escapes ... 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-80f91622b5862def)

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 0.99s

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

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-69089c9e06f195fa)

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-90f3915d66b37626)

running 27 tests
test a_phone_note_containing_h2_or_h1_round_trips ... ok
test ambiguous_simultaneous_colon_edit_returns_phone_group_and_history ... ok
test colon_label_renames_survive_a_following_client_edit ... 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 colon_bearing_label_edits_change_only_the_label_and_value_edits_only_the_value ... ok
test duplicate_structured_name_parts_are_unrepresentable ... ok
test crlf_notes_preserve_original_escape_spelling_and_do_not_create_merge_conflicts ... ok
test first_list_ends_at_a_paragraph_and_second_list_stays_local ... ok
test entering_a_birthday_year_clears_the_apple_omit_year_flag ... ok
test flat_repeatable_lines_stay_and_are_reported ... ok
test empty_visible_properties_are_not_deleted_on_an_unchanged_round_trip ... 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 multiple_edits_to_indistinguishable_occurrences_do_not_guess_hidden_parameters ... ok
test note_headings_and_crlf_do_not_change_plain_text ... 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-541ef030258e354d)

running 4 tests
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 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 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-a31253428336ef7c)

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 apple_reordering_churn_photo_and_dropped_extension_do_not_lose_local_edits ... ok
test distinct_repeated_types_return_quiet_concurrent_edit_notice ... ok
test distinct_ungrouped_types_merge_reorders_edits_additions_and_deletions ... ok
test dropped_extension_parameters_keep_their_order_and_do_not_conflict_with_local_values ... ok
test phone_note_deletion_does_not_reappear_as_an_empty_note_on_read ... ok
test identical_visible_rows_keep_both_occurrences_during_noop_and_changed_merges ... 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 related_links_with_custom_relative_targets_bind_to_the_original_person ... ok
test local_label_renames_take_phone_deletes_or_value_edits ... ok
test the_first_card_group_is_added_after_an_existing_photo ... ok
test unchanged_repeated_ungrouped_properties_keep_occurrences ... ok
test same_line_concurrent_edits_and_deletes_take_phone_group ... 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-4d51bf32040f0055)

running 21 tests
test ambiguous_occurrence_replaces_only_its_group_and_returns_exact_old_lines ... ok
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_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 equal_single_fact_values_still_bind_by_line_order_when_edited ... ok
test concurrent_org_additions_and_deletes_never_stop_sync ... ok
test identical_repeatable_rows_return_history_instead_of_guessing_hidden_occurrences ... ok
test exact_client_occurrences_win_before_parameterless_identical_additions ... 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 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_company_conflict_keeps_independent_department_edits ... ok
test repeated_single_facts_typed_from_scratch_create_separate_properties ... ok
test repeated_single_facts_bind_edit_delete_and_multiple_edits_to_occurrences ... ok
test org_deletions_use_unique_departments_or_return_every_ambiguous_fact ... 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-0fd8f59e894b0de6)

running 10 tests
test ambiguous_sources_damaged_notes_and_line_injection_are_errors ... ok
test escapes_empty_values_caret_parameters_and_unknown_sequences ... 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 1.92s

     Running tests/layout.rs (target/debug/deps/layout-52cf28be2b88697d)

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 notes_are_plain_text_two_way_through_nested_headings ... ok
test photo_reference_is_an_attachment_io_boundary ... 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-d3b5e67bb0941644)

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 new_contact_uid_is_note_id_and_default_is_three ... ok
test hand_edit_uses_external_original_until_export ... 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-bdaa6df933db833c)

running 131 tests
test facts::tests::reads_name_and_facts_in_order ... ok
test cards::tests::ids_cannot_leave_the_folder ... ok
test facts::tests::a_card_without_a_name ... ok
test frontmatter::tests::no_frontmatter_is_left_alone ... ok
test frontmatter::tests::a_body_divider_is_not_frontmatter ... ok
test frontmatter::tests::splits_and_joins_back_exactly ... ok
test import::tests::identity_is_the_uid_or_the_bytes ... ok
test cards::tests::copies_are_written_whole_and_removed ... ok
test jobs::tests::attempts_are_stable_and_distinct ... ok
test names::tests::bidi_controls_never_reach_a_file_name_but_joiners_do ... ok
test names::tests::a_fact_equal_to_the_name_is_skipped ... 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 names::tests::illegal_characters_become_dashes ... ok
test names::tests::nfd_and_nfc_give_one_name ... ok
test namer::tests::names_come_from_the_note_and_its_card ... ok
test names::tests::long_names_are_cut_between_whole_characters ... ok
test tests::basics::a_retry_with_the_same_key_makes_one_contact ... ok
test tests::basics::contact_actions_never_touch_other_notes ... ok
test tests::basics::bad_cards_are_refused_and_nothing_is_written ... 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::code_stays_and_anchors_travel ... ok
test tests::break_links::case_only_renames ... ok
test tests::break_links::a_rename_onto_an_existing_file ... 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::clashes_add_company_then_city_then_nickname_then_domain_then_a_number ... 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::the_folder_is_a_setting ... ok
test tests::break_names::unsafe_characters_never_reach_the_file_name ... ok
test tests::break_names::very_long_names_fit_the_byte_limit ... ok
test tests::correctness::acknowledged_edit_between_undo_preparation_and_deletion_survives ... ok
test tests::correctness::deletion_crash_child ... ok
test tests::correctness::crash_after_trash_move_retains_history_and_quota_on_restart ... ok
test tests::correctness::deletion_recovery_preserves_an_outside_edit_made_while_down ... 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_in_an_existing_folder_preserves_earlier_contacts ... ok
test tests::import::a_final_flush_failure_undoes_every_published_contact_and_can_retry ... ok
test tests::import::bulk_import_preserves_an_id_held_only_by_trash_details ... ok
test tests::import::limits_hold ... ok
test tests::kill9::child ... ok
test tests::import::the_same_file_twice_changes_nothing ... ok
test tests::import::parallel_import_keeps_input_order_and_compares_existing_peer_facts ... 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::edit_killed_copying ... ok
test tests::kill9::import_killed_mid_import ... ok
test tests::kill9::rename_killed_committed ... 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::kill9::import_killed_prepared ... ok
test tests::kill9::import_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::props::random_sequences_keep_every_invariant ... 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::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::undoing_an_import_retains_history_until_trash_is_purged ... ok
test tests::review::both_ends_in_trash_restore_source_before_target_keeps_identity ... ok
test tests::review3::same_size_photo_swaps_are_held_to_the_limit ... ok
test tests::review::crash_child ... ok
test tests::review::device_name_before_extension_is_safe ... ok
test tests::review::concurrent_undo_and_staged_update_keep_note_and_card_together ... 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::kill9::edit_killed_prepared ... ok
test tests::kill9::rename_killed_prepared ... ok
test tests::review::kill9_import_after_history_transaction ... ok
test tests::review::kill9_import_after_directory_sync ... ok
test tests::review::kill9_import_after_first_file ... ok
test tests::review::kill9_import_during_file_placement ... ok
test tests::review::kill9_import_private_files_before_history ... 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_into_existing_folder_after_directory_sync ... 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::kill9_restore_after_incoming_link_repair ... 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::same_company_uses_city ... ok
test tests::review::undo_refuses_a_later_phone_card_before_moving_or_retargeting_anything ... ok
test tests::review::ordinary_tag_job_and_undo_preserve_concurrent_typing ... 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::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::review::ring_import_1000_swaps_chains_unicode_h1_and_undo ... ok
test tests::review::kill9_restore_before_incoming_link_repair ... ok

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

     Running unittests src/lib.rs (target/debug/deps/calternal_core-6a9d42b28abad2a2)

running 15 tests
test action::tests::namespace_is_enforced ... ok
test drain::tests::close_gives_up_after_its_bound ... 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 batch::tests::stops_at_the_first_error ... ok
test error::tests::every_code_has_a_friendly_message ... 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::failed_admission_does_not_leak_reservations ... ok
test room_queue::tests::control_messages_can_release_rooms_when_payload_budgets_are_full ... ok
test room_queue::tests::deferred_payload_keeps_local_and_global_byte_admission ... ok
test visible::tests::hides_current_and_legacy_markers ... 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-3d98a3975c82d990)

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::an_existing_day_file_is_reused_whatever_its_id ... ok
test tests::any_text_is_safe_to_read_and_plan ... ok
test tests::bad_input_is_refused_kindly ... ok
test tests::a_day_whose_note_is_in_the_trash_still_opens ... ok
test tests::add_inserts_exactly_one_entry_and_keeps_the_rest ... ok
test tests::log_add_then_close_makes_a_range ... ok
test tests::close_turns_one_open_entry_into_a_range ... ok
test tests::shared_vectors ... ok
test tests::opening_the_same_day_at_once_makes_one_note ... ok
test tests::today_follows_the_device_offset ... ok
test tests::make_note_on_a_log_line_keeps_times_and_tags ... ok
test tests::two_offline_devices_starting_the_same_day_merge_into_one_note ... ok
test times_tests::a_line_with_only_tags_stays_words ... 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::any_line_is_safe ... 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::no_file_until_the_first_keystroke ... ok

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

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

running 18 tests
test hash::tests::key_order_does_not_matter_but_content_does ... ok
test tests::a_plugin_cannot_write_outside_its_namespace ... ok
test tests::action_scopes_are_distinct_and_cannot_alias_legacy_keys ... ok
test tests::a_retry_runs_once_and_replays_the_result ... 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-b184ff10c0439568)

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.35s

     Running unittests src/main.rs (target/debug/deps/calternal_fixtures-745118513035d3da)

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-912a61e8bc40d804)

running 40 tests
test names::directory::tests::a_full_kernel_queue_rebuilds_before_allocating ... ok
test beneath::tests::paths_that_climb_out_are_refused ... ok
test beneath::tests::walking_without_openat2_refuses_symlinks_too ... ok
test beneath::tests::temp_files_persist_without_replacing_and_vanish_when_dropped ... ok
test swap::create_tests::create_preserves_outside_file_appearing_after_absence_check ... ok
test swap::create_tests::unsupported_exchange_never_replaces_an_existing_file ... ok
test names::directory::tests::immediate_outside_events_case_duplicates_and_replacement_are_current ... ok
test tests::atomic_write_replaces_and_leaves_no_temp_files ... ok
test tests::a_published_directory_retains_ownership_when_a_parent_flush_fails ... ok
test tests::a_private_directory_is_invisible_until_exclusive_publication ... 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::conditional_removal_keeps_changed_bytes_and_outside_replacements ... ok
test tests::conditional_removal_recovers_the_captured_file_after_restart ... ok
test tests::delta_rename_must_preserve_file_arriving_after_absence_check ... 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::directory_publication_rechecks_changed_inheritance_policy ... ok
test tests::many_files_are_replaced_whole ... ok
test tests::named_bulk_staging_is_whole_exclusive_and_leaves_no_temporary_name ... ok
test tests::many_new_files_never_replace_anything ... ok
test tests::names_fold_case_and_unicode_form ... ok
test tests::only_one_process_owns_a_data_folder ... 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::write_unless_changed_keeps_someone_elses_version ... ok
test usage::tests::a_separate_state_root_counts_what_plugins_report ... ok
test tests::parallel_bulk_preserves_result_slots_and_observes_the_final_sync ... 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::bulk_writes_and_published_folders_count_without_a_recount ... 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 names::directory::tests::random_outside_entry_changes_match_the_real_directory ... ok
test tests::big_writes_arrive_whole ... ok

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

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

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-cc2cb7918adfcb98)

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::m1_custom_daily_title_and_heading_stay ... ok
test tests::rules::m10_tz_markers_go_and_other_zones_convert_to_the_notes_zone ... 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_attachments_that_exist_are_copied_and_relinked ... ok
test tests::rules::m2_code_is_never_rewritten ... ok
test tests::rules::m2_unresolved_links_stay_as_written_and_are_reported ... ok
test tests::rules::m2_wikilinks_always_become_standard_links ... ok
test tests::rules::m2_links_are_repaired_by_name_date_title_and_slug ... ok
test tests::rules::m3_m5_frontmatter_keys_drop_and_times_convert ... 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::m7_tasks_blocks_are_stripped_and_listed ... ok
test tests::rules::m6_conflict_copies_are_not_migrated ... ok
test tests::rules::m8_only_notes_and_linked_files_move ... 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 tests::rules::running_twice_gives_the_same_bytes ... 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 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.23s

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

running 448 tests
test anchor::tests::lines_by_utf16_index ... ok
test backlinks::tests::snippets_are_the_trimmed_line ... ok
test blocks::tests::line_edits ... ok
test blocks::tests::finds_list_children_and_heading_sections ... ok
test blocks::tests::titles_from_the_first_sentence ... ok
test anchor::tests::hash_is_plain_sha256_hex ... ok
test blocks::tests::shapes_keep_markers ... ok
test backlinks::tests::links_are_fold_keys_and_lines ... ok
test bulk::undo::tests::inverse_restores_the_text ... ok
test bulk::undo::tests::inverse_roundtrips ... ok
test capture_tests::crash_child ... ok
test bulk::error_tests::legacy_job_reports_hide_stored_source_details ... ok
test bulk::error_tests::failed_job_reports_keep_source_details_in_the_server_error ... ok
test diff::tests::an_inserted_line_starts_at_a_line_start ... ok
test diff::tests::edits_never_split_a_character ... ok
test deletion::tests::recovery_keeps_its_intent_until_missing_history_is_restorable ... 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 frontmatter::tests::set_is_utf16_aware ... ok
test health::tests::anchors ... ok
test diff::tests::edits_turn_old_into_new ... 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 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 capture_tests::capture_allocates_around_unindexed_case_and_exact_names ... ok
test history::companions::tests::a_companion_lands_with_its_change ... ok
test history::companions::tests::keys_answer_without_reading_bytes_and_cover_older_rows ... ok
test history::companions::tests::rejected_companion_writes_leave_history_and_quota_unchanged ... ok
test history::companions::tests::staged_rows_wait_for_their_step ... ok
test history::companions::tests::written_marks_and_unwritten_rows ... ok
test history::companions::tests::retained_bytes_follow_every_change_and_match_a_full_count ... 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::tests::a_busy_begin_reports_its_cause_without_running_the_job ... ok
test history::receipts::tests::legacy_card_only_changes_get_a_whole_note_journal_position ... 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
test history::tests::a_competing_writer_cannot_invalidate_a_history_write_snapshot ... ok
test history::tests::appends_are_ordered_and_readable ... ok
test history::tests::disk_full_keeps_the_cause_and_failed_writes_can_be_retried ... ok
test history::tests::pending_save_promotes_to_base ... 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 room::acks::tests::varuints_round_trip ... ok
test room::actor::retry_tests::malformed_update_remains_a_permanent_refusal ... 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 capture_tests::kill9_at_every_capture_and_undo_journal_step ... 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 links::tests::code_block_spans_match_pulldown_on_random_markdown ... 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_peers_and_restart_replay ... 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::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::metadata_refresh_does_not_block_sync_behind_an_uncommitted_seed ... 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::saved_bytes_and_titles_match_the_old_copy_path ... 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 room::save::tests::review::review_title_precedence_edge_matrix ... ok
test tests::appends::an_append_to_a_long_note_stays_small ... 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::event_visibility::create_text ... ok
test tests::event_visibility::delete ... ok
test tests::delta_review::delta_permanent_deletion_history_failure_must_terminate_scan ... 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::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::failed_delete_then_restore_announces_the_current_state ... 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_create_with_text_still_renames_after_its_h1 ... ok
test tests::event_visibility::regression_delayed_depart_cannot_clear_gone ... 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::pin ... 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::regression_failed_save_hint_still_schedules_title_rename ... 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::regression_delete_failure_then_forget_keeps_gone ... ok
test tests::event_visibility::rename_retry ... 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::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::restore ... ok
test tests::event_visibility::round4_startup_retries_failed_list_stamp_read ... ok
test tests::event_visibility::regression_one_reconcile_path_after_failed_edit ... 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 tests::event_visibility::unpin ... 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::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::fanout::collaborators_see_typing_before_the_disk ... 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::kill9::permanent_delete_after_restore_cannot_delete_the_live_note ... ok
test tests::kill9::quick_delete_restore_survives_kill ... ok
test tests::kill9::quick_restore_delete_survives_kill ... ok
test tests::kill9::restore_delete_forget_does_not_resurrect_after_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 room::save::tests::review::group_commit::lanes::a_failing_note_does_not_starve_another_typist ... 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::the_first_page_never_waits_for_the_home_to_open ... ok
test tests::event_visibility::round4_recorder_outage_bounds_deleted_ids_and_drains_overflow ... ok
test tests::listing::the_list_stays_live_with_new_notes_saves_and_outside_edits ... ok
test tests::listing::the_kept_count_follows_adds_and_deletes ... 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::missing::a_move_outside_is_found_and_relink_repoints_the_links ... 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::identifying_an_already_indexed_file_never_makes_it_a_copy ... ok
test tests::opening::shutting_down_leaves_the_list_log_empty ... ok
test tests::opening::asking_mid_scan_never_says_not_found_and_never_duplicates_a_day ... 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::renames::backlinks_follow_edits_and_deletes ... 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_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::saving_a_title_ending_in_a_number_does_not_schedule_a_rename ... ok
test tests::renames::typing_a_new_title_renames_the_file_after_a_pause ... 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::outside::polling_finds_outside_changes ... ok
test tests::rooms::patches_use_utf16_positions ... 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::renames::a_crash_mid_rename_resumes_and_applies_each_edit_once ... ok
test tests::shutdown::a_shutdown_wait_made_after_shutdown_ends_at_once ... ok
test tests::shutdown::healthy_shutdown_settles_pending_typing_before_saving ... ok
test tests::shutdown::no_background_work_starts_after_shutdown ... ok
test tests::shutdown::nothing_opens_or_writes_on_a_home_after_shutdown ... ok
test tests::shutdown::scan_waiters_stay_released_once_shutdown_releases_them ... ok
test tests::shutdown::settlement::shutdown_settlement_failed_promotion_preserves_written_snapshot ... ok
test tests::shutdown::settlement::shutdown_settlement_late_disk_recovery_requires_replay ... ok
test tests::shutdown::settlement::shutdown_settlement_live_file_io_failure_joins_writer ... ok
test tests::shutdown::a_create_that_outlives_shutdown_writes_nothing ... 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::a_create_running_at_shutdown_finishes_before_shutdown_returns ... ok
test tests::shutdown::shutdown_finishes_when_history_writes_keep_failing ... ok
test tests::shutdown::shutdown_many_full_history_rooms_12 ... ok
test tests::event_visibility::save_outside_retry ... ok
test tests::storm::outside_rewrites_during_a_storm_all_land ... 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::undo_guard::acknowledged_edits_survive_random_job_undo ... ok
test tests::undo_guard::adding_an_attachment_keeps_the_note_and_attachment_when_creation_is_undone ... 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::ordinary_creation_keeps_later_job_history_when_its_text_was_undone ... ok
test tests::undo_guard::outside_daily_edit_after_final_undo_check_is_kept ... ok
test tests::undo_guard::undo_keeps_prose_in_a_daily_placeholder_before_capture ... ok
test tests::trash::a_crash_mid_delete_finishes_on_restart_exactly_once ... ok
test tests::unloading::a_connected_client_keeps_it ... ok
test tests::tags::a_crash_mid_rename_resumes_and_renames_each_tag_once ... 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::unloading::an_open_note_keeps_it ... 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 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::writers::every_writer_at_once_with_the_watcher ... 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. 442 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 32.86s

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

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 stats::tests::summary_max_is_the_largest_observed_sample_across_runs ... 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 live::tests::frames_round_trip_and_keystrokes_stay_whole ... 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-3efde68cedf07084)

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-91e78e9d5ddfcf11)

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-35cb822d946dffee)

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-a9775857045769df)

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-ceebd1be05f6cd00)

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::bad_keys_and_big_values_get_friendly_errors ... ok
test tests::people_do_not_share_preferences ... ok
test tests::quick_saves_from_two_devices_all_land ... ok
test tests::set_then_get_and_survive_a_restart ... ok
test tests::saving_the_same_value_again_is_quiet ... 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.05s

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

running 13 tests
test fuzzy::tests::common_typos_are_fixed ... ok
test fuzzy::tests::distance_counts_swaps_as_one ... ok
test query::tests::dates_cover_whole_periods ... ok
test query::tests::lone_symbols_are_ignored ... ok
test read::tests::block_ids_are_found ... ok
test query::tests::words_filters_and_phrases ... ok
test read::tests::renumbering_shifts_placeholders ... ok
test read::tests::excerpts_mark_matches_in_context ... ok
test text::tests::bigrams_cover_unspaced_scripts ... ok
test read::tests::text_matches_like_the_index ... 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-f1ae05cff7a3557f)

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 a_restart_heals_whatever_was_missed ... 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 filters_by_tag_kind_and_date ... ok
test searches_answer_while_indexing_runs ... ok
test prefixes_and_typos_are_forgiven ... ok
test results_show_why_they_matched_and_where ... 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.63s

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

running 12 tests
test live::tests::room_join_metadata_has_explicit_byte_bounds ... ok
test rooms::tests::a_message_in_numbered_pieces_arrives_whole ... ok
test rooms::tests::assembly_is_bounded_per_connection_and_globally_and_expiry_releases_it ... 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-ca7acf075008074d)

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-cc46aafebbc778ff)

running 6 tests
test health_answers_without_signing_in ... ok
test a_stranger_token_asks_for_a_refresh ... ok
test signed_out_calls_get_a_friendly_refusal ... ok
test errors_carry_codes_not_internals ... 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.04s

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

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.04s

     Running tests/web.rs (target/debug/deps/web-408c23d2ae584fd0)

running 3 tests
test caching_and_security_headers_follow_what_each_file_is ... ok
test files_deep_links_and_the_api_live_side_by_side ... ok
test precompressed_files_are_sent_as_they_are_to_whoever_accepts_them ... 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-af64ee4096e5f5fe)

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-f0770510ad3cae57)

running 41 tests
test create_tests::create_ack_can_be_undone_immediately_and_reuses_daily_placeholder ... ok
test create_tests::concurrent_creates_name_clash_and_new_daily_undo ... ok
test create_tests::daily_uses_device_offset_and_invalid_slots_write_nothing ... ok
test create_tests::description_heading_keeps_the_given_task_title ... ok
test create_tests::only_links_are_reduced_in_the_note_title ... ok
test create_tests::create_and_undo_restore_daily_bytes_and_remove_task ... ok
test create_tests::opening_today_then_creating_tasks_scopes_keys_and_retries ... ok
test create_tests::undo_new_daily_capture_keeps_later_prose_and_removes_its_lines ... 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::repeated_create_undo_recreates_daily_with_retained_history ... 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::create_isolation_and_idempotent_retry ... ok
test tests::lists_groups_and_counts ... ok
test tests::kill_9_during_field_writes_loses_nothing_acknowledged ... ok
test create_tests::create_and_undo_one_mb_daily ... ok
test tests::rebuild_gives_the_same_rows ... ok
test tests::review_broken_frontmatter_refuses_update ... ok
test tests::outside_edits_reach_the_lists ... 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::untracked_is_open_checkboxes_that_are_not_tasks ... ok
test tests::update_changes_only_its_keys_and_lists_follow_at_once ... ok
test update::tests::checks_values ... ok
test update::tests::null_and_missing_differ ... ok
test tests::order::sql_and_rust_sort_the_same ... ok
test tests::a_cold_fill_gives_the_same_rows_as_the_usual_way ... ok
test tests::review_live_list_has_consistent_rows_and_counts ... ok

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

     Running unittests src/lib.rs (target/debug/deps/calternal_testkit-52ce41c8a23b264d)

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


web-check
$ node scripts/action-types.mjs --check && svelte-check --tsconfig ./tsconfig.json
Loading svelte-check in workspace: /home/agent/wt/train-bm3/apps/web
Getting Svelte diagnostics...

/home/agent/wt/train-bm3/apps/web/../../packages/ui/src/primitives/toast/ToastCapsule.svelte:19:54
Warn: This reference only captures the initial value of `id`. Did you mean to reference it inside a derived instead?
https://svelte.dev/e/state_referenced_locally (svelte)
  // Keep the last thing it said while it leaves (the view is gone by then).
  let last = $state<ToastView | undefined>(views.get(id));
  $effect(() => {

/home/agent/wt/train-bm3/apps/web/src/components/NoteList.svelte:126:15
Warn: 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 (svelte)
  // is then the window's scroll less where this box starts, and the view is the window.
  const doc = phone && phoneDocScroll();
  $effect(() => {

/home/agent/wt/train-bm3/apps/web/../../packages/ui/src/components/Morph.svelte:82:18
Warn: 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 (svelte)
  // stiffness 400, damping 36, no bounce). `lastRole` is still the old one while the new layer is made.
  let lastRole = role;
  const sheetSwap = () => role === "dialog" || lastRole === "dialog";

/home/agent/wt/train-bm3/apps/web/../../packages/ui/src/components/Morph.svelte:84:25
Warn: 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 (svelte)
  const sheetSwap = () => role === "dialog" || lastRole === "dialog";
  let sheetish = $state(role === "dialog");
  let sheetTimer = 0;

/home/agent/wt/train-bm3/apps/web/src/components/Settings.svelte:601:3
Warn: Unused CSS selector ".seg.wide button"
https://svelte.dev/e/css_unused_selector (svelte)
  }
  .seg.wide button {
    flex: 1;

/home/agent/wt/train-bm3/apps/web/src/components/Settings.svelte:604:3
Warn: Unused CSS selector ".phone .seg.wide button"
https://svelte.dev/e/css_unused_selector (svelte)
  }
  .phone .seg.wide button {
    padding: 0 6px;

/home/agent/wt/train-bm3/apps/web/src/components/Settings.svelte:754:3
Warn: Unused CSS selector ".toggle input"
https://svelte.dev/e/css_unused_selector (svelte)
  }
  .toggle input {
    appearance: none;

/home/agent/wt/train-bm3/apps/web/src/components/Settings.svelte:764:3
Warn: Unused CSS selector ".toggle input::after"
https://svelte.dev/e/css_unused_selector (svelte)
  }
  .toggle input::after {
    content: "";

/home/agent/wt/train-bm3/apps/web/src/components/Settings.svelte:776:3
Warn: Unused CSS selector ".toggle input:checked"
https://svelte.dev/e/css_unused_selector (svelte)
  }
  .toggle input:checked {
    background: var(--accent);

/home/agent/wt/train-bm3/apps/web/src/components/Settings.svelte:779:3
Warn: Unused CSS selector ".toggle input:checked::after"
https://svelte.dev/e/css_unused_selector (svelte)
  }
  .toggle input:checked::after {
    translate: 16px 0;

/home/agent/wt/train-bm3/apps/web/src/components/Inspector.svelte:19:8
Warn: 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 (svelte)
  const why = (_t: BlockType) => undefined as string | undefined;
  void noteId;

/home/agent/wt/train-bm3/apps/web/src/components/InsertSheet.svelte:42:8
Warn: 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 (svelte)
  }
  void noteId;

/home/agent/wt/train-bm3/apps/web/src/components/InfoSheet.svelte:383:3
Warn: Unused CSS selector ".avatar.agent"
https://svelte.dev/e/css_unused_selector (svelte)
  }
  .avatar.agent {
    background: var(--hover);

/home/agent/wt/train-bm3/apps/web/src/App.svelte:193:5
Warn: Unused CSS selector ".toast"
https://svelte.dev/e/css_unused_selector (svelte)
  @media (prefers-reduced-motion: no-preference) {
    .toast {
      animation: toast-in 240ms var(--ease-out) backwards;

====================================
svelte-check found 0 errors and 14 warnings in 8 files

web-lint
$ node --experimental-strip-types --test scripts/test/*.test.mjs && node scripts/filter-motion.mjs
TAP version 13
# Subtest: the unset binary defaults to the built executable and reaches workers
ok 1 - the unset binary defaults to the built executable and reaches workers
  ---
  duration_ms: 0.709211
  type: 'test'
  ...
# Subtest: an explicit executable is preserved and a missing or non-executable binary fails loudly
ok 2 - an explicit executable is preserved and a missing or non-executable binary fails loudly
  ---
  duration_ms: 0.479918
  type: 'test'
  ...
# Subtest: identity operations keep their ordered list, ignoring nested arguments
ok 3 - identity operations keep their ordered list, ignoring nested arguments
  ---
  duration_ms: 2.300884
  type: 'test'
  ...
# Subtest: state selectors across files cannot restore none
ok 4 - state selectors across files cannot restore none
  ---
  duration_ms: 0.433419
  type: 'test'
  ...
# Subtest: rejects explicit and implicit none and changing function order in transitions
ok 5 - rejects explicit and implicit none and changing function order in transitions
  ---
  duration_ms: 0.955046
  type: 'test'
  ...
# Subtest: static none and unrelated child filters are allowed
ok 6 - static none and unrelated child filters are allowed
  ---
  duration_ms: 0.112167
  type: 'test'
  ...
# Subtest: CSS keyframes require two explicit endpoints and identical lists
ok 7 - CSS keyframes require two explicit endpoints and identical lists
  ---
  duration_ms: 0.727794
  type: 'test'
  ...
# Subtest: WAAPI array frames keep the same list and explicit endpoints
ok 8 - WAAPI array frames keep the same list and explicit endpoints
  ---
  duration_ms: 3.720264
  type: 'test'
  ...
# Subtest: Svelte CSS and inline conditional filters are checked
ok 9 - Svelte CSS and inline conditional filters are checked
  ---
  duration_ms: 0.167167
  type: 'test'
  ...
# Subtest: WAAPI property-indexed keyframes cannot mix function lists
ok 10 - WAAPI property-indexed keyframes cannot mix function lists
  ---
  duration_ms: 0.275543
  type: 'test'
  ...
# Subtest: a selector using filter keyframes must also have a matching resting list
ok 11 - a selector using filter keyframes must also have a matching resting list
  ---
  duration_ms: 0.510419
  type: 'test'
  ...
# Subtest: inline Svelte style directives cannot switch to none
ok 12 - inline Svelte style directives cannot switch to none
  ---
  duration_ms: 0.231251
  type: 'test'
  ...
# Subtest: whole-value custom properties cannot conceal changing filter lists
ok 13 - whole-value custom properties cannot conceal changing filter lists
  ---
  duration_ms: 0.265501
  type: 'test'
  ...
# Subtest: JS style assignments and setProperty cannot restore none
ok 14 - JS style assignments and setProperty cannot restore none
  ---
  duration_ms: 0.56046
  type: 'test'
  ...
# Subtest: WAAPI cannot synthesize a none endpoint outside explicit offsets
ok 15 - WAAPI cannot synthesize a none endpoint outside explicit offsets
  ---
  duration_ms: 0.381543
  type: 'test'
  ...
# Subtest: duplicate declarations cannot conceal none in a keyframe
ok 16 - duplicate declarations cannot conceal none in a keyframe
  ---
  duration_ms: 0.081626
  type: 'test'
  ...
# Subtest: Svelte generated transition CSS cannot switch to none
ok 17 - Svelte generated transition CSS cannot switch to none
  ---
  duration_ms: 0.763128
  type: 'test'
  ...
1..17
# tests 17
# suites 0
# pass 17
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 248.548936
Filter motion: 438 source files checked; stable function lists.

web-unit
$ vitest run

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


 Test Files  3 passed (3)
      Tests  77 passed (77)
   Start at  12:07:34
   Duration  151ms (transform 65%, tests 21%, import 12%, worker 2%)


editor-check
$ tsc --noEmit

editor-unit
$ vitest run

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


 Test Files  37 passed (37)
      Tests  300 passed (300)
   Start at  12:07:34
   Duration  12.14s (tests 86%, environment 8%, transform 3%, import 2%, setup 1%)


primitives-unit
$ vitest run --config src/primitives/vitest.config.ts
12:07:47 PM [vite-plugin-svelte] no Svelte config found at /home/agent/wt/train-bm3/packages/ui - using default configuration.

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


 Test Files  7 passed (7)
      Tests  38 passed (38)
   Start at  12:07:47
   Duration  260ms (transform 81%, import 11%, tests 7%, worker 2%)


bundle
(!) Your Vite config uses features that are unsupported by `configLoader: 'native'`, which is planned to become the default in a future major version of Vite:
  - import "./scripts/lazy-ui-plugin" without a file extension (vite.config.ts:3:29). Add the file extension
  - import "./scripts/precompress-plugin" without a file extension (vite.config.ts:4:29). Add the file extension
  - import "./scripts/sw-plugin" without a file extension (vite.config.ts:5:31). Add the file extension
  - import "../src/lib/chunk-retry" without a file extension (scripts/lazy-ui-plugin.ts:2:33). Add the file extension
Set `VITE_CONFIG_NATIVE_IGNORE_WARNING=true` to suppress this warning.
12:07:47 PM [vite-plugin-svelte] src/App.svelte:193:4 Unused CSS selector ".toast"
https://svelte.dev/e/css_unused_selector
191:   }
192:   @media (prefers-reduced-motion: no-preference) {
193:     .toast {
               ^
194:       animation: toast-in 240ms var(--ease-out) backwards;
195:     }
12:07:47 PM [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:   }
12:07:47 PM [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));
12:07:47 PM [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;
12:07:47 PM [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;
12:07:47 PM [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:   }
12:07:47 PM [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:   }
12:07:48 PM [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) {
12:07:48 PM [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) {
12:07:48 PM [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);
12:07:48 PM [vite-plugin-svelte] /home/agent/wt/train-bm3/packages/ui/src/primitives/toast/ToastCapsule.svelte:19:53 This reference only captures the initial value of `id`. Did you mean to reference it inside a derived instead?
https://svelte.dev/e/state_referenced_locally
17: 
18:   // Keep the last thing it said while it leaves (the view is gone by then).
19:   let last = $state<ToastView | undefined>(views.get(id));
                                                           ^
20:   $effect(() => {
21:     const v = views.get(id);
12:07:48 PM [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;
12:07:48 PM [vite-plugin-svelte] /home/agent/wt/train-bm3/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");
12:07:48 PM [vite-plugin-svelte] /home/agent/wt/train-bm3/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.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 | 42.9 | 42.9 | 42.9 |  |  |
| `web.bundle.plugins_js_raw` | - | KB | 1 | 135 | 135 | 135 |  |  |


No merge or deployment. Only train/2026-10-30-bm3 is pushed. Task-owned target/cache cleanup and heartbeat shutdown are recorded in local evidence. Host 02 was unreachable and could not be cleaned; this task created no files there.

Diagnostic exit output (verbatim)

repro-A-1-1 exit 0: throttled-390 editor.spec.ts:59 no layout shift while loading, typing or switching modes (cpu ×6) @throttled
repro-A-1-2 exit 0: throttled-390 editor.spec.ts:59 no layout shift while loading, typing or switching modes (cpu ×6) @throttled
repro-A-1-3 exit 0: throttled-390 editor.spec.ts:59 no layout shift while loading, typing or switching modes (cpu ×6) @throttled
bisect-d83e54db-1 exit 0
bisect-d83e54db-2 exit 0
bisect-d83e54db-3 exit 0
bisect-87b8dc4e-1 exit 0
bisect-87b8dc4e-2 exit 0
bisect-87b8dc4e-3 exit 0
bisect-af668240-1 exit 0
bisect-af668240-2 exit 0
bisect-af668240-3 exit 0
bisect-f95610c3-1 exit 0
bisect-f95610c3-2 exit 0
bisect-f95610c3-3 exit 0
Final-head release build (verbatim)
   Compiling proc-macro2 v1.0.107
   Compiling unicode-ident v1.0.27
   Compiling quote v1.0.47
   Compiling libc v0.2.190
   Compiling cfg-if v1.0.5
   Compiling log v0.4.34
   Compiling shlex v2.0.1
   Compiling find-msvc-tools v0.1.14
   Compiling itoa v1.0.18
   Compiling pin-project-lite v0.2.17
   Compiling syn v3.0.9
   Compiling syn v2.0.119
   Compiling smallvec v1.16.3
   Compiling cc v1.8.0
   Compiling serde_core v1.0.229
   Compiling memchr v2.8.3
   Compiling bytes v1.12.1
   Compiling once_cell v1.21.4
   Compiling serde v1.0.229
   Compiling serde_derive v1.0.229
   Compiling parking_lot_core v0.9.12
   Compiling scopeguard v1.2.0
   Compiling lock_api v0.4.14
   Compiling tracing-core v0.1.36
   Compiling pkg-config v0.3.34
   Compiling vcpkg v0.2.15
   Compiling bitflags v2.13.2
   Compiling zmij v1.0.23
   Compiling tracing-attributes v0.1.31
   Compiling mio v1.2.4
   Compiling errno v0.3.14
   Compiling serde_json v1.0.154
   Compiling signal-hook-registry v1.4.8
   Compiling tracing v0.1.44
   Compiling parking_lot v0.12.5
   Compiling tokio-macros v2.7.2
   Compiling socket2 v0.6.5
   Compiling getrandom v0.4.3
   Compiling tokio v1.53.2
   Compiling typenum v1.20.1
   Compiling synstructure v0.14.0
   Compiling thiserror v2.0.21
   Compiling uuid v1.28.0
   Compiling thiserror-impl v2.0.21
   Compiling zerofrom-derive v0.1.8
   Compiling displaydoc v0.2.7
   Compiling yoke-derive v0.8.4
   Compiling zerofrom v0.1.8
   Compiling ref-cast v1.0.27
   Compiling stable_deref_trait v1.2.1
   Compiling ref-cast-impl v1.0.27
   Compiling serde_derive_internals v0.30.0
   Compiling foldhash v0.2.0
   Compiling zerocopy v0.8.62
   Compiling hashbrown v0.17.1
   Compiling yoke v0.8.3
   Compiling schemars_derive v1.2.3
   Compiling http v1.5.0
   Compiling zerovec-derive v0.11.6
   Compiling zerocopy-derive v0.8.62
   Compiling num-conv v0.2.2
   Compiling dyn-clone v1.0.20
   Compiling time-core v0.1.9
   Compiling rustversion v1.0.23
   Compiling schemars v1.2.3
   Compiling time-macros v0.2.32
   Compiling zerovec v0.11.8
   Compiling libsqlite3-sys v0.38.2
   Compiling version_check v0.9.5
   Compiling futures-core v0.3.34
   Compiling deranged v0.5.9
   Compiling powerfmt v0.2.1
   Compiling percent-encoding v2.3.2
   Compiling getrandom v0.3.4
   Compiling time v0.3.55
   Compiling generic-array v0.14.7
   Compiling blake3 v1.8.7
   Compiling rustix v1.1.5
   Compiling httparse v1.10.1
   Compiling tinyvec v1.13.3
   Compiling unicode-normalization v0.1.25
   Compiling arc-swap v1.9.2
   Compiling hashlink v0.12.2
   Compiling autocfg v1.5.1
   Compiling fallible-iterator v0.3.0
   Compiling linux-raw-sys v0.12.1
   Compiling constant_time_eq v0.4.2
   Compiling fallible-streaming-iterator v0.1.9
   Compiling arrayvec v0.7.8
   Compiling rusqlite v0.40.2
   Compiling calternal-core v0.1.0 (/home/agent/wt/train-bm3/crates/core)
   Compiling num-traits v0.2.19
   Compiling rand_core v0.9.5
   Compiling tinystr v0.8.4
   Compiling ppv-lite86 v0.2.21
   Compiling unicase v2.10.0
   Compiling crc32fast v1.5.2
   Compiling writeable v0.6.4
   Compiling ryu v1.0.23
   Compiling litemap v0.8.3
   Compiling icu_locale_core v2.3.0
   Compiling rand_chacha v0.9.0
   Compiling calternal-fsio v0.1.0 (/home/agent/wt/train-bm3/crates/fsio)
   Compiling form_urlencoded v1.2.2
   Compiling potential_utf v0.1.6
   Compiling http-body v1.1.0
   Compiling zerotrie v0.2.5
   Compiling openssl-sys v0.9.117
   Compiling icu_normalizer_data v2.3.0
   Compiling futures-sink v0.3.34
   Compiling utf8_iter v1.0.4
   Compiling base64 v0.22.1
   Compiling data-encoding v2.11.1
   Compiling simd-adler32 v0.3.10
   Compiling icu_properties_data v2.3.0
   Compiling alloc-no-stdlib v3.0.0
   Compiling adler2 v2.0.1
   Compiling miniz_oxide v0.9.1
   Compiling alloc-stdlib v0.3.0
   Compiling icu_collections v2.3.0
   Compiling icu_provider v2.3.1
   Compiling rand v0.9.5
   Compiling block-buffer v0.10.4
   Compiling crypto-common v0.1.7
   Compiling calternal-memory v0.1.0 (/home/agent/wt/train-bm3/crates/memory)
   Compiling slab v0.4.12
   Compiling minimal-lexical v0.2.1
   Compiling tower-service v0.3.3
   Compiling thiserror v1.0.69
   Compiling futures-task v0.3.34
   Compiling futures-util v0.3.34
   Compiling nom v7.1.3
   Compiling digest v0.10.7
   Compiling flate2 v1.1.10
   Compiling brotli-decompressor v6.0.1
   Compiling hybrid-array v0.4.15
   Compiling thiserror-impl v1.0.69
   Compiling synstructure v0.13.2
   Compiling cpufeatures v0.2.17
   Compiling tower-layer v0.3.3
   Compiling mime v0.3.17
   Compiling httpdate v1.0.3
   Compiling crossbeam-utils v0.8.23
   Compiling parking v2.2.1
   Compiling inotify-sys v0.1.8
   Compiling event-listener v5.4.2
   Compiling mime_guess v2.0.5
   Compiling sha1 v0.10.7
   Compiling asn1-rs-derive v0.5.1
   Compiling brotli v9.0.0
   Compiling icu_properties v2.3.0
   Compiling icu_normalizer v2.3.0
   Compiling rusticata-macros v4.1.0
   Compiling http-body-util v0.1.5
   Compiling asn1-rs-impl v0.2.0
   Compiling ring v0.17.14
   Compiling atomic-waker v1.1.2
   Compiling sync_wrapper v1.0.2
   Compiling compression-core v0.4.33
   Compiling compression-codecs v0.4.45
   Compiling hyper v1.12.0
   Compiling idna_adapter v1.2.2
   Compiling asn1-rs v0.6.2
   Compiling tungstenite v0.29.0
   Compiling event-listener-strategy v0.5.4
   Compiling block-buffer v0.12.1
   Compiling crypto-common v0.2.2
   Compiling num-integer v0.1.47
   Compiling calternal-store v0.1.0 (/home/agent/wt/train-bm3/crates/store)
   Compiling base64 v0.21.7
   Compiling pastey v0.1.1
   Compiling equivalent v1.0.2
   Compiling notify v9.0.0-rc.5
   Compiling const-oid v0.10.2
   Compiling hashbrown v0.14.5
   Compiling foreign-types-shared v0.1.1
   Compiling pulldown-cmark v0.13.4
   Compiling zeroize v1.9.1
   Compiling lazy_static v1.5.1
   Compiling openssl v0.10.81
   Compiling oid-registry v0.7.1
   Compiling same-file v1.0.6
   Compiling walkdir v2.5.0
   Compiling tokio-tungstenite v0.29.0
   Compiling calternal-engine v0.1.0 (/home/agent/wt/train-bm3/crates/engine)
   Compiling rustls-pki-types v1.15.1
   Compiling foreign-types v0.3.2
   Compiling dashmap v6.2.1
   Compiling digest v0.11.3
   Compiling indexmap v2.14.2
   Compiling base64urlsafedata v0.5.5
   Compiling num-bigint v0.4.8
   Compiling inotify v0.11.5
   Compiling async-lock v3.4.2
   Compiling idna v1.1.0
   Compiling hyper-util v0.1.21
   Compiling async-compression v0.4.50
   Compiling tower v0.5.3
   Compiling axum-core v0.5.6
   Compiling tokio-util v0.7.20
   Compiling serde_urlencoded v0.7.1
   Compiling serde_path_to_error v0.1.20
   Compiling notify-types v2.1.0
   Compiling async-trait v0.1.92
   Compiling openssl-macros v0.1.1
   Compiling smallstr v0.3.1
   Compiling cpufeatures v0.3.1
   Compiling getrandom v0.2.17
   Compiling fastrand v2.5.0
   Compiling unsafe-libyaml v0.2.11
   Compiling xxhash-rust v0.8.19
   Compiling untrusted v0.9.0
   Compiling matchit v0.8.4
   Compiling http-range-header v0.4.2
   Compiling webauthn-attestation-ca v0.5.5
   Compiling axum v0.8.9
   Compiling yrs v0.28.0
   Compiling tower-http v0.6.11
   Compiling serde_yaml v0.9.34+deprecated
   Compiling sha2 v0.11.1
   Compiling url v2.5.8
   Compiling der-parser v9.0.0
   Compiling half v2.7.1
   Compiling unicode-segmentation v1.13.3
   Compiling base64 v0.23.1
   Compiling webauthn-rs-core v0.5.5
   Compiling hashbrown v0.16.1
   Compiling rustls v0.23.46
   Compiling similar v3.2.0
   Compiling x509-parser v0.16.0
   Compiling serde_cbor_2 v0.13.0
   Compiling webauthn-rs-proto v0.5.5
   Compiling calternal-server v0.1.0 (/home/agent/wt/train-bm3/crates/server)
   Compiling calternal-notes v0.1.0 (/home/agent/wt/train-bm3/crates/notes)
   Compiling rustls-webpki v0.103.15
   Compiling unicode-general-category v0.6.0
   Compiling hex v0.4.3
   Compiling subtle v2.6.1
   Compiling web-time v1.1.0
   Compiling fnv v1.0.7
   Compiling regex-syntax v0.8.11
   Compiling regex-automata v0.4.18
   Compiling cfb v0.14.0
   Compiling ureq-proto v0.6.4
   Compiling webpki-roots v1.0.9
   Compiling unicode-script v0.5.8
   Compiling utf8-zero v0.8.1
   Compiling imagesize v0.14.0
   Compiling ureq v3.4.2
   Compiling unicode-security v0.1.2
   Compiling infer v0.22.0
   Compiling matchers v0.2.0
   Compiling sharded-slab v0.1.7
   Compiling calternal-contacts v0.1.0 (/home/agent/wt/train-bm3/crates/contacts)
   Compiling webauthn-rs v0.5.5
   Compiling tracing-log v0.2.0
   Compiling thread_local v1.1.10
   Compiling nu-ansi-term v0.50.3
   Compiling unicode-casefold v0.2.0
   Compiling calternal-auth v0.1.0 (/home/agent/wt/train-bm3/crates/auth)
   Compiling tracing-subscriber v0.3.23
   Compiling calternal-attachments v0.1.0 (/home/agent/wt/train-bm3/crates/attachments)
   Compiling calternal-backdrops v0.1.0 (/home/agent/wt/train-bm3/crates/backdrops)
   Compiling calternal-search v0.1.0 (/home/agent/wt/train-bm3/crates/search)
   Compiling calternal-migrate-v0 v0.1.0 (/home/agent/wt/train-bm3/crates/migrate-v0)
   Compiling calternal-prefs v0.1.0 (/home/agent/wt/train-bm3/crates/prefs)
   Compiling calternal-plugin-hello v0.1.0 (/home/agent/wt/train-bm3/crates/plugin-hello)
   Compiling calternal-daily v0.1.0 (/home/agent/wt/train-bm3/crates/daily)
   Compiling calternal-contacts-actions v0.1.0 (/home/agent/wt/train-bm3/crates/contacts-actions)
   Compiling calternal-tasks v0.1.0 (/home/agent/wt/train-bm3/crates/tasks)
   Compiling calternal v0.1.0 (/home/agent/wt/train-bm3/crates/calternal)
    Finished `release` profile [optimized] target(s) in 1m 48s

Train BM3 ships BM2’s accepted inputs without #759 private storage staging. #759 returns for a redesign because of indefinite retention after SIGKILL, inherited-descriptor races, and the disclosed upload-throughput cost of its latest fix. Base: `d83e54dbe571b625504001a8b6add90d44ca6161`. Final head: `14bd77f0b9f5da7ad6de41c3b159be74db55507a`. Inputs: #763 `fix/flaky-sweep` (`628a7dd8`), `port/mockup-values` (`04a69711`), `port/composer` (`10659f25`). Palette merge resolution matches BM2's UI-only resolution at `d5000d47`; retains `var(--r-sheet)` with the Composer layout. Independent BM2 picks: - `09982195`: partial cherry-pick of `84cb1a4e`, selecting only toast ResizeObserver/fit timing, auth v2→v3 `created_at,rowid` tie ordering plus regression test, and shared CALTERNAL_BIN executable resolver plus unit tests/config/fixture wiring. Toast is shared UI code unchanged by #759; auth migration acts only on auth SQLite data; resolver acts only on E2E executable discovery. No private staging interfaces are used. - `14bd77f0`: cherry-pick of `3cf6ac56`; resolver unit tests use a scoped filesystem mock so lint does not require a Rust binary. No storage code. - `9041b509` was attempted and omitted: cherry-pick conflicts in `crates/fsio/src/beneath.rs` because its context includes #759's `register_home`. No conflict was forced or adapted. The conflict is retained in local evidence. Excluded: #759, all inherited-descriptor lease/guard fixes, RecordedFile append-intent, PreparedDirectory changes, #759's added sweep regression, `ca5b59c4`, `1ee44c4b`. `crates/fsio` and the existing contacts sweep tests exactly match Composer input `10659f25`. BM2 log `d83e54db..1ee44c4b` and #770 reports 70275 and 70298 were read to establish this selection. Lease: `054fd612585b46e5a917401745853456`. Host 02 was unreachable through both supplied DNS and NetBird IP (SSH connection timeout), so both browser halves ran sequentially on 10by32-01-std, as authorized. Host 02 was neither built on nor modified; its heartbeat could not be started. Heartbeat disclosure: the initial nohup loop was cleaned up with its tool session (file timestamp 12:04:13). This was discovered during half A at 12:32 and restored under user systemd at 12:32:14; later timestamps confirmed continued refreshes. This is a lease-heartbeat gap, not continuous coverage. Host 01 exports `CALTERNAL_BIN=/home/agent/wt/train-bm3/target/release/calternal` before commands; the release executable is checked with `test -x` before Playwright. Heavy commands use `CALTERNAL_TRAIN=1 /usr/local/bin/build-slot.sh`. Browser split uses a temporary wrapper around the unchanged repository config. Each project keeps its cases, assertions, one app worker, and zero retries. Dependency edges to projects assigned to the other half are removed. In the sequential fallback, E2E environment and admin account/session from half A are retained for half B; the admin server restarts without the setup script's destructive reset. The full primitives CI matrix runs with CI=true, including the existing WebKit toast exclusion. No repository tests were weakened. ## First-run failure and attribution **All non-browser gates pass. The complete Playwright first run is NOT all green:** half A has one failed case, half B and primitives pass. The failed case is `throttled-390` → `editor.spec.ts:59` → “no layout shift while loading, typing or switching modes (cpu ×6) @throttled”. It observed a CodeMirror content layout shift of 0.03528868939117755 at about 2188 ms, with several lines moving one line height (33.1875 px). The unchanged assertion at line 104 requires no content shifts; it was not weakened. Only that failed case was rerun three times, with one worker, zero retries and no dependency projects. All three passed (one selected case per invocation). Classification: **intermittent/flaky**, not reproducible on every attempt. These reruns do not replace the first-run failure. Merge-stage attribution used the unchanged failed case three times on dev, then each successive input merge. Each stage built its own matching release server and frontend, used fresh browser harness environment, one worker and no retries. Every attempt passed. Thus this matrix does **not** attribute the intermittent failure to a train input and does **not** prove it pre-existed. No speculative product fix or test change was made because a local train-input cause was not established. | Revision | Stage | Attempt 1 | Attempt 2 | Attempt 3 | |---|---|---|---|---| | `14bd77f0` | Final head, failure-only reruns | PASS | PASS | PASS | | `d83e54db` | dev baseline | PASS | PASS | PASS | | `87b8dc4e` | merge #763 | PASS | PASS | PASS | | `af668240` | merge mockup values | PASS | PASS | PASS | | `f95610c3` | merge Composer | PASS | PASS | PASS | Full first-run results remain in the per-project table below. There was no second full-suite run and no hidden retry. ## Verification Commands: `cargo fmt --all --check`; `cargo clippy --workspace --all-targets --locked -- -D warnings`; `cargo test --workspace --locked --no-fail-fast -- --test-threads=4`; web `check`, `lint`, `test`; editor `check`, `test`; UI `test:primitives`; `perf/web.sh --bundle-only --gate`. Bundle results: first JS 239 KB brotli (≤240), all JS 312 KB brotli (≤315). Existing configured ignored/skipped cases are disclosed in raw output and the table. All listed gates ran on final head `14bd77f0b9f5da7ad6de41c3b159be74db55507a`. ```text fmt exit 0 clippy exit 0 web-check exit 0 web-lint exit 0 web-unit exit 0 editor-check exit 0 editor-unit exit 0 primitives-unit exit 0 bundle exit 0 rust-tests exit 0 primitives exit 0 half-A exit 1 half-B exit 0 ``` ## Playwright first-run results Half A SHA: `14bd77f0b9f5da7ad6de41c3b159be74db55507a`. Half B SHA: `14bd77f0b9f5da7ad6de41c3b159be74db55507a`. Both halves ran on 10by32-01-std using the authorized sequential fallback. | Half | Project | Passed | Failed | Skipped | Not run | Verdict | |---|---|---:|---:|---:|---:|---| | A | chromium-1440 | 385 | 0 | 586 | 0 | PASS | | A | chromium-390 | 820 | 0 | 151 | 0 | PASS | | A | throttled-1440 | 2 | 0 | 0 | 0 | PASS | | A | throttled-390 | 1 | 1 | 0 | 0 | FAIL | | A | admin-chromium-1440 | 12 | 0 | 9 | 0 | PASS | | A | admin-chromium-390 | 12 | 0 | 9 | 0 | PASS | | A | flow | 1 | 0 | 0 | 0 | PASS | | A | passkeys | 1 | 0 | 0 | 0 | PASS | | A | admin-setup | 1 | 0 | 0 | 0 | PASS | | A | prefs-chromium | 7 | 0 | 0 | 0 | PASS | | A | contrast | 9 | 0 | 0 | 0 | PASS | | A | sidebar-band-chromium | 3 | 0 | 0 | 0 | PASS | | A | sidebar-band-webkit | 3 | 0 | 0 | 0 | PASS | | B | webkit-1440 | 380 | 0 | 591 | 0 | PASS | | B | webkit-390 | 819 | 0 | 152 | 0 | PASS | | B | admin-webkit-1440 | 9 | 0 | 9 | 0 | PASS | | B | admin-webkit-390 | 9 | 0 | 9 | 0 | PASS | | B | prefs-webkit | 3 | 0 | 4 | 0 | PASS | | A / primitives | chromium | 48 | 0 | 0 | 0 | PASS | | A / primitives | webkit | 36 | 0 | 0 | 0 | PASS | ## Gate output (verbatim) <details><summary>fmt</summary> ```text ``` </details> <details><summary>clippy</summary> ```text Compiling proc-macro2 v1.0.107 Compiling unicode-ident v1.0.27 Compiling quote v1.0.47 Compiling libc v0.2.190 Checking cfg-if v1.0.5 Compiling serde_core v1.0.229 Compiling syn v3.0.9 Checking memchr v2.8.3 Checking itoa v1.0.18 Compiling syn v2.0.119 Compiling serde v1.0.229 Checking once_cell v1.21.4 Compiling serde_derive v1.0.229 Checking rand_core v0.10.1 Compiling getrandom v0.4.3 Checking pin-project-lite v0.2.17 Compiling zmij v1.0.23 Compiling serde_json v1.0.154 Checking log v0.4.34 Checking bitflags v2.13.2 Checking smallvec v1.16.3 Compiling find-msvc-tools v0.1.14 Compiling shlex v2.0.1 Compiling cc v1.8.0 Checking bytes v1.12.1 Compiling parking_lot_core v0.9.12 Checking scopeguard v1.2.0 Checking lock_api v0.4.14 Checking tracing-core v0.1.36 Checking mio v1.2.4 Compiling tracing-attributes v0.1.31 Checking errno v0.3.14 Checking signal-hook-registry v1.4.8 Checking parking_lot v0.12.5 Compiling tokio-macros v2.7.2 Checking socket2 v0.6.5 Checking tokio v1.53.2 Compiling pkg-config v0.3.34 Compiling vcpkg v0.2.15 Checking uuid v1.28.0 Compiling rustix v1.1.5 Checking linux-raw-sys v0.12.1 Compiling thiserror v2.0.21 Checking tracing v0.1.44 Compiling thiserror-impl v2.0.21 Compiling ref-cast v1.0.27 Compiling ref-cast-impl v1.0.27 Compiling serde_derive_internals v0.30.0 Compiling schemars_derive v1.2.3 Checking dyn-clone v1.0.20 Checking base64 v0.22.1 Checking typenum v1.20.1 Checking foldhash v0.2.0 Checking hashbrown v0.17.1 Compiling libsqlite3-sys v0.38.2 Compiling blake3 v1.8.7 Checking hashlink v0.12.2 Checking fallible-streaming-iterator v0.1.9 Checking fallible-iterator v0.3.0 Checking arrayvec v0.7.8 Checking constant_time_eq v0.4.2 Compiling rustversion v1.0.23 Checking schemars v1.2.3 Checking rusqlite v0.40.2 Checking tinyvec v1.13.3 Checking unicode-normalization v0.1.25 Checking calternal-core v0.1.0 (/home/agent/wt/train-bm3/crates/core) Checking chacha20 v0.10.2 Compiling time-core v0.1.9 Checking rand v0.10.3 Compiling autocfg v1.5.1 Compiling num-conv v0.2.2 Compiling num-traits v0.2.19 Compiling time-macros v0.2.32 Checking arc-swap v1.9.2 Checking calternal-store v0.1.0 (/home/agent/wt/train-bm3/crates/store) Checking calternal-fsio v0.1.0 (/home/agent/wt/train-bm3/crates/fsio) Checking calternal-memory v0.1.0 (/home/agent/wt/train-bm3/crates/memory) Checking deranged v0.5.9 Checking powerfmt v0.2.1 Checking unicase v2.10.0 Checking ryu v1.0.23 Checking calternal-engine v0.1.0 (/home/agent/wt/train-bm3/crates/engine) Checking hybrid-array v0.4.15 Checking futures-core v0.3.34 Checking crypto-common v0.2.2 Checking block-buffer v0.12.1 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 time v0.3.55 Compiling httparse v1.10.1 Checking futures-channel v0.3.34 Checking calternal-testkit v0.1.0 (/home/agent/wt/train-bm3/crates/testkit) Compiling futures-macro v0.3.34 Checking data-encoding v2.11.1 Checking futures-io v0.3.34 Checking futures-task v0.3.34 Checking fastrand v2.5.0 Checking slab v0.4.12 Checking regex-syntax v0.8.11 Compiling async-trait v0.1.92 Compiling zerocopy v0.8.62 Compiling zerocopy-derive v0.8.62 Checking futures-util v0.3.34 Checking percent-encoding v2.3.2 Compiling getrandom v0.3.4 Checking lazy_static v1.5.1 Compiling synstructure v0.14.0 Compiling version_check v0.9.5 Compiling generic-array v0.14.7 Checking rand_core v0.9.5 Compiling zerofrom-derive v0.1.8 Checking ppv-lite86 v0.2.21 Compiling displaydoc v0.2.7 Checking rand_chacha v0.9.0 Checking zerofrom v0.1.8 Compiling yoke-derive v0.8.4 Checking form_urlencoded v1.2.2 Checking stable_deref_trait v1.2.1 Compiling crc32fast v1.5.2 Checking rand v0.9.5 Checking http-body v1.1.0 Checking adler2 v2.0.1 Checking alloc-no-stdlib v3.0.0 Checking simd-adler32 v0.3.10 Checking miniz_oxide v0.9.1 Checking alloc-stdlib v0.3.0 Checking block-buffer v0.10.4 Checking crypto-common v0.1.7 Compiling zerovec-derive v0.11.6 Checking tower-service v0.3.3 Checking digest v0.10.7 Checking brotli-decompressor v6.0.1 Checking flate2 v1.1.10 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 yoke v0.8.3 Checking http-body-util v0.1.5 Checking tokio-util v0.7.20 Checking sha1 v0.11.0 Checking compression-core v0.4.33 Checking sync_wrapper v1.0.2 Checking atomic-waker v1.1.2 Checking compression-codecs v0.4.45 Checking zerovec v0.11.8 Checking hyper v1.12.0 Checking tungstenite v0.30.0 Checking tungstenite v0.29.0 Compiling crossbeam-utils v0.8.23 Checking parking v2.2.1 Compiling inotify-sys v0.1.8 Checking tokio-tungstenite v0.29.0 Checking event-listener v5.4.2 Checking tokio-tungstenite v0.30.0 Checking hyper-util v0.1.21 Checking tinystr v0.8.4 Checking async-compression v0.4.50 Checking axum-core v0.5.6 Checking tower v0.5.3 Checking serde_urlencoded v0.7.1 Compiling openssl-sys v0.9.117 Checking serde_path_to_error v0.1.20 Checking matchit v0.8.4 Checking litemap v0.8.3 Checking http-range-header v0.4.2 Checking writeable v0.6.4 Checking tower-http v0.6.11 Checking icu_locale_core v2.3.0 Checking axum v0.8.9 Checking event-listener-strategy v0.5.4 Checking potential_utf v0.1.6 Checking zerotrie v0.2.5 Checking equivalent v1.0.2 Compiling notify v9.0.0-rc.5 Compiling icu_properties_data v2.3.0 Checking same-file v1.0.6 Checking hashbrown v0.14.5 Compiling pulldown-cmark v0.13.4 Compiling icu_normalizer_data v2.3.0 Checking utf8_iter v1.0.4 Checking icu_collections v2.3.0 Checking dashmap v6.2.1 Checking walkdir v2.5.0 Checking indexmap v2.14.2 Checking icu_provider v2.3.1 Checking async-lock v3.4.2 Checking inotify v0.11.5 Checking smallstr v0.3.1 Checking notify-types v2.1.0 Checking unsafe-libyaml v0.2.11 Checking xxhash-rust v0.8.19 Checking minimal-lexical v0.2.1 Compiling thiserror v1.0.69 Checking nom v7.1.3 Checking calternal-server v0.1.0 (/home/agent/wt/train-bm3/crates/server) Checking serde_yaml v0.9.34+deprecated Checking yrs v0.28.0 Checking sha2 v0.11.1 Compiling thiserror-impl v1.0.69 Compiling synstructure v0.13.2 Checking hashbrown v0.16.1 Checking similar v3.2.0 Checking unicode-segmentation v1.13.3 Compiling asn1-rs-derive v0.5.1 Checking icu_normalizer v2.3.0 Checking icu_properties v2.3.0 Checking rusticata-macros v4.1.0 Compiling ring v0.17.14 Compiling asn1-rs-impl v0.2.0 Checking asn1-rs v0.6.2 Checking idna_adapter v1.2.2 Checking calternal-notes v0.1.0 (/home/agent/wt/train-bm3/crates/notes) Checking num-integer v0.1.47 Compiling openssl v0.10.81 Checking foreign-types-shared v0.1.1 Checking base64 v0.21.7 Checking zeroize v1.9.1 Compiling pastey v0.1.1 Compiling oid-registry v0.7.1 Checking rustls-pki-types v1.15.1 Checking foreign-types v0.3.2 Checking num-bigint v0.4.8 Checking base64urlsafedata v0.5.5 Checking idna v1.1.0 Compiling openssl-macros v0.1.1 Checking getrandom v0.2.17 Checking untrusted v0.9.0 Compiling webauthn-attestation-ca v0.5.5 Checking url v2.5.8 Checking der-parser v9.0.0 Checking half v2.7.1 Checking calternal-plugin-hello v0.1.0 (/home/agent/wt/train-bm3/crates/plugin-hello) Checking base64 v0.23.1 Compiling webauthn-rs-core v0.5.5 Compiling rustls v0.23.46 Checking x509-parser v0.16.0 Checking serde_cbor_2 v0.13.0 Checking webauthn-rs-proto v0.5.5 Checking rustls-webpki v0.103.15 Checking imagesize v0.14.0 Checking hex v0.4.3 Checking subtle v2.6.1 Checking web-time v1.1.0 Checking cfb v0.14.0 Checking ureq-proto v0.6.4 Checking webpki-roots v1.0.9 Compiling unicode-general-category v0.6.0 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 regex-automata v0.4.18 Checking wait-timeout v0.2.1 Checking unicode-casefold v0.2.0 Checking quick-error v1.2.3 Checking bit-vec v0.10.1 Checking rusty-fork v0.3.1 Checking bit-set v0.11.1 Checking matchers v0.2.0 Checking calternal-attachments v0.1.0 (/home/agent/wt/train-bm3/crates/attachments) Checking calternal-backdrops v0.1.0 (/home/agent/wt/train-bm3/crates/backdrops) Checking sharded-slab v0.1.7 Checking calternal-contacts v0.1.0 (/home/agent/wt/train-bm3/crates/contacts) Checking tracing-log v0.2.0 Checking rand_xorshift v0.5.0 Checking thread_local v1.1.10 Checking core_detect v1.0.0 Checking unarray v0.1.4 Checking nu-ansi-term v0.50.3 Checking proptest v1.12.0 Checking tracing-subscriber v0.3.23 Checking calternal-auth v0.1.0 (/home/agent/wt/train-bm3/crates/auth) Checking calternal-tasks v0.1.0 (/home/agent/wt/train-bm3/crates/tasks) Checking futures-executor v0.3.34 Compiling async-stream-impl v0.3.6 Compiling webauthn-authenticator-rs v0.5.5 Checking futures v0.3.34 Checking tokio-stream v0.1.19 Checking serde_bytes v0.11.19 Compiling num-derive v0.4.2 Checking bitflags v1.3.2 Checking calternal-search v0.1.0 (/home/agent/wt/train-bm3/crates/search) Checking async-stream v0.3.6 Checking calternal-contacts-actions v0.1.0 (/home/agent/wt/train-bm3/crates/contacts-actions) Checking calternal-daily v0.1.0 (/home/agent/wt/train-bm3/crates/daily) Checking calternal-migrate-v0 v0.1.0 (/home/agent/wt/train-bm3/crates/migrate-v0) Checking calternal-prefs v0.1.0 (/home/agent/wt/train-bm3/crates/prefs) Checking calternal-fixtures v0.1.0 (/home/agent/wt/train-bm3/crates/fixtures) Checking calternal v0.1.0 (/home/agent/wt/train-bm3/crates/calternal) Checking calternal-perf v0.1.0 (/home/agent/wt/train-bm3/crates/perf) Finished `dev` profile [unoptimized + debuginfo] target(s) in 20.88s ``` </details> <details><summary>rust-tests</summary> ```text Compiling cfg-if v1.0.5 Compiling libc v0.2.190 Compiling memchr v2.8.3 Compiling itoa v1.0.18 Compiling serde_core v1.0.229 Compiling once_cell v1.21.4 Compiling rand_core v0.10.1 Compiling pin-project-lite v0.2.17 Compiling log v0.4.34 Compiling getrandom v0.4.3 Compiling zmij v1.0.23 Compiling bitflags v2.13.2 Compiling smallvec v1.16.3 Compiling bytes v1.12.1 Compiling tracing-core v0.1.36 Compiling scopeguard v1.2.0 Compiling lock_api v0.4.14 Compiling parking_lot_core v0.9.12 Compiling tracing v0.1.44 Compiling mio v1.2.4 Compiling errno v0.3.14 Compiling parking_lot v0.12.5 Compiling signal-hook-registry v1.4.8 Compiling socket2 v0.6.5 Compiling linux-raw-sys v0.12.1 Compiling tokio v1.53.2 Compiling rustix v1.1.5 Compiling thiserror v2.0.21 Compiling ref-cast v1.0.27 Compiling dyn-clone v1.0.20 Compiling foldhash v0.2.0 Compiling base64 v0.22.1 Compiling hashbrown v0.17.1 Compiling typenum v1.20.1 Compiling hashlink v0.12.2 Compiling libsqlite3-sys v0.38.2 Compiling arrayvec v0.7.8 Compiling constant_time_eq v0.4.2 Compiling fallible-streaming-iterator v0.1.9 Compiling fallible-iterator v0.3.0 Compiling blake3 v1.8.7 Compiling rusqlite v0.40.2 Compiling tinyvec v1.13.3 Compiling unicode-normalization v0.1.25 Compiling serde v1.0.229 Compiling serde_json v1.0.154 Compiling uuid v1.28.0 Compiling arc-swap v1.9.2 Compiling calternal-memory v0.1.0 (/home/agent/wt/train-bm3/crates/memory) Compiling schemars v1.2.3 Compiling chacha20 v0.10.2 Compiling calternal-fsio v0.1.0 (/home/agent/wt/train-bm3/crates/fsio) Compiling rand v0.10.3 Compiling unicase v2.10.0 Compiling num-traits v0.2.19 Compiling num-conv v0.2.2 Compiling time-core v0.1.9 Compiling time-macros v0.2.32 Compiling deranged v0.5.9 Compiling powerfmt v0.2.1 Compiling ryu v1.0.23 Compiling calternal-testkit v0.1.0 (/home/agent/wt/train-bm3/crates/testkit) Compiling calternal-core v0.1.0 (/home/agent/wt/train-bm3/crates/core) Compiling fnv v1.0.7 Compiling hybrid-array v0.4.15 Compiling crypto-common v0.2.2 Compiling block-buffer v0.12.1 Compiling const-oid v0.10.2 Compiling time v0.3.55 Compiling digest v0.11.3 Compiling cpufeatures v0.3.1 Compiling futures-core v0.3.34 Compiling calternal-store v0.1.0 (/home/agent/wt/train-bm3/crates/store) Compiling http v1.5.0 Compiling futures-sink v0.3.34 Compiling regex-syntax v0.8.11 Compiling fastrand v2.5.0 Compiling httparse v1.10.1 Compiling futures-channel v0.3.34 Compiling percent-encoding v2.3.2 Compiling data-encoding v2.11.1 Compiling futures-task v0.3.34 Compiling calternal-engine v0.1.0 (/home/agent/wt/train-bm3/crates/engine) Compiling futures-io v0.3.34 Compiling slab v0.4.12 Compiling zerocopy v0.8.62 Compiling futures-util v0.3.34 Compiling getrandom v0.3.4 Compiling generic-array v0.14.7 Compiling rand_core v0.9.5 Compiling form_urlencoded v1.2.2 Compiling http-body v1.1.0 Compiling simd-adler32 v0.3.10 Compiling adler2 v2.0.1 Compiling ppv-lite86 v0.2.21 Compiling lazy_static v1.5.1 Compiling alloc-no-stdlib v3.0.0 Compiling miniz_oxide v0.9.1 Compiling rand_chacha v0.9.0 Compiling alloc-stdlib v0.3.0 Compiling rand v0.9.5 Compiling crc32fast v1.5.2 Compiling block-buffer v0.10.4 Compiling crypto-common v0.1.7 Compiling tower-service v0.3.3 Compiling flate2 v1.1.10 Compiling digest v0.10.7 Compiling zerofrom v0.1.8 Compiling brotli-decompressor v6.0.1 Compiling cpufeatures v0.2.17 Compiling stable_deref_trait v1.2.1 Compiling httpdate v1.0.3 Compiling tower-layer v0.3.3 Compiling mime v0.3.17 Compiling sha1 v0.10.7 Compiling brotli v9.0.0 Compiling yoke v0.8.3 Compiling http-body-util v0.1.5 Compiling tokio-util v0.7.20 Compiling mime_guess v2.0.5 Compiling sync_wrapper v1.0.2 Compiling atomic-waker v1.1.2 Compiling compression-core v0.4.33 Compiling hyper v1.12.0 Compiling tungstenite v0.29.0 Compiling compression-codecs v0.4.45 Compiling zerovec v0.11.8 Compiling async-compression v0.4.50 Compiling hyper-util v0.1.21 Compiling axum-core v0.5.6 Compiling tower v0.5.3 Compiling serde_urlencoded v0.7.1 Compiling serde_path_to_error v0.1.20 Compiling http-range-header v0.4.2 Compiling matchit v0.8.4 Compiling tower-http v0.6.11 Compiling tinystr v0.8.4 Compiling litemap v0.8.3 Compiling parking v2.2.1 Compiling tokio-tungstenite v0.29.0 Compiling writeable v0.6.4 Compiling icu_locale_core v2.3.0 Compiling event-listener v5.4.2 Compiling axum v0.8.9 Compiling potential_utf v0.1.6 Compiling zerotrie v0.2.5 Compiling sha1 v0.11.0 Compiling utf8_iter v1.0.4 Compiling icu_collections v2.3.0 Compiling tungstenite v0.30.0 Compiling icu_provider v2.3.1 Compiling crossbeam-utils v0.8.23 Compiling event-listener-strategy v0.5.4 Compiling inotify-sys v0.1.8 Compiling equivalent v1.0.2 Compiling same-file v1.0.6 Compiling hashbrown v0.14.5 Compiling minimal-lexical v0.2.1 Compiling nom v7.1.3 Compiling dashmap v6.2.1 Compiling walkdir v2.5.0 Compiling indexmap v2.14.2 Compiling inotify v0.11.5 Compiling tokio-tungstenite v0.30.0 Compiling async-lock v3.4.2 Compiling icu_properties_data v2.3.0 Compiling icu_normalizer_data v2.3.0 Compiling smallstr v0.3.1 Compiling notify-types v2.1.0 Compiling xxhash-rust v0.8.19 Compiling unsafe-libyaml v0.2.11 Compiling notify v9.0.0-rc.5 Compiling thiserror v1.0.69 Compiling serde_yaml v0.9.34+deprecated Compiling yrs v0.28.0 Compiling icu_normalizer v2.3.0 Compiling icu_properties v2.3.0 Compiling pulldown-cmark v0.13.4 Compiling rusticata-macros v4.1.0 Compiling sha2 v0.11.1 Compiling hashbrown v0.16.1 Compiling calternal-server v0.1.0 (/home/agent/wt/train-bm3/crates/server) Compiling similar v3.2.0 Compiling unicode-segmentation v1.13.3 Compiling zeroize v1.9.1 Compiling rustls-pki-types v1.15.1 Compiling asn1-rs v0.6.2 Compiling idna_adapter v1.2.2 Compiling tempfile v3.27.0 Compiling calternal-plugin-hello v0.1.0 (/home/agent/wt/train-bm3/crates/plugin-hello) Compiling num-integer v0.1.47 Compiling getrandom v0.2.17 Compiling untrusted v0.9.0 Compiling foreign-types-shared v0.1.1 Compiling base64 v0.21.7 Compiling base64urlsafedata v0.5.5 Compiling foreign-types v0.3.2 Compiling ring v0.17.14 Compiling num-bigint v0.4.8 Compiling idna v1.1.0 Compiling openssl-sys v0.9.117 Compiling imagesize v0.14.0 Compiling base64 v0.23.1 Compiling url v2.5.8 Compiling openssl v0.10.81 Compiling calternal-notes v0.1.0 (/home/agent/wt/train-bm3/crates/notes) Compiling rustls-webpki v0.103.15 Compiling der-parser v9.0.0 Compiling oid-registry v0.7.1 Compiling half v2.7.1 Compiling wait-timeout v0.2.1 Compiling web-time v1.1.0 Compiling subtle v2.6.1 Compiling quick-error v1.2.3 Compiling bit-vec v0.10.1 Compiling rusty-fork v0.3.1 Compiling bit-set v0.11.1 Compiling rustls v0.23.46 Compiling cfb v0.14.0 Compiling serde_cbor_2 v0.13.0 Compiling x509-parser v0.16.0 Compiling webauthn-rs-proto v0.5.5 Compiling webauthn-attestation-ca v0.5.5 Compiling ureq-proto v0.6.4 Compiling webpki-roots v1.0.9 Compiling rand_xorshift v0.5.0 Compiling core_detect v1.0.0 Compiling utf8-zero v0.8.1 Compiling unarray v0.1.4 Compiling hex v0.4.3 Compiling proptest v1.12.0 Compiling webauthn-rs-core v0.5.5 Compiling ureq v3.4.2 Compiling infer v0.22.0 Compiling unicode-script v0.5.8 Compiling unicode-security v0.1.2 Compiling unicode-general-category v0.6.0 Compiling calternal-attachments v0.1.0 (/home/agent/wt/train-bm3/crates/attachments) Compiling calternal-backdrops v0.1.0 (/home/agent/wt/train-bm3/crates/backdrops) Compiling webauthn-rs v0.5.5 Compiling calternal-contacts v0.1.0 (/home/agent/wt/train-bm3/crates/contacts) Compiling unicode-casefold v0.2.0 Compiling calternal-auth v0.1.0 (/home/agent/wt/train-bm3/crates/auth) Compiling regex-automata v0.4.18 Compiling matchers v0.2.0 Compiling sharded-slab v0.1.7 Compiling tracing-log v0.2.0 Compiling thread_local v1.1.10 Compiling nu-ansi-term v0.50.3 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 serde_bytes v0.11.19 Compiling bitflags v1.3.2 Compiling webauthn-authenticator-rs v0.5.5 Compiling calternal-search v0.1.0 (/home/agent/wt/train-bm3/crates/search) Compiling calternal-tasks v0.1.0 (/home/agent/wt/train-bm3/crates/tasks) Compiling calternal-daily v0.1.0 (/home/agent/wt/train-bm3/crates/daily) Compiling calternal-contacts-actions v0.1.0 (/home/agent/wt/train-bm3/crates/contacts-actions) Compiling calternal-migrate-v0 v0.1.0 (/home/agent/wt/train-bm3/crates/migrate-v0) Compiling calternal-prefs v0.1.0 (/home/agent/wt/train-bm3/crates/prefs) Compiling calternal-fixtures v0.1.0 (/home/agent/wt/train-bm3/crates/fixtures) Compiling calternal-perf v0.1.0 (/home/agent/wt/train-bm3/crates/perf) Compiling calternal v0.1.0 (/home/agent/wt/train-bm3/crates/calternal) Finished `test` profile [unoptimized + debuginfo] target(s) in 40.05s Running unittests src/main.rs (target/debug/deps/calternal-dec385d09ef477f5) running 32 tests test admin::tests::an_active_request_gets_a_graceful_shutdown_window ... ok test admin::tests::a_stop_sent_before_subscribing_is_still_seen ... ok test args::tests::dev_user_never_on_a_public_address ... ok test args::tests::defaults_and_flags ... ok test args::tests::fix_commands ... ok test args::tests::migrate_v0 ... ok test args::tests::origin_defaults_to_the_local_port ... ok test args::tests::setup_and_re_pair_are_explicit ... ok test args::tests::state_defaults_to_resolved_data_and_flags_override_environment ... ok test args::tests::user_create ... 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::people::backdrops_spend_the_same_counter_as_small_attachments ... ok test isolation::contacts_and_tasks_in_one_home_keep_their_own_members ... 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::bob_cannot_join_alices_note_room ... ok test isolation::people::real_upload_storm_notes_trash_restore_and_delete_usage ... ok test isolation::quota_refuses_large_and_small_uploads_while_notes_still_save ... ok test isolation::people_actions_hide_real_ids_from_members_other_users_and_anonymous_callers ... 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_bounds_response_writes_to_a_peer_that_stops_reading ... ok test shutdown_io::tests::shutdown_finishes_an_idle_read_and_keeps_response_writes_open ... ok test isolation::bob_reaches_nothing_of_alices_through_any_action ... ok test isolation::randomized_home_shutdown_releases_both_roots ... ok test isolation::people::every_action_obeys_person_visibility ... ok test result: ok. 31 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.35s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-4280ebc196455b1b) 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.77s Running tests/contacts_live.rs (target/debug/deps/contacts_live-a796fe3ce5388115) 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-fdcf212fdda35d84) 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.34s Running tests/notes_crash.rs (target/debug/deps/notes_crash-b47ca715acb72c2f) 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.41s Running tests/notes_crash_typing.rs (target/debug/deps/notes_crash_typing-52e49630d87909e4) 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.87s Running tests/notes_live.rs (target/debug/deps/notes_live-f078b9ada14e3bd2) 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.04s Running tests/prefs_live.rs (target/debug/deps/prefs_live-e888bd273671939b) 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-28039d0268f9ac84) 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/startup.rs (target/debug/deps/startup-a60dc5a1ff991b62) 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 answers_after_launch ... ok test a_new_server_prints_a_setup_token ... 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-b017092e84d8a841) 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 legacy_history_read_only_and_invalid_state_are_refused ... ok test both_missing_markers_with_existing_split_data_require_confirmed_re_pair ... 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 Running unittests src/lib.rs (target/debug/deps/calternal_attachments-fa74782a34622856) 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::a_retry_with_the_same_key_never_makes_a_second_copy ... ok test tests::http::check_finds_only_your_own_files ... 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_auth-d188677225329773) running 30 tests test config::tests::origins ... ok test ceremony::tests::anonymous_pool_stays_bounded_and_evicts_oldest ... ok test ceremony::tests::full_pool_refuses_foreign_source_without_discarding_live_prompt ... ok test db::tests::existing_database_keeps_people_credentials_and_sessions ... 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 http::proxy_tests::forwarding_stops_at_first_untrusted_hop_and_rejects_malformed_chains ... 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 db::tests::a_version_1_database_gets_passkey_names ... ok test invite_key::tests::key_round_trips_but_modified_ciphertext_and_another_id_fail ... ok test db::tests::opens_twice_and_keeps_schema ... ok test passkeys::tests::ids_round_trip ... ok test limit::reliability_tests::target_capacity_preserves_live_budgets_and_evicts_only_oldest_expired ... ok test passkeys::tests::names_are_trimmed_short_and_never_empty ... ok test session::tests::names_are_cleaned ... ok test setup::tests::names ... ok test setup::tests::names_reject_invisible_and_normalize_nfc ... ok test limit::reliability_tests::full_map_evicts_least_recent_without_refusing_new_sources ... 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::recovery_requires_exact_username_or_uuid_never_display_name ... ok test setup::tests::cli_creation_refuses_admin_name_confusables ... 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.03s Running tests/abuse.rs (target/debug/deps/abuse-aa8d5ba044866cbc) running 12 tests test bad_json_and_unknown_fields_are_refused ... ok test forged_sessions_get_nowhere ... ok test anonymous_prompt_flood_preserves_login_setup_and_add ... ok test junk_setup_tokens_are_refused_then_rate_limited ... ok test duplicate_session_cookies_never_choose_an_identity ... ok test login_source_limit_does_not_block_another_client ... ok test non_json_requests_are_refused ... ok test nothing_about_the_server_leaks_before_sign_in ... ok test one_source_cannot_lock_out_another_and_cannot_spoof_forwarding ... ok test other_sites_cannot_act_for_you ... 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.04s Running tests/create.rs (target/debug/deps/create-a8dc5b239a40e217) running 6 tests test an_expired_enrolment_token_is_refused ... ok test an_earlier_first_owner_token_stops_working ... 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 names_must_be_usable_and_unique ... ok test nothing_about_the_person_leaks_before_sign_in ... 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-e3dcb28700fd0d28) 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-2bd6f2e034777a38) 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-19d1831415a9ccf7) running 8 tests test invite_admin_names_cannot_be_impersonated_and_failure_preserves_invite ... ok test invite_can_be_copied_after_restart_and_only_one_racing_passkey_wins ... ok test invite_finish_rechecks_admin_names_after_role_changes ... ok test invite_redemption_joins_its_groups_and_other_inviters_cannot_copy_it ... ok test losing_the_key_does_not_replace_it_and_invite_secrets_never_enter_action_history ... ok test legacy_invite_indexes_upgrade_atomically_and_keep_copy_and_redemption ... 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.18s Running tests/isolation.rs (target/debug/deps/isolation-024d3e478fb36dc7) running 3 tests test a_cookie_sent_from_another_sites_page_does_not_count ... ok test another_persons_passkey_prompt_cannot_be_used_or_cancelled ... ok test devices_and_passkeys_of_another_person_are_not_found ... ok test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running tests/login.rs (target/debug/deps/login-f7b11cd9831a0ec0) 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 logout_revokes_the_installation_and_rejects_live_cookies ... ok test an_unknown_passkey_is_refused ... ok test sign_in_with_a_passkey_creates_a_new_installation ... 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 signing_in_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.17s Running tests/migration.rs (target/debug/deps/migration-4b384cceea80e27b) 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.01s Running tests/passkeys.rs (target/debug/deps/passkeys-8687c52e280baa48) running 7 tests test adding_needs_a_sign_in_and_an_add_prompt_works_once ... ok test add_rename_and_remove_each_leave_a_journal_event ... ok 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 the_same_device_cannot_be_added_twice ... 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.01s Running tests/people.rs (target/debug/deps/people-2f1cb952095efacc) running 4 tests test first_owner_has_capabilities_and_cannot_demote_the_last_admin ... ok test two_admins_racing_to_demote_themselves_leave_one_admin ... ok test promotion_cannot_create_confusable_admin_names ... ok test member_cannot_change_roles_and_new_capability_sets_work ... ok test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running tests/quota_counter.rs (target/debug/deps/quota_counter-09ad635659f7619b) 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.94s Running tests/reliability_review.rs (target/debug/deps/reliability_review-1df4fbcdcc4e747c) running 22 tests test anonymous_flood_must_not_evict_other_persons_prompt ... ok test authentication_database_does_not_wait_for_general_blocking_workers ... 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 default_twenty_mib_stream_boundary ... 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 directory_move_during_initial_recount_must_track_later_deletes ... 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 ipv6_rotation_must_not_lock_out_new_source ... ok test source_isolation_and_untrusted_forwarding ... ok test slow_uploads_must_not_starve_authentication_blocking_pool ... 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.11s Running tests/reliability_round3.rs (target/debug/deps/reliability_round3-d45f51730103d55f) running 12 tests test attachment_and_backdrop_routes_share_caps_and_cancel_cleanup ... ok test canonical_recovery_token_variants_share_one_target_without_spending_other_tokens ... ok test ipv4_mapped_v6_and_native_v4_share_budget_but_adjacent_prefix_does_not ... ok test fifty_slow_upload_attempts_preserve_full_signin_and_status ... 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.81s Running tests/security_regressions.rs (target/debug/deps/security_regressions-c7dfbf9659ec8812) running 15 tests test concurrent_key_creation_publishes_one_complete_key ... ok test eight_parallel_redeemers_create_exactly_one_account ... ok test every_action_rejects_anonymous_expired_and_unprivileged_writes ... ok test expiry_during_passkey_registration_consumes_nothing ... 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 malformed_token_must_have_same_generic_response ... 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 key_permissions_missing_corrupt_and_no_plaintext_history ... 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.09s Running tests/setup.rs (target/debug/deps/setup-580226bf7edb625f) 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 first_owner_signs_up_with_the_printed_token ... ok test a_token_works_exactly_once_under_a_storm ... ok test recovery_adds_a_new_passkey_for_the_same_person ... ok test session_cookie_is_locked_down ... 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-f3fab057b6c741f8) running 25 tests test tests::a_photo_unknown_to_us_is_looked_up ... ok 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_stricter_attachment_limit_also_bounds_backdrops ... ok test tests::bad_ids_never_reach_the_disk_or_the_network ... ok test tests::changes_need_our_own_page_and_a_signed_in_person ... ok test tests::an_upload_is_kept_once_and_served_back ... 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::pictures_from_other_hosts_are_refused ... 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::too_many_pixels_are_refused_but_files_within_the_byte_limit_work ... 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::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 tests::the_cache_drops_the_oldest_files_past_its_cap ... ok test result: ok. 24 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.06s Running unittests src/lib.rs (target/debug/deps/calternal_contacts-ee2059d4cef2e2b1) 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-606fa949d5da01ba) 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-79925f2683c9250d) 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 canonical_note_comparison_checks_every_byte_and_falls_back_for_local_sections ... ok test bare_properties_and_ignored_parameter_properties_decode_the_same_values ... 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 quoted_parameter_delimiters_and_value_colons_keep_their_meaning ... ok test component_and_list_comparisons_preserve_empty_parts_and_noncanonical_escapes ... 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-80f91622b5862def) 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 0.99s Running tests/break_inventory.rs (target/debug/deps/break_inventory-52b3b9e6ab74cef8) 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-69089c9e06f195fa) 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-90f3915d66b37626) running 27 tests test a_phone_note_containing_h2_or_h1_round_trips ... ok test ambiguous_simultaneous_colon_edit_returns_phone_group_and_history ... ok test colon_label_renames_survive_a_following_client_edit ... 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 colon_bearing_label_edits_change_only_the_label_and_value_edits_only_the_value ... ok test duplicate_structured_name_parts_are_unrepresentable ... ok test crlf_notes_preserve_original_escape_spelling_and_do_not_create_merge_conflicts ... ok test first_list_ends_at_a_paragraph_and_second_list_stays_local ... ok test entering_a_birthday_year_clears_the_apple_omit_year_flag ... ok test flat_repeatable_lines_stay_and_are_reported ... ok test empty_visible_properties_are_not_deleted_on_an_unchanged_round_trip ... 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 multiple_edits_to_indistinguishable_occurrences_do_not_guess_hidden_parameters ... ok test note_headings_and_crlf_do_not_change_plain_text ... 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-541ef030258e354d) running 4 tests 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 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 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-a31253428336ef7c) 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 apple_reordering_churn_photo_and_dropped_extension_do_not_lose_local_edits ... ok test distinct_repeated_types_return_quiet_concurrent_edit_notice ... ok test distinct_ungrouped_types_merge_reorders_edits_additions_and_deletions ... ok test dropped_extension_parameters_keep_their_order_and_do_not_conflict_with_local_values ... ok test phone_note_deletion_does_not_reappear_as_an_empty_note_on_read ... ok test identical_visible_rows_keep_both_occurrences_during_noop_and_changed_merges ... 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 related_links_with_custom_relative_targets_bind_to_the_original_person ... ok test local_label_renames_take_phone_deletes_or_value_edits ... ok test the_first_card_group_is_added_after_an_existing_photo ... ok test unchanged_repeated_ungrouped_properties_keep_occurrences ... ok test same_line_concurrent_edits_and_deletes_take_phone_group ... 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-4d51bf32040f0055) running 21 tests test ambiguous_occurrence_replaces_only_its_group_and_returns_exact_old_lines ... ok 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_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 equal_single_fact_values_still_bind_by_line_order_when_edited ... ok test concurrent_org_additions_and_deletes_never_stop_sync ... ok test identical_repeatable_rows_return_history_instead_of_guessing_hidden_occurrences ... ok test exact_client_occurrences_win_before_parameterless_identical_additions ... 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 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_company_conflict_keeps_independent_department_edits ... ok test repeated_single_facts_typed_from_scratch_create_separate_properties ... ok test repeated_single_facts_bind_edit_delete_and_multiple_edits_to_occurrences ... ok test org_deletions_use_unique_departments_or_return_every_ambiguous_fact ... 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-0fd8f59e894b0de6) running 10 tests test ambiguous_sources_damaged_notes_and_line_injection_are_errors ... ok test escapes_empty_values_caret_parameters_and_unknown_sequences ... 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 1.92s Running tests/layout.rs (target/debug/deps/layout-52cf28be2b88697d) 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 notes_are_plain_text_two_way_through_nested_headings ... ok test photo_reference_is_an_attachment_io_boundary ... 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-d3b5e67bb0941644) 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 new_contact_uid_is_note_id_and_default_is_three ... ok test hand_edit_uses_external_original_until_export ... 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-bdaa6df933db833c) running 131 tests test facts::tests::reads_name_and_facts_in_order ... ok test cards::tests::ids_cannot_leave_the_folder ... ok test facts::tests::a_card_without_a_name ... ok test frontmatter::tests::no_frontmatter_is_left_alone ... ok test frontmatter::tests::a_body_divider_is_not_frontmatter ... ok test frontmatter::tests::splits_and_joins_back_exactly ... ok test import::tests::identity_is_the_uid_or_the_bytes ... ok test cards::tests::copies_are_written_whole_and_removed ... ok test jobs::tests::attempts_are_stable_and_distinct ... ok test names::tests::bidi_controls_never_reach_a_file_name_but_joiners_do ... ok test names::tests::a_fact_equal_to_the_name_is_skipped ... 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 names::tests::illegal_characters_become_dashes ... ok test names::tests::nfd_and_nfc_give_one_name ... ok test namer::tests::names_come_from_the_note_and_its_card ... ok test names::tests::long_names_are_cut_between_whole_characters ... ok test tests::basics::a_retry_with_the_same_key_makes_one_contact ... ok test tests::basics::contact_actions_never_touch_other_notes ... ok test tests::basics::bad_cards_are_refused_and_nothing_is_written ... 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::code_stays_and_anchors_travel ... ok test tests::break_links::case_only_renames ... ok test tests::break_links::a_rename_onto_an_existing_file ... 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::clashes_add_company_then_city_then_nickname_then_domain_then_a_number ... 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::the_folder_is_a_setting ... ok test tests::break_names::unsafe_characters_never_reach_the_file_name ... ok test tests::break_names::very_long_names_fit_the_byte_limit ... ok test tests::correctness::acknowledged_edit_between_undo_preparation_and_deletion_survives ... ok test tests::correctness::deletion_crash_child ... ok test tests::correctness::crash_after_trash_move_retains_history_and_quota_on_restart ... ok test tests::correctness::deletion_recovery_preserves_an_outside_edit_made_while_down ... 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_in_an_existing_folder_preserves_earlier_contacts ... ok test tests::import::a_final_flush_failure_undoes_every_published_contact_and_can_retry ... ok test tests::import::bulk_import_preserves_an_id_held_only_by_trash_details ... ok test tests::import::limits_hold ... ok test tests::kill9::child ... ok test tests::import::the_same_file_twice_changes_nothing ... ok test tests::import::parallel_import_keeps_input_order_and_compares_existing_peer_facts ... 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::edit_killed_copying ... ok test tests::kill9::import_killed_mid_import ... ok test tests::kill9::rename_killed_committed ... 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::kill9::import_killed_prepared ... ok test tests::kill9::import_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::props::random_sequences_keep_every_invariant ... 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::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::undoing_an_import_retains_history_until_trash_is_purged ... ok test tests::review::both_ends_in_trash_restore_source_before_target_keeps_identity ... ok test tests::review3::same_size_photo_swaps_are_held_to_the_limit ... ok test tests::review::crash_child ... ok test tests::review::device_name_before_extension_is_safe ... ok test tests::review::concurrent_undo_and_staged_update_keep_note_and_card_together ... 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::kill9::edit_killed_prepared ... ok test tests::kill9::rename_killed_prepared ... ok test tests::review::kill9_import_after_history_transaction ... ok test tests::review::kill9_import_after_directory_sync ... ok test tests::review::kill9_import_after_first_file ... ok test tests::review::kill9_import_during_file_placement ... ok test tests::review::kill9_import_private_files_before_history ... 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_into_existing_folder_after_directory_sync ... 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::kill9_restore_after_incoming_link_repair ... 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::same_company_uses_city ... ok test tests::review::undo_refuses_a_later_phone_card_before_moving_or_retargeting_anything ... ok test tests::review::ordinary_tag_job_and_undo_preserve_concurrent_typing ... 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::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::review::ring_import_1000_swaps_chains_unicode_h1_and_undo ... ok test tests::review::kill9_restore_before_incoming_link_repair ... ok test result: ok. 131 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 12.91s Running unittests src/lib.rs (target/debug/deps/calternal_core-6a9d42b28abad2a2) running 15 tests test action::tests::namespace_is_enforced ... ok test drain::tests::close_gives_up_after_its_bound ... 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 batch::tests::stops_at_the_first_error ... ok test error::tests::every_code_has_a_friendly_message ... 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::failed_admission_does_not_leak_reservations ... ok test room_queue::tests::control_messages_can_release_rooms_when_payload_budgets_are_full ... ok test room_queue::tests::deferred_payload_keeps_local_and_global_byte_admission ... ok test visible::tests::hides_current_and_legacy_markers ... 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-3d98a3975c82d990) 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::an_existing_day_file_is_reused_whatever_its_id ... ok test tests::any_text_is_safe_to_read_and_plan ... ok test tests::bad_input_is_refused_kindly ... ok test tests::a_day_whose_note_is_in_the_trash_still_opens ... ok test tests::add_inserts_exactly_one_entry_and_keeps_the_rest ... ok test tests::log_add_then_close_makes_a_range ... ok test tests::close_turns_one_open_entry_into_a_range ... ok test tests::shared_vectors ... ok test tests::opening_the_same_day_at_once_makes_one_note ... ok test tests::today_follows_the_device_offset ... ok test tests::make_note_on_a_log_line_keeps_times_and_tags ... ok test tests::two_offline_devices_starting_the_same_day_merge_into_one_note ... ok test times_tests::a_line_with_only_tags_stays_words ... 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::any_line_is_safe ... 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::no_file_until_the_first_keystroke ... ok test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.33s Running unittests src/lib.rs (target/debug/deps/calternal_engine-bc9aa501ee9abaa2) running 18 tests test hash::tests::key_order_does_not_matter_but_content_does ... ok test tests::a_plugin_cannot_write_outside_its_namespace ... ok test tests::action_scopes_are_distinct_and_cannot_alias_legacy_keys ... ok test tests::a_retry_runs_once_and_replays_the_result ... 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-b184ff10c0439568) 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.35s Running unittests src/main.rs (target/debug/deps/calternal_fixtures-745118513035d3da) 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-912a61e8bc40d804) running 40 tests test names::directory::tests::a_full_kernel_queue_rebuilds_before_allocating ... ok test beneath::tests::paths_that_climb_out_are_refused ... ok test beneath::tests::walking_without_openat2_refuses_symlinks_too ... ok test beneath::tests::temp_files_persist_without_replacing_and_vanish_when_dropped ... ok test swap::create_tests::create_preserves_outside_file_appearing_after_absence_check ... ok test swap::create_tests::unsupported_exchange_never_replaces_an_existing_file ... ok test names::directory::tests::immediate_outside_events_case_duplicates_and_replacement_are_current ... ok test tests::atomic_write_replaces_and_leaves_no_temp_files ... ok test tests::a_published_directory_retains_ownership_when_a_parent_flush_fails ... ok test tests::a_private_directory_is_invisible_until_exclusive_publication ... 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::conditional_removal_keeps_changed_bytes_and_outside_replacements ... ok test tests::conditional_removal_recovers_the_captured_file_after_restart ... ok test tests::delta_rename_must_preserve_file_arriving_after_absence_check ... 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::directory_publication_rechecks_changed_inheritance_policy ... ok test tests::many_files_are_replaced_whole ... ok test tests::named_bulk_staging_is_whole_exclusive_and_leaves_no_temporary_name ... ok test tests::many_new_files_never_replace_anything ... ok test tests::names_fold_case_and_unicode_form ... ok test tests::only_one_process_owns_a_data_folder ... 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::write_unless_changed_keeps_someone_elses_version ... ok test usage::tests::a_separate_state_root_counts_what_plugins_report ... ok test tests::parallel_bulk_preserves_result_slots_and_observes_the_final_sync ... 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::bulk_writes_and_published_folders_count_without_a_recount ... 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 names::directory::tests::random_outside_entry_changes_match_the_real_directory ... ok test tests::big_writes_arrive_whole ... ok test result: ok. 40 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s Running unittests src/lib.rs (target/debug/deps/calternal_memory-740b7137911145d4) 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-cc2cb7918adfcb98) 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::m1_custom_daily_title_and_heading_stay ... ok test tests::rules::m10_tz_markers_go_and_other_zones_convert_to_the_notes_zone ... 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_attachments_that_exist_are_copied_and_relinked ... ok test tests::rules::m2_code_is_never_rewritten ... ok test tests::rules::m2_unresolved_links_stay_as_written_and_are_reported ... ok test tests::rules::m2_wikilinks_always_become_standard_links ... ok test tests::rules::m2_links_are_repaired_by_name_date_title_and_slug ... ok test tests::rules::m3_m5_frontmatter_keys_drop_and_times_convert ... 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::m7_tasks_blocks_are_stripped_and_listed ... ok test tests::rules::m6_conflict_copies_are_not_migrated ... ok test tests::rules::m8_only_notes_and_linked_files_move ... 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 tests::rules::running_twice_gives_the_same_bytes ... 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 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.23s Running unittests src/lib.rs (target/debug/deps/calternal_notes-768996a4459ac2f1) running 448 tests test anchor::tests::lines_by_utf16_index ... ok test backlinks::tests::snippets_are_the_trimmed_line ... ok test blocks::tests::line_edits ... ok test blocks::tests::finds_list_children_and_heading_sections ... ok test blocks::tests::titles_from_the_first_sentence ... ok test anchor::tests::hash_is_plain_sha256_hex ... ok test blocks::tests::shapes_keep_markers ... ok test backlinks::tests::links_are_fold_keys_and_lines ... ok test bulk::undo::tests::inverse_restores_the_text ... ok test bulk::undo::tests::inverse_roundtrips ... ok test capture_tests::crash_child ... ok test bulk::error_tests::legacy_job_reports_hide_stored_source_details ... ok test bulk::error_tests::failed_job_reports_keep_source_details_in_the_server_error ... ok test diff::tests::an_inserted_line_starts_at_a_line_start ... ok test diff::tests::edits_never_split_a_character ... ok test deletion::tests::recovery_keeps_its_intent_until_missing_history_is_restorable ... 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 frontmatter::tests::set_is_utf16_aware ... ok test health::tests::anchors ... ok test diff::tests::edits_turn_old_into_new ... 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 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 capture_tests::capture_allocates_around_unindexed_case_and_exact_names ... ok test history::companions::tests::a_companion_lands_with_its_change ... ok test history::companions::tests::keys_answer_without_reading_bytes_and_cover_older_rows ... ok test history::companions::tests::rejected_companion_writes_leave_history_and_quota_unchanged ... ok test history::companions::tests::staged_rows_wait_for_their_step ... ok test history::companions::tests::written_marks_and_unwritten_rows ... ok test history::companions::tests::retained_bytes_follow_every_change_and_match_a_full_count ... 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::tests::a_busy_begin_reports_its_cause_without_running_the_job ... ok test history::receipts::tests::legacy_card_only_changes_get_a_whole_note_journal_position ... 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 test history::tests::a_competing_writer_cannot_invalidate_a_history_write_snapshot ... ok test history::tests::appends_are_ordered_and_readable ... ok test history::tests::disk_full_keeps_the_cause_and_failed_writes_can_be_retried ... ok test history::tests::pending_save_promotes_to_base ... 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 room::acks::tests::varuints_round_trip ... ok test room::actor::retry_tests::malformed_update_remains_a_permanent_refusal ... 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 capture_tests::kill9_at_every_capture_and_undo_journal_step ... 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 links::tests::code_block_spans_match_pulldown_on_random_markdown ... 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_peers_and_restart_replay ... 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::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::metadata_refresh_does_not_block_sync_behind_an_uncommitted_seed ... 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::saved_bytes_and_titles_match_the_old_copy_path ... 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 room::save::tests::review::review_title_precedence_edge_matrix ... ok test tests::appends::an_append_to_a_long_note_stays_small ... 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::event_visibility::create_text ... ok test tests::event_visibility::delete ... ok test tests::delta_review::delta_permanent_deletion_history_failure_must_terminate_scan ... 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::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::failed_delete_then_restore_announces_the_current_state ... 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_create_with_text_still_renames_after_its_h1 ... ok test tests::event_visibility::regression_delayed_depart_cannot_clear_gone ... 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::pin ... 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::regression_failed_save_hint_still_schedules_title_rename ... 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::regression_delete_failure_then_forget_keeps_gone ... ok test tests::event_visibility::rename_retry ... 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::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::restore ... ok test tests::event_visibility::round4_startup_retries_failed_list_stamp_read ... ok test tests::event_visibility::regression_one_reconcile_path_after_failed_edit ... 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 tests::event_visibility::unpin ... 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::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::fanout::collaborators_see_typing_before_the_disk ... 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::kill9::permanent_delete_after_restore_cannot_delete_the_live_note ... ok test tests::kill9::quick_delete_restore_survives_kill ... ok test tests::kill9::quick_restore_delete_survives_kill ... ok test tests::kill9::restore_delete_forget_does_not_resurrect_after_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 room::save::tests::review::group_commit::lanes::a_failing_note_does_not_starve_another_typist ... 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::the_first_page_never_waits_for_the_home_to_open ... ok test tests::event_visibility::round4_recorder_outage_bounds_deleted_ids_and_drains_overflow ... ok test tests::listing::the_list_stays_live_with_new_notes_saves_and_outside_edits ... ok test tests::listing::the_kept_count_follows_adds_and_deletes ... 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::missing::a_move_outside_is_found_and_relink_repoints_the_links ... 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::identifying_an_already_indexed_file_never_makes_it_a_copy ... ok test tests::opening::shutting_down_leaves_the_list_log_empty ... ok test tests::opening::asking_mid_scan_never_says_not_found_and_never_duplicates_a_day ... 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::renames::backlinks_follow_edits_and_deletes ... 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_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::saving_a_title_ending_in_a_number_does_not_schedule_a_rename ... ok test tests::renames::typing_a_new_title_renames_the_file_after_a_pause ... 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::outside::polling_finds_outside_changes ... ok test tests::rooms::patches_use_utf16_positions ... 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::renames::a_crash_mid_rename_resumes_and_applies_each_edit_once ... ok test tests::shutdown::a_shutdown_wait_made_after_shutdown_ends_at_once ... ok test tests::shutdown::healthy_shutdown_settles_pending_typing_before_saving ... ok test tests::shutdown::no_background_work_starts_after_shutdown ... ok test tests::shutdown::nothing_opens_or_writes_on_a_home_after_shutdown ... ok test tests::shutdown::scan_waiters_stay_released_once_shutdown_releases_them ... ok test tests::shutdown::settlement::shutdown_settlement_failed_promotion_preserves_written_snapshot ... ok test tests::shutdown::settlement::shutdown_settlement_late_disk_recovery_requires_replay ... ok test tests::shutdown::settlement::shutdown_settlement_live_file_io_failure_joins_writer ... ok test tests::shutdown::a_create_that_outlives_shutdown_writes_nothing ... 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::a_create_running_at_shutdown_finishes_before_shutdown_returns ... ok test tests::shutdown::shutdown_finishes_when_history_writes_keep_failing ... ok test tests::shutdown::shutdown_many_full_history_rooms_12 ... ok test tests::event_visibility::save_outside_retry ... ok test tests::storm::outside_rewrites_during_a_storm_all_land ... 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::undo_guard::acknowledged_edits_survive_random_job_undo ... ok test tests::undo_guard::adding_an_attachment_keeps_the_note_and_attachment_when_creation_is_undone ... 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::ordinary_creation_keeps_later_job_history_when_its_text_was_undone ... ok test tests::undo_guard::outside_daily_edit_after_final_undo_check_is_kept ... ok test tests::undo_guard::undo_keeps_prose_in_a_daily_placeholder_before_capture ... ok test tests::trash::a_crash_mid_delete_finishes_on_restart_exactly_once ... ok test tests::unloading::a_connected_client_keeps_it ... ok test tests::tags::a_crash_mid_rename_resumes_and_renames_each_tag_once ... 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::unloading::an_open_note_keeps_it ... 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 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::writers::every_writer_at_once_with_the_watcher ... 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. 442 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 32.86s Running unittests src/main.rs (target/debug/deps/calternal_perf-9900ae816c38cead) 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 stats::tests::summary_max_is_the_largest_observed_sample_across_runs ... 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 live::tests::frames_round_trip_and_keystrokes_stay_whole ... 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-3efde68cedf07084) 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-91e78e9d5ddfcf11) 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-35cb822d946dffee) 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-a9775857045769df) 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-ceebd1be05f6cd00) 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::bad_keys_and_big_values_get_friendly_errors ... ok test tests::people_do_not_share_preferences ... ok test tests::quick_saves_from_two_devices_all_land ... ok test tests::set_then_get_and_survive_a_restart ... ok test tests::saving_the_same_value_again_is_quiet ... 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.05s Running unittests src/lib.rs (target/debug/deps/calternal_search-d3ac022d1448a8a4) running 13 tests test fuzzy::tests::common_typos_are_fixed ... ok test fuzzy::tests::distance_counts_swaps_as_one ... ok test query::tests::dates_cover_whole_periods ... ok test query::tests::lone_symbols_are_ignored ... ok test read::tests::block_ids_are_found ... ok test query::tests::words_filters_and_phrases ... ok test read::tests::renumbering_shifts_placeholders ... ok test read::tests::excerpts_mark_matches_in_context ... ok test text::tests::bigrams_cover_unspaced_scripts ... ok test read::tests::text_matches_like_the_index ... 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-f1ae05cff7a3557f) 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 a_restart_heals_whatever_was_missed ... 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 filters_by_tag_kind_and_date ... ok test searches_answer_while_indexing_runs ... ok test prefixes_and_typos_are_forgiven ... ok test results_show_why_they_matched_and_where ... 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.63s Running unittests src/lib.rs (target/debug/deps/calternal_server-89b31034cac8b247) running 12 tests test live::tests::room_join_metadata_has_explicit_byte_bounds ... ok test rooms::tests::a_message_in_numbered_pieces_arrives_whole ... ok test rooms::tests::assembly_is_bounded_per_connection_and_globally_and_expiry_releases_it ... 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-ca7acf075008074d) 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-cc46aafebbc778ff) running 6 tests test health_answers_without_signing_in ... ok test a_stranger_token_asks_for_a_refresh ... ok test signed_out_calls_get_a_friendly_refusal ... ok test errors_carry_codes_not_internals ... 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.04s Running tests/signout.rs (target/debug/deps/signout-c88220321df87db0) 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.04s Running tests/web.rs (target/debug/deps/web-408c23d2ae584fd0) running 3 tests test caching_and_security_headers_follow_what_each_file_is ... ok test files_deep_links_and_the_api_live_side_by_side ... ok test precompressed_files_are_sent_as_they_are_to_whoever_accepts_them ... 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-af64ee4096e5f5fe) 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-f0770510ad3cae57) running 41 tests test create_tests::create_ack_can_be_undone_immediately_and_reuses_daily_placeholder ... ok test create_tests::concurrent_creates_name_clash_and_new_daily_undo ... ok test create_tests::daily_uses_device_offset_and_invalid_slots_write_nothing ... ok test create_tests::description_heading_keeps_the_given_task_title ... ok test create_tests::only_links_are_reduced_in_the_note_title ... ok test create_tests::create_and_undo_restore_daily_bytes_and_remove_task ... ok test create_tests::opening_today_then_creating_tasks_scopes_keys_and_retries ... ok test create_tests::undo_new_daily_capture_keeps_later_prose_and_removes_its_lines ... 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::repeated_create_undo_recreates_daily_with_retained_history ... 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::create_isolation_and_idempotent_retry ... ok test tests::lists_groups_and_counts ... ok test tests::kill_9_during_field_writes_loses_nothing_acknowledged ... ok test create_tests::create_and_undo_one_mb_daily ... ok test tests::rebuild_gives_the_same_rows ... ok test tests::review_broken_frontmatter_refuses_update ... ok test tests::outside_edits_reach_the_lists ... 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::untracked_is_open_checkboxes_that_are_not_tasks ... ok test tests::update_changes_only_its_keys_and_lists_follow_at_once ... ok test update::tests::checks_values ... ok test update::tests::null_and_missing_differ ... ok test tests::order::sql_and_rust_sort_the_same ... ok test tests::a_cold_fill_gives_the_same_rows_as_the_usual_way ... ok test tests::review_live_list_has_consistent_rows_and_counts ... ok test result: ok. 41 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.30s Running unittests src/lib.rs (target/debug/deps/calternal_testkit-52ce41c8a23b264d) 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>web-check</summary> ```text $ node scripts/action-types.mjs --check && svelte-check --tsconfig ./tsconfig.json Loading svelte-check in workspace: /home/agent/wt/train-bm3/apps/web Getting Svelte diagnostics... /home/agent/wt/train-bm3/apps/web/../../packages/ui/src/primitives/toast/ToastCapsule.svelte:19:54 Warn: This reference only captures the initial value of `id`. Did you mean to reference it inside a derived instead? https://svelte.dev/e/state_referenced_locally (svelte) // Keep the last thing it said while it leaves (the view is gone by then). let last = $state<ToastView | undefined>(views.get(id)); $effect(() => { /home/agent/wt/train-bm3/apps/web/src/components/NoteList.svelte:126:15 Warn: 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 (svelte) // is then the window's scroll less where this box starts, and the view is the window. const doc = phone && phoneDocScroll(); $effect(() => { /home/agent/wt/train-bm3/apps/web/../../packages/ui/src/components/Morph.svelte:82:18 Warn: 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 (svelte) // stiffness 400, damping 36, no bounce). `lastRole` is still the old one while the new layer is made. let lastRole = role; const sheetSwap = () => role === "dialog" || lastRole === "dialog"; /home/agent/wt/train-bm3/apps/web/../../packages/ui/src/components/Morph.svelte:84:25 Warn: 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 (svelte) const sheetSwap = () => role === "dialog" || lastRole === "dialog"; let sheetish = $state(role === "dialog"); let sheetTimer = 0; /home/agent/wt/train-bm3/apps/web/src/components/Settings.svelte:601:3 Warn: Unused CSS selector ".seg.wide button" https://svelte.dev/e/css_unused_selector (svelte) } .seg.wide button { flex: 1; /home/agent/wt/train-bm3/apps/web/src/components/Settings.svelte:604:3 Warn: Unused CSS selector ".phone .seg.wide button" https://svelte.dev/e/css_unused_selector (svelte) } .phone .seg.wide button { padding: 0 6px; /home/agent/wt/train-bm3/apps/web/src/components/Settings.svelte:754:3 Warn: Unused CSS selector ".toggle input" https://svelte.dev/e/css_unused_selector (svelte) } .toggle input { appearance: none; /home/agent/wt/train-bm3/apps/web/src/components/Settings.svelte:764:3 Warn: Unused CSS selector ".toggle input::after" https://svelte.dev/e/css_unused_selector (svelte) } .toggle input::after { content: ""; /home/agent/wt/train-bm3/apps/web/src/components/Settings.svelte:776:3 Warn: Unused CSS selector ".toggle input:checked" https://svelte.dev/e/css_unused_selector (svelte) } .toggle input:checked { background: var(--accent); /home/agent/wt/train-bm3/apps/web/src/components/Settings.svelte:779:3 Warn: Unused CSS selector ".toggle input:checked::after" https://svelte.dev/e/css_unused_selector (svelte) } .toggle input:checked::after { translate: 16px 0; /home/agent/wt/train-bm3/apps/web/src/components/Inspector.svelte:19:8 Warn: 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 (svelte) const why = (_t: BlockType) => undefined as string | undefined; void noteId; /home/agent/wt/train-bm3/apps/web/src/components/InsertSheet.svelte:42:8 Warn: 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 (svelte) } void noteId; /home/agent/wt/train-bm3/apps/web/src/components/InfoSheet.svelte:383:3 Warn: Unused CSS selector ".avatar.agent" https://svelte.dev/e/css_unused_selector (svelte) } .avatar.agent { background: var(--hover); /home/agent/wt/train-bm3/apps/web/src/App.svelte:193:5 Warn: Unused CSS selector ".toast" https://svelte.dev/e/css_unused_selector (svelte) @media (prefers-reduced-motion: no-preference) { .toast { animation: toast-in 240ms var(--ease-out) backwards; ==================================== svelte-check found 0 errors and 14 warnings in 8 files ``` </details> <details><summary>web-lint</summary> ```text $ node --experimental-strip-types --test scripts/test/*.test.mjs && node scripts/filter-motion.mjs TAP version 13 # Subtest: the unset binary defaults to the built executable and reaches workers ok 1 - the unset binary defaults to the built executable and reaches workers --- duration_ms: 0.709211 type: 'test' ... # Subtest: an explicit executable is preserved and a missing or non-executable binary fails loudly ok 2 - an explicit executable is preserved and a missing or non-executable binary fails loudly --- duration_ms: 0.479918 type: 'test' ... # Subtest: identity operations keep their ordered list, ignoring nested arguments ok 3 - identity operations keep their ordered list, ignoring nested arguments --- duration_ms: 2.300884 type: 'test' ... # Subtest: state selectors across files cannot restore none ok 4 - state selectors across files cannot restore none --- duration_ms: 0.433419 type: 'test' ... # Subtest: rejects explicit and implicit none and changing function order in transitions ok 5 - rejects explicit and implicit none and changing function order in transitions --- duration_ms: 0.955046 type: 'test' ... # Subtest: static none and unrelated child filters are allowed ok 6 - static none and unrelated child filters are allowed --- duration_ms: 0.112167 type: 'test' ... # Subtest: CSS keyframes require two explicit endpoints and identical lists ok 7 - CSS keyframes require two explicit endpoints and identical lists --- duration_ms: 0.727794 type: 'test' ... # Subtest: WAAPI array frames keep the same list and explicit endpoints ok 8 - WAAPI array frames keep the same list and explicit endpoints --- duration_ms: 3.720264 type: 'test' ... # Subtest: Svelte CSS and inline conditional filters are checked ok 9 - Svelte CSS and inline conditional filters are checked --- duration_ms: 0.167167 type: 'test' ... # Subtest: WAAPI property-indexed keyframes cannot mix function lists ok 10 - WAAPI property-indexed keyframes cannot mix function lists --- duration_ms: 0.275543 type: 'test' ... # Subtest: a selector using filter keyframes must also have a matching resting list ok 11 - a selector using filter keyframes must also have a matching resting list --- duration_ms: 0.510419 type: 'test' ... # Subtest: inline Svelte style directives cannot switch to none ok 12 - inline Svelte style directives cannot switch to none --- duration_ms: 0.231251 type: 'test' ... # Subtest: whole-value custom properties cannot conceal changing filter lists ok 13 - whole-value custom properties cannot conceal changing filter lists --- duration_ms: 0.265501 type: 'test' ... # Subtest: JS style assignments and setProperty cannot restore none ok 14 - JS style assignments and setProperty cannot restore none --- duration_ms: 0.56046 type: 'test' ... # Subtest: WAAPI cannot synthesize a none endpoint outside explicit offsets ok 15 - WAAPI cannot synthesize a none endpoint outside explicit offsets --- duration_ms: 0.381543 type: 'test' ... # Subtest: duplicate declarations cannot conceal none in a keyframe ok 16 - duplicate declarations cannot conceal none in a keyframe --- duration_ms: 0.081626 type: 'test' ... # Subtest: Svelte generated transition CSS cannot switch to none ok 17 - Svelte generated transition CSS cannot switch to none --- duration_ms: 0.763128 type: 'test' ... 1..17 # tests 17 # suites 0 # pass 17 # fail 0 # cancelled 0 # skipped 0 # todo 0 # duration_ms 248.548936 Filter motion: 438 source files checked; stable function lists. ``` </details> <details><summary>web-unit</summary> ```text $ vitest run RUN v5.0.4 /home/agent/wt/train-bm3/apps/web Test Files 3 passed (3) Tests 77 passed (77) Start at 12:07:34 Duration 151ms (transform 65%, tests 21%, 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-bm3/packages/editor Test Files 37 passed (37) Tests 300 passed (300) Start at 12:07:34 Duration 12.14s (tests 86%, environment 8%, transform 3%, import 2%, setup 1%) ``` </details> <details><summary>primitives-unit</summary> ```text $ vitest run --config src/primitives/vitest.config.ts 12:07:47 PM [vite-plugin-svelte] no Svelte config found at /home/agent/wt/train-bm3/packages/ui - using default configuration. RUN v5.0.4 /home/agent/wt/train-bm3/packages/ui/src Test Files 7 passed (7) Tests 38 passed (38) Start at 12:07:47 Duration 260ms (transform 81%, import 11%, tests 7%, worker 2%) ``` </details> <details><summary>bundle</summary> ```text (!) Your Vite config uses features that are unsupported by `configLoader: 'native'`, which is planned to become the default in a future major version of Vite: - import "./scripts/lazy-ui-plugin" without a file extension (vite.config.ts:3:29). Add the file extension - import "./scripts/precompress-plugin" without a file extension (vite.config.ts:4:29). Add the file extension - import "./scripts/sw-plugin" without a file extension (vite.config.ts:5:31). Add the file extension - import "../src/lib/chunk-retry" without a file extension (scripts/lazy-ui-plugin.ts:2:33). Add the file extension Set `VITE_CONFIG_NATIVE_IGNORE_WARNING=true` to suppress this warning. 12:07:47 PM [vite-plugin-svelte] src/App.svelte:193:4 Unused CSS selector ".toast" https://svelte.dev/e/css_unused_selector 191: } 192: @media (prefers-reduced-motion: no-preference) { 193: .toast { ^ 194: animation: toast-in 240ms var(--ease-out) backwards; 195: } 12:07:47 PM [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: } 12:07:47 PM [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)); 12:07:47 PM [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; 12:07:47 PM [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; 12:07:47 PM [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: } 12:07:47 PM [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: } 12:07:48 PM [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) { 12:07:48 PM [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) { 12:07:48 PM [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); 12:07:48 PM [vite-plugin-svelte] /home/agent/wt/train-bm3/packages/ui/src/primitives/toast/ToastCapsule.svelte:19:53 This reference only captures the initial value of `id`. Did you mean to reference it inside a derived instead? https://svelte.dev/e/state_referenced_locally 17: 18: // Keep the last thing it said while it leaves (the view is gone by then). 19: let last = $state<ToastView | undefined>(views.get(id)); ^ 20: $effect(() => { 21: const v = views.get(id); 12:07:48 PM [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; 12:07:48 PM [vite-plugin-svelte] /home/agent/wt/train-bm3/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"); 12:07:48 PM [vite-plugin-svelte] /home/agent/wt/train-bm3/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.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 | 42.9 | 42.9 | 42.9 | | | | `web.bundle.plugins_js_raw` | - | KB | 1 | 135 | 135 | 135 | | | ``` </details> No merge or deployment. Only `train/2026-10-30-bm3` is pushed. Task-owned target/cache cleanup and heartbeat shutdown are recorded in local evidence. Host 02 was unreachable and could not be cleaned; this task created no files there. ## Diagnostic exit output (verbatim) ```text repro-A-1-1 exit 0: throttled-390 editor.spec.ts:59 no layout shift while loading, typing or switching modes (cpu ×6) @throttled repro-A-1-2 exit 0: throttled-390 editor.spec.ts:59 no layout shift while loading, typing or switching modes (cpu ×6) @throttled repro-A-1-3 exit 0: throttled-390 editor.spec.ts:59 no layout shift while loading, typing or switching modes (cpu ×6) @throttled bisect-d83e54db-1 exit 0 bisect-d83e54db-2 exit 0 bisect-d83e54db-3 exit 0 bisect-87b8dc4e-1 exit 0 bisect-87b8dc4e-2 exit 0 bisect-87b8dc4e-3 exit 0 bisect-af668240-1 exit 0 bisect-af668240-2 exit 0 bisect-af668240-3 exit 0 bisect-f95610c3-1 exit 0 bisect-f95610c3-2 exit 0 bisect-f95610c3-3 exit 0 ``` <details><summary>Final-head release build (verbatim)</summary> ```text Compiling proc-macro2 v1.0.107 Compiling unicode-ident v1.0.27 Compiling quote v1.0.47 Compiling libc v0.2.190 Compiling cfg-if v1.0.5 Compiling log v0.4.34 Compiling shlex v2.0.1 Compiling find-msvc-tools v0.1.14 Compiling itoa v1.0.18 Compiling pin-project-lite v0.2.17 Compiling syn v3.0.9 Compiling syn v2.0.119 Compiling smallvec v1.16.3 Compiling cc v1.8.0 Compiling serde_core v1.0.229 Compiling memchr v2.8.3 Compiling bytes v1.12.1 Compiling once_cell v1.21.4 Compiling serde v1.0.229 Compiling serde_derive v1.0.229 Compiling parking_lot_core v0.9.12 Compiling scopeguard v1.2.0 Compiling lock_api v0.4.14 Compiling tracing-core v0.1.36 Compiling pkg-config v0.3.34 Compiling vcpkg v0.2.15 Compiling bitflags v2.13.2 Compiling zmij v1.0.23 Compiling tracing-attributes v0.1.31 Compiling mio v1.2.4 Compiling errno v0.3.14 Compiling serde_json v1.0.154 Compiling signal-hook-registry v1.4.8 Compiling tracing v0.1.44 Compiling parking_lot v0.12.5 Compiling tokio-macros v2.7.2 Compiling socket2 v0.6.5 Compiling getrandom v0.4.3 Compiling tokio v1.53.2 Compiling typenum v1.20.1 Compiling synstructure v0.14.0 Compiling thiserror v2.0.21 Compiling uuid v1.28.0 Compiling thiserror-impl v2.0.21 Compiling zerofrom-derive v0.1.8 Compiling displaydoc v0.2.7 Compiling yoke-derive v0.8.4 Compiling zerofrom v0.1.8 Compiling ref-cast v1.0.27 Compiling stable_deref_trait v1.2.1 Compiling ref-cast-impl v1.0.27 Compiling serde_derive_internals v0.30.0 Compiling foldhash v0.2.0 Compiling zerocopy v0.8.62 Compiling hashbrown v0.17.1 Compiling yoke v0.8.3 Compiling schemars_derive v1.2.3 Compiling http v1.5.0 Compiling zerovec-derive v0.11.6 Compiling zerocopy-derive v0.8.62 Compiling num-conv v0.2.2 Compiling dyn-clone v1.0.20 Compiling time-core v0.1.9 Compiling rustversion v1.0.23 Compiling schemars v1.2.3 Compiling time-macros v0.2.32 Compiling zerovec v0.11.8 Compiling libsqlite3-sys v0.38.2 Compiling version_check v0.9.5 Compiling futures-core v0.3.34 Compiling deranged v0.5.9 Compiling powerfmt v0.2.1 Compiling percent-encoding v2.3.2 Compiling getrandom v0.3.4 Compiling time v0.3.55 Compiling generic-array v0.14.7 Compiling blake3 v1.8.7 Compiling rustix v1.1.5 Compiling httparse v1.10.1 Compiling tinyvec v1.13.3 Compiling unicode-normalization v0.1.25 Compiling arc-swap v1.9.2 Compiling hashlink v0.12.2 Compiling autocfg v1.5.1 Compiling fallible-iterator v0.3.0 Compiling linux-raw-sys v0.12.1 Compiling constant_time_eq v0.4.2 Compiling fallible-streaming-iterator v0.1.9 Compiling arrayvec v0.7.8 Compiling rusqlite v0.40.2 Compiling calternal-core v0.1.0 (/home/agent/wt/train-bm3/crates/core) Compiling num-traits v0.2.19 Compiling rand_core v0.9.5 Compiling tinystr v0.8.4 Compiling ppv-lite86 v0.2.21 Compiling unicase v2.10.0 Compiling crc32fast v1.5.2 Compiling writeable v0.6.4 Compiling ryu v1.0.23 Compiling litemap v0.8.3 Compiling icu_locale_core v2.3.0 Compiling rand_chacha v0.9.0 Compiling calternal-fsio v0.1.0 (/home/agent/wt/train-bm3/crates/fsio) Compiling form_urlencoded v1.2.2 Compiling potential_utf v0.1.6 Compiling http-body v1.1.0 Compiling zerotrie v0.2.5 Compiling openssl-sys v0.9.117 Compiling icu_normalizer_data v2.3.0 Compiling futures-sink v0.3.34 Compiling utf8_iter v1.0.4 Compiling base64 v0.22.1 Compiling data-encoding v2.11.1 Compiling simd-adler32 v0.3.10 Compiling icu_properties_data v2.3.0 Compiling alloc-no-stdlib v3.0.0 Compiling adler2 v2.0.1 Compiling miniz_oxide v0.9.1 Compiling alloc-stdlib v0.3.0 Compiling icu_collections v2.3.0 Compiling icu_provider v2.3.1 Compiling rand v0.9.5 Compiling block-buffer v0.10.4 Compiling crypto-common v0.1.7 Compiling calternal-memory v0.1.0 (/home/agent/wt/train-bm3/crates/memory) Compiling slab v0.4.12 Compiling minimal-lexical v0.2.1 Compiling tower-service v0.3.3 Compiling thiserror v1.0.69 Compiling futures-task v0.3.34 Compiling futures-util v0.3.34 Compiling nom v7.1.3 Compiling digest v0.10.7 Compiling flate2 v1.1.10 Compiling brotli-decompressor v6.0.1 Compiling hybrid-array v0.4.15 Compiling thiserror-impl v1.0.69 Compiling synstructure v0.13.2 Compiling cpufeatures v0.2.17 Compiling tower-layer v0.3.3 Compiling mime v0.3.17 Compiling httpdate v1.0.3 Compiling crossbeam-utils v0.8.23 Compiling parking v2.2.1 Compiling inotify-sys v0.1.8 Compiling event-listener v5.4.2 Compiling mime_guess v2.0.5 Compiling sha1 v0.10.7 Compiling asn1-rs-derive v0.5.1 Compiling brotli v9.0.0 Compiling icu_properties v2.3.0 Compiling icu_normalizer v2.3.0 Compiling rusticata-macros v4.1.0 Compiling http-body-util v0.1.5 Compiling asn1-rs-impl v0.2.0 Compiling ring v0.17.14 Compiling atomic-waker v1.1.2 Compiling sync_wrapper v1.0.2 Compiling compression-core v0.4.33 Compiling compression-codecs v0.4.45 Compiling hyper v1.12.0 Compiling idna_adapter v1.2.2 Compiling asn1-rs v0.6.2 Compiling tungstenite v0.29.0 Compiling event-listener-strategy v0.5.4 Compiling block-buffer v0.12.1 Compiling crypto-common v0.2.2 Compiling num-integer v0.1.47 Compiling calternal-store v0.1.0 (/home/agent/wt/train-bm3/crates/store) Compiling base64 v0.21.7 Compiling pastey v0.1.1 Compiling equivalent v1.0.2 Compiling notify v9.0.0-rc.5 Compiling const-oid v0.10.2 Compiling hashbrown v0.14.5 Compiling foreign-types-shared v0.1.1 Compiling pulldown-cmark v0.13.4 Compiling zeroize v1.9.1 Compiling lazy_static v1.5.1 Compiling openssl v0.10.81 Compiling oid-registry v0.7.1 Compiling same-file v1.0.6 Compiling walkdir v2.5.0 Compiling tokio-tungstenite v0.29.0 Compiling calternal-engine v0.1.0 (/home/agent/wt/train-bm3/crates/engine) Compiling rustls-pki-types v1.15.1 Compiling foreign-types v0.3.2 Compiling dashmap v6.2.1 Compiling digest v0.11.3 Compiling indexmap v2.14.2 Compiling base64urlsafedata v0.5.5 Compiling num-bigint v0.4.8 Compiling inotify v0.11.5 Compiling async-lock v3.4.2 Compiling idna v1.1.0 Compiling hyper-util v0.1.21 Compiling async-compression v0.4.50 Compiling tower v0.5.3 Compiling axum-core v0.5.6 Compiling tokio-util v0.7.20 Compiling serde_urlencoded v0.7.1 Compiling serde_path_to_error v0.1.20 Compiling notify-types v2.1.0 Compiling async-trait v0.1.92 Compiling openssl-macros v0.1.1 Compiling smallstr v0.3.1 Compiling cpufeatures v0.3.1 Compiling getrandom v0.2.17 Compiling fastrand v2.5.0 Compiling unsafe-libyaml v0.2.11 Compiling xxhash-rust v0.8.19 Compiling untrusted v0.9.0 Compiling matchit v0.8.4 Compiling http-range-header v0.4.2 Compiling webauthn-attestation-ca v0.5.5 Compiling axum v0.8.9 Compiling yrs v0.28.0 Compiling tower-http v0.6.11 Compiling serde_yaml v0.9.34+deprecated Compiling sha2 v0.11.1 Compiling url v2.5.8 Compiling der-parser v9.0.0 Compiling half v2.7.1 Compiling unicode-segmentation v1.13.3 Compiling base64 v0.23.1 Compiling webauthn-rs-core v0.5.5 Compiling hashbrown v0.16.1 Compiling rustls v0.23.46 Compiling similar v3.2.0 Compiling x509-parser v0.16.0 Compiling serde_cbor_2 v0.13.0 Compiling webauthn-rs-proto v0.5.5 Compiling calternal-server v0.1.0 (/home/agent/wt/train-bm3/crates/server) Compiling calternal-notes v0.1.0 (/home/agent/wt/train-bm3/crates/notes) Compiling rustls-webpki v0.103.15 Compiling unicode-general-category v0.6.0 Compiling hex v0.4.3 Compiling subtle v2.6.1 Compiling web-time v1.1.0 Compiling fnv v1.0.7 Compiling regex-syntax v0.8.11 Compiling regex-automata v0.4.18 Compiling cfb v0.14.0 Compiling ureq-proto v0.6.4 Compiling webpki-roots v1.0.9 Compiling unicode-script v0.5.8 Compiling utf8-zero v0.8.1 Compiling imagesize v0.14.0 Compiling ureq v3.4.2 Compiling unicode-security v0.1.2 Compiling infer v0.22.0 Compiling matchers v0.2.0 Compiling sharded-slab v0.1.7 Compiling calternal-contacts v0.1.0 (/home/agent/wt/train-bm3/crates/contacts) Compiling webauthn-rs v0.5.5 Compiling tracing-log v0.2.0 Compiling thread_local v1.1.10 Compiling nu-ansi-term v0.50.3 Compiling unicode-casefold v0.2.0 Compiling calternal-auth v0.1.0 (/home/agent/wt/train-bm3/crates/auth) Compiling tracing-subscriber v0.3.23 Compiling calternal-attachments v0.1.0 (/home/agent/wt/train-bm3/crates/attachments) Compiling calternal-backdrops v0.1.0 (/home/agent/wt/train-bm3/crates/backdrops) Compiling calternal-search v0.1.0 (/home/agent/wt/train-bm3/crates/search) Compiling calternal-migrate-v0 v0.1.0 (/home/agent/wt/train-bm3/crates/migrate-v0) Compiling calternal-prefs v0.1.0 (/home/agent/wt/train-bm3/crates/prefs) Compiling calternal-plugin-hello v0.1.0 (/home/agent/wt/train-bm3/crates/plugin-hello) Compiling calternal-daily v0.1.0 (/home/agent/wt/train-bm3/crates/daily) Compiling calternal-contacts-actions v0.1.0 (/home/agent/wt/train-bm3/crates/contacts-actions) Compiling calternal-tasks v0.1.0 (/home/agent/wt/train-bm3/crates/tasks) Compiling calternal v0.1.0 (/home/agent/wt/train-bm3/crates/calternal) Finished `release` profile [optimized] target(s) in 1m 48s ``` </details>
kayg added 60 commits 2026-10-30 08:27:20 +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
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
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>
# Conflicts:
#	apps/web/src/components/Palette.svelte
Partial cherry-pick of 84cb1a4e: excludes all private staging, lease, guard and sweep changes.
Keep binary resolver unit tests independent of the CI Rust build
Some checks failed
CI / server (pull_request) Successful in 1m18s
CI / rust (pull_request) Failing after 3m12s
CI / web (pull_request) Has been cancelled
14bd77f0b9
(cherry picked from commit 3cf6ac568f)
Author
Owner

Fixed the Rust CI crash/recovery failure in this train. Production Rust inputs changed; browser inputs did not. Both browser halves need a rerun against the new head. No merge or deploy was performed.

The failing job was run 560, rust, job id 63373, at 14bd77f0b9f5da7ad6de41c3b159be74db55507a. The exact failing step was Test, command cargo test --workspace --locked. Format and Lint succeeded. The API /api/v1/repos/kayg/calternal/actions/jobs/63373/logs supplied the log; the suggested web /logs endpoint returned 404.

Cause: startup recovery sets a retaining save for an unflushed recovered room. put_retaining durably moves the old inode to Trash before hard-linking the new image into the public note path. SIGKILL in between leaves durable typing, a pending save, and no file at the public path. room::load::settle discarded the pending save and then treated that missing file as an outside deletion, returning NotFound/404 when the test retried its append. The crash test therefore fails intermittently according to kill timing. CI used linux/amd64 and Rust 1.99.0; this reproduction used aarch64 and Rust/clippy 1.99.0, so the architecture difference is not required. Both use the repository's four-thread test limit. The Rust tests build their own server through CARGO_BIN_EXE_calternal; this was not a missing release binary or CALTERNAL_BIN issue.

Fix: for a pending save whose destination is absent, persist a valid empty CRDT file base with no file hash, then rebuild and resave from durable history. This also leaves recovery possible if the process dies again before its retry finishes. The displaced inode stays in Trash. The deterministic regression creates exactly the interrupted placement state and verifies exact recovered text, a valid persisted empty base, exact saved bytes, retained old bytes, and another reopen. It failed before the fix with NotFound: note … was deleted and passes after it. Tests and lints were not relaxed.

Classification and merge-stage attribution: the original head's five crash-suite reruns returned 0, 0, 101, 0, 0; the failed attempt reproduced the exact CI line-175 404. The corrected stage matrix below uses fresh source mtimes and a target directory isolated from final validation. Source history identifies the new move-before-publish gap and recovery retention in 02c762ace5fa65f6a4e4906887161e0b0fc8b4bc, brought in by Composer merge f95610c3. Random passing stage attempts alone cannot prove absence of this race; the deterministic regression exercises its new physical placement boundary.

Local build note: an initial diagnostic matrix reused the final validation target and caused stale-artifact compile/doctest failures. That matrix was discarded. The worktree target was removed and the comparisons and final gates were rerun with isolated targets and RUSTC_WRAPPER unset. Those local artifact errors were not attributed to the product.

All heavy commands on 10by32-02-std used CALTERNAL_TRAIN=1 /usr/local/bin/build-slot.sh. Final gates use the workflow commands and RUSTFLAGS=-D warnings, CARGO_TERM_COLOR=always, and --locked; Cargo caches/target paths are local to this host instead of the runner container's /cargo-cache and /target. The lease heartbeat was started first with systemd-run --user for lease 515a1007a95e40eba6dd72ba8e3c7174. The Infraternal build job was not touched.

Fix commit: cc56ef862ee28c9e8b0a36a8e780c16e78ac7e50.

Original CI failure (verbatim):

2026-10-30T08:30:34.0023523Z test kill_nine_never_loses_or_doubles ... FAILED
2026-10-30T08:30:34.0023912Z 
2026-10-30T08:30:34.0023976Z failures:
2026-10-30T08:30:34.0024025Z 
2026-10-30T08:30:34.0024069Z ---- kill_nine_never_loses_or_doubles stdout ----
2026-10-30T08:30:34.0024118Z 
2026-10-30T08:30:34.0024164Z thread 'kill_nine_never_loses_or_doubles' (3486) panicked at crates/calternal/tests/notes_crash.rs:175:13:
2026-10-30T08:30:34.0024600Z assertion `left == right` failed: {"error":{"code":"not_found","message":"We couldn't find that.","request_id":"01a18bee-9ff9-702a-b7e1-04117799cd4a","retryable":false}}
2026-10-30T08:30:34.0024709Z   left: 404
2026-10-30T08:30:34.0024812Z  right: 200
2026-10-30T08:30:34.0024911Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
2026-10-30T08:30:34.0025026Z server stderr retained at /tmp/calternal-crash-3483-43495.stderr
2026-10-30T08:30:34.0025103Z 
2026-10-30T08:30:34.0025154Z 
2026-10-30T08:30:34.0025224Z failures:
2026-10-30T08:30:34.0025290Z     kill_nine_never_loses_or_doubles
2026-10-30T08:30:34.0025344Z 
2026-10-30T08:30:34.0025418Z test result: FAILED. 2 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.42s
2026-10-30T08:30:34.0025487Z 
2026-10-30T08:30:34.0029166Z error: test failed, to rerun pass `-p calternal --test notes_crash`
2026-10-30T08:30:34.0278600Z ⚙️ [runner]: exitcode '101': failure
2026-10-30T08:30:34.0279675Z 🏁  Job failed
2026-10-30T08:30:34.6500925Z Job 'rust' failed

Recorded exit codes (verbatim):

head attempt 1 exit 0
head attempt 2 exit 0
head attempt 3 exit 101
head attempt 4 exit 0
head attempt 5 exit 0
d83e54db attempt 1 exit 0
d83e54db attempt 2 exit 0
d83e54db attempt 3 exit 0
d83e54db attempt 4 exit 0
d83e54db attempt 5 exit 0
87b8dc4e attempt 1 exit 0
87b8dc4e attempt 2 exit 0
87b8dc4e attempt 3 exit 0
87b8dc4e attempt 4 exit 0
87b8dc4e attempt 5 exit 0
af668240 attempt 1 exit 0
af668240 attempt 2 exit 0
af668240 attempt 3 exit 0
af668240 attempt 4 exit 0
af668240 attempt 5 exit 0
f95610c3 attempt 1 exit 0
f95610c3 attempt 2 exit 0
f95610c3 attempt 3 exit 0
f95610c3 attempt 4 exit 0
f95610c3 attempt 5 exit 0
fmt exit 0
clippy exit 0
rust-tests exit 0
fixed notes_crash attempt 1 exit 0
fixed notes_crash attempt 2 exit 0
fixed notes_crash attempt 3 exit 0
fixed notes_crash attempt 4 exit 0
fixed notes_crash attempt 5 exit 0
fixed notes_crash attempt 6 exit 0
fixed notes_crash attempt 7 exit 0
fixed notes_crash attempt 8 exit 0
fixed notes_crash attempt 9 exit 0
fixed notes_crash attempt 10 exit 0

Gate output below is verbatim text with ANSI color escapes removed. Existing configured ignored tests remain visible.

Original-head exact local reproduction, attempt 3
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
     Running tests/notes_crash.rs (target/debug/deps/notes_crash-32dceb745e4b211f)

running 3 tests
test kill_nine_mid_tag_rename_renames_each_tag_once ... ok
12 kills, 2394 confirmed appends
test kill_nine_mid_append_on_a_long_note ... ok

thread 'kill_nine_never_loses_or_doubles' (36458) panicked at crates/calternal/tests/notes_crash.rs:175:13:
assertion `left == right` failed: {"error":{"code":"not_found","message":"We couldn't find that.","request_id":"01a18cde-be88-75cb-9f6c-64ce0e08a5f1","retryable":false}}
  left: 404
 right: 200
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
server stderr retained at /tmp/calternal-crash-36455-39599.stderr
test kill_nine_never_loses_or_doubles ... FAILED

failures:

failures:
    kill_nine_never_loses_or_doubles

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

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

Deterministic regression before the fix
   Compiling syn v3.0.9
   Compiling serde_core v1.0.229
   Compiling serde_json v1.0.154
   Compiling syn v2.0.119
   Compiling tracing-core v0.1.36
   Compiling serde_derive v1.0.229
   Compiling ref-cast-impl v1.0.27
   Compiling thiserror-impl v2.0.21
   Compiling tracing-attributes v0.1.31
   Compiling serde v1.0.229
   Compiling serde_derive_internals v0.30.0
   Compiling thiserror v2.0.21
   Compiling ref-cast v1.0.27
   Compiling tokio-macros v2.7.2
   Compiling tracing v0.1.44
   Compiling uuid v1.28.0
   Compiling schemars_derive v1.2.3
   Compiling num-traits v0.2.19
   Compiling tokio v1.53.2
   Compiling rusqlite v0.40.2
   Compiling log v0.4.34
   Compiling mio v1.2.4
   Compiling schemars v1.2.3
   Compiling async-trait v0.1.92
   Compiling rand v0.10.3
   Compiling calternal-core v0.1.0 (/home/agent/wt/bm3-ci/crates/core)
   Compiling serde_yaml v0.9.34+deprecated
   Compiling calternal-store v0.1.0 (/home/agent/wt/bm3-ci/crates/store)
   Compiling calternal-engine v0.1.0 (/home/agent/wt/bm3-ci/crates/engine)
   Compiling notify v9.0.0-rc.5
   Compiling proptest v1.12.0
   Compiling calternal-fsio v0.1.0 (/home/agent/wt/bm3-ci/crates/fsio)
   Compiling yrs v0.28.0
   Compiling calternal-testkit v0.1.0 (/home/agent/wt/bm3-ci/crates/testkit)
   Compiling calternal-notes v0.1.0 (/home/agent/wt/bm3-ci/crates/notes)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 21.24s
     Running unittests src/lib.rs (target/debug/deps/calternal_notes-ad0f36365f726fc9)

running 1 test

thread 'tests::saving::pending_retaining_save_recovers_a_missing_destination' (87904) panicked at crates/notes/src/tests/clients.rs:146:45:
called `Result::unwrap()` on an `Err` value: Error { code: NotFound, detail: "note 01a18ce1-2933-7763-b312-32098f7c8ef3 was deleted" }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
test tests::saving::pending_retaining_save_recovers_a_missing_destination ... FAILED

failures:

failures:
    tests::saving::pending_retaining_save_recovers_a_missing_destination

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

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

Deterministic regression after the fix
    Blocking waiting for file lock on package cache
   Compiling syn v3.0.9
   Compiling serde_core v1.0.229
   Compiling serde_json v1.0.154
   Compiling syn v2.0.119
   Compiling serde_derive_internals v0.30.0
   Compiling tracing-core v0.1.36
   Compiling uuid v1.28.0
   Compiling num-traits v0.2.19
   Compiling rusqlite v0.40.2
   Compiling log v0.4.34
   Compiling mio v1.2.4
   Compiling rand v0.10.3
   Compiling notify v9.0.0-rc.5
   Compiling serde_derive v1.0.229
   Compiling tracing-attributes v0.1.31
   Compiling ref-cast-impl v1.0.27
   Compiling thiserror-impl v2.0.21
   Compiling tracing v0.1.44
   Compiling ref-cast v1.0.27
   Compiling schemars_derive v1.2.3
   Compiling thiserror v2.0.21
   Compiling tokio-macros v2.7.2
   Compiling serde v1.0.229
   Compiling async-trait v0.1.92
   Compiling tokio v1.53.2
   Compiling schemars v1.2.3
   Compiling calternal-core v0.1.0 (/home/agent/wt/bm3-ci/crates/core)
   Compiling yrs v0.28.0
   Compiling calternal-store v0.1.0 (/home/agent/wt/bm3-ci/crates/store)
   Compiling calternal-engine v0.1.0 (/home/agent/wt/bm3-ci/crates/engine)
   Compiling serde_yaml v0.9.34+deprecated
   Compiling calternal-fsio v0.1.0 (/home/agent/wt/bm3-ci/crates/fsio)
   Compiling proptest v1.12.0
   Compiling calternal-testkit v0.1.0 (/home/agent/wt/bm3-ci/crates/testkit)
   Compiling calternal-notes v0.1.0 (/home/agent/wt/bm3-ci/crates/notes)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 30.05s
     Running unittests src/lib.rs (target/debug/deps/calternal_notes-ad0f36365f726fc9)

running 1 test
test tests::saving::pending_retaining_save_recovers_a_missing_destination ... ok

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


cargo fmt --all --check

cargo clippy --workspace --all-targets --locked
    Checking calternal-notes v0.1.0 (/home/agent/wt/bm3-ci/crates/notes)
    Checking calternal-tasks v0.1.0 (/home/agent/wt/bm3-ci/crates/tasks)
    Checking calternal-daily v0.1.0 (/home/agent/wt/bm3-ci/crates/daily)
    Checking calternal-contacts-actions v0.1.0 (/home/agent/wt/bm3-ci/crates/contacts-actions)
    Checking calternal-perf v0.1.0 (/home/agent/wt/bm3-ci/crates/perf)
    Checking calternal v0.1.0 (/home/agent/wt/bm3-ci/crates/calternal)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.79s

cargo test --workspace --locked
   Compiling calternal-notes v0.1.0 (/home/agent/wt/bm3-ci/crates/notes)
   Compiling calternal-tasks v0.1.0 (/home/agent/wt/bm3-ci/crates/tasks)
   Compiling calternal-daily v0.1.0 (/home/agent/wt/bm3-ci/crates/daily)
   Compiling calternal-contacts-actions v0.1.0 (/home/agent/wt/bm3-ci/crates/contacts-actions)
   Compiling calternal v0.1.0 (/home/agent/wt/bm3-ci/crates/calternal)
   Compiling calternal-perf v0.1.0 (/home/agent/wt/bm3-ci/crates/perf)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 11.07s
     Running unittests src/main.rs (target/debug/deps/calternal-7739be986849d15f)

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::fix_commands ... ok
test args::tests::migrate_v0 ... ok
test args::tests::origin_defaults_to_the_local_port ... ok
test args::tests::setup_and_re_pair_are_explicit ... ok
test args::tests::state_defaults_to_resolved_data_and_flags_override_environment ... ok
test args::tests::user_create ... 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::people::backdrops_spend_the_same_counter_as_small_attachments ... ok
test isolation::contacts_and_tasks_in_one_home_keep_their_own_members ... 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::randomized_home_shutdown_releases_both_roots ... ok
test isolation::people::every_action_obeys_person_visibility ... ok

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

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

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.75s

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

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 5.74s

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

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.32s

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

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.42s

     Running tests/notes_crash_typing.rs (target/debug/deps/notes_crash_typing-5fa7de0b20f64b25)

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 3.04s

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

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-ca79c58b926ea72e)

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-5ee995f6752d7b29)

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/startup.rs (target/debug/deps/startup-798616e12e1b3961)

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 answers_after_launch ... ok
test a_new_server_prints_a_setup_token ... ok
test refuses_plain_http_on_a_public_origin ... 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-5dd4319499cccdc2)

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 legacy_history_read_only_and_invalid_state_are_refused ... ok
test missing_home_refuses_without_creating_directory_or_lock ... ok
test original_storage_startup_scenario_repeats_100x_under_load ... ignored, stress gate; run explicitly during release validation
test both_missing_markers_with_existing_split_data_require_confirmed_re_pair ... 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.04s

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

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::a_retry_with_the_same_key_never_makes_a_second_copy ... ok
test tests::http::check_finds_only_your_own_files ... ok
test tests::http::the_limit_holds_while_streaming_without_a_length ... 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::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_auth-1ae103c3b6330d22)

running 30 tests
test config::tests::origins ... ok
test ceremony::tests::anonymous_pool_stays_bounded_and_evicts_oldest ... ok
test db::tests::migration_keeps_the_first_owner_when_creation_times_tie ... 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::existing_database_keeps_people_credentials_and_sessions ... ok
test http::proxy_tests::forwarding_stops_at_first_untrusted_hop_and_rejects_malformed_chains ... ok
test invite_key::tests::lookup_uses_a_separate_derived_key_and_depends_on_the_server_key ... ok
test ceremony::tests::full_pool_refuses_foreign_source_without_discarding_live_prompt ... 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 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 invite_redeem::tests::invalid_invites_do_not_reveal_name_conflicts ... 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 setup::tests::names ... ok
test setup::tests::names_reject_invisible_and_normalize_nfc ... ok
test limit::reliability_tests::full_map_evicts_least_recent_without_refusing_new_sources ... ok
test setup::tests::recovery_requires_exact_username_or_uuid_never_display_name ... 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::recover_needs_a_known_person ... ok
test setup::tests::cli_creation_refuses_admin_name_confusables ... 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.02s

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

running 12 tests
test forged_sessions_get_nowhere ... ok
test bad_json_and_unknown_fields_are_refused ... ok
test duplicate_session_cookies_never_choose_an_identity ... ok
test anonymous_prompt_flood_preserves_login_setup_and_add ... ok
test junk_setup_tokens_are_refused_then_rate_limited ... ok
test login_source_limit_does_not_block_another_client ... ok
test nothing_about_the_server_leaks_before_sign_in ... ok
test non_json_requests_are_refused ... ok
test one_source_cannot_lock_out_another_and_cannot_spoof_forwarding ... ok
test other_sites_cannot_act_for_you ... 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.04s

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

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

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

     Running tests/groups.rs (target/debug/deps/groups-065fc060b7f7c76b)

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-2853a2d4dd28d27b)

running 3 tests
test old_name_is_ignored_and_cleared_once_without_touching_host_session ... ok
test upgrading_schema_six_removes_cookie_state_and_keeps_passkeys ... ok
test duplicate_host_headers_and_stale_requests_never_clear_new_session ... 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-fbb3b1f509bcbbbd)

running 8 tests
test invite_admin_names_cannot_be_impersonated_and_failure_preserves_invite ... ok
test invite_finish_rechecks_admin_names_after_role_changes ... ok
test invite_redemption_joins_its_groups_and_other_inviters_cannot_copy_it ... 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 legacy_invite_indexes_upgrade_atomically_and_keep_copy_and_redemption ... 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.18s

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

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

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

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

running 11 tests
test bearer_tokens_work_like_cookies ... ok
test a_sign_in_answer_cannot_be_replayed ... ok
test foreign_status_cannot_sign_the_browser_out ... ok
test an_unknown_passkey_is_refused ... ok
test logout_revokes_the_installation_and_rejects_live_cookies ... ok
test revoking_another_device_signs_it_out ... ok
test sign_in_with_a_passkey_creates_a_new_installation ... ok
test sign_out_ends_the_session_immediately ... ok
test signing_in_shows_up_live_on_another_device ... 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.17s

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

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.01s

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

running 7 tests
test an_empty_name_is_refused_and_a_long_one_is_cut ... ok
test adding_needs_a_sign_in_and_an_add_prompt_works_once ... ok
test add_rename_and_remove_each_leave_a_journal_event ... ok
test a_removed_passkey_that_is_gone_or_unknown_is_not_found ... ok
test the_first_passkey_is_listed_with_the_device_it_was_made_on ... ok
test the_same_device_cannot_be_added_twice ... 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.02s

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

running 4 tests
test first_owner_has_capabilities_and_cannot_demote_the_last_admin ... ok
test promotion_cannot_create_confusable_admin_names ... ok
test two_admins_racing_to_demote_themselves_leave_one_admin ... ok
test member_cannot_change_roles_and_new_capability_sets_work ... 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-b03dabab85cd3d32)

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.94s

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

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 default_twenty_mib_stream_boundary ... 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 directory_move_during_initial_recount_must_track_later_deletes ... 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 ipv6_rotation_must_not_lock_out_new_source ... ok
test source_isolation_and_untrusted_forwarding ... ok
test slow_uploads_must_not_starve_authentication_blocking_pool ... 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.11s

     Running tests/reliability_round3.rs (target/debug/deps/reliability_round3-705a030324718aa0)

running 12 tests
test attachment_and_backdrop_routes_share_caps_and_cancel_cleanup ... ok
test canonical_recovery_token_variants_share_one_target_without_spending_other_tokens ... ok
test ipv4_mapped_v6_and_native_v4_share_budget_but_adjacent_prefix_does_not ... ok
test fifty_slow_upload_attempts_preserve_full_signin_and_status ... 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-4278694f578f08a5)

running 15 tests
test concurrent_key_creation_publishes_one_complete_key ... ok
test eight_parallel_redeemers_create_exactly_one_account ... 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 malformed_token_must_have_same_generic_response ... ok
test new_modules_are_small_and_documented ... ok
test invite_lookup_must_use_keyed_hash ... 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 key_permissions_missing_corrupt_and_no_plaintext_history ... 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.09s

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

running 8 tests
test a_finished_prompt_cannot_be_replayed ... ok
test first_owner_needs_a_name ... ok
test a_restart_replaces_the_first_owner_token ... ok
test a_token_works_exactly_once_under_a_storm ... ok
test recovery_adds_a_new_passkey_for_the_same_person ... ok
test first_owner_signs_up_with_the_printed_token ... ok
test session_cookie_is_locked_down ... 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-32b2164e59333bd8)

running 25 tests
test tests::a_photo_unknown_to_us_is_looked_up ... ok
test tests::a_stricter_attachment_limit_also_bounds_backdrops ... ok
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::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::nobody_can_read_or_list_someone_elses_uploads ... ok
test tests::picking_is_reported_to_unsplash_once ... ok
test tests::pictures_are_proxied_cached_and_never_given_the_key ... ok
test tests::pictures_from_other_hosts_are_refused ... 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::too_many_pixels_are_refused_but_files_within_the_byte_limit_work ... 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::streaming_upload_stops_at_byte_limit_and_leaves_no_artifact ... ok
test tests::backdrop_quota_refuses_new_files_and_releases_space_on_delete ... ok
test tests::the_cache_drops_the_oldest_files_past_its_cap ... ok

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

     Running unittests src/lib.rs (target/debug/deps/calternal_contacts-44b945985de1a4aa)

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-64ce67ca0144cb11)

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-f7e339bedf25d20e)

running 11 tests
test envelope_checks_and_original_copy_reject_ambiguous_or_edited_state ... ok
test canonical_note_comparison_checks_every_byte_and_falls_back_for_local_sections ... ok
test escaped_separator_parity_keeps_component_and_list_boundaries ... ok
test bare_properties_and_ignored_parameter_properties_decode_the_same_values ... 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 quoted_parameter_delimiters_and_value_colons_keep_their_meaning ... ok
test component_and_list_comparisons_preserve_empty_parts_and_noncanonical_escapes ... 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-4442d64d470cea7b)

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 0.99s

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

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-1213a5e5c74c942c)

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-cd45c1267ebbf126)

running 27 tests
test a_phone_note_containing_h2_or_h1_round_trips ... ok
test colon_bearing_label_edits_change_only_the_label_and_value_edits_only_the_value ... ok
test ambiguous_simultaneous_colon_edit_returns_phone_group_and_history ... ok
test colons_delimiters_and_unicode_keep_their_exact_wire_values ... ok
test company_and_department_edits_share_one_org_in_either_note_order ... ok
test colon_label_renames_survive_a_following_client_edit ... ok
test duplicate_structured_name_parts_are_unrepresentable ... ok
test crlf_notes_preserve_original_escape_spelling_and_do_not_create_merge_conflicts ... ok
test first_list_ends_at_a_paragraph_and_second_list_stays_local ... ok
test flat_repeatable_lines_stay_and_are_reported ... ok
test entering_a_birthday_year_clears_the_apple_omit_year_flag ... ok
test later_notes_headings_are_phone_text ... ok
test empty_visible_properties_are_not_deleted_on_an_unchanged_round_trip ... 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 tags_keep_list_boundaries_when_a_category_contains_comma_space ... ok
test org_hierarchy_is_one_fact_and_unchanged_components_stay_lossless ... ok
test unchanged_values_that_differ_only_by_trailing_spaces_keep_both_occurrences ... ok
test unicode_names_keep_normalisation_scripts_direction_and_joiners ... ok
test utf8_bom_is_document_framing ... 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-3cfcf2928c971d4e)

running 4 tests
test related_brackets_and_angle_brackets_are_valid_markdown_and_editable ... ok
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 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-6b07fd9e6799670f)

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 apple_reordering_churn_photo_and_dropped_extension_do_not_lose_local_edits ... ok
test distinct_repeated_types_return_quiet_concurrent_edit_notice ... ok
test distinct_ungrouped_types_merge_reorders_edits_additions_and_deletions ... ok
test dropped_extension_parameters_keep_their_order_and_do_not_conflict_with_local_values ... ok
test phone_note_deletion_does_not_reappear_as_an_empty_note_on_read ... ok
test identical_visible_rows_keep_both_occurrences_during_noop_and_changed_merges ... 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 related_links_with_custom_relative_targets_bind_to_the_original_person ... ok
test the_first_card_group_is_added_after_an_existing_photo ... ok
test local_label_renames_take_phone_deletes_or_value_edits ... ok
test unchanged_repeated_ungrouped_properties_keep_occurrences ... ok
test same_line_concurrent_edits_and_deletes_take_phone_group ... 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-92c12d601a63c499)

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 department_hierarchy_is_one_fact_when_both_sides_edit_it ... ok
test company_and_department_merge_as_separate_single_facts ... ok
test equal_single_fact_values_still_bind_by_line_order_when_edited ... ok
test identical_repeatable_rows_return_history_instead_of_guessing_hidden_occurrences ... ok
test concurrent_org_additions_and_deletes_never_stop_sync ... ok
test indistinguishable_single_fact_deletion_returns_phone_group_and_history ... ok
test identical_syncs_do_not_repeat_a_phone_group_replacement_notice ... 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 phone_notes_keep_headings_dividers_lists_and_all_blank_lines_exactly ... ok
test repeated_company_conflict_keeps_independent_department_edits ... ok
test repeated_single_facts_typed_from_scratch_create_separate_properties ... ok
test org_deletions_use_unique_departments_or_return_every_ambiguous_fact ... ok
test several_ambiguous_groups_report_each_previous_group_once ... ok
test repeated_single_facts_bind_edit_delete_and_multiple_edits_to_occurrences ... 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-4e4e3f6039f62b38)

running 10 tests
test ambiguous_sources_damaged_notes_and_line_injection_are_errors ... ok
test escapes_empty_values_caret_parameters_and_unknown_sequences ... 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 1.89s

     Running tests/layout.rs (target/debug/deps/layout-80fef5b2accb3973)

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 independent_phone_and_note_edits_preserve_local_spelling ... ok
test notes_are_plain_text_two_way_through_nested_headings ... ok
test not_a_field_and_other_sections_stay_exact ... ok
test photo_reference_is_an_attachment_io_boundary ... 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-6f5170dbdc32c537)

running 10 tests
test add_delete_and_repeated_fields_keep_the_right_occurrence ... ok
test editing_geo_keeps_coordinate_precision_and_semicolon_structure ... ok
test new_and_edited_canonical_notes_are_identical_after_wire_import ... ok
test new_contact_uid_is_note_id_and_default_is_three ... ok
test hand_edit_uses_external_original_until_export ... 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-63c21f6ceb6878b0)

running 131 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 facts::tests::reads_name_and_facts_in_order ... ok
test cards::tests::ids_cannot_leave_the_folder ... ok
test jobs::tests::attempts_are_stable_and_distinct ... ok
test import::tests::identity_is_the_uid_or_the_bytes ... ok
test cards::tests::copies_are_written_whole_and_removed ... ok
test names::tests::bidi_controls_never_reach_a_file_name_but_joiners_do ... ok
test names::tests::a_fact_equal_to_the_name_is_skipped ... ok
test names::tests::case_and_unicode_form_clash ... ok
test names::tests::clashes_add_the_first_fact_then_a_number ... ok
test names::tests::empty_and_emoji_names ... ok
test names::tests::illegal_characters_become_dashes ... ok
test names::tests::nfd_and_nfc_give_one_name ... ok
test namer::tests::names_come_from_the_note_and_its_card ... 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::a_retry_with_the_same_key_makes_one_contact ... ok
test tests::basics::contact_actions_never_touch_other_notes ... 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::code_stays_and_anchors_travel ... ok
test tests::break_links::case_only_renames ... 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::the_folder_is_a_setting ... 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::correctness::acknowledged_edit_between_undo_preparation_and_deletion_survives ... ok
test tests::break_names::unsafe_characters_never_reach_the_file_name ... 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::correctness::failed_partial_import_retains_prepared_cards_until_trash_removal ... ok
test tests::env::pause_markers_accept_serial_and_parallel_child_harness_output ... ok
test tests::env::fixture_releases_its_engine_and_stores ... 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_in_an_existing_folder_preserves_earlier_contacts ... ok
test tests::import::bulk_import_preserves_an_id_held_only_by_trash_details ... ok
test tests::import::limits_hold ... ok
test tests::import::a_final_flush_failure_undoes_every_published_contact_and_can_retry ... ok
test tests::kill9::child ... ok
test tests::import::the_same_file_twice_changes_nothing ... ok
test tests::import::parallel_import_keeps_input_order_and_compares_existing_peer_facts ... 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::edit_killed_copying ... ok
test tests::kill9::import_killed_prepared ... ok
test tests::kill9::rename_killed_committed ... ok
test tests::kill9::import_killed_planned ... 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::kill9::import_killed_mid_import ... 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::props::random_sequences_keep_every_invariant ... 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::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::undoing_an_import_retains_history_until_trash_is_purged ... ok
test tests::review::both_ends_in_trash_restore_source_before_target_keeps_identity ... ok
test tests::review3::same_size_photo_swaps_are_held_to_the_limit ... 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::kill9::edit_killed_prepared ... ok
test tests::kill9::rename_killed_prepared ... ok
test tests::review::kill9_import_after_history_transaction ... ok
test tests::review::kill9_import_after_directory_sync ... ok
test tests::review::kill9_import_after_first_file ... ok
test tests::review::kill9_import_during_file_placement ... ok
test tests::review::kill9_import_into_existing_folder_after_first_file ... ok
test tests::review::kill9_restore_after_outgoing_link_repair ... ok
test tests::review::kill9_import_private_files_before_history ... 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_into_existing_folder_after_directory_sync ... 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::kill9_restore_after_incoming_link_repair ... ok
test tests::review::same_company_uses_city ... ok
test tests::review::ordinary_tag_job_and_undo_preserve_concurrent_typing ... ok
test tests::sweep::the_sweep_drops_cards_of_contacts_gone_for_good ... ok
test tests::review::undo_refuses_a_later_phone_card_before_moving_or_retargeting_anything ... ok
test tests::sweep::undo_and_deleting_forever_sweep_at_once ... 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::review::ring_import_1000_swaps_chains_unicode_h1_and_undo ... ok
test tests::review::kill9_restore_before_incoming_link_repair ... ok

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

     Running unittests src/lib.rs (target/debug/deps/calternal_core-45ba7fe73ee21166)

running 15 tests
test action::tests::namespace_is_enforced ... ok
test drain::tests::close_gives_up_after_its_bound ... ok
test batch::tests::stops_at_the_first_error ... 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 error::tests::every_code_has_a_friendly_message ... 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::deferred_payload_keeps_local_and_global_byte_admission ... ok
test room_queue::tests::failed_admission_does_not_leak_reservations ... ok
test visible::tests::hides_current_and_legacy_markers ... 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-13a2bf14c501487a)

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::an_existing_day_file_is_reused_whatever_its_id ... ok
test tests::bad_input_is_refused_kindly ... ok
test tests::any_text_is_safe_to_read_and_plan ... ok
test tests::a_day_whose_note_is_in_the_trash_still_opens ... ok
test tests::add_inserts_exactly_one_entry_and_keeps_the_rest ... ok
test tests::log_add_then_close_makes_a_range ... ok
test tests::close_turns_one_open_entry_into_a_range ... ok
test tests::shared_vectors ... ok
test tests::opening_the_same_day_at_once_makes_one_note ... ok
test tests::today_follows_the_device_offset ... ok
test tests::make_note_on_a_log_line_keeps_times_and_tags ... ok
test tests::two_offline_devices_starting_the_same_day_merge_into_one_note ... ok
test times_tests::a_line_with_only_tags_stays_words ... 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::any_line_is_safe ... ok
test times_tests::trailing_tags_on_any_line ... ok
test times_tests::a_log_line_splits_into_times_words_and_tags ... 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.33s

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

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::a_plugin_cannot_write_outside_its_namespace ... ok
test tests::action_scopes_are_distinct_and_cannot_alias_legacy_keys ... 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-0611aad0f053a9bd)

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.33s

     Running unittests src/main.rs (target/debug/deps/calternal_fixtures-36079744babe3293)

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-abac0fab62c5cf7c)

running 40 tests
test names::directory::tests::a_full_kernel_queue_rebuilds_before_allocating ... ok
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::walking_without_openat2_refuses_symlinks_too ... ok
test swap::create_tests::create_preserves_outside_file_appearing_after_absence_check ... ok
test swap::create_tests::unsupported_exchange_never_replaces_an_existing_file ... ok
test names::directory::tests::immediate_outside_events_case_duplicates_and_replacement_are_current ... ok
test tests::atomic_write_replaces_and_leaves_no_temp_files ... ok
test tests::a_published_directory_retains_ownership_when_a_parent_flush_fails ... 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::conditional_removal_keeps_changed_bytes_and_outside_replacements ... ok
test tests::a_private_directory_is_invisible_until_exclusive_publication ... ok
test tests::delta_rename_must_preserve_file_arriving_after_absence_check ... ok
test tests::conditional_removal_recovers_the_captured_file_after_restart ... ok
test tests::dropping_data_lock_releases_it_even_with_an_inherited_file_handle ... ok
test tests::directory_publication_rechecks_changed_inheritance_policy ... 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::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::write_unless_changed_keeps_someone_elses_version ... ok
test usage::tests::a_separate_state_root_counts_what_plugins_report ... ok
test tests::parallel_bulk_preserves_result_slots_and_observes_the_final_sync ... 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::bulk_writes_and_published_folders_count_without_a_recount ... ok
test usage::tests::writes_moves_trash_and_purge_update_without_a_recount ... ok
test names::directory::tests::random_outside_entry_changes_match_the_real_directory ... ok
test tests::big_writes_arrive_whole ... ok

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

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

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-b4d70c2003ecd510)

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::m1_custom_daily_title_and_heading_stay ... ok
test tests::rules::m10_tz_markers_go_and_other_zones_convert_to_the_notes_zone ... ok
test tests::rules::m1_daily_notes_get_day_names_ids_and_lose_generated_headings ... ok
test tests::rules::m2_attachments_that_exist_are_copied_and_relinked ... 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_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_links_are_repaired_by_name_date_title_and_slug ... ok
test tests::rules::m2_wikilinks_always_become_standard_links ... ok
test tests::rules::m5_unreadable_dates_fall_back ... ok
test tests::rules::m4_unreferenced_block_ids_go_and_referenced_ones_stay ... ok
test tests::rules::m6_conflict_copies_are_not_migrated ... ok
test tests::rules::m7_tasks_blocks_are_stripped_and_listed ... ok
test tests::rules::m8_only_notes_and_linked_files_move ... 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::unix_times_become_india_time ... ok
test tests::units::links_parse_in_every_shape ... 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::not_a_marker_is_left_alone ... ok
test tzmarker::tests::no_zone_in_the_note_means_strip_only ... ok
test tests::rules::running_twice_gives_the_same_bytes ... ok
test tzmarker::tests::same_zone_just_goes ... ok
test tzmarker::tests::second_run_changes_nothing ... 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.03s

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

running 449 tests
test anchor::tests::lines_by_utf16_index ... ok
test backlinks::tests::snippets_are_the_trimmed_line ... ok
test anchor::tests::hash_is_plain_sha256_hex ... ok
test blocks::tests::line_edits ... ok
test blocks::tests::finds_list_children_and_heading_sections ... ok
test blocks::tests::shapes_keep_markers ... ok
test blocks::tests::titles_from_the_first_sentence ... ok
test backlinks::tests::links_are_fold_keys_and_lines ... ok
test bulk::undo::tests::inverse_restores_the_text ... ok
test bulk::undo::tests::inverse_roundtrips ... ok
test capture_tests::crash_child ... ok
test bulk::error_tests::legacy_job_reports_hide_stored_source_details ... ok
test bulk::error_tests::failed_job_reports_keep_source_details_in_the_server_error ... ok
test diff::tests::an_inserted_line_starts_at_a_line_start ... ok
test diff::tests::edits_never_split_a_character ... ok
test deletion::tests::recovery_keeps_its_intent_until_missing_history_is_restorable ... 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 frontmatter::tests::set_is_utf16_aware ... ok
test health::tests::anchors ... ok
test diff::tests::edits_turn_old_into_new ... ok
test history::blobs::tests::photo_chunks_preserve_folding_unknown_fields_and_line_endings ... ok
test capture_tests::capture_allocates_around_unindexed_case_and_exact_names ... ok
test history::companions::import_cache_tests::import_cache_budget_returns_after_success_and_failure ... 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::keys_answer_without_reading_bytes_and_cover_older_rows ... ok
test history::companions::tests::rejected_companion_writes_leave_history_and_quota_unchanged ... ok
test history::companions::tests::retained_bytes_follow_every_change_and_match_a_full_count ... ok
test history::companions::tests::staged_rows_wait_for_their_step ... 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::tests::a_busy_begin_reports_its_cause_without_running_the_job ... ok
test history::receipts::tests::legacy_card_only_changes_get_a_whole_note_journal_position ... 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
test history::tests::a_competing_writer_cannot_invalidate_a_history_write_snapshot ... ok
test history::tests::appends_are_ordered_and_readable ... ok
test history::tests::pending_save_promotes_to_base ... ok
test history::tests::disk_full_keeps_the_cause_and_failed_writes_can_be_retried ... 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 room::acks::tests::varuints_round_trip ... ok
test room::actor::retry_tests::malformed_update_remains_a_permanent_refusal ... 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 capture_tests::kill9_at_every_capture_and_undo_journal_step ... 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 links::tests::code_block_spans_match_pulldown_on_random_markdown ... 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_disk_full_mid_burst_then_recovery ... ok
test room::save::tests::review::history_durability::independent_652_queued_crash_child ... 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_real_syncclient_joining_snapshot_is_not_saved ... ok
test room::save::tests::review::history_durability::independent_652_real_syncclient_peers_and_restart_replay ... 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::metadata_refresh_does_not_block_sync_behind_an_uncommitted_seed ... 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 room::save::tests::saved_bytes_and_titles_match_the_old_copy_path ... ok
test tags::rewrite::tests::nothing_to_do_is_no_edits ... ok
test tags::rewrite::tests::merging_keeps_every_tag_once_at_most ... 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 tags::rewrite::tests::only_real_tags_change ... ok
test tests::anchors::an_edited_block_is_refused_never_the_wrong_one ... ok
test tests::anchors::an_anchor_follows_its_block_when_lines_shift ... 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::appends::an_append_to_a_long_note_stays_small ... ok
test tests::anchors::shifting_lines_never_move_the_wrong_block ... 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::event_visibility::create_text ... ok
test tests::event_visibility::delete ... ok
test tests::event_visibility::edit ... ok
test tests::delta_review::delta_permanent_deletion_history_failure_must_terminate_scan ... 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::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::failed_delete_then_restore_announces_the_current_state ... 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_still_renames_after_its_h1 ... 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_failed_create_cannot_resurrect_forgotten_id ... ok
test tests::event_visibility::regression_failed_initial_file_write_can_retry ... ok
test tests::event_visibility::pin ... 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::regression_failed_save_hint_still_schedules_title_rename ... 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::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_delete_failure_then_forget_keeps_gone ... ok
test tests::event_visibility::round4_startup_retries_failed_list_stamp_read ... ok
test tests::event_visibility::regression_one_reconcile_path_after_failed_edit ... 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 tests::event_visibility::unpin ... 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::event_visibility::round4_recorder_outage_bounds_deleted_ids_and_drains_overflow ... ok
test tests::fanout::a_crash_between_fan_out_and_disk_loses_nothing ... ok
test tests::fanout::a_version_always_matches_its_text ... ok
test tests::fanout::bursts_converge_and_reach_history ... ok
test tests::fanout::a_first_open_does_not_wait_for_the_disk ... 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::the_first_page_never_waits_for_the_home_to_open ... ok
test room::save::tests::review::group_commit::lanes::a_failing_note_does_not_starve_another_typist ... ok
test tests::listing::the_kept_count_follows_adds_and_deletes ... 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::listing::the_list_stays_live_with_new_notes_saves_and_outside_edits ... 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::opening::asking_mid_scan_never_says_not_found_and_never_duplicates_a_day ... 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::renames::backlinks_follow_edits_and_deletes ... 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_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::saving_a_title_ending_in_a_number_does_not_schedule_a_rename ... ok
test tests::renames::typing_a_new_title_renames_the_file_after_a_pause ... 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::outside::polling_finds_outside_changes ... ok
test tests::rooms::late_joiner_gets_full_state ... ok
test tests::rooms::fresh_note_opened_by_many_at_once_is_not_doubled ... ok
test tests::rooms::patches_use_utf16_positions ... 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::renames::a_crash_mid_rename_resumes_and_applies_each_edit_once ... ok
test tests::saving::properties_continue_during_file_io ... ok
test tests::saving::nonstop_typing_still_saves ... 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::pending_retaining_save_recovers_a_missing_destination ... ok
test tests::saving::saving_does_not_loop ... ok
test tests::shutdown::a_shutdown_wait_made_after_shutdown_ends_at_once ... ok
test tests::shutdown::healthy_shutdown_settles_pending_typing_before_saving ... ok
test tests::shutdown::no_background_work_starts_after_shutdown ... ok
test tests::shutdown::nothing_opens_or_writes_on_a_home_after_shutdown ... ok
test tests::shutdown::scan_waiters_stay_released_once_shutdown_releases_them ... ok
test tests::shutdown::settlement::shutdown_settlement_failed_promotion_preserves_written_snapshot ... ok
test tests::shutdown::a_create_that_outlives_shutdown_writes_nothing ... ok
test tests::shutdown::settlement::shutdown_settlement_live_file_io_failure_joins_writer ... 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_late_disk_recovery_requires_replay ... ok
test tests::shutdown::shutdown_many_full_history_rooms_12 ... ok
test tests::shutdown::shutdown_many_full_history_rooms_100 ... ok
test tests::storm::outside_rewrites_during_a_storm_all_land ... ok
test tests::event_visibility::save_outside_retry ... 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::tags::a_big_tag_rename_allows_typing_while_a_batch_is_held ... 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::undo_guard::acknowledged_edits_survive_random_job_undo ... ok
test tests::undo_guard::adding_an_attachment_keeps_the_note_and_attachment_when_creation_is_undone ... 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::ordinary_creation_keeps_later_job_history_when_its_text_was_undone ... ok
test tests::undo_guard::outside_daily_edit_after_final_undo_check_is_kept ... ok
test tests::undo_guard::undo_keeps_prose_in_a_daily_placeholder_before_capture ... ok
test tests::trash::a_crash_mid_delete_finishes_on_restart_exactly_once ... ok
test tests::tags::a_crash_mid_rename_resumes_and_renames_each_tag_once ... ok
test tests::unloading::an_open_note_keeps_it ... ok
test tests::unloading::a_connected_client_keeps_it ... ok
test tests::unloading::an_unused_home_unloads_and_answers_after ... 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 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::writers::every_writer_at_once_loses_and_doubles_nothing ... 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. 443 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 40.23s

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

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 stats::tests::medians_of_runs_and_pooled_singles ... ok
test stats::tests::summary_max_is_the_largest_observed_sample_across_runs ... ok
test scenarios::trash::tests::permanent_deletion_never_removes_a_later_runs_live_note ... ok
test live::tests::frames_round_trip_and_keystrokes_stay_whole ... 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-ce4d55ef9e443dac)

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-88ac204e7c3d9542)

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-f7136482f2f2dffe)

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-8557b170bf596ad5)

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-9dcd2c31938bf7c3)

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::bad_keys_and_big_values_get_friendly_errors ... ok
test tests::people_do_not_share_preferences ... ok
test tests::set_then_get_and_survive_a_restart ... ok
test tests::saving_the_same_value_again_is_quiet ... 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.04s

     Running unittests src/lib.rs (target/debug/deps/calternal_search-569cae8f443878cf)

running 13 tests
test fuzzy::tests::distance_counts_swaps_as_one ... ok
test query::tests::dates_cover_whole_periods ... ok
test query::tests::lone_symbols_are_ignored ... ok
test fuzzy::tests::common_typos_are_fixed ... ok
test read::tests::block_ids_are_found ... ok
test query::tests::words_filters_and_phrases ... ok
test read::tests::renumbering_shifts_placeholders ... ok
test text::tests::bigrams_cover_unspaced_scripts ... ok
test read::tests::excerpts_mark_matches_in_context ... ok
test read::tests::text_matches_like_the_index ... 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-d382382f92869576)

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 a_restart_heals_whatever_was_missed ... 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 filters_by_tag_kind_and_date ... 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.61s

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

running 12 tests
test live::tests::room_join_metadata_has_explicit_byte_bounds ... ok
test rooms::tests::a_message_in_numbered_pieces_arrives_whole ... ok
test rooms::tests::assembly_is_bounded_per_connection_and_globally_and_expiry_releases_it ... 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 compress::tests::big_answers_are_compressed_and_small_ones_are_not ... ok
test rooms::tests::pending_and_joined_memberships_share_one_connection_count_bound ... ok
test rooms::tests::wire_nonces_reject_old_frames_joins_and_leaves_without_tombstones ... 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.06s

     Running tests/access.rs (target/debug/deps/access-083892bb204338e3)

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-13817e54963d0559)

running 6 tests
test health_answers_without_signing_in ... ok
test a_stranger_token_asks_for_a_refresh ... ok
test signed_out_calls_get_a_friendly_refusal ... ok
test errors_carry_codes_not_internals ... 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.04s

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

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.04s

     Running tests/web.rs (target/debug/deps/web-4f0dab5b7204dec9)

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-b5315a033313f220)

running 8 tests
test tests::a_store_with_a_listener_or_a_copy_is_in_use ... ok
test tests::commits_are_read_back_in_order ... ok
test tests::idempotency_is_saved_with_the_events_or_not_at_all ... 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-1b816c0723f31d50)

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::undo_new_daily_capture_keeps_later_prose_and_removes_its_lines ... 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::repeated_create_undo_recreates_daily_with_retained_history ... 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::create_isolation_and_idempotent_retry ... 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::a_cold_fill_gives_the_same_rows_as_the_usual_way ... ok
test tests::unreadable_frontmatter_is_shown_but_never_changed ... 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 2.33s

     Running unittests src/lib.rs (target/debug/deps/calternal_testkit-59e71d06eb27d592)

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


Fixed notes_crash attempt 1
   Compiling futures-util v0.3.34
   Compiling calternal-notes v0.1.0 (/home/agent/wt/bm3-ci/crates/notes)
   Compiling regex-syntax v0.8.11
   Compiling tower v0.5.3
   Compiling tokio-tungstenite v0.29.0
   Compiling axum v0.8.9
   Compiling tower-http v0.6.11
   Compiling calternal-server v0.1.0 (/home/agent/wt/bm3-ci/crates/server)
   Compiling regex-automata v0.4.18
   Compiling matchers v0.2.0
   Compiling tracing-subscriber v0.3.23
   Compiling calternal-contacts-actions v0.1.0 (/home/agent/wt/bm3-ci/crates/contacts-actions)
   Compiling calternal-tasks v0.1.0 (/home/agent/wt/bm3-ci/crates/tasks)
   Compiling calternal-daily v0.1.0 (/home/agent/wt/bm3-ci/crates/daily)
   Compiling calternal-auth v0.1.0 (/home/agent/wt/bm3-ci/crates/auth)
   Compiling calternal-attachments v0.1.0 (/home/agent/wt/bm3-ci/crates/attachments)
   Compiling calternal-backdrops v0.1.0 (/home/agent/wt/bm3-ci/crates/backdrops)
   Compiling tokio-tungstenite v0.30.0
   Compiling calternal v0.1.0 (/home/agent/wt/bm3-ci/crates/calternal)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 12.30s
     Running tests/notes_crash.rs (target/debug/deps/notes_crash-32dceb745e4b211f)

running 3 tests
test kill_nine_mid_tag_rename_renames_each_tag_once ... ok
12 kills, 2243 confirmed appends
test kill_nine_mid_append_on_a_long_note ... ok
30 kills, 463 confirmed appends, 29 in-flight appends retried
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.42s


Fixed notes_crash attempt 2
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s
     Running tests/notes_crash.rs (target/debug/deps/notes_crash-32dceb745e4b211f)

running 3 tests
test kill_nine_mid_tag_rename_renames_each_tag_once ... ok
12 kills, 2312 confirmed appends
test kill_nine_mid_append_on_a_long_note ... ok
30 kills, 464 confirmed appends, 29 in-flight appends retried
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.41s


Fixed notes_crash attempt 3
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
     Running tests/notes_crash.rs (target/debug/deps/notes_crash-32dceb745e4b211f)

running 3 tests
test kill_nine_mid_tag_rename_renames_each_tag_once ... ok
12 kills, 2307 confirmed appends
test kill_nine_mid_append_on_a_long_note ... ok
30 kills, 466 confirmed appends, 29 in-flight appends retried
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.51s


Fixed notes_crash attempt 4
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
     Running tests/notes_crash.rs (target/debug/deps/notes_crash-32dceb745e4b211f)

running 3 tests
test kill_nine_mid_tag_rename_renames_each_tag_once ... ok
12 kills, 2226 confirmed appends
test kill_nine_mid_append_on_a_long_note ... ok
30 kills, 457 confirmed appends, 29 in-flight appends retried
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.42s


Fixed notes_crash attempt 5
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
     Running tests/notes_crash.rs (target/debug/deps/notes_crash-32dceb745e4b211f)

running 3 tests
test kill_nine_mid_tag_rename_renames_each_tag_once ... ok
12 kills, 2356 confirmed appends
test kill_nine_mid_append_on_a_long_note ... ok
30 kills, 461 confirmed appends, 29 in-flight appends retried
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.48s


Fixed notes_crash attempt 6
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s
     Running tests/notes_crash.rs (target/debug/deps/notes_crash-32dceb745e4b211f)

running 3 tests
test kill_nine_mid_tag_rename_renames_each_tag_once ... ok
12 kills, 2246 confirmed appends
test kill_nine_mid_append_on_a_long_note ... ok
30 kills, 459 confirmed appends, 29 in-flight appends retried
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.51s


Fixed notes_crash attempt 7
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
     Running tests/notes_crash.rs (target/debug/deps/notes_crash-32dceb745e4b211f)

running 3 tests
test kill_nine_mid_tag_rename_renames_each_tag_once ... ok
12 kills, 2316 confirmed appends
test kill_nine_mid_append_on_a_long_note ... ok
30 kills, 460 confirmed appends, 29 in-flight appends retried
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.50s


Fixed notes_crash attempt 8
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
     Running tests/notes_crash.rs (target/debug/deps/notes_crash-32dceb745e4b211f)

running 3 tests
test kill_nine_mid_tag_rename_renames_each_tag_once ... ok
12 kills, 2348 confirmed appends
test kill_nine_mid_append_on_a_long_note ... ok
30 kills, 465 confirmed appends, 29 in-flight appends retried
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.48s


Fixed notes_crash attempt 9
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
     Running tests/notes_crash.rs (target/debug/deps/notes_crash-32dceb745e4b211f)

running 3 tests
test kill_nine_mid_tag_rename_renames_each_tag_once ... ok
12 kills, 2334 confirmed appends
test kill_nine_mid_append_on_a_long_note ... ok
30 kills, 465 confirmed appends, 29 in-flight appends retried
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.47s


Fixed notes_crash attempt 10
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
     Running tests/notes_crash.rs (target/debug/deps/notes_crash-32dceb745e4b211f)

running 3 tests
test kill_nine_mid_tag_rename_renames_each_tag_once ... ok
12 kills, 2348 confirmed appends
test kill_nine_mid_append_on_a_long_note ... ok
30 kills, 468 confirmed appends, 29 in-flight appends retried
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.43s


The full workspace run reported 1,198 passed, 0 failed, 20 ignored across its test binaries and doctests. All ten additional fixed crash-suite runs passed. /home/agent/wt/bm3-ci/target/ (including the isolated bisect target) has been deleted, and the lease heartbeat unit has been stopped.

Fixed the Rust CI crash/recovery failure in this train. Production Rust inputs changed; browser inputs did not. **Both browser halves need a rerun against the new head.** No merge or deploy was performed. The failing job was [run 560, rust](https://git.kayg.org/kayg/calternal/actions/runs/560/jobs/1), job id 63373, at `14bd77f0b9f5da7ad6de41c3b159be74db55507a`. The exact failing step was **Test**, command `cargo test --workspace --locked`. Format and Lint succeeded. The API `/api/v1/repos/kayg/calternal/actions/jobs/63373/logs` supplied the log; the suggested web `/logs` endpoint returned 404. Cause: startup recovery sets a retaining save for an unflushed recovered room. `put_retaining` durably moves the old inode to Trash before hard-linking the new image into the public note path. SIGKILL in between leaves durable typing, a pending save, and no file at the public path. `room::load::settle` discarded the pending save and then treated that missing file as an outside deletion, returning NotFound/404 when the test retried its append. The crash test therefore fails intermittently according to kill timing. CI used linux/amd64 and Rust 1.99.0; this reproduction used aarch64 and Rust/clippy 1.99.0, so the architecture difference is not required. Both use the repository's four-thread test limit. The Rust tests build their own server through `CARGO_BIN_EXE_calternal`; this was not a missing release binary or `CALTERNAL_BIN` issue. Fix: for a pending save whose destination is absent, persist a valid empty CRDT file base with no file hash, then rebuild and resave from durable history. This also leaves recovery possible if the process dies again before its retry finishes. The displaced inode stays in Trash. The deterministic regression creates exactly the interrupted placement state and verifies exact recovered text, a valid persisted empty base, exact saved bytes, retained old bytes, and another reopen. It failed before the fix with `NotFound: note … was deleted` and passes after it. Tests and lints were not relaxed. Classification and merge-stage attribution: the original head's five crash-suite reruns returned `0, 0, 101, 0, 0`; the failed attempt reproduced the exact CI line-175 404. The corrected stage matrix below uses fresh source mtimes and a target directory isolated from final validation. Source history identifies the new move-before-publish gap and recovery retention in `02c762ace5fa65f6a4e4906887161e0b0fc8b4bc`, brought in by Composer merge `f95610c3`. Random passing stage attempts alone cannot prove absence of this race; the deterministic regression exercises its new physical placement boundary. Local build note: an initial diagnostic matrix reused the final validation target and caused stale-artifact compile/doctest failures. That matrix was discarded. The worktree target was removed and the comparisons and final gates were rerun with isolated targets and `RUSTC_WRAPPER` unset. Those local artifact errors were not attributed to the product. All heavy commands on `10by32-02-std` used `CALTERNAL_TRAIN=1 /usr/local/bin/build-slot.sh`. Final gates use the workflow commands and `RUSTFLAGS=-D warnings`, `CARGO_TERM_COLOR=always`, and `--locked`; Cargo caches/target paths are local to this host instead of the runner container's `/cargo-cache` and `/target`. The lease heartbeat was started first with `systemd-run --user` for lease `515a1007a95e40eba6dd72ba8e3c7174`. The Infraternal build job was not touched. Fix commit: `cc56ef862ee28c9e8b0a36a8e780c16e78ac7e50`. Original CI failure (verbatim): ```text 2026-10-30T08:30:34.0023523Z test kill_nine_never_loses_or_doubles ... FAILED 2026-10-30T08:30:34.0023912Z 2026-10-30T08:30:34.0023976Z failures: 2026-10-30T08:30:34.0024025Z 2026-10-30T08:30:34.0024069Z ---- kill_nine_never_loses_or_doubles stdout ---- 2026-10-30T08:30:34.0024118Z 2026-10-30T08:30:34.0024164Z thread 'kill_nine_never_loses_or_doubles' (3486) panicked at crates/calternal/tests/notes_crash.rs:175:13: 2026-10-30T08:30:34.0024600Z assertion `left == right` failed: {"error":{"code":"not_found","message":"We couldn't find that.","request_id":"01a18bee-9ff9-702a-b7e1-04117799cd4a","retryable":false}} 2026-10-30T08:30:34.0024709Z left: 404 2026-10-30T08:30:34.0024812Z right: 200 2026-10-30T08:30:34.0024911Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace 2026-10-30T08:30:34.0025026Z server stderr retained at /tmp/calternal-crash-3483-43495.stderr 2026-10-30T08:30:34.0025103Z 2026-10-30T08:30:34.0025154Z 2026-10-30T08:30:34.0025224Z failures: 2026-10-30T08:30:34.0025290Z kill_nine_never_loses_or_doubles 2026-10-30T08:30:34.0025344Z 2026-10-30T08:30:34.0025418Z test result: FAILED. 2 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.42s 2026-10-30T08:30:34.0025487Z 2026-10-30T08:30:34.0029166Z error: test failed, to rerun pass `-p calternal --test notes_crash` 2026-10-30T08:30:34.0278600Z ⚙️ [runner]: exitcode '101': failure 2026-10-30T08:30:34.0279675Z 🏁 Job failed 2026-10-30T08:30:34.6500925Z Job 'rust' failed ``` Recorded exit codes (verbatim): ```text head attempt 1 exit 0 head attempt 2 exit 0 head attempt 3 exit 101 head attempt 4 exit 0 head attempt 5 exit 0 d83e54db attempt 1 exit 0 d83e54db attempt 2 exit 0 d83e54db attempt 3 exit 0 d83e54db attempt 4 exit 0 d83e54db attempt 5 exit 0 87b8dc4e attempt 1 exit 0 87b8dc4e attempt 2 exit 0 87b8dc4e attempt 3 exit 0 87b8dc4e attempt 4 exit 0 87b8dc4e attempt 5 exit 0 af668240 attempt 1 exit 0 af668240 attempt 2 exit 0 af668240 attempt 3 exit 0 af668240 attempt 4 exit 0 af668240 attempt 5 exit 0 f95610c3 attempt 1 exit 0 f95610c3 attempt 2 exit 0 f95610c3 attempt 3 exit 0 f95610c3 attempt 4 exit 0 f95610c3 attempt 5 exit 0 fmt exit 0 clippy exit 0 rust-tests exit 0 fixed notes_crash attempt 1 exit 0 fixed notes_crash attempt 2 exit 0 fixed notes_crash attempt 3 exit 0 fixed notes_crash attempt 4 exit 0 fixed notes_crash attempt 5 exit 0 fixed notes_crash attempt 6 exit 0 fixed notes_crash attempt 7 exit 0 fixed notes_crash attempt 8 exit 0 fixed notes_crash attempt 9 exit 0 fixed notes_crash attempt 10 exit 0 ``` Gate output below is verbatim text with ANSI color escapes removed. Existing configured ignored tests remain visible. <details> <summary>Original-head exact local reproduction, attempt 3</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s Running tests/notes_crash.rs (target/debug/deps/notes_crash-32dceb745e4b211f) running 3 tests test kill_nine_mid_tag_rename_renames_each_tag_once ... ok 12 kills, 2394 confirmed appends test kill_nine_mid_append_on_a_long_note ... ok thread 'kill_nine_never_loses_or_doubles' (36458) panicked at crates/calternal/tests/notes_crash.rs:175:13: assertion `left == right` failed: {"error":{"code":"not_found","message":"We couldn't find that.","request_id":"01a18cde-be88-75cb-9f6c-64ce0e08a5f1","retryable":false}} left: 404 right: 200 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace server stderr retained at /tmp/calternal-crash-36455-39599.stderr test kill_nine_never_loses_or_doubles ... FAILED failures: failures: kill_nine_never_loses_or_doubles test result: FAILED. 2 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.83s error: test failed, to rerun pass `-p calternal --test notes_crash` ``` </details> <details> <summary>Deterministic regression before the fix</summary> ```text Compiling syn v3.0.9 Compiling serde_core v1.0.229 Compiling serde_json v1.0.154 Compiling syn v2.0.119 Compiling tracing-core v0.1.36 Compiling serde_derive v1.0.229 Compiling ref-cast-impl v1.0.27 Compiling thiserror-impl v2.0.21 Compiling tracing-attributes v0.1.31 Compiling serde v1.0.229 Compiling serde_derive_internals v0.30.0 Compiling thiserror v2.0.21 Compiling ref-cast v1.0.27 Compiling tokio-macros v2.7.2 Compiling tracing v0.1.44 Compiling uuid v1.28.0 Compiling schemars_derive v1.2.3 Compiling num-traits v0.2.19 Compiling tokio v1.53.2 Compiling rusqlite v0.40.2 Compiling log v0.4.34 Compiling mio v1.2.4 Compiling schemars v1.2.3 Compiling async-trait v0.1.92 Compiling rand v0.10.3 Compiling calternal-core v0.1.0 (/home/agent/wt/bm3-ci/crates/core) Compiling serde_yaml v0.9.34+deprecated Compiling calternal-store v0.1.0 (/home/agent/wt/bm3-ci/crates/store) Compiling calternal-engine v0.1.0 (/home/agent/wt/bm3-ci/crates/engine) Compiling notify v9.0.0-rc.5 Compiling proptest v1.12.0 Compiling calternal-fsio v0.1.0 (/home/agent/wt/bm3-ci/crates/fsio) Compiling yrs v0.28.0 Compiling calternal-testkit v0.1.0 (/home/agent/wt/bm3-ci/crates/testkit) Compiling calternal-notes v0.1.0 (/home/agent/wt/bm3-ci/crates/notes) Finished `test` profile [unoptimized + debuginfo] target(s) in 21.24s Running unittests src/lib.rs (target/debug/deps/calternal_notes-ad0f36365f726fc9) running 1 test thread 'tests::saving::pending_retaining_save_recovers_a_missing_destination' (87904) panicked at crates/notes/src/tests/clients.rs:146:45: called `Result::unwrap()` on an `Err` value: Error { code: NotFound, detail: "note 01a18ce1-2933-7763-b312-32098f7c8ef3 was deleted" } note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace test tests::saving::pending_retaining_save_recovers_a_missing_destination ... FAILED failures: failures: tests::saving::pending_retaining_save_recovers_a_missing_destination test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 448 filtered out; finished in 0.01s error: test failed, to rerun pass `-p calternal-notes --lib` ``` </details> <details> <summary>Deterministic regression after the fix</summary> ```text Blocking waiting for file lock on package cache Compiling syn v3.0.9 Compiling serde_core v1.0.229 Compiling serde_json v1.0.154 Compiling syn v2.0.119 Compiling serde_derive_internals v0.30.0 Compiling tracing-core v0.1.36 Compiling uuid v1.28.0 Compiling num-traits v0.2.19 Compiling rusqlite v0.40.2 Compiling log v0.4.34 Compiling mio v1.2.4 Compiling rand v0.10.3 Compiling notify v9.0.0-rc.5 Compiling serde_derive v1.0.229 Compiling tracing-attributes v0.1.31 Compiling ref-cast-impl v1.0.27 Compiling thiserror-impl v2.0.21 Compiling tracing v0.1.44 Compiling ref-cast v1.0.27 Compiling schemars_derive v1.2.3 Compiling thiserror v2.0.21 Compiling tokio-macros v2.7.2 Compiling serde v1.0.229 Compiling async-trait v0.1.92 Compiling tokio v1.53.2 Compiling schemars v1.2.3 Compiling calternal-core v0.1.0 (/home/agent/wt/bm3-ci/crates/core) Compiling yrs v0.28.0 Compiling calternal-store v0.1.0 (/home/agent/wt/bm3-ci/crates/store) Compiling calternal-engine v0.1.0 (/home/agent/wt/bm3-ci/crates/engine) Compiling serde_yaml v0.9.34+deprecated Compiling calternal-fsio v0.1.0 (/home/agent/wt/bm3-ci/crates/fsio) Compiling proptest v1.12.0 Compiling calternal-testkit v0.1.0 (/home/agent/wt/bm3-ci/crates/testkit) Compiling calternal-notes v0.1.0 (/home/agent/wt/bm3-ci/crates/notes) Finished `test` profile [unoptimized + debuginfo] target(s) in 30.05s Running unittests src/lib.rs (target/debug/deps/calternal_notes-ad0f36365f726fc9) running 1 test test tests::saving::pending_retaining_save_recovers_a_missing_destination ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 448 filtered out; finished in 2.01s ``` </details> <details> <summary>cargo fmt --all --check</summary> ```text ``` </details> <details> <summary>cargo clippy --workspace --all-targets --locked</summary> ```text Checking calternal-notes v0.1.0 (/home/agent/wt/bm3-ci/crates/notes) Checking calternal-tasks v0.1.0 (/home/agent/wt/bm3-ci/crates/tasks) Checking calternal-daily v0.1.0 (/home/agent/wt/bm3-ci/crates/daily) Checking calternal-contacts-actions v0.1.0 (/home/agent/wt/bm3-ci/crates/contacts-actions) Checking calternal-perf v0.1.0 (/home/agent/wt/bm3-ci/crates/perf) Checking calternal v0.1.0 (/home/agent/wt/bm3-ci/crates/calternal) Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.79s ``` </details> <details> <summary>cargo test --workspace --locked</summary> ```text Compiling calternal-notes v0.1.0 (/home/agent/wt/bm3-ci/crates/notes) Compiling calternal-tasks v0.1.0 (/home/agent/wt/bm3-ci/crates/tasks) Compiling calternal-daily v0.1.0 (/home/agent/wt/bm3-ci/crates/daily) Compiling calternal-contacts-actions v0.1.0 (/home/agent/wt/bm3-ci/crates/contacts-actions) Compiling calternal v0.1.0 (/home/agent/wt/bm3-ci/crates/calternal) Compiling calternal-perf v0.1.0 (/home/agent/wt/bm3-ci/crates/perf) Finished `test` profile [unoptimized + debuginfo] target(s) in 11.07s Running unittests src/main.rs (target/debug/deps/calternal-7739be986849d15f) 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::fix_commands ... ok test args::tests::migrate_v0 ... ok test args::tests::origin_defaults_to_the_local_port ... ok test args::tests::setup_and_re_pair_are_explicit ... ok test args::tests::state_defaults_to_resolved_data_and_flags_override_environment ... ok test args::tests::user_create ... 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::people::backdrops_spend_the_same_counter_as_small_attachments ... ok test isolation::contacts_and_tasks_in_one_home_keep_their_own_members ... 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::randomized_home_shutdown_releases_both_roots ... ok test isolation::people::every_action_obeys_person_visibility ... ok test result: ok. 31 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.53s Running tests/attachments_crash.rs (target/debug/deps/attachments_crash-9e9b9e52ea2bf6d2) 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.75s Running tests/contacts_live.rs (target/debug/deps/contacts_live-bfdbdadd9e6fa4de) 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 5.74s Running tests/fix_tz_live.rs (target/debug/deps/fix_tz_live-4bf475146ec6c1e0) 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.32s Running tests/notes_crash.rs (target/debug/deps/notes_crash-a918c6ff19214564) 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.42s Running tests/notes_crash_typing.rs (target/debug/deps/notes_crash_typing-5fa7de0b20f64b25) 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 3.04s Running tests/notes_live.rs (target/debug/deps/notes_live-14289ec9667e89be) 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-ca79c58b926ea72e) 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-5ee995f6752d7b29) 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/startup.rs (target/debug/deps/startup-798616e12e1b3961) 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 answers_after_launch ... ok test a_new_server_prints_a_setup_token ... ok test refuses_plain_http_on_a_public_origin ... 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-5dd4319499cccdc2) 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 legacy_history_read_only_and_invalid_state_are_refused ... ok test missing_home_refuses_without_creating_directory_or_lock ... ok test original_storage_startup_scenario_repeats_100x_under_load ... ignored, stress gate; run explicitly during release validation test both_missing_markers_with_existing_split_data_require_confirmed_re_pair ... 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.04s Running unittests src/lib.rs (target/debug/deps/calternal_attachments-7f2c0bd7af3451ac) 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::a_retry_with_the_same_key_never_makes_a_second_copy ... ok test tests::http::check_finds_only_your_own_files ... ok test tests::http::the_limit_holds_while_streaming_without_a_length ... 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::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_auth-1ae103c3b6330d22) running 30 tests test config::tests::origins ... ok test ceremony::tests::anonymous_pool_stays_bounded_and_evicts_oldest ... ok test db::tests::migration_keeps_the_first_owner_when_creation_times_tie ... 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::existing_database_keeps_people_credentials_and_sessions ... ok test http::proxy_tests::forwarding_stops_at_first_untrusted_hop_and_rejects_malformed_chains ... ok test invite_key::tests::lookup_uses_a_separate_derived_key_and_depends_on_the_server_key ... ok test ceremony::tests::full_pool_refuses_foreign_source_without_discarding_live_prompt ... 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 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 invite_redeem::tests::invalid_invites_do_not_reveal_name_conflicts ... 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 setup::tests::names ... ok test setup::tests::names_reject_invisible_and_normalize_nfc ... ok test limit::reliability_tests::full_map_evicts_least_recent_without_refusing_new_sources ... ok test setup::tests::recovery_requires_exact_username_or_uuid_never_display_name ... 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::recover_needs_a_known_person ... ok test setup::tests::cli_creation_refuses_admin_name_confusables ... 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.02s Running tests/abuse.rs (target/debug/deps/abuse-e1089a904a25d0b1) running 12 tests test forged_sessions_get_nowhere ... ok test bad_json_and_unknown_fields_are_refused ... ok test duplicate_session_cookies_never_choose_an_identity ... ok test anonymous_prompt_flood_preserves_login_setup_and_add ... ok test junk_setup_tokens_are_refused_then_rate_limited ... ok test login_source_limit_does_not_block_another_client ... ok test nothing_about_the_server_leaks_before_sign_in ... ok test non_json_requests_are_refused ... ok test one_source_cannot_lock_out_another_and_cannot_spoof_forwarding ... ok test other_sites_cannot_act_for_you ... 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.04s Running tests/create.rs (target/debug/deps/create-d43ec2b0ad5cd72f) running 6 tests test an_earlier_first_owner_token_stops_working ... ok test an_enrolment_token_works_exactly_once_under_a_storm ... ok test a_created_person_enrolls_their_first_passkey_and_is_the_same_person ... ok test an_expired_enrolment_token_is_refused ... ok test nothing_about_the_person_leaks_before_sign_in ... ok test names_must_be_usable_and_unique ... ok test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running tests/groups.rs (target/debug/deps/groups-065fc060b7f7c76b) 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-2853a2d4dd28d27b) running 3 tests test old_name_is_ignored_and_cleared_once_without_touching_host_session ... ok test upgrading_schema_six_removes_cookie_state_and_keeps_passkeys ... ok test duplicate_host_headers_and_stale_requests_never_clear_new_session ... 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-fbb3b1f509bcbbbd) running 8 tests test invite_admin_names_cannot_be_impersonated_and_failure_preserves_invite ... ok test invite_finish_rechecks_admin_names_after_role_changes ... ok test invite_redemption_joins_its_groups_and_other_inviters_cannot_copy_it ... 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 legacy_invite_indexes_upgrade_atomically_and_keep_copy_and_redemption ... 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.18s Running tests/isolation.rs (target/debug/deps/isolation-5af32fb9ec772f09) running 3 tests test a_cookie_sent_from_another_sites_page_does_not_count ... ok test another_persons_passkey_prompt_cannot_be_used_or_cancelled ... ok test devices_and_passkeys_of_another_person_are_not_found ... ok test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running tests/login.rs (target/debug/deps/login-c813cb7ae836a4eb) running 11 tests test bearer_tokens_work_like_cookies ... ok test a_sign_in_answer_cannot_be_replayed ... ok test foreign_status_cannot_sign_the_browser_out ... ok test an_unknown_passkey_is_refused ... ok test logout_revokes_the_installation_and_rejects_live_cookies ... ok test revoking_another_device_signs_it_out ... ok test sign_in_with_a_passkey_creates_a_new_installation ... ok test sign_out_ends_the_session_immediately ... ok test signing_in_shows_up_live_on_another_device ... 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.17s Running tests/migration.rs (target/debug/deps/migration-8f5074a067ee5820) 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.01s Running tests/passkeys.rs (target/debug/deps/passkeys-bc30bb8204929ff5) running 7 tests test an_empty_name_is_refused_and_a_long_one_is_cut ... ok test adding_needs_a_sign_in_and_an_add_prompt_works_once ... ok test add_rename_and_remove_each_leave_a_journal_event ... ok test a_removed_passkey_that_is_gone_or_unknown_is_not_found ... ok test the_first_passkey_is_listed_with_the_device_it_was_made_on ... ok test the_same_device_cannot_be_added_twice ... 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.02s Running tests/people.rs (target/debug/deps/people-02030bda4a9cae39) running 4 tests test first_owner_has_capabilities_and_cannot_demote_the_last_admin ... ok test promotion_cannot_create_confusable_admin_names ... ok test two_admins_racing_to_demote_themselves_leave_one_admin ... ok test member_cannot_change_roles_and_new_capability_sets_work ... 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-b03dabab85cd3d32) 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.94s Running tests/reliability_review.rs (target/debug/deps/reliability_review-a342589925f0df47) 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 default_twenty_mib_stream_boundary ... 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 directory_move_during_initial_recount_must_track_later_deletes ... 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 ipv6_rotation_must_not_lock_out_new_source ... ok test source_isolation_and_untrusted_forwarding ... ok test slow_uploads_must_not_starve_authentication_blocking_pool ... 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.11s Running tests/reliability_round3.rs (target/debug/deps/reliability_round3-705a030324718aa0) running 12 tests test attachment_and_backdrop_routes_share_caps_and_cancel_cleanup ... ok test canonical_recovery_token_variants_share_one_target_without_spending_other_tokens ... ok test ipv4_mapped_v6_and_native_v4_share_budget_but_adjacent_prefix_does_not ... ok test fifty_slow_upload_attempts_preserve_full_signin_and_status ... 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-4278694f578f08a5) running 15 tests test concurrent_key_creation_publishes_one_complete_key ... ok test eight_parallel_redeemers_create_exactly_one_account ... 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 malformed_token_must_have_same_generic_response ... ok test new_modules_are_small_and_documented ... ok test invite_lookup_must_use_keyed_hash ... 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 key_permissions_missing_corrupt_and_no_plaintext_history ... 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.09s Running tests/setup.rs (target/debug/deps/setup-e8b9b9028752ed61) running 8 tests test a_finished_prompt_cannot_be_replayed ... ok test first_owner_needs_a_name ... ok test a_restart_replaces_the_first_owner_token ... ok test a_token_works_exactly_once_under_a_storm ... ok test recovery_adds_a_new_passkey_for_the_same_person ... ok test first_owner_signs_up_with_the_printed_token ... ok test session_cookie_is_locked_down ... 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-32b2164e59333bd8) running 25 tests test tests::a_photo_unknown_to_us_is_looked_up ... ok test tests::a_stricter_attachment_limit_also_bounds_backdrops ... ok 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::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::nobody_can_read_or_list_someone_elses_uploads ... ok test tests::picking_is_reported_to_unsplash_once ... ok test tests::pictures_are_proxied_cached_and_never_given_the_key ... ok test tests::pictures_from_other_hosts_are_refused ... 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::too_many_pixels_are_refused_but_files_within_the_byte_limit_work ... 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::streaming_upload_stops_at_byte_limit_and_leaves_no_artifact ... ok test tests::backdrop_quota_refuses_new_files_and_releases_space_on_delete ... ok test tests::the_cache_drops_the_oldest_files_past_its_cap ... ok test result: ok. 24 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.06s Running unittests src/lib.rs (target/debug/deps/calternal_contacts-44b945985de1a4aa) 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-64ce67ca0144cb11) 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-f7e339bedf25d20e) running 11 tests test envelope_checks_and_original_copy_reject_ambiguous_or_edited_state ... ok test canonical_note_comparison_checks_every_byte_and_falls_back_for_local_sections ... ok test escaped_separator_parity_keeps_component_and_list_boundaries ... ok test bare_properties_and_ignored_parameter_properties_decode_the_same_values ... 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 quoted_parameter_delimiters_and_value_colons_keep_their_meaning ... ok test component_and_list_comparisons_preserve_empty_parts_and_noncanonical_escapes ... 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-4442d64d470cea7b) 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 0.99s Running tests/break_inventory.rs (target/debug/deps/break_inventory-45256b5d65f8f65f) 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-1213a5e5c74c942c) 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-cd45c1267ebbf126) running 27 tests test a_phone_note_containing_h2_or_h1_round_trips ... ok test colon_bearing_label_edits_change_only_the_label_and_value_edits_only_the_value ... ok test ambiguous_simultaneous_colon_edit_returns_phone_group_and_history ... ok test colons_delimiters_and_unicode_keep_their_exact_wire_values ... ok test company_and_department_edits_share_one_org_in_either_note_order ... ok test colon_label_renames_survive_a_following_client_edit ... ok test duplicate_structured_name_parts_are_unrepresentable ... ok test crlf_notes_preserve_original_escape_spelling_and_do_not_create_merge_conflicts ... ok test first_list_ends_at_a_paragraph_and_second_list_stays_local ... ok test flat_repeatable_lines_stay_and_are_reported ... ok test entering_a_birthday_year_clears_the_apple_omit_year_flag ... ok test later_notes_headings_are_phone_text ... ok test empty_visible_properties_are_not_deleted_on_an_unchanged_round_trip ... 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 tags_keep_list_boundaries_when_a_category_contains_comma_space ... ok test org_hierarchy_is_one_fact_and_unchanged_components_stay_lossless ... ok test unchanged_values_that_differ_only_by_trailing_spaces_keep_both_occurrences ... ok test unicode_names_keep_normalisation_scripts_direction_and_joiners ... ok test utf8_bom_is_document_framing ... 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-3cfcf2928c971d4e) running 4 tests test related_brackets_and_angle_brackets_are_valid_markdown_and_editable ... ok 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 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-6b07fd9e6799670f) 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 apple_reordering_churn_photo_and_dropped_extension_do_not_lose_local_edits ... ok test distinct_repeated_types_return_quiet_concurrent_edit_notice ... ok test distinct_ungrouped_types_merge_reorders_edits_additions_and_deletions ... ok test dropped_extension_parameters_keep_their_order_and_do_not_conflict_with_local_values ... ok test phone_note_deletion_does_not_reappear_as_an_empty_note_on_read ... ok test identical_visible_rows_keep_both_occurrences_during_noop_and_changed_merges ... 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 related_links_with_custom_relative_targets_bind_to_the_original_person ... ok test the_first_card_group_is_added_after_an_existing_photo ... ok test local_label_renames_take_phone_deletes_or_value_edits ... ok test unchanged_repeated_ungrouped_properties_keep_occurrences ... ok test same_line_concurrent_edits_and_deletes_take_phone_group ... 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-92c12d601a63c499) 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 department_hierarchy_is_one_fact_when_both_sides_edit_it ... ok test company_and_department_merge_as_separate_single_facts ... ok test equal_single_fact_values_still_bind_by_line_order_when_edited ... ok test identical_repeatable_rows_return_history_instead_of_guessing_hidden_occurrences ... ok test concurrent_org_additions_and_deletes_never_stop_sync ... ok test indistinguishable_single_fact_deletion_returns_phone_group_and_history ... ok test identical_syncs_do_not_repeat_a_phone_group_replacement_notice ... 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 phone_notes_keep_headings_dividers_lists_and_all_blank_lines_exactly ... ok test repeated_company_conflict_keeps_independent_department_edits ... ok test repeated_single_facts_typed_from_scratch_create_separate_properties ... ok test org_deletions_use_unique_departments_or_return_every_ambiguous_fact ... ok test several_ambiguous_groups_report_each_previous_group_once ... ok test repeated_single_facts_bind_edit_delete_and_multiple_edits_to_occurrences ... 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-4e4e3f6039f62b38) running 10 tests test ambiguous_sources_damaged_notes_and_line_injection_are_errors ... ok test escapes_empty_values_caret_parameters_and_unknown_sequences ... 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 1.89s Running tests/layout.rs (target/debug/deps/layout-80fef5b2accb3973) 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 independent_phone_and_note_edits_preserve_local_spelling ... ok test notes_are_plain_text_two_way_through_nested_headings ... ok test not_a_field_and_other_sections_stay_exact ... ok test photo_reference_is_an_attachment_io_boundary ... 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-6f5170dbdc32c537) running 10 tests test add_delete_and_repeated_fields_keep_the_right_occurrence ... ok test editing_geo_keeps_coordinate_precision_and_semicolon_structure ... ok test new_and_edited_canonical_notes_are_identical_after_wire_import ... ok test new_contact_uid_is_note_id_and_default_is_three ... ok test hand_edit_uses_external_original_until_export ... 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-63c21f6ceb6878b0) running 131 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 facts::tests::reads_name_and_facts_in_order ... ok test cards::tests::ids_cannot_leave_the_folder ... ok test jobs::tests::attempts_are_stable_and_distinct ... ok test import::tests::identity_is_the_uid_or_the_bytes ... ok test cards::tests::copies_are_written_whole_and_removed ... ok test names::tests::bidi_controls_never_reach_a_file_name_but_joiners_do ... ok test names::tests::a_fact_equal_to_the_name_is_skipped ... ok test names::tests::case_and_unicode_form_clash ... ok test names::tests::clashes_add_the_first_fact_then_a_number ... ok test names::tests::empty_and_emoji_names ... ok test names::tests::illegal_characters_become_dashes ... ok test names::tests::nfd_and_nfc_give_one_name ... ok test namer::tests::names_come_from_the_note_and_its_card ... 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::a_retry_with_the_same_key_makes_one_contact ... ok test tests::basics::contact_actions_never_touch_other_notes ... 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::code_stays_and_anchors_travel ... ok test tests::break_links::case_only_renames ... 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::the_folder_is_a_setting ... 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::correctness::acknowledged_edit_between_undo_preparation_and_deletion_survives ... ok test tests::break_names::unsafe_characters_never_reach_the_file_name ... 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::correctness::failed_partial_import_retains_prepared_cards_until_trash_removal ... ok test tests::env::pause_markers_accept_serial_and_parallel_child_harness_output ... ok test tests::env::fixture_releases_its_engine_and_stores ... 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_in_an_existing_folder_preserves_earlier_contacts ... ok test tests::import::bulk_import_preserves_an_id_held_only_by_trash_details ... ok test tests::import::limits_hold ... ok test tests::import::a_final_flush_failure_undoes_every_published_contact_and_can_retry ... ok test tests::kill9::child ... ok test tests::import::the_same_file_twice_changes_nothing ... ok test tests::import::parallel_import_keeps_input_order_and_compares_existing_peer_facts ... 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::edit_killed_copying ... ok test tests::kill9::import_killed_prepared ... ok test tests::kill9::rename_killed_committed ... ok test tests::kill9::import_killed_planned ... 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::kill9::import_killed_mid_import ... 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::props::random_sequences_keep_every_invariant ... 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::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::undoing_an_import_retains_history_until_trash_is_purged ... ok test tests::review::both_ends_in_trash_restore_source_before_target_keeps_identity ... ok test tests::review3::same_size_photo_swaps_are_held_to_the_limit ... 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::kill9::edit_killed_prepared ... ok test tests::kill9::rename_killed_prepared ... ok test tests::review::kill9_import_after_history_transaction ... ok test tests::review::kill9_import_after_directory_sync ... ok test tests::review::kill9_import_after_first_file ... ok test tests::review::kill9_import_during_file_placement ... ok test tests::review::kill9_import_into_existing_folder_after_first_file ... ok test tests::review::kill9_restore_after_outgoing_link_repair ... ok test tests::review::kill9_import_private_files_before_history ... 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_into_existing_folder_after_directory_sync ... 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::kill9_restore_after_incoming_link_repair ... ok test tests::review::same_company_uses_city ... ok test tests::review::ordinary_tag_job_and_undo_preserve_concurrent_typing ... ok test tests::sweep::the_sweep_drops_cards_of_contacts_gone_for_good ... ok test tests::review::undo_refuses_a_later_phone_card_before_moving_or_retargeting_anything ... ok test tests::sweep::undo_and_deleting_forever_sweep_at_once ... 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::review::ring_import_1000_swaps_chains_unicode_h1_and_undo ... ok test tests::review::kill9_restore_before_incoming_link_repair ... ok test result: ok. 131 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 12.40s Running unittests src/lib.rs (target/debug/deps/calternal_core-45ba7fe73ee21166) running 15 tests test action::tests::namespace_is_enforced ... ok test drain::tests::close_gives_up_after_its_bound ... ok test batch::tests::stops_at_the_first_error ... 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 error::tests::every_code_has_a_friendly_message ... 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::deferred_payload_keeps_local_and_global_byte_admission ... ok test room_queue::tests::failed_admission_does_not_leak_reservations ... ok test visible::tests::hides_current_and_legacy_markers ... 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-13a2bf14c501487a) 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::an_existing_day_file_is_reused_whatever_its_id ... ok test tests::bad_input_is_refused_kindly ... ok test tests::any_text_is_safe_to_read_and_plan ... ok test tests::a_day_whose_note_is_in_the_trash_still_opens ... ok test tests::add_inserts_exactly_one_entry_and_keeps_the_rest ... ok test tests::log_add_then_close_makes_a_range ... ok test tests::close_turns_one_open_entry_into_a_range ... ok test tests::shared_vectors ... ok test tests::opening_the_same_day_at_once_makes_one_note ... ok test tests::today_follows_the_device_offset ... ok test tests::make_note_on_a_log_line_keeps_times_and_tags ... ok test tests::two_offline_devices_starting_the_same_day_merge_into_one_note ... ok test times_tests::a_line_with_only_tags_stays_words ... 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::any_line_is_safe ... ok test times_tests::trailing_tags_on_any_line ... ok test times_tests::a_log_line_splits_into_times_words_and_tags ... 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.33s Running unittests src/lib.rs (target/debug/deps/calternal_engine-057273e66b44d1ca) 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::a_plugin_cannot_write_outside_its_namespace ... ok test tests::action_scopes_are_distinct_and_cannot_alias_legacy_keys ... 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-0611aad0f053a9bd) 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.33s Running unittests src/main.rs (target/debug/deps/calternal_fixtures-36079744babe3293) 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-abac0fab62c5cf7c) running 40 tests test names::directory::tests::a_full_kernel_queue_rebuilds_before_allocating ... ok 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::walking_without_openat2_refuses_symlinks_too ... ok test swap::create_tests::create_preserves_outside_file_appearing_after_absence_check ... ok test swap::create_tests::unsupported_exchange_never_replaces_an_existing_file ... ok test names::directory::tests::immediate_outside_events_case_duplicates_and_replacement_are_current ... ok test tests::atomic_write_replaces_and_leaves_no_temp_files ... ok test tests::a_published_directory_retains_ownership_when_a_parent_flush_fails ... 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::conditional_removal_keeps_changed_bytes_and_outside_replacements ... ok test tests::a_private_directory_is_invisible_until_exclusive_publication ... ok test tests::delta_rename_must_preserve_file_arriving_after_absence_check ... ok test tests::conditional_removal_recovers_the_captured_file_after_restart ... ok test tests::dropping_data_lock_releases_it_even_with_an_inherited_file_handle ... ok test tests::directory_publication_rechecks_changed_inheritance_policy ... 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::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::write_unless_changed_keeps_someone_elses_version ... ok test usage::tests::a_separate_state_root_counts_what_plugins_report ... ok test tests::parallel_bulk_preserves_result_slots_and_observes_the_final_sync ... 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::bulk_writes_and_published_folders_count_without_a_recount ... ok test usage::tests::writes_moves_trash_and_purge_update_without_a_recount ... ok test names::directory::tests::random_outside_entry_changes_match_the_real_directory ... ok test tests::big_writes_arrive_whole ... ok test result: ok. 40 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s Running unittests src/lib.rs (target/debug/deps/calternal_memory-a46f0f072dc826a0) 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-b4d70c2003ecd510) 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::m1_custom_daily_title_and_heading_stay ... ok test tests::rules::m10_tz_markers_go_and_other_zones_convert_to_the_notes_zone ... ok test tests::rules::m1_daily_notes_get_day_names_ids_and_lose_generated_headings ... ok test tests::rules::m2_attachments_that_exist_are_copied_and_relinked ... 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_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_links_are_repaired_by_name_date_title_and_slug ... ok test tests::rules::m2_wikilinks_always_become_standard_links ... ok test tests::rules::m5_unreadable_dates_fall_back ... ok test tests::rules::m4_unreferenced_block_ids_go_and_referenced_ones_stay ... ok test tests::rules::m6_conflict_copies_are_not_migrated ... ok test tests::rules::m7_tasks_blocks_are_stripped_and_listed ... ok test tests::rules::m8_only_notes_and_linked_files_move ... 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::unix_times_become_india_time ... ok test tests::units::links_parse_in_every_shape ... 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::not_a_marker_is_left_alone ... ok test tzmarker::tests::no_zone_in_the_note_means_strip_only ... ok test tests::rules::running_twice_gives_the_same_bytes ... ok test tzmarker::tests::same_zone_just_goes ... ok test tzmarker::tests::second_run_changes_nothing ... 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.03s Running unittests src/lib.rs (target/debug/deps/calternal_notes-1400d7d6dd1f107a) running 449 tests test anchor::tests::lines_by_utf16_index ... ok test backlinks::tests::snippets_are_the_trimmed_line ... ok test anchor::tests::hash_is_plain_sha256_hex ... ok test blocks::tests::line_edits ... ok test blocks::tests::finds_list_children_and_heading_sections ... ok test blocks::tests::shapes_keep_markers ... ok test blocks::tests::titles_from_the_first_sentence ... ok test backlinks::tests::links_are_fold_keys_and_lines ... ok test bulk::undo::tests::inverse_restores_the_text ... ok test bulk::undo::tests::inverse_roundtrips ... ok test capture_tests::crash_child ... ok test bulk::error_tests::legacy_job_reports_hide_stored_source_details ... ok test bulk::error_tests::failed_job_reports_keep_source_details_in_the_server_error ... ok test diff::tests::an_inserted_line_starts_at_a_line_start ... ok test diff::tests::edits_never_split_a_character ... ok test deletion::tests::recovery_keeps_its_intent_until_missing_history_is_restorable ... 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 frontmatter::tests::set_is_utf16_aware ... ok test health::tests::anchors ... ok test diff::tests::edits_turn_old_into_new ... ok test history::blobs::tests::photo_chunks_preserve_folding_unknown_fields_and_line_endings ... ok test capture_tests::capture_allocates_around_unindexed_case_and_exact_names ... ok test history::companions::import_cache_tests::import_cache_budget_returns_after_success_and_failure ... 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::keys_answer_without_reading_bytes_and_cover_older_rows ... ok test history::companions::tests::rejected_companion_writes_leave_history_and_quota_unchanged ... ok test history::companions::tests::retained_bytes_follow_every_change_and_match_a_full_count ... ok test history::companions::tests::staged_rows_wait_for_their_step ... 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::tests::a_busy_begin_reports_its_cause_without_running_the_job ... ok test history::receipts::tests::legacy_card_only_changes_get_a_whole_note_journal_position ... 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 test history::tests::a_competing_writer_cannot_invalidate_a_history_write_snapshot ... ok test history::tests::appends_are_ordered_and_readable ... ok test history::tests::pending_save_promotes_to_base ... ok test history::tests::disk_full_keeps_the_cause_and_failed_writes_can_be_retried ... 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 room::acks::tests::varuints_round_trip ... ok test room::actor::retry_tests::malformed_update_remains_a_permanent_refusal ... 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 capture_tests::kill9_at_every_capture_and_undo_journal_step ... 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 links::tests::code_block_spans_match_pulldown_on_random_markdown ... 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_disk_full_mid_burst_then_recovery ... ok test room::save::tests::review::history_durability::independent_652_queued_crash_child ... 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_real_syncclient_joining_snapshot_is_not_saved ... ok test room::save::tests::review::history_durability::independent_652_real_syncclient_peers_and_restart_replay ... 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::metadata_refresh_does_not_block_sync_behind_an_uncommitted_seed ... 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 room::save::tests::saved_bytes_and_titles_match_the_old_copy_path ... ok test tags::rewrite::tests::nothing_to_do_is_no_edits ... ok test tags::rewrite::tests::merging_keeps_every_tag_once_at_most ... 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 tags::rewrite::tests::only_real_tags_change ... ok test tests::anchors::an_edited_block_is_refused_never_the_wrong_one ... ok test tests::anchors::an_anchor_follows_its_block_when_lines_shift ... 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::appends::an_append_to_a_long_note_stays_small ... ok test tests::anchors::shifting_lines_never_move_the_wrong_block ... 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::event_visibility::create_text ... ok test tests::event_visibility::delete ... ok test tests::event_visibility::edit ... ok test tests::delta_review::delta_permanent_deletion_history_failure_must_terminate_scan ... 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::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::failed_delete_then_restore_announces_the_current_state ... 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_still_renames_after_its_h1 ... 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_failed_create_cannot_resurrect_forgotten_id ... ok test tests::event_visibility::regression_failed_initial_file_write_can_retry ... ok test tests::event_visibility::pin ... 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::regression_failed_save_hint_still_schedules_title_rename ... 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::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_delete_failure_then_forget_keeps_gone ... ok test tests::event_visibility::round4_startup_retries_failed_list_stamp_read ... ok test tests::event_visibility::regression_one_reconcile_path_after_failed_edit ... 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 tests::event_visibility::unpin ... 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::event_visibility::round4_recorder_outage_bounds_deleted_ids_and_drains_overflow ... ok test tests::fanout::a_crash_between_fan_out_and_disk_loses_nothing ... ok test tests::fanout::a_version_always_matches_its_text ... ok test tests::fanout::bursts_converge_and_reach_history ... ok test tests::fanout::a_first_open_does_not_wait_for_the_disk ... 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::the_first_page_never_waits_for_the_home_to_open ... ok test room::save::tests::review::group_commit::lanes::a_failing_note_does_not_starve_another_typist ... ok test tests::listing::the_kept_count_follows_adds_and_deletes ... 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::listing::the_list_stays_live_with_new_notes_saves_and_outside_edits ... 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::opening::asking_mid_scan_never_says_not_found_and_never_duplicates_a_day ... 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::renames::backlinks_follow_edits_and_deletes ... 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_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::saving_a_title_ending_in_a_number_does_not_schedule_a_rename ... ok test tests::renames::typing_a_new_title_renames_the_file_after_a_pause ... 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::outside::polling_finds_outside_changes ... ok test tests::rooms::late_joiner_gets_full_state ... ok test tests::rooms::fresh_note_opened_by_many_at_once_is_not_doubled ... ok test tests::rooms::patches_use_utf16_positions ... 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::renames::a_crash_mid_rename_resumes_and_applies_each_edit_once ... ok test tests::saving::properties_continue_during_file_io ... ok test tests::saving::nonstop_typing_still_saves ... 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::pending_retaining_save_recovers_a_missing_destination ... ok test tests::saving::saving_does_not_loop ... ok test tests::shutdown::a_shutdown_wait_made_after_shutdown_ends_at_once ... ok test tests::shutdown::healthy_shutdown_settles_pending_typing_before_saving ... ok test tests::shutdown::no_background_work_starts_after_shutdown ... ok test tests::shutdown::nothing_opens_or_writes_on_a_home_after_shutdown ... ok test tests::shutdown::scan_waiters_stay_released_once_shutdown_releases_them ... ok test tests::shutdown::settlement::shutdown_settlement_failed_promotion_preserves_written_snapshot ... ok test tests::shutdown::a_create_that_outlives_shutdown_writes_nothing ... ok test tests::shutdown::settlement::shutdown_settlement_live_file_io_failure_joins_writer ... 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_late_disk_recovery_requires_replay ... ok test tests::shutdown::shutdown_many_full_history_rooms_12 ... ok test tests::shutdown::shutdown_many_full_history_rooms_100 ... ok test tests::storm::outside_rewrites_during_a_storm_all_land ... ok test tests::event_visibility::save_outside_retry ... 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::tags::a_big_tag_rename_allows_typing_while_a_batch_is_held ... 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::undo_guard::acknowledged_edits_survive_random_job_undo ... ok test tests::undo_guard::adding_an_attachment_keeps_the_note_and_attachment_when_creation_is_undone ... 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::ordinary_creation_keeps_later_job_history_when_its_text_was_undone ... ok test tests::undo_guard::outside_daily_edit_after_final_undo_check_is_kept ... ok test tests::undo_guard::undo_keeps_prose_in_a_daily_placeholder_before_capture ... ok test tests::trash::a_crash_mid_delete_finishes_on_restart_exactly_once ... ok test tests::tags::a_crash_mid_rename_resumes_and_renames_each_tag_once ... ok test tests::unloading::an_open_note_keeps_it ... ok test tests::unloading::a_connected_client_keeps_it ... ok test tests::unloading::an_unused_home_unloads_and_answers_after ... 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 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::writers::every_writer_at_once_loses_and_doubles_nothing ... 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. 443 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 40.23s Running unittests src/main.rs (target/debug/deps/calternal_perf-b6a3deb95b17210e) 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 stats::tests::medians_of_runs_and_pooled_singles ... ok test stats::tests::summary_max_is_the_largest_observed_sample_across_runs ... ok test scenarios::trash::tests::permanent_deletion_never_removes_a_later_runs_live_note ... ok test live::tests::frames_round_trip_and_keystrokes_stay_whole ... 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-ce4d55ef9e443dac) 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-88ac204e7c3d9542) 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-f7136482f2f2dffe) 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-8557b170bf596ad5) 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-9dcd2c31938bf7c3) 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::bad_keys_and_big_values_get_friendly_errors ... ok test tests::people_do_not_share_preferences ... ok test tests::set_then_get_and_survive_a_restart ... ok test tests::saving_the_same_value_again_is_quiet ... 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.04s Running unittests src/lib.rs (target/debug/deps/calternal_search-569cae8f443878cf) running 13 tests test fuzzy::tests::distance_counts_swaps_as_one ... ok test query::tests::dates_cover_whole_periods ... ok test query::tests::lone_symbols_are_ignored ... ok test fuzzy::tests::common_typos_are_fixed ... ok test read::tests::block_ids_are_found ... ok test query::tests::words_filters_and_phrases ... ok test read::tests::renumbering_shifts_placeholders ... ok test text::tests::bigrams_cover_unspaced_scripts ... ok test read::tests::excerpts_mark_matches_in_context ... ok test read::tests::text_matches_like_the_index ... 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-d382382f92869576) 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 a_restart_heals_whatever_was_missed ... 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 filters_by_tag_kind_and_date ... 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.61s Running unittests src/lib.rs (target/debug/deps/calternal_server-136ec58a88229c3c) running 12 tests test live::tests::room_join_metadata_has_explicit_byte_bounds ... ok test rooms::tests::a_message_in_numbered_pieces_arrives_whole ... ok test rooms::tests::assembly_is_bounded_per_connection_and_globally_and_expiry_releases_it ... 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 compress::tests::big_answers_are_compressed_and_small_ones_are_not ... ok test rooms::tests::pending_and_joined_memberships_share_one_connection_count_bound ... ok test rooms::tests::wire_nonces_reject_old_frames_joins_and_leaves_without_tombstones ... 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.06s Running tests/access.rs (target/debug/deps/access-083892bb204338e3) 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-13817e54963d0559) running 6 tests test health_answers_without_signing_in ... ok test a_stranger_token_asks_for_a_refresh ... ok test signed_out_calls_get_a_friendly_refusal ... ok test errors_carry_codes_not_internals ... 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.04s Running tests/signout.rs (target/debug/deps/signout-a3cc61d2b071bf9f) 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.04s Running tests/web.rs (target/debug/deps/web-4f0dab5b7204dec9) 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-b5315a033313f220) running 8 tests test tests::a_store_with_a_listener_or_a_copy_is_in_use ... ok test tests::commits_are_read_back_in_order ... ok test tests::idempotency_is_saved_with_the_events_or_not_at_all ... 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-1b816c0723f31d50) 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::undo_new_daily_capture_keeps_later_prose_and_removes_its_lines ... 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::repeated_create_undo_recreates_daily_with_retained_history ... 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::create_isolation_and_idempotent_retry ... 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::a_cold_fill_gives_the_same_rows_as_the_usual_way ... ok test tests::unreadable_frontmatter_is_shown_but_never_changed ... 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 2.33s Running unittests src/lib.rs (target/debug/deps/calternal_testkit-59e71d06eb27d592) 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>Fixed notes_crash attempt 1</summary> ```text Compiling futures-util v0.3.34 Compiling calternal-notes v0.1.0 (/home/agent/wt/bm3-ci/crates/notes) Compiling regex-syntax v0.8.11 Compiling tower v0.5.3 Compiling tokio-tungstenite v0.29.0 Compiling axum v0.8.9 Compiling tower-http v0.6.11 Compiling calternal-server v0.1.0 (/home/agent/wt/bm3-ci/crates/server) Compiling regex-automata v0.4.18 Compiling matchers v0.2.0 Compiling tracing-subscriber v0.3.23 Compiling calternal-contacts-actions v0.1.0 (/home/agent/wt/bm3-ci/crates/contacts-actions) Compiling calternal-tasks v0.1.0 (/home/agent/wt/bm3-ci/crates/tasks) Compiling calternal-daily v0.1.0 (/home/agent/wt/bm3-ci/crates/daily) Compiling calternal-auth v0.1.0 (/home/agent/wt/bm3-ci/crates/auth) Compiling calternal-attachments v0.1.0 (/home/agent/wt/bm3-ci/crates/attachments) Compiling calternal-backdrops v0.1.0 (/home/agent/wt/bm3-ci/crates/backdrops) Compiling tokio-tungstenite v0.30.0 Compiling calternal v0.1.0 (/home/agent/wt/bm3-ci/crates/calternal) Finished `test` profile [unoptimized + debuginfo] target(s) in 12.30s Running tests/notes_crash.rs (target/debug/deps/notes_crash-32dceb745e4b211f) running 3 tests test kill_nine_mid_tag_rename_renames_each_tag_once ... ok 12 kills, 2243 confirmed appends test kill_nine_mid_append_on_a_long_note ... ok 30 kills, 463 confirmed appends, 29 in-flight appends retried 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.42s ``` </details> <details> <summary>Fixed notes_crash attempt 2</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s Running tests/notes_crash.rs (target/debug/deps/notes_crash-32dceb745e4b211f) running 3 tests test kill_nine_mid_tag_rename_renames_each_tag_once ... ok 12 kills, 2312 confirmed appends test kill_nine_mid_append_on_a_long_note ... ok 30 kills, 464 confirmed appends, 29 in-flight appends retried 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.41s ``` </details> <details> <summary>Fixed notes_crash attempt 3</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s Running tests/notes_crash.rs (target/debug/deps/notes_crash-32dceb745e4b211f) running 3 tests test kill_nine_mid_tag_rename_renames_each_tag_once ... ok 12 kills, 2307 confirmed appends test kill_nine_mid_append_on_a_long_note ... ok 30 kills, 466 confirmed appends, 29 in-flight appends retried 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.51s ``` </details> <details> <summary>Fixed notes_crash attempt 4</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s Running tests/notes_crash.rs (target/debug/deps/notes_crash-32dceb745e4b211f) running 3 tests test kill_nine_mid_tag_rename_renames_each_tag_once ... ok 12 kills, 2226 confirmed appends test kill_nine_mid_append_on_a_long_note ... ok 30 kills, 457 confirmed appends, 29 in-flight appends retried 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.42s ``` </details> <details> <summary>Fixed notes_crash attempt 5</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s Running tests/notes_crash.rs (target/debug/deps/notes_crash-32dceb745e4b211f) running 3 tests test kill_nine_mid_tag_rename_renames_each_tag_once ... ok 12 kills, 2356 confirmed appends test kill_nine_mid_append_on_a_long_note ... ok 30 kills, 461 confirmed appends, 29 in-flight appends retried 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.48s ``` </details> <details> <summary>Fixed notes_crash attempt 6</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s Running tests/notes_crash.rs (target/debug/deps/notes_crash-32dceb745e4b211f) running 3 tests test kill_nine_mid_tag_rename_renames_each_tag_once ... ok 12 kills, 2246 confirmed appends test kill_nine_mid_append_on_a_long_note ... ok 30 kills, 459 confirmed appends, 29 in-flight appends retried 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.51s ``` </details> <details> <summary>Fixed notes_crash attempt 7</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s Running tests/notes_crash.rs (target/debug/deps/notes_crash-32dceb745e4b211f) running 3 tests test kill_nine_mid_tag_rename_renames_each_tag_once ... ok 12 kills, 2316 confirmed appends test kill_nine_mid_append_on_a_long_note ... ok 30 kills, 460 confirmed appends, 29 in-flight appends retried 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.50s ``` </details> <details> <summary>Fixed notes_crash attempt 8</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s Running tests/notes_crash.rs (target/debug/deps/notes_crash-32dceb745e4b211f) running 3 tests test kill_nine_mid_tag_rename_renames_each_tag_once ... ok 12 kills, 2348 confirmed appends test kill_nine_mid_append_on_a_long_note ... ok 30 kills, 465 confirmed appends, 29 in-flight appends retried 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.48s ``` </details> <details> <summary>Fixed notes_crash attempt 9</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s Running tests/notes_crash.rs (target/debug/deps/notes_crash-32dceb745e4b211f) running 3 tests test kill_nine_mid_tag_rename_renames_each_tag_once ... ok 12 kills, 2334 confirmed appends test kill_nine_mid_append_on_a_long_note ... ok 30 kills, 465 confirmed appends, 29 in-flight appends retried 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.47s ``` </details> <details> <summary>Fixed notes_crash attempt 10</summary> ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s Running tests/notes_crash.rs (target/debug/deps/notes_crash-32dceb745e4b211f) running 3 tests test kill_nine_mid_tag_rename_renames_each_tag_once ... ok 12 kills, 2348 confirmed appends test kill_nine_mid_append_on_a_long_note ... ok 30 kills, 468 confirmed appends, 29 in-flight appends retried 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.43s ``` </details> The full workspace run reported **1,198 passed, 0 failed, 20 ignored** across its test binaries and doctests. All ten additional fixed crash-suite runs passed. `/home/agent/wt/bm3-ci/target/` (including the isolated bisect target) has been deleted, and the lease heartbeat unit has been stopped.
Author
Owner

Train BM3: WebKit half of the full Playwright suite: PASS

  • Commit: cc56ef86 (train/2026-10-30-bm3), VM cua@calternal-dev-02-std (aarch64), Nix shell, binary built from this commit.
  • Command: CI=1 bunx playwright test --retries=0 --workers=1 --no-deps --project=webkit-1440 --project=webkit-390 --project=admin-setup --project=admin-webkit-1440 --project=admin-webkit-390 --project=prefs-webkit --project=sidebar-band-webkit (first run, no retries, no reruns).
  • Result: 1224 passed, 0 failed, 0 flaky, 765 skipped. Duration 1.1 h.
Project Passed Skipped Failed
webkit-1440 380 591 0
webkit-390 819 152 0
admin-webkit-1440 9 9 0
admin-webkit-390 9 9 0
prefs-webkit 3 4 0
sidebar-band-webkit 3 0 0
admin-setup (Chromium, required to sign in for the admin WebKit projects) 1 0 0

Notes: Chromium dependency projects (prefs-chromium, contrast, sidebar-band-chromium) were not run here (other agent runs them on dev-01), hence --no-deps. Skips come from the specs' own viewport/project skips, not from this run's flags.
No failures, so no origin/dev comparison was needed. Log: ~/bm3-webkit.log; JSON results: ~/bm3-webkit-evidence/results.json on dev-02.

**Train BM3: WebKit half of the full Playwright suite: PASS** - Commit: cc56ef86 (`train/2026-10-30-bm3`), VM `cua@calternal-dev-02-std` (aarch64), Nix shell, binary built from this commit. - Command: `CI=1 bunx playwright test --retries=0 --workers=1 --no-deps --project=webkit-1440 --project=webkit-390 --project=admin-setup --project=admin-webkit-1440 --project=admin-webkit-390 --project=prefs-webkit --project=sidebar-band-webkit` (first run, no retries, no reruns). - Result: **1224 passed, 0 failed, 0 flaky, 765 skipped**. Duration 1.1 h. | Project | Passed | Skipped | Failed | |---|---|---|---| | webkit-1440 | 380 | 591 | 0 | | webkit-390 | 819 | 152 | 0 | | admin-webkit-1440 | 9 | 9 | 0 | | admin-webkit-390 | 9 | 9 | 0 | | prefs-webkit | 3 | 4 | 0 | | sidebar-band-webkit | 3 | 0 | 0 | | admin-setup (Chromium, required to sign in for the admin WebKit projects) | 1 | 0 | 0 | Notes: Chromium dependency projects (`prefs-chromium`, `contrast`, `sidebar-band-chromium`) were not run here (other agent runs them on dev-01), hence `--no-deps`. Skips come from the specs' own viewport/project skips, not from this run's flags. No failures, so no `origin/dev` comparison was needed. Log: `~/bm3-webkit.log`; JSON results: `~/bm3-webkit-evidence/results.json` on dev-02.
Author
Owner

Train BM3 is updated at 8e074bd8.

Merge and conflicts

Merged origin/dev (2f304154) into the train with merge commit b6e989c8; its first parent is cc56ef86, so the original train commit was preserved without rebasing. No files conflicted and no manual resolutions were needed. The incoming dev changes are limited to docs/deploy.md, scripts/deploy-prod.sh, and tests/deploy-prod.sh; no app code changed in the merge, so I used the targeted browser smoke rather than rerunning the full suites.

Container build

deploy/Containerfile now copies packages/text/package.json before bun install and copies packages/text before the web build. On dev-01, rootless Podman as calternal built the image with --format docker --no-cache; bun install --frozen-lockfile succeeded. The image is localhost/calternal:bm3-merge-8e074bd8, ID 5740b7ece008a92f16f76ab7c97db4197f7563ec1a5d1f181a2c371c09c1f53f, with HEALTHCHECK=present. No staging deploy was performed.

Gates

  • cargo fmt --all --check — PASS.
  • RUSTFLAGS="-D warnings" CARGO_TERM_COLOR=always cargo clippy --workspace --all-targets --locked -j4 — PASS.
  • RUSTFLAGS="-D warnings" CARGO_TERM_COLOR=always cargo test --workspace --locked -j4 — PASS: 1,198 passed, 0 failed, 20 ignored.
  • bash tests/deploy-prod.sh — PASS.
  • CI=1 CALTERNAL_BIN=<dev-01>/target/debug/calternal bunx playwright test e2e/served.spec.ts e2e/editor.spec.ts --project=chromium-1440 --workers=1 --retries=0 — PASS: 16 passed, 0 failed.
  • CI=1 CALTERNAL_BIN=<dev-02>/target/debug/calternal bunx playwright test e2e/served.spec.ts e2e/editor.spec.ts --project=webkit-1440 --workers=1 --retries=0 — PASS: 14 passed, 2 skipped, 0 failed.

The PR was not merged.

Forgejo mergeability status

Forgejo still reports mergeable=false and mergeable_state=null for this head. The pushed train contains base commit 2f304154 as an ancestor (git merge-base --is-ancestor origin/dev origin/train/2026-10-30-bm3 passes), so Git reports no conflict. No PR merge was attempted.

Train BM3 is updated at `8e074bd8`. **Merge and conflicts** Merged `origin/dev` (`2f304154`) into the train with merge commit `b6e989c8`; its first parent is `cc56ef86`, so the original train commit was preserved without rebasing. No files conflicted and no manual resolutions were needed. The incoming dev changes are limited to `docs/deploy.md`, `scripts/deploy-prod.sh`, and `tests/deploy-prod.sh`; no app code changed in the merge, so I used the targeted browser smoke rather than rerunning the full suites. **Container build** `deploy/Containerfile` now copies `packages/text/package.json` before `bun install` and copies `packages/text` before the web build. On dev-01, rootless Podman as `calternal` built the image with `--format docker --no-cache`; `bun install --frozen-lockfile` succeeded. The image is `localhost/calternal:bm3-merge-8e074bd8`, ID `5740b7ece008a92f16f76ab7c97db4197f7563ec1a5d1f181a2c371c09c1f53f`, with `HEALTHCHECK=present`. No staging deploy was performed. **Gates** - `cargo fmt --all --check` — PASS. - `RUSTFLAGS="-D warnings" CARGO_TERM_COLOR=always cargo clippy --workspace --all-targets --locked -j4` — PASS. - `RUSTFLAGS="-D warnings" CARGO_TERM_COLOR=always cargo test --workspace --locked -j4` — PASS: 1,198 passed, 0 failed, 20 ignored. - `bash tests/deploy-prod.sh` — PASS. - `CI=1 CALTERNAL_BIN=<dev-01>/target/debug/calternal bunx playwright test e2e/served.spec.ts e2e/editor.spec.ts --project=chromium-1440 --workers=1 --retries=0` — PASS: 16 passed, 0 failed. - `CI=1 CALTERNAL_BIN=<dev-02>/target/debug/calternal bunx playwright test e2e/served.spec.ts e2e/editor.spec.ts --project=webkit-1440 --workers=1 --retries=0` — PASS: 14 passed, 2 skipped, 0 failed. The PR was not merged. **Forgejo mergeability status** Forgejo still reports `mergeable=false` and `mergeable_state=null` for this head. The pushed train contains base commit `2f304154` as an ancestor (`git merge-base --is-ancestor origin/dev origin/train/2026-10-30-bm3` passes), so Git reports no conflict. No PR merge was attempted.
Author
Owner

Merged into dev as e283b132 (git merge --no-ff of the tested head 8e074bd8; dev's tree equals it exactly), on kayg's D5 approval. The API merge returned 405 "Please try again later" and Forgejo still shows mergeable=false on several cleanly-merging PRs, so its merge-check queue looks stuck. Not deployed: prod deploy needs kayg's separate yes.

Merged into dev as e283b132 (git merge --no-ff of the tested head 8e074bd8; dev's tree equals it exactly), on kayg's D5 approval. The API merge returned 405 "Please try again later" and Forgejo still shows mergeable=false on several cleanly-merging PRs, so its merge-check queue looks stuck. Not deployed: prod deploy needs kayg's separate yes.
Author
Owner

Deployed to prod at 2026-10-31 22:36:44 IST: dev @ e283b13231844acbe0fc8877e4f317ec5f41fffe, using the merged deploy script (--yes-prod, no --restore; 22 seconds). HTTP /healthz and https://calternal.cloud return 200; health body is {"status":"ok","version":"0.1.0"}. Post-deploy container health gate FAILED: Podman reports unhealthy because /usr/local/bin/calternal-healthz is mode 700 and returns Permission denied. My restrictive umask during source extraction caused the missing permissions; this is a build preparation error. The script exited 0 and did not automatically roll back. No retry or manual prod changes performed; stopped for handoff. Running/current image: e4b24efe7c28a22521ca861677aedfbc5346fca98abb8a1328a4f61de5e804e0; rollback correctly retains old d83e54db image 65337de7b94737599a7b29b5e2ffc689f1827ea50cbe683862a0c0778a9eb207. Backup: /srv/calternal-app/backup-pre-e283b132-20261031T170625681969261Z.tgz (12,303,044 bytes). Initial app logs show zero errors/warnings. Deployment must not be treated as fully verified.

Deployed to prod at 2026-10-31 22:36:44 IST: `dev` @ `e283b13231844acbe0fc8877e4f317ec5f41fffe`, using the merged deploy script (`--yes-prod`, no `--restore`; 22 seconds). HTTP `/healthz` and https://calternal.cloud return 200; health body is `{"status":"ok","version":"0.1.0"}`. **Post-deploy container health gate FAILED:** Podman reports unhealthy because `/usr/local/bin/calternal-healthz` is mode 700 and returns Permission denied. My restrictive umask during source extraction caused the missing permissions; this is a build preparation error. The script exited 0 and did not automatically roll back. No retry or manual prod changes performed; stopped for handoff. Running/current image: `e4b24efe7c28a22521ca861677aedfbc5346fca98abb8a1328a4f61de5e804e0`; rollback correctly retains old d83e54db image `65337de7b94737599a7b29b5e2ffc689f1827ea50cbe683862a0c0778a9eb207`. Backup: `/srv/calternal-app/backup-pre-e283b132-20261031T170625681969261Z.tgz` (12,303,044 bytes). Initial app logs show zero errors/warnings. Deployment must not be treated as fully verified.
Author
Owner

Closing: head 8e074bd8 is already in dev (reached via e283b132); nothing left to merge. Branch kept.

Closing: head 8e074bd8 is already in dev (reached via e283b132); nothing left to merge. Branch kept.
kayg closed this pull request 2026-11-04 13:04:38 +00:00
Some checks failed
CI / server (pull_request) Successful in 1m18s
CI / rust (pull_request) Failing after 3m12s
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!772
No description provided.