Files: same-inode copy overwrite leaves a temporary hard link until recovery #1575

Closed
opened 2026-10-11 08:55:16 +00:00 by kayg · 6 comments
Owner

Found during independent review #1570 at c3aadd409b. This is a nonblocking Files cleanup finding, not a Money number error.

Root::copy can stage a verified Blob store hard link that has the same inode as an existing destination. With overwrite, its journal uses ordinary rename. POSIX rename is a no-op when both names identify the same inode. The journal then finishes, but the .calternal-tmp-* link remains. Root::recover removes it on restart.

Evidence: a private fixture copied the three flat Budget sources between two Users, then copied the unchanged Budget.md and Accounts.md over their existing destinations. Two temporary links remained in the destination directory. Recovery removed the links and changed those two source ctimes. Source bytes, device, inode, size and mtime stayed equal. The new Money receipt correctly rebuilt once and then settled with zero writes on repeated recovery. No stale numbers, data loss or loop occurred.

The relevant copy and rename code is unchanged by fc6aeee2f..c3aadd409. The new ctime receipt makes this old cleanup behavior visible as one avoidable rebuild. Repeated identical copies also leave extra hidden directory entries until recovery.

Expected: a completed same-inode copy leaves no staged temporary link, while preserving Version and journal durability. Add a calternal-fs regression that counts fixed-fixture temporary names after copy success and verifies exact source bytes after recovery.

Local evidence: artifacts/rev1570b-probes.log (initial too-strong review assertion), artifacts/rev1570b-probes-2.log (ctime diagnosis and settled projection), artifacts/rev1570b-probes.rs (temporary probe). No product files were changed for the review.

Found during independent review #1570 at c3aadd409b7c32d302fe844bff7e6b2462d10ebe. This is a nonblocking Files cleanup finding, not a Money number error. `Root::copy` can stage a verified Blob store hard link that has the same inode as an existing destination. With overwrite, its journal uses ordinary rename. POSIX rename is a no-op when both names identify the same inode. The journal then finishes, but the `.calternal-tmp-*` link remains. `Root::recover` removes it on restart. Evidence: a private fixture copied the three flat Budget sources between two Users, then copied the unchanged Budget.md and Accounts.md over their existing destinations. Two temporary links remained in the destination directory. Recovery removed the links and changed those two source ctimes. Source bytes, device, inode, size and mtime stayed equal. The new Money receipt correctly rebuilt once and then settled with zero writes on repeated recovery. No stale numbers, data loss or loop occurred. The relevant copy and rename code is unchanged by fc6aeee2f..c3aadd409. The new ctime receipt makes this old cleanup behavior visible as one avoidable rebuild. Repeated identical copies also leave extra hidden directory entries until recovery. Expected: a completed same-inode copy leaves no staged temporary link, while preserving Version and journal durability. Add a calternal-fs regression that counts fixed-fixture temporary names after copy success and verifies exact source bytes after recovery. Local evidence: artifacts/rev1570b-probes.log (initial too-strong review assertion), artifacts/rev1570b-probes-2.log (ctime diagnosis and settled projection), artifacts/rev1570b-probes.rs (temporary probe). No product files were changed for the review.
Author
Owner

Started on job/fs1575 at base 0c712b98c1. Scope: calternal-fs copy staging cleanup and focused success/recovery/crash regressions. No dependency or API changes are planned. The final job instruction prohibits merges; I will fetch origin/dev for drift evidence without merging.

Started on job/fs1575 at base 0c712b98c164b6734d54f63485012bd1a11005b4. Scope: calternal-fs copy staging cleanup and focused success/recovery/crash regressions. No dependency or API changes are planned. The final job instruction prohibits merges; I will fetch origin/dev for drift evidence without merging.
Author
Owner

Finding: the verified Blob store hard-link branch can share the destination device/inode; ordinary POSIX rename then retains the staged name. The fix uses the existing Remove journal step after the Version link. Focused success and eight SIGKILL boundary cases pass, including unlink before directory fsync and both actual copy journal fault points. Review also identified that switching Rename to Remove omits the target from journal repair checks; the same-inode branch now explicitly checks the target, with a regression for protected upload evidence. No journal-format or dependency change.

Finding: the verified Blob store hard-link branch can share the destination device/inode; ordinary POSIX rename then retains the staged name. The fix uses the existing Remove journal step after the Version link. Focused success and eight SIGKILL boundary cases pass, including unlink before directory fsync and both actual copy journal fault points. Review also identified that switching Rename to Remove omits the target from journal repair checks; the same-inode branch now explicitly checks the target, with a regression for protected upload evidence. No journal-format or dependency change.
Author
Owner

Regression evidence: running the new success test against the original copy implementation failed with assertion left == right failed, left: 2, right: 0 (two staged names after unchanged overwrites). The fixed implementation is restored. cargo fmt --check passed (no output); clippy passed: Finished dev profile [unoptimized + debuginfo] target(s) in 10.62s. The requested calternal-fs + calternal-plugin-files test gate is building now. Fetch found origin/dev still at the job base 0c712b98c1; no integration is needed.

Regression evidence: running the new success test against the original copy implementation failed with `assertion left == right failed`, `left: 2`, `right: 0` (two staged names after unchanged overwrites). The fixed implementation is restored. `cargo fmt --check` passed (no output); clippy passed: `Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.62s`. The requested calternal-fs + calternal-plugin-files test gate is building now. Fetch found origin/dev still at the job base 0c712b98c164b6734d54f63485012bd1a11005b4; no integration is needed.
Author
Owner

Committed aaaec5660e: fix(fs): unlink staged same-inode copy overwrites. Only crates/calternal-fs/src/file_ops.rs changed. Filesystem gates passed so far, verbatim: test result: ok. 110 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 33.23s; test result: ok. 54 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 243.08s. Files plugin tests are still running. Working tree is clean.

Committed aaaec5660e37c6c6149851e51867b8ec2f3cd996: fix(fs): unlink staged same-inode copy overwrites. Only crates/calternal-fs/src/file_ops.rs changed. Filesystem gates passed so far, verbatim: `test result: ok. 110 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 33.23s`; `test result: ok. 54 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 243.08s`. Files plugin tests are still running. Working tree is clean.
Author
Owner

Completed #1575 on job/fs1575.

Head SHA: aaaec5660e
Base and fetched origin/dev: 0c712b98c1. The final job instruction prohibits merges. Fetch found no drift, so no integration was needed. No push, merge or deploy was done.

Built:

  • Root::copy compares device and inode from opened source and target handles in the verified Blob store hard-link overwrite branch.
  • If both names use the same inode, the existing journal Remove step removes the staged name. The Version step stays first. Parent sync and durable journal removal keep the existing completion order.
  • The target repair check stays in place when Remove replaces Rename. A protected upload target remains refused.
  • Tests count reserved temporary names after repeated cross-Home overwrites, check exact bytes after repeated recovery, check Version contents and repair refusal, and SIGKILL a child at eight boundaries. Two boundaries exercise actual Root::copy journal fault points. The other boundaries cover staging, intent publication, Version publication, unlink before parent sync, parent sync and journal completion.

Files: crates/calternal-fs/src/file_ops.rs only. Module and function comments were read again. No dependencies, lockfiles, API contracts or contracts/perf/ratchet.json changes.

Regression evidence: the new success test against the original implementation failed with two temporary names (left: 2, right: 0). The fixed implementation passes.

Decisions:

  • Reuse the existing Remove journal operation. No new journal encoding or recovery operation is needed.
  • Identical overwrites still create Versions. This keeps the existing overwrite contract.
  • No undecided product behavior was added.

Expected cost: the hard-link overwrite branch adds one destination openat2 and one fstat. Source hashing and Version work stay the same. No extra directory walk or content read is added. This is a cleanup fix, not a performance job; the current verification policy does not call for a performance run.

Known gaps: SIGKILL tests cover process interruption. They do not simulate power loss or a filesystem that fails to honor sync. Existing ignored performance/server tests stay ignored. The two calternal-fs ignored tests are child workers invoked by their parent tests. There are no UI changes or UX gaps in this job.

Gates: all exited 0. CARGO_BUILD_JOBS=4, CARGO_PROFILE_DEV_DEBUG=line-tables-only, CARGO_INCREMENTAL=0 and TMPDIR in this worktree were set. The preset CARGO_TARGET_DIR was kept. Full gate output follows verbatim.

cargo fmt --check

cargo clippy -p calternal-fs --all-targets -- -D warnings

    Checking libc v0.2.189
    Checking cfg-if v1.0.5
    Checking once_cell v1.21.4
    Checking bitflags v2.13.2
    Checking linux-raw-sys v0.12.1
    Checking num-traits v0.2.19
    Checking zerocopy v0.8.58
    Checking rustix v1.1.5
    Checking pin-project-lite v0.2.17
    Checking getrandom v0.3.4
    Checking getrandom v0.4.3
    Checking fastrand v2.5.0
    Checking rand_core v0.9.5
    Checking wait-timeout v0.2.1
    Checking tracing-core v0.1.36
    Checking cpufeatures v0.3.1
    Checking quick-error v1.2.3
    Checking fnv v1.0.7
    Checking arrayvec v0.7.8
    Checking bit-vec v0.8.0
    Checking bytes v1.12.1
    Checking iana-time-zone v0.1.65
    Checking tempfile v3.27.0
    Checking tinyvec v1.13.3
    Checking constant_time_eq v0.4.2
    Checking tokio v1.53.1
    Checking blake3 v1.8.7
    Checking unicode-normalization v0.1.25
    Checking rusty-fork v0.3.1
    Checking chrono v0.4.45
    Checking bit-set v0.8.0
    Checking tracing v0.1.44
    Checking thiserror v2.0.21
    Checking rand_xorshift v0.4.0
    Checking rand v0.9.5
    Checking ppv-lite86 v0.2.21
    Checking unicode-joining-type v1.0.0
    Checking rand_chacha v0.9.0
    Checking calternal-path v0.0.1 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-path)
    Checking percent-encoding v2.3.2
    Checking regex-syntax v0.8.11
    Checking unarray v0.1.4
    Checking unicode-properties v0.1.4
    Checking unicode-casefold v0.2.0
    Checking calternal-fs v0.1.0 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-fs)
    Checking proptest v1.11.0
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.62s

cargo test -p calternal-fs -p calternal-plugin-files -- --test-threads=4

   Compiling syn v3.0.6
   Compiling syn v2.0.119
   Compiling jobserver v0.1.35
   Compiling serde v1.0.229
   Compiling memchr v2.8.3
   Compiling cc v1.4.7
   Compiling serde_core v1.0.229
   Compiling version_check v0.9.5
   Compiling pkg-config v0.3.34
   Compiling getrandom v0.2.17
   Compiling log v0.4.34
   Compiling libm v0.2.16
   Compiling zeroize v1.9.0
   Compiling num-traits v0.2.19
   Compiling itoa v1.0.18
   Compiling typenum v1.20.1
   Compiling equivalent v1.0.2
   Compiling rand_core v0.6.4
   Compiling serde_derive v1.0.229
   Compiling synstructure v0.14.0
   Compiling displaydoc v0.2.7
   Compiling zerofrom-derive v0.1.8
   Compiling yoke-derive v0.8.4
   Compiling zerovec-derive v0.11.6
   Compiling zerofrom v0.1.8
   Compiling hashbrown v0.17.1
   Compiling tracing-attributes v0.1.31
   Compiling subtle v2.6.1
   Compiling writeable v0.6.4
   Compiling litemap v0.8.3
   Compiling futures-core v0.3.34
   Compiling socket2 v0.6.5
   Compiling smallvec v1.16.1
   Compiling utf8_iter v1.0.4
   Compiling tracing-core v0.1.36
   Compiling icu_normalizer_data v2.3.0
   Compiling icu_properties_data v2.3.0
   Compiling generic-array v0.14.9
   Compiling scopeguard v1.2.0
   Compiling mio v1.2.3
   Compiling tracing v0.1.44
   Compiling errno v0.3.14
   Compiling stable_deref_trait v1.2.1
   Compiling const-oid v0.9.6
   Compiling signal-hook-registry v1.4.8
   Compiling tokio-macros v2.7.2
   Compiling thiserror-impl v2.0.21
   Compiling lock_api v0.4.14
   Compiling tokio v1.53.1
   Compiling form_urlencoded v1.2.2
   Compiling cpufeatures v0.2.17
   Compiling base64 v0.22.1
   Compiling crypto-common v0.1.6
   Compiling thiserror v2.0.21
   Compiling block-buffer v0.10.4
   Compiling yoke v0.8.3
   Compiling zerocopy v0.8.58
   Compiling digest v0.10.7
   Compiling zerocopy-derive v0.8.58
   Compiling getrandom v0.4.3
   Compiling zmij v1.0.23
   Compiling zerovec v0.11.8
   Compiling serde_json v1.0.151
   Compiling rand_core v0.10.1
   Compiling chrono v0.4.45
   Compiling futures-io v0.3.34
   Compiling futures-task v0.3.34
   Compiling siphasher v1.0.3
   Compiling tinystr v0.8.4
   Compiling vcpkg v0.2.15
   Compiling futures-sink v0.3.34
   Compiling icu_locale_core v2.3.0
   Compiling potential_utf v0.1.6
   Compiling zerotrie v0.2.5
   Compiling indexmap v2.14.2
   Compiling parking_lot_core v0.9.12
   Compiling icu_provider v2.3.1
   Compiling ppv-lite86 v0.2.21
   Compiling icu_collections v2.3.0
   Compiling ring v0.17.14
   Compiling rand_chacha v0.3.1
   Compiling cmake v0.1.58
   Compiling rand v0.8.8
   Compiling minimal-lexical v0.2.1
   Compiling slab v0.4.12
   Compiling icu_normalizer v2.3.0
   Compiling icu_properties v2.3.0
   Compiling fs_extra v1.3.0
   Compiling idna_adapter v1.2.2
   Compiling spin v0.9.9
   Compiling futures-macro v0.3.34
   Compiling http v1.5.0
   Compiling untrusted v0.9.0
   Compiling futures-util v0.3.34
   Compiling idna v1.1.0
   Compiling phf_shared v0.11.3
   Compiling url v2.5.8
   Compiling blake3 v1.8.7
   Compiling dunce v1.0.5
   Compiling crc-catalog v2.5.0
   Compiling crc32fast v1.5.2
   Compiling crc v3.4.0
   Compiling aws-lc-sys v0.45.0
   Compiling phf_generator v0.11.3
   Compiling rustix v1.1.5
   Compiling base64ct v1.8.3
   Compiling adler2 v2.0.1
   Compiling either v1.18.0
   Compiling http-body v1.1.0
   Compiling futures-channel v0.3.34
   Compiling num-conv v0.2.2
   Compiling linux-raw-sys v0.12.1
   Compiling time-core v0.1.9
   Compiling powerfmt v0.2.0
   Compiling deranged v0.5.8
   Compiling aws-lc-rs v1.18.1
   Compiling siphasher v0.3.11
   Compiling parking_lot v0.12.5
   Compiling pem-rfc7468 v0.7.0
   Compiling rustls-pki-types v1.15.1
   Compiling tower-service v0.3.3
   Compiling crossbeam-utils v0.8.23
   Compiling httpdate v1.0.3
   Compiling httparse v1.10.1
   Compiling der v0.7.10
   Compiling nom v7.1.3
   Compiling tokio-util v0.7.19
   Compiling hybrid-array v0.4.15
   Compiling allocator-api2 v0.2.21
   Compiling try-lock v0.2.5
   Compiling atomic-waker v1.1.2
   Compiling foldhash v0.2.0
   Compiling want v0.3.1
   Compiling h2 v0.4.19
   Compiling hashbrown v0.16.1
   Compiling spki v0.7.3
   Compiling phf_shared v0.10.0
   Compiling sha2 v0.10.9
   Compiling sync_wrapper v1.0.2
   Compiling zeroize_derive v1.5.0
   Compiling tower-layer v0.3.3
   Compiling rustls v0.23.45
   Compiling ryu v1.0.23
   Compiling ipnet v2.12.2
   Compiling thiserror v1.0.69
   Compiling parking v2.2.1
   Compiling event-listener v5.4.2
   Compiling crossbeam-queue v0.3.14
   Compiling phf_generator v0.10.0
   Compiling hashlink v0.11.1
   Compiling pkcs8 v0.10.2
   Compiling rand_chacha v0.9.0
   Compiling http-body-util v0.1.5
   Compiling phf_macros v0.11.3
   Compiling thiserror-impl v1.0.69
   Compiling hyper v1.11.1
   Compiling rustversion v1.0.23
   Compiling byteorder v1.5.0
   Compiling glob v0.3.4
   Compiling hyper-util v0.1.20
   Compiling phf v0.11.3
   Compiling rand v0.9.5
   Compiling phf_codegen v0.10.0
   Compiling calternal-fs v0.1.0 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-fs)
   Compiling tower v0.5.3
   Compiling crypto-common v0.2.2
   Compiling libsqlite3-sys v0.37.0
   Compiling phf_shared v0.12.1
   Compiling zstd-sys v2.1.0+zstd.1.5.7
   Compiling unicase v2.9.0
   Compiling mime v0.3.17
   Compiling simd-adler32 v0.3.10
   Compiling chrono-tz v0.10.4
   Compiling strsim v0.11.1
   Compiling heck v0.5.0
   Compiling phf v0.12.1
   Compiling tokio-stream v0.1.19
   Compiling futures-intrusive v0.5.0
   Compiling clang-sys v1.9.1
   Compiling openssl-sys v0.9.117
   Compiling uuid v1.26.1
   Compiling num-integer v0.1.47
   Compiling bzip2-sys v0.1.13+1.0.8
   Compiling same-file v1.0.6
   Compiling prettyplease v0.2.37
   Compiling new_debug_unreachable v1.0.6
   Compiling hex v0.4.3
   Compiling walkdir v2.5.0
   Compiling sqlx-core v0.9.0
   Compiling atoi v2.0.0
   Compiling futures-executor v0.3.34
   Compiling serde_urlencoded v0.7.1
   Compiling flume v0.12.0
   Compiling inout v0.2.2
   Compiling webpki-roots v1.0.9
   Compiling time-macros v0.2.32
   Compiling lazy_static v1.5.0
   Compiling hmac v0.12.1
   Compiling lzma-sys v0.1.20
   Compiling cmov v0.5.4
   Compiling regex-syntax v0.8.11
   Compiling zstd-safe v7.3.0
   Compiling syn v1.0.109
   Compiling tempfile v3.27.0
   Compiling ctutils v0.4.2
   Compiling regex-automata v0.4.18
   Compiling time v0.3.55
   Compiling sqlx-sqlite v0.9.0
   Compiling miniz_oxide v0.9.1
   Compiling tower-http v0.6.11
   Compiling block-buffer v0.12.1
   Compiling string_cache_codegen v0.5.4
   Compiling inout v0.1.4
   Compiling signature v2.2.0
   Compiling ff v0.13.1
   Compiling serde_path_to_error v0.1.20
   Compiling synstructure v0.13.2
   Compiling ahash v0.8.12
   Compiling libloading v0.8.9
   Compiling winnow v1.0.4
   Compiling dotenvy v0.15.7
   Compiling mac v0.1.1
   Compiling precomputed-hash v0.1.1
   Compiling base16ct v0.2.0
   Compiling getrandom v0.3.4
   Compiling base64 v0.21.7
   Compiling bindgen v0.72.1
   Compiling rusty-fork v0.3.1
   Compiling sec1 v0.7.3
   Compiling toml_parser v1.1.3+spec-1.1.0
   Compiling futf v0.1.5
   Compiling sqlx-macros-core v0.9.0
   Compiling asn1-rs-derive v0.5.1
   Compiling cexpr v0.6.0
   Compiling group v0.13.0
   Compiling cipher v0.4.4
   Compiling markup5ever v0.11.0
   Compiling phf v0.10.1
   Compiling cipher v0.5.2
   Compiling flate2 v1.1.10
   Compiling regex v1.13.1
   Compiling universal-hash v0.6.1
   Compiling hkdf v0.12.4
   Compiling rustls-webpki v0.103.15
   Compiling fdeflate v0.3.7
   Compiling miniz_oxide v0.8.9
   Compiling rusticata-macros v4.1.0
   Compiling itertools v0.10.5
   Compiling crypto-bigint v0.5.5
   Compiling asn1-rs-impl v0.2.0
   Compiling aho-corasick v1.1.5
   Compiling quick-xml v0.42.0
   Compiling dtoa v1.0.11
   Compiling utf-8 v0.7.6
   Compiling pxfm v0.1.30
   Compiling quick-error v2.0.1
   Compiling rustc-hash v2.1.3
   Compiling byteorder-lite v0.1.0
   Compiling semver v1.0.28
   Compiling pulldown-cmark v0.13.4
   Compiling zune-core v0.5.3
   Compiling color_quant v1.1.0
   Compiling ident_case v1.0.1
   Compiling weezl v0.1.12
   Compiling bumpalo v3.20.3
   Compiling zip v2.4.2
   Compiling toml_datetime v1.1.1+spec-1.1.0
   Compiling shlex v1.3.0
   Compiling inotify-sys v0.1.8
   Compiling toml_edit v0.25.15+spec-1.1.0
   Compiling gif v0.14.2
   Compiling moxcms v0.8.1
   Compiling tokio-rustls v0.26.6
   Compiling zopfli v0.8.3
   Compiling hyper-rustls v0.27.10
   Compiling darling_core v0.24.1
   Compiling zune-jpeg v0.5.15
   Compiling rustc_version v0.4.1
   Compiling image-webp v0.2.4
   Compiling proptest v1.11.0
   Compiling tendril v0.4.3
   Compiling dtoa-short v0.3.5
   Compiling elliptic-curve v0.13.8
   Compiling asn1-rs v0.6.2
   Compiling html5ever v0.26.0
   Compiling utoipa-gen v6.0.1
   Compiling pbkdf2 v0.12.2
   Compiling png v0.18.1
   Compiling webpki-roots v0.26.11
   Compiling poly1305 v0.9.1
   Compiling zstd v0.13.3
   Compiling chacha20 v0.10.2
   Compiling aes v0.8.4
   Compiling xattr v1.6.1
   Compiling sqlx-macros v0.9.0
   Compiling xz2 v0.1.7
   Compiling string_cache v0.8.9
   Compiling bzip2 v0.5.2
   Compiling aead v0.6.1
   Compiling axum-core v0.5.6
   Compiling mime_guess v2.0.5
   Compiling selectors v0.25.0
   Compiling find_cuda_helper v0.2.0
   Compiling lzma-rs v0.3.0
   Compiling sha1 v0.10.7
   Compiling axum-macros v0.5.1
   Compiling cssparser-macros v0.6.1
   Compiling filetime v0.2.29
   Compiling openssl v0.10.81
   Compiling base64 v0.23.1
   Compiling winnow v0.7.15
   Compiling foreign-types-shared v0.1.1
   Compiling deflate64 v0.1.12
   Compiling matchit v0.8.4
   Compiling pulldown-cmark-escape v0.11.0
   Compiling oid-registry v0.7.1
   Compiling linkme-impl v0.3.37
   Compiling openssl-probe v0.2.1
   Compiling pastey v0.1.1
   Compiling bytemuck v1.25.2
   Compiling unsafe-libyaml v0.2.11
   Compiling constant_time_eq v0.3.1
   Compiling utf8parse v0.2.2
   Compiling anstyle-parse v1.0.0
   Compiling image v0.25.10
   Compiling serde_yaml v0.9.34+deprecated
   Compiling cron v0.17.0
   Compiling base64urlsafedata v0.5.5
   Compiling rustls-native-certs v0.8.4
   Compiling axum v0.8.9
   Compiling foreign-types v0.3.2
   Compiling cssparser v0.31.2
   Compiling tar v0.4.46
   Compiling ureq v2.12.1
   Compiling llama-cpp-sys-2 v0.1.158
   Compiling chacha20poly1305 v0.11.0
   Compiling sqlx v0.9.0
   Compiling utoipa v6.0.0
   Compiling darling_macro v0.24.1
   Compiling curve25519-dalek v4.1.3
   Compiling proc-macro-crate v3.5.0
   Compiling bzip2 v0.4.4
   Compiling rfc6979 v0.4.0
   Compiling num-bigint v0.4.8
   Compiling fxhash v0.2.1
   Compiling hashify v0.2.9
   Compiling servo_arc v0.3.0
   Compiling derive_more v0.99.20
   Compiling openssl-macros v0.1.1
   Compiling webauthn-attestation-ca v0.5.5
   Compiling anstyle-query v1.1.5
   Compiling unicode-width v0.2.2
   Compiling colorchoice v1.0.5
   Compiling dyn-clone v1.0.20
   Compiling xml v1.4.0
   Compiling num-bigint-dig v0.8.6
   Compiling is_terminal_polyfill v1.70.2
   Compiling linkme v0.3.37
   Compiling anstyle v1.0.14
   Compiling getopts v0.2.24
   Compiling anstream v1.0.0
   Compiling der-parser v9.0.0
   Compiling mail-parser v0.11.9
   Compiling ecdsa v0.16.9
   Compiling sherpa-onnx-sys v1.13.8 (/home/kayg/Developer/calternal-wt/fs1575/vendor/sherpa-onnx-sys)
   Compiling num_enum_derive v0.7.6
   Compiling inotify v0.11.5
   Compiling darling v0.24.1
   Compiling calternal-db v0.1.0 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-db)
   Compiling calternal-notes-core v0.1.0 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-notes-core)
   Compiling rustls-platform-verifier v0.7.0
   Compiling primeorder v0.13.6
   Compiling num-iter v0.1.46
   Compiling encoding_rs v0.8.41
   Compiling multiversion-macros v0.9.0
   Compiling headers-core v0.3.0
   Compiling xmp_toolkit v1.12.1
   Compiling half v2.7.1
   Compiling curve25519-dalek-derive v0.1.1
   Compiling bounded-static-derive v0.8.0
   Compiling notify-types v2.1.0
   Compiling bounded-static v0.8.0
   Compiling ego-tree v0.6.3
   Compiling webauthn-rs-core v0.5.5
   Compiling clap_lex v1.1.1
   Compiling data-encoding v2.11.1
   Compiling scraper v0.18.1
   Compiling clap_builder v4.6.7
   Compiling x509-parser v0.16.0
   Compiling notify v8.2.0
   Compiling imap-types v2.0.0-alpha.7
   Compiling serde_cbor_2 v0.13.0
   Compiling headers v0.4.2
   Compiling multiversion v0.9.0
   Compiling reqwest v0.13.5
   Compiling serde_with_macros v3.23.0
   Compiling num_enum v0.7.6
   Compiling xmltree v0.12.0
   Compiling xml-rs v1.0.0
   Compiling calternal-api v0.0.1 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-api)
   Compiling webauthn-rs-proto v0.5.5
   Compiling reqwest v0.12.28
   Compiling ed25519 v2.2.3
   Compiling clap_derive v4.6.7
   Compiling pkcs1 v0.7.5
   Compiling abnf-core v0.6.0
   Compiling hex-conservative v0.2.3
   Compiling ordered-float v2.10.1
   Compiling derive-where v1.7.0
   Compiling enumflags2_derive v0.7.12
   Compiling llama-cpp-2 v0.1.157
   Compiling mail-builder v1.0.0
   Compiling htmlescape v0.3.1
   Compiling core_detect v1.0.0
   Compiling multiversion_no_op v1.0.0
   Compiling simdutf8 v0.1.5
   Compiling calcard v0.3.14
   Compiling dav-server v0.11.0
   Compiling enumflags2 v0.7.12
   Compiling serde-value v0.7.0
   Compiling bitcoin_hashes v0.14.101
   Compiling imap-codec v2.0.0-alpha.9
   Compiling oauth2 v5.0.0
   Compiling rsa v0.9.10
   Compiling clap v4.6.7
   Compiling ed25519-dalek v2.2.0
   Compiling calternal-plugin v0.0.1 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-plugin)
   Compiling serde_with v3.23.0
   Compiling p384 v0.13.1
   Compiling p256 v0.13.2
   Compiling calternal-media v0.0.1 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-media)
   Compiling password-hash v0.5.0
   Compiling blake2 v0.10.6
   Compiling geo-types v0.7.20
   Compiling serde_plain v1.0.2
   Compiling similar v3.2.0
   Compiling calternal-auth v0.1.0 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-auth)
   Compiling iso6709parse v0.1.2
   Compiling openidconnect v4.0.1
   Compiling calternal-imap v0.0.1 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-imap)
   Compiling argon2 v0.5.3
   Compiling calternal-dav v0.0.1 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-dav)
   Compiling sherpa-onnx v1.13.8
   Compiling webauthn-rs v0.5.5
   Compiling readability-rust v0.1.0
   Compiling bip39 v3.0.0
   Compiling plist v1.10.1
   Compiling calternal-location v0.0.1 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-location)
   Compiling async-trait v0.1.92
   Compiling async-stream-impl v0.3.6
   Compiling nom v8.0.0
   Compiling html2md-rs v0.12.2
   Compiling async-stream v0.3.6
   Compiling matchers v0.2.0
   Compiling sharded-slab v0.1.7
   Compiling zip v5.1.1
   Compiling tracing-log v0.2.0
   Compiling nom-exif v3.8.0
   Compiling thread_local v1.1.10
   Compiling nu-ansi-term v0.50.3
   Compiling tracing-subscriber v0.3.23
   Compiling calternal-tags v0.0.1 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-tags)
   Compiling calternal-plugin-notes v0.0.1 (/home/kayg/Developer/calternal-wt/fs1575/crates/plugins/notes)
   Compiling calternal-plugin-files v0.0.1 (/home/kayg/Developer/calternal-wt/fs1575/crates/plugins/files)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 4m 40s
     Running unittests src/lib.rs (/home/kayg/build/targets/fs1575/debug/deps/calternal_fs-b617787a451c9130)

running 112 tests
test appledouble::tests::internal_delete_and_move_do_not_require_a_home ... ok
test file_ops::tests::same_inode_copy_crash_worker ... ignored, worker for same_inode_copy_recovers_after_process_kill
test appledouble::tests::unrepresentable_destination_keeps_content_and_metadata ... ok
test appledouble::tests::copy_preserves_metadata_and_untagged_overwrite_clears_it ... ok
test file_ops::tests::same_inode_copy_preserves_repair_protection ... ok
test history::tests::history_append_respects_home_quota ... ok
test file_ops::tests::same_inode_copy_overwrite_removes_temporary_before_success ... ok
test history::tests::history_consumes_own_reservation_and_checks_fold_staging ... ok
test appledouble::tests::folder_attributes_follow_the_complete_lifecycle ... ok
test history::tests::history_rejects_symlinked_segments_and_keeps_lock_after_fold ... ok
test history::tests::materialization_marker_survives_reopen_and_failed_quota_write ... ok
test history::tests::history_segments_are_confined_and_exclusively_locked ... ok
test hls::tests::bounded_work_removes_incomplete_output_and_releases_admission ... ok
test hls::tests::failed_video_renditions_do_not_need_a_subprocess_retry ... ok
test journal::recovery_tests::recovery_scans_long_paths_with_bounded_descriptors ... ok
test hls::tests::complete_work_without_index_ownership_is_removed ... ok
test path::tests::ascii_fast_path_matches_the_full_fold ... ok
test path::tests::relative_path_split_keeps_single_component_paths_rooted ... ok
test path::tests::a_case_or_unicode_twin_is_a_conflict_in_a_large_folder ... ok
test quota::batch_write_tests::batch_reservation_enforces_home_quota_and_releases ... ok
test quota::batch_write_tests::intent_allowance_covers_journals_and_staged_sources ... ok
test quota::batch_write_tests::intent_allowance_exchanges_bytes_across_batches ... ok
test quota::batch_write_tests::journal_allowance_refuses_policy_changes_and_other_homes ... ok
test quota::batch_write_tests::interrupted_batch_commit_recovers_every_target ... ok
test quota::derived_tests::derived_and_upload_work_share_one_protected_reserve ... ok
test review_case_crash::review_case_rename_worker ... ignored, worker for review_sigkill_at_each_case_rename_boundary
test hls::tests::progressive_work_replaces_metadata_and_cancellation_removes_it ... ok
test root::split_device_tests::split_blob_storage_rejects_a_different_device ... ok

running 1 test
test sidecar::tests::filesystem_pairing_ignores_a_sidecar_symlink_and_directory ... ok
test sidecar::tests::identifies_full_lightroom_and_apple_forms ... ok
test sidecar::tests::keeps_orphans_directories_and_unsupported_case_independent ... ok
test sidecar::tests::only_pairs_a_sidecar_with_one_candidate_parent ... ok
test sidecar::tests::pairs_all_standard_forms_without_treating_sidecars_as_parents ... ok
test sidecar::tests::sidecar_names_keep_the_original_standard_form ... ok

running 1 test
test sidecar::tests::sidecars_in_another_folder_do_not_pair ... ok
test temp_file::tests::scratch_file_is_private_and_disappears_when_dropped ... ok

running 1 test
test review_case_crash::review_sigkill_at_each_case_rename_boundary ... ok
test quota::batch_write_tests::singleton_replay_keeps_source_and_version_at_each_step ... ok
test tests::cancelled_write_removes_prejournal_temporary ... ok
test tests::appledouble_metadata_is_private_bounded_and_follows_file_lifecycle ... ok
test tests::checked_delete_keeps_a_concurrent_user_edit ... ok
test tests::clip_model_assets_stay_private_below_the_held_root ... ok
test tests::case_only_move_recovers_from_each_temporary_name_state ... ok
test tests::conditional_note_replace_recovers_after_child_process_exits_mid_journal ... ok
test tests::conditional_note_replace_recovers_each_journal_step ... ok
test tests::copy_and_chunk_faults_remove_prejournal_temporaries ... ok
test tests::empty_home_directory_removal_is_confined_and_refuses_contents ... ok
test file_ops::tests::same_inode_copy_recovers_after_process_kill ... ok
test tests::gc_waits_for_dedup_copy_after_source_unlink ... ok
test tests::gc_waits_for_in_flight_blob_link_across_roots ... ok
test tests::hls_cache_access_is_confined_to_valid_hashes_profiles_and_outputs ... ok
test tests::photos_clip_index_directory_is_private_and_handle_relative ... ok
test tests::recovery_discards_uncommitted_intent_file ... ok
test tests::a_failure_after_the_rename_is_never_reported_as_a_lost_race ... ok
test tests::recovery_preserves_active_prejournal_temporary ... ok
test tests::recovery_removes_abandoned_home_and_upload_temporaries ... ok
test tests::enospc_and_eio_leave_original_intact_at_write_upload_and_version_steps ... ok
test tests::recovery_replaces_poisoned_blob_at_each_step ... ok
test tests::recovery_streams_past_the_previous_entry_cutoff ... ok
test tests::relative_paths_reject_ambiguous_components ... ok
test tests::search_index_directory_is_opened_below_system_directory ... ok
test tests::search_index_staging_swap_keeps_the_active_generation_intact ... ok
test tests::search_index_startup_gate_serializes_starts ... ok
test tests::search_index_startup_recovers_only_unlocked_writer_lock ... ok
test tests::semantic_model_assets_stay_private_and_use_atomic_handles ... ok
test tests::empty_trash_restarts_after_each_entry_without_partial_files ... ok
test tests::system_secret_files_are_confined_and_report_open_file_mode ... ok
test tests::system_secret_key_is_private_fixed_size_and_never_replaced ... ok
test tests::system_secret_key_rejects_wrong_lengths_and_symlinks ... ok
test tests::thinning_keeps_every_version_in_first_day ... ok
test tests::split_roots_keep_user_files_and_system_state_on_their_configured_roots ... ok
test tests::upload_ids_lists_staging_in_the_reserved_tree ... ok
test tests::user_search_directories_are_disjoint_and_confined ... ok
test tests::voice_model_download_resumes_and_publishes_only_complete_files ... ok
test tests::thinning_restarts_after_each_deleted_version_without_losing_kept_bytes ... ok
test tests::write_future_can_run_on_server_workers ... ok
test thumbnails::sealed_input_tests::decoder_snapshot_does_not_alias_later_source_changes ... ok
test thumbnails::sealed_input_tests::decoder_snapshot_has_all_kernel_seals_and_keeps_source_bytes ... ok
test thumbnails::sealed_input_tests::decoder_snapshot_refuses_input_above_the_copy_limit ... ok
test thumbnails::sealed_input_tests::large_media_snapshot_is_anonymous_read_only_and_independent ... ok
test thumbnails::sealed_input_tests::large_media_snapshot_rejects_oversize_before_copying ... ok
test thumbnails::sealed_input_tests::large_snapshot_preserves_the_shared_free_space_reserve ... ok
test thumbnails::sealed_input_tests::startup_input_is_bounded_and_fully_sealed ... ok
test thumbnails::tests::clearing_thumbnail_failure_is_scoped_to_one_renderer ... ok
test thumbnails::tests::document_thumbnail_variants_keep_cache_entries_separate ... ok
test tests::voice_recordings_and_results_use_private_opaque_names ... ok
test thumbnails::tests::indexed_document_kind_matches_renderer_gates ... ok
test thumbnails::tests::failed_thumbnail_publication_removes_its_temporary ... ok
test thumbnails::tests::legacy_launcher_failure_does_not_poison_a_content_hash ... ok
test thumbnails::tests::publishing_successful_media_clears_the_terminal_failure_marker ... ok
test thumbnails::tests::recovery_preserves_active_thumbnail_temporary_until_publication ... ok
test thumbnails::tests::stale_unversioned_failure_marker_allows_decoder_retry ... ok
test thumbnails::tests::thumbnail_temp_is_a_precreated_regular_file_in_the_held_cache ... ok
test trash::import_inverse_tests::inverse_refuses_changed_file_set ... ok
test user_homes::tests::archive_keeps_a_fixed_expiry_and_purges_only_after_it ... ok

running 1 test

running 1 test

running 1 test

running 1 test
test user_homes::tests::each_deletion_phase_recovers_after_process_exit_without_duplication ... ok
test user_homes::tests::purge_is_idempotent_and_does_not_touch_another_home ... ok
test user_homes::tests::purge_removes_a_flat_home_across_bounded_batches ... ok
test tests::recovery_replays_overwrites_with_versions ... ok
test trash::import_inverse_tests::inverse_recovers_after_each_journal_step ... ok
test user_homes::tests::user_home_deletion_child_crash_hook ... ok
test user_homes::tests::transfer_keeps_the_source_tree_together_and_is_repeatable ... ok
test web_assets::tests::ten_deployments_keep_assets_and_measure_store_bytes ... ok
test web_assets::tests::unknown_and_hostile_asset_paths_return_not_found ... ok
test web_assets::tests::seven_day_window_and_minimum_ten_generation_retention ... ok
test write::export_tests::rooted_export_creates_a_private_new_file_and_rejects_existing_symlinks ... ok
test write::export_tests::staged_batch_refuses_new_repair_protection ... ok
test write::export_tests::streaming_write_future_keeps_chunk_bytes_off_stack ... ok
test write::export_tests::metadata_stage_io_failure_keeps_original_intact ... ok
test write::export_tests::write_result_keeps_only_the_detection_prefix ... ok
test tests::recovery_replays_each_move_trash_restore_and_install_step ... ok
test user_homes::tests::purge_validation_and_directory_pages_keep_other_home_intact ... ok

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

     Running tests/legacy_kernel_permissions.rs (/home/kayg/build/targets/fs1575/debug/deps/legacy_kernel_permissions-5f1f951cf586fd9d)

running 1 test
test upgrade_permissions_without_fchmodat2 ... ok

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

     Running tests/private_permissions.rs (/home/kayg/build/targets/fs1575/debug/deps/private_permissions-a0d0c9a61e48b5c6)

running 1 test
test private_system_permissions_ignore_umask_and_repair_upgrades ... ok

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

     Running tests/storage.rs (/home/kayg/build/targets/fs1575/debug/deps/storage-1ca9b42c6df46e03)

running 54 tests
test arbitrary_paths_never_escape ... ok
test atomic_write_event_identifies_replaced_inode ... ok
test blob_scrub_repair_skips_unaddressable_names_in_homes ... ok
test blob_scrub_quarantines_and_repairs_shared_inode_from_private_copy ... ok
test case_insensitive_child_lookup_returns_existing_path ... ok
test case_only_directory_move_keeps_one_inode_and_no_old_name ... ok
test blob_scrub_resumes_quarantined_links_after_a_good_copy_arrives ... ok
test blob_scrub_cursor_checks_only_a_bounded_number_per_page ... ok
test configured_quota_covers_copy_and_cross_home_move ... ok
test conditional_replace_serializes_competing_writers_and_versions_winner ... ok
test checked_rewrite_can_publish_without_a_parent_proof ... ok
test copied_file_is_read_only_with_reflink_preference ... ok
test cross_home_folder_move_checks_all_file_bytes ... ok
test copy_of_deduped_file_reuses_blob ... ok
test date_write_refuses_hard_link_outside_home ... ok
test date_write_preserves_mtime_and_rejects_stale_inode ... ok
test date_write_refuses_identical_rename_before_staging ... ok
test directory_move_to_descendant_is_rejected_without_mutation ... ok
test date_write_refuses_rename_over_before_mtime_restore ... ok
test dedup_concurrent_writes ... ok
test excessive_delete_depth_does_not_remove_siblings ... ok
test excessive_mkdir_depth_does_not_leave_a_partial_home_tree ... ok
test directory_pages_advance_with_cursor ... ok
test existing_blob_with_wrong_bytes_is_replaced ... ok
test directory_write_proof_survives_sibling_changes_and_rejects_replacement ... ok
test new_name_policy_allows_joiners_only_in_writing_sequences ... ok
test new_name_policy_normalizes_and_rejects_spoofing ... ok
test orphan_blobs_are_collected ... ok
test mirrored_versions_follow_directory_and_delete ... ok
test moving_file_carries_versions ... ok
test overwriting_move_carries_source_versions_and_preserves_target ... ok
test public_listing_hides_reserved_names ... ok
test quota_is_shared_and_override_only_lowers ... ok
test percent_name_survives_trash_round_trip ... ok
test reserved_internals_are_not_public_paths ... ok
test sibling_collision_uses_unicode_casefold_after_nfc ... ok
test overwriting_with_copy_or_move_keeps_destination_version ... ok
test source_mtime_is_preserved_without_changing_same_content_sibling ... ok
test symlink_parent_is_never_followed ... ok
test stat_reports_the_filesystem_creation_time_when_available ... ok
test replace_does_not_modify_another_hardlink ... ok
test system_dedup_scrub_state_rejects_oversized_checkpoints ... ok
test thinning_keeps_recent_and_bucket_representatives ... ok
test system_dedup_scrub_state_is_private_and_atomic ... ok
test symlink_swap_race_never_writes_outside ... ok
test trash_collisions_get_distinct_names_and_empty ... ok
test traversal_is_rejected ... ok
test trash_restores_versions_without_mixing_new_file ... ok
test utf8_listing_skips_names_that_cannot_become_relative_paths ... ok
test trash_round_trip_and_quota ... ok
test two_home_upload_reservations_are_isolated_and_exchange_on_install ... ok
test version_counts_against_quota ... ok
test zero_byte_file_gets_version_and_thins ... ok
test bulk_write_proofs_bound_descriptors_with_a_slow_subscriber has been running for over 60 seconds
test bulk_write_proofs_bound_descriptors_with_a_slow_subscriber ... ok

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

     Running tests/voice_memos_review.rs (/home/kayg/build/targets/fs1575/debug/deps/voice_memos_review-a8460789b238fa8f)

running 2 tests
test review_legacy_symlink_is_rejected_without_target_change ... ok
test review_case_fold_classes_are_explicit ... ok

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

     Running unittests src/lib.rs (/home/kayg/build/targets/fs1575/debug/deps/calternal_plugin_files-963ac2c0871afda8)

running 285 tests
test archive::tests::source_cancel_during_skipped_prefix_stops_next_read ... ok
test archive::tests::source_reads_stop_at_window_and_before_cancelled_prefix ... ok
test archive::tests::windows_emit_only_selected_bytes_and_cancel_skipped_input ... ok
test archive::tests::windows_style_parent_components_are_encoded ... ok
test archive::tests::large_zip_reassembles_from_bounded_offsets ... ok
test background_image_tests::background_upload_validation_decodes_supported_formats ... ok
test background_image_tests::unsplash_ids_are_hashed_before_becoming_path_components ... ok
test background_image_tests::xmp_text_is_xml_escaped_and_control_free ... ok
test archive::tests::zip_contract_matches_continuation_route ... ok
test archive::tests::replaced_source_fails_before_content_read ... ok
test change_stream::tests::recipient_revoke_and_stale_path_fail_closed ... ok
test change_stream::tests::files_bridge_keeps_legacy_feed_and_current_projection ... ok
test agent_undo::tests::undo_restores_a_file_write_and_keeps_the_item_identity ... ok
test dav::tests::finder_companion_rechecks_item_identity_and_preconditions ... ok
test dav::tests::finder_content_abort_after_metadata_and_restart_removes_only_provisional_copy ... ok
test dav::tests::finder_copy_preserves_folder_and_file_metadata ... ok
test dav::tests::finder_expired_content_upload_rolls_back_after_restart ... ok
test dav::tests::finder_failed_install_intent_rolls_back_its_unchanged_target ... ok
test dav::tests::finder_folder_attributes_survive_shallow_copy ... ok
test dav::tests::finder_old_metadata_abort_preserves_acknowledged_deletion ... ok
test dav::tests::finder_http_companion_put_stages_the_body_for_renamed_copy ... ok
test dav::tests::finder_old_metadata_abort_preserves_the_acknowledged_winner ... ok
test dav::tests::finder_old_real_empty_file_survives_failed_metadata_and_content_edits ... ok
test dav::tests::finder_rollback_preserves_later_empty_revision_and_versions ... ok
test dav::tests::finder_root_directory_metadata_is_persistent ... ok
test dav::tests::local_server_scripted_probe_and_rclone_ten_thousand_small_files ... ignored, starts a loopback server and transfers 10,000 files with rclone
test dav::tests::finder_restricted_companions_follow_their_own_collision_renamed_copy ... ok
test dav::tests::move_checks_quoted_current_and_stale_etags ... ok
test dav::tests::path_resolution_rejects_traversal_and_reserved_names ... ok
test dav::tests::move_copy_and_trash_use_files_index_operations ... ok
test dav::tests::finder_restricted_content_continues_only_its_provisional_copy ... ok
test dav::tests::upload_read_and_index_listing_share_one_file_revision ... ok
test dav::tests::concurrent_finder_puts_keep_all_uploads ... ok
test dav::tests::upload_preconditions_and_upload_only_name_collisions_are_enforced ... ok
test index::movie_probe_tests::movie_probe_reader_holds_its_memory_permit ... ok
test index::movie_probe_tests::movie_probe_slots_are_shared_across_files_states ... ok
test media::tests::compressed_image_input_cap_is_a_fixed_limit ... ok
test media::tests::conflicting_iso_bmff_brands_are_refused ... ok
test media::tests::document_decoder_rejection_is_not_retried_or_returned ... ok
test media::tests::document_launcher_failure_is_retryable_and_private ... ok
test media::tests::document_launcher_spawn_failure_is_retryable ... ok
test media::tests::every_native_media_command_starts_at_the_sandbox_wrapper ... ok
test dav::tests::webdav_finder_oversized_appledouble_put_removes_new_empty_target ... ok
test media::tests::image_header_dimensions_are_bounded_before_pixel_decode ... ok
test media::tests::launcher_causes_are_distinct_from_bad_user_content ... ok
test media::tests::media_decoders_are_selected_from_magic_bytes ... ok
test media::tests::only_one_unambiguous_vips_header_dimension_pair_is_accepted ... ok
test media::tests::output_limit_still_stops_the_decoder ... ok
test media::tests::process_mode_preserves_the_caller_output_sink ... ok
test media::tests::real_media_fixtures_route_to_the_expected_decoder ... ok
test media::tests::real_startup_self_test_decodes_a_sealed_jpeg ... ignored, requires tests/adversarial/prepare-media-runtime.sh and its PATH
test media::tests::retry_message_keeps_diagnostics_out_of_user_jobs ... ok
test media::tests::slow_media_sink_does_not_block_unrelated_runtime_work ... ok
test media::tests::stderr_flood_is_drained_and_classified_privately ... ok
test dav::tests::webdav_finder_appledouble_is_hidden_persistent_and_follows_moves ... ok
test media::tests::video_magic_is_gated_by_the_index_mime_and_dimension_caps ... ok
test media_slot_tests::large_media_work_keeps_one_small_slot_available ... ok
test media_slot_tests::small_media_work_and_large_work_share_a_two_slot_limit ... ok
test dav::tests::webdav_keeps_xmp_sidecars_with_copy_move_and_delete ... ok
test media::tests::framed_metadata_is_bounded_and_sink_refusal_reaps_the_child ... ok
test public::tests::folder_link_checks_open_handle_and_selected_identity ... ok
test public::tests::markdown_note_paths_follow_home_wide_note_index ... ok
test public::tests::new_slugs_follow_the_strict_rule ... ok
test public::tests::opened_public_item_requires_current_identity ... ok
test public::tests::password_admission_refusal_spends_no_attempt ... ok
test public::tests::hidden_names_stay_private_across_public_routes ... ok
test public::tests::password_budget_bounds_waiters_and_retains_cancelled_workers ... ok
test media::tests::timeout_kills_the_whole_media_process_group ... ok
test public::tests::password_budget_releases_errors_and_rejects_long_input ... ok
test public::tests::password_parallel_reservations_keep_exact_counters ... ok
test public::tests::public_download_counts_same_grant_and_releases_lock ... ok
test public::tests::password_aggregate_limits_are_atomic ... ok
test public::tests::verified_ip_uses_only_the_server_header_and_handles_non_text ... ok
test shares::overlay_tests::files_set_hidden_overlay_mutation ... ok
test public::tests::public_download_revalidates_after_authorization_before_lock ... ok
test tests::app_password_home_prefix_is_component_bounded_and_rejects_cursed_paths ... ok
test public::tests::public_preview_revalidates_after_authorization_before_lock ... ok
test tests::agent_turn_tags_its_write_without_claiming_a_prior_human_write ... ok
test tests::attachment_download_is_guarded_and_names_are_rfc_8187 ... ok
test tests::busy_upload_names_its_stage_in_a_private_safe_log ... ok
test tests::browse_trash_restore_and_range ... ok
test public::tests::current_grant_and_counter_refuse_stale_authority ... ok
test tests::canvas_upload_validation_survives_resume_and_fails_closed ... ok
test tests::change_adoption_preserves_server_replacement_and_adopts_new_item ... ok
test tests::change_feed_and_sse_cursors_do_not_reveal_other_users_activity ... ok
test tests::change_feed_tracks_move_and_trash_and_expires_old_cursor ... ok
test tests::concurrent_upload_movie_detection_uses_bounded_lane ... ok
test tests::competing_replacements_return_precondition_failed ... ok
test tests::copied_folder_indexes_each_new_item_and_hash ... ok
test tests::bulk_write_sidecar_candidates_keep_ambiguity_rules ... ok
test tests::copy_into_self_or_descendant_returns_conflict_without_new_entries ... ok
test tests::cursor_migration_preserves_retained_positions_and_floors ... ok
test tests::data_scope_stays_inside_its_home_and_current_shares ... ok
test tests::dev_files_schema_upgrades_through_share_log_and_sidecar_migrations ... ok
test tests::concurrent_upload_rename_and_listing_keep_index_and_bytes_aligned ... ok
test tests::empty_trash_recovery_forgets_deleted_item_and_grants ... ok
test tests::entries_encode_optional_creation_time ... ok
test tests::empty_trash_requires_account_before_any_mutation ... ok
test tests::etag_survives_restart_and_changes_with_replaced_content ... ok
test tests::copy_racing_trash_never_publishes_partial_bytes ... ok
test tests::exact_address_shares_do_not_disclose_account_existence ... ok
test tests::failed_upload_change_event_keeps_installed_attachment_retryable ... ok
test tests::failed_finalizations_release_their_slots_at_once ... ok
test tests::filename_search_filters_current_shares ... ok
test tests::file_drop_rechecks_sidecar_at_final_install ... ok
test tests::concurrent_uploads_keep_their_intents_until_patch_finishes ... ok
test tests::files_index_detects_extensionless_heic_and_misleading_jpeg_name ... ok
test tests::files_note_rename_and_move_rewrite_referrers_and_note_index ... ok
test tests::files_pins_json_rejections_use_the_api_error_envelope ... ok
test tests::files_pins_reject_invalid_lists_and_oversized_payloads ... ok
test tests::files_pins_are_private_versioned_and_preserve_other_user_settings ... ok
test tests::files_preferences_json_rejections_use_files_error_envelope ... ok
test tests::files_visibility_preferences_default_off_and_preserve_other_settings ... ok
test tests::folder_entries_use_stable_keyset_pages_and_return_total ... ok
test tests::folder_listing_sorts_all_modes_in_both_directions_and_uses_nfc ... ok
test tests::group_grants_resolve_current_members_and_revoke_live ... ok
test tests::grant_changes_commit_on_full_and_ordinary_work_on_normal ... ok
test tests::folder_reconcile_generation_coalesces_index_write_bursts ... ok
test tests::hidden_entries::internal_share_recipients_do_not_see_hidden_entries ... ok
test tests::hidden_entries::public_bytes_of_hidden_entries_are_refused_by_path ... ok
test tests::hidden_entries::public_file_drop_refuses_hidden_targets ... ok
test tests::hidden_entries::public_hidden_entries_cannot_be_reached_by_item_id ... ok
test tests::hidden_entries::public_links_on_hidden_items_are_refused_and_dead ... ok
test tests::hidden_entries::public_listing_omits_hidden_entries ... ok
test tests::index_record_keeps_an_unchanged_row_without_new_feed_event ... ok
test tests::idle_upload_frees_its_slot_after_the_idle_timeout ... ok
test tests::index_record_retries_a_file_replaced_during_the_hash ... ok
test tests::index_record_of_a_file_that_keeps_changing_is_a_conflict ... ok
test tests::inline_svg_stays_an_image_for_img_tags_only ... ok
test tests::inline_download_never_serves_active_content_as_a_page ... ok
test tests::internal_temp_repair_cleans_derived_rows_and_compensates_published_paths ... ok
test tests::invite_links_are_owner_bound_and_policy_gated ... ok
test tests::http_index_write_checkout_timeout_returns_retryable_service_unavailable ... ok
test tests::item_lookup_recent_people_and_trash_origin ... ok
test tests::journal_deadline::journal_deadline_hands_off_applied_note_without_replay ... ok
test tests::journal_deadline::journal_deadline_releases_pre_write_guards ... ok
test tests::journal_retry::lost_success_receipt_preserves_later_log_and_one_note ... ok
test tests::journal_retry::retarget_metadata_is_refused_before_and_after_completion ... ok
test tests::journal_retry::startup_recovery_precedes_log_and_retains_original_retry ... ok
test tests::journal_upload_busy_after_install_retries_same_identity ... ok
test tests::journal_upload_busy_before_install_preserves_source ... ok
test tests::journal_upload_cancelled_request_keeps_publication_guards ... ok
test tests::journal_upload_excludes_notes_writer_until_publication ... ok
test tests::journal_upload_stale_revision_never_installs ... ok
test tests::known_item_ids_for_paths_reads_only_existing_indexed_items ... ok
test tests::journal_upload_retry_keeps_later_note_edits ... ok
test tests::large_version_download_reassembles_from_byte_ranges ... ok
test tests::legacy_background_migration_keeps_item_ids_and_is_idempotent ... ok
test tests::long_folder_signed_cursor_continues_the_api_page ... ok
test tests::listing_shared_folder_does_not_reconcile_the_owner_index ... ok
test tests::mime_rebuild_resumes_after_saved_keyset_page ... ok
test tests::move_recovery_retains_grant_on_the_same_item ... ok
test tests::new_sse_stream_skips_old_events_but_wakes_for_new_changes ... ok
test tests::file_state_machine_matches_http_after_restarts ... ok
test tests::one_user_cannot_open_unbounded_event_streams ... ok
test tests::notes_sidebar_filter_hides_daily_notes_and_binds_its_cursor_scope ... ok
test tests::note_share_access_tracks_level_revoke_and_item_identity ... ok
test tests::opened_download_keeps_exact_bytes_across_revoke_and_trash ... ok
test tests::opened_range_and_etag_refer_to_same_revision ... ok
test tests::oversized_json_returns_payload_too_large ... ok
test tests::people_contacts_mode_limits_identity_discovery ... ok
test tests::owner_listing_filters_marker_hidden_items_before_counting_and_paging ... ok
test tests::profile_stage_reports_stable_writer_origins ... ok
test tests::owner_listing_hides_dot_entries_by_default_and_accepts_show_hidden_flag ... ok
test tests::plain_canvas_write_callback_preserves_item_identity ... ok
test tests::public_download_is_guarded ... ok
test tests::public_download_names_survive_unicode_and_control_characters ... ok
test tests::public_canvas_projection_and_revoke ... ok
test tests::public_edit_is_denied_and_legacy_links_keep_view ... ok
test tests::public_file_drop_never_creates_metadata_or_sidecars_for_existing_files ... ok
test tests::public_hidden_names_are_addressed_by_item_id_only ... ok
test tests::public_link_options_that_do_not_fit_are_refused ... ok
test tests::public_note_preview_redacts_private_references ... ok
test tests::public_link_preview_never_names_a_protected_or_hidden_link ... ok
test tests::public_password_attempts_are_reserved_before_parallel_checks ... ok
test tests::public_password_rejection_does_not_wait_for_data_mutation_lock ... ok
test tests::public_view_only_never_serves_original_bytes_and_previews_never_count ... ok
test tests::range_header_rejects_duplicates_and_opaque_values ... ok
test tests::real_media_fixtures_generate_webp_thumbnails_with_sandboxed_decoders ... ok
test tests::public_password_expiry_download_limit_and_upload_only ... ok
test tests::reconciliation_drops_sidecar_relations_for_links_and_directories ... ok
test tests::rejected_move_does_not_poison_next_index_intent ... ok
test tests::reconciliation_rebinds_a_sidecar_after_a_webdav_parent_only_rename ... ok
test tests::rename_same_name_is_noop_and_long_name_is_bad_request ... ok
test tests::rename_unindexed_folder_adopts_item_identity ... ok
test tests::rename_keeps_log_attachment_target_and_item_identity ... ok
test tests::public_password_is_checked_once_then_parallel_requests_pass ... ok
test tests::repeatedly_recreated_notes_folder_can_be_renamed ... ok
test tests::retrying_an_installed_upload_completes_its_index_intent ... ok
test tests::server_watcher_state_wakes_files_route_subscribers ... ok
test tests::reused_directory_inode_does_not_preserve_parent_identity ... ok
test tests::share_creation_rejects_a_nonexistent_recipient_before_indexing ... ok
test tests::shared_canvas_plain_json_identity ... ok
test tests::shared_current_file_does_not_expose_owner_versions ... ok
test tests::shared_imported_note_identity_opens_and_revokes ... ok
test tests::shared_physical_folder_entries_use_index_keyset_pages ... ok
test tests::shared_notes_follow_recursive_grants_and_revoke ... ok
test tests::shared_tree_checks_grants_after_revoke ... ok
test tests::shared_zip_stops_when_grant_no_longer_covers_the_path ... ok
test tests::sidecar_files_travel_with_the_parent_through_move_copy_trash_and_restore ... ok
test tests::slow_upload_keeps_its_slot_while_bytes_arrive ... ok
test tests::sqlite_snapshot_with_later_data_reconciles_and_keeps_grants ... ok
test tests::sse_replays_persisted_changes_after_restart ... ok
test tests::stale_folder_listing_serves_index_then_reconciles_and_publishes ... ok
test tests::stale_share_and_public_link_do_not_reach_replacement_at_same_path ... ok
test tests::startup_completion_precedes_blocked_mime_backfill ... ok
test tests::sqlite_busy_index_update_retries_when_the_writer_lock_clears ... ok
test tests::startup_mime_rebuild_updates_legacy_projection_once ... ok
test tests::startup_reconcile_indexes_existing_home_content ... ok
test tests::storm_cleanup_does_not_poll_consumed_worker_handles_twice ... ok
test tests::thumbnail_is_guarded ... ok
test tests::thumbnail_route_selects_the_requested_document_render_kind ... ok
test tests::trash_detaches_log_links_and_restore_keeps_concurrent_entry_edits ... ok
test tests::trash_recovery_and_restore_keep_item_identity_and_grants ... ok
test tests::tus_background_uploads_cap_size_and_require_a_decodable_image ... ok
test tests::tus_keeps_install_intent_until_the_index_matches_the_installed_file ... ok
test tests::tus_preserves_a_valid_source_mtime_on_the_installed_file ... ok
test tests::tus_quota_reservations_are_isolated_between_two_users ... ok
test tests::tus_rejects_impossible_declared_length_before_staging ... ok
test tests::tus_reports_conflict_when_another_upload_replaces_the_destination ... ok
test tests::tus_reserves_declared_bytes_and_reports_staging ... ok
test tests::tus_resumes_after_router_restart ... ok
test tests::tus_upload_rejects_a_replaced_parent_directory ... ok
test tests::sqlite_busy_index_updates_return_retryable_service_unavailable ... ok
test tests::tus_upload_survives_parent_reindex_after_child_write ... ok
test tests::startup_reconcile_keeps_batch_ids_and_change_feed_stable ... ok
test tests::tus_upload_survives_unindexed_sibling_write_in_parent ... ok
test tests::upload_only_app_password_lists_names_inside_its_home_prefix ... ok
test tests::upload_follows_parent_item_after_rename ... ok
test tests::upload_install_recovery_preserves_replaced_item_identity ... ok
test tests::user_deletion_revokes_grants_before_idempotent_batched_cleanup ... ok
test tests::version_download_is_guarded ... ok
test tests::version_reads_preserve_historical_guest_attribution ... ok
test tests::version_restore_returns_conditional_undo_identity_and_preserves_later_bytes ... ok
test tests::version_restore_returns_exact_previous_bytes ... ok
test tests::voice_memo_migration_rewrites_links_and_is_idempotent ... ok
test tests::voice_memos_review::review_100k_background_batch_profile ... ignored, explicit 100k-file performance profile; run through bench/voice-memo-batches-618.sh
test tests::voice_memo_pending_move_recovery_rewrites_links ... ok
test tests::voice_memo_twin_merge_keeps_newest_and_conflict_copy ... ok
test tests::voice_memos_review::review_empty_directory_merges_are_bounded ... ok
test tests::internal_temp_paths_never_enter_index_during_atomic_write_reconcile_storm has been running for over 60 seconds
test tests::voice_memos_review::review_background_batches_resume_and_keep_job_visible ... ok
test tests::voice_memos_review::review_large_home_repair_time_and_io ... ignored, local 100k-file time and IO profile; run alone with --ignored --nocapture
test tests::voice_memos_review::review_folder_scan_retains_landed_move_until_note_writer_recovers ... ok
test tests::voice_memos_review::review_legacy_primary_is_journaled_before_first_batch ... ok
test tests::voice_memos_review::review_partial_note_rewrite_replays_after_reopen ... ok
test tests::voice_memos_review::review_older_source_keeps_file_id_and_removes_legacy_folder ... ok
test tests::voice_memos_review::review_recording_during_queued_twin_repair ... ok
test tests::voice_memos_review::review_conflict_note_writes_replay_without_identity_redirects ... ok
test tests::voice_memos_review::review_repair_rewrites_a_note_inside_the_moved_folder ... ok
test tests::voice_memos_review::review_twin_merge_preserves_both_recording_links ... ok
test tests::voice_memos_review::review_two_legacy_twins_merge_without_initial_canonical ... ok
test tests::voice_memos_review::review_same_process_retry_retains_recording_identity_and_grants ... ok
test tests::voice_memos_review::review_unicode_folded_twins_keep_conflict_link_identities ... ok
test tests::voice_memos_review::review_paused_upload_survives_voice_memo_directory_merge ... ok
test tests::web_case_only_voice_memo_rename_keeps_one_indexed_identity ... ok
test tests::webdav_case_only_voice_memo_move_keeps_one_indexed_identity ... ok
test thumbnails::tests::cache_kind_matches_the_supported_document_selector ... ok
test tests::zip_continuation_rejects_changed_sources ... ok
test thumbnails::tests::header_probes_retain_source_io_errors ... ok
test thumbnails::tests::incomplete_frontmatter_is_not_rendered_in_text_card ... ok
test thumbnails::tests::indexed_thumbnail_capability_matches_worker_formats ... ok
test thumbnails::tests::known_text_documents_use_cards_and_other_text_skips_media_jobs ... ok
test tests::zip_folder_windows_reassemble_and_reject_membership_changes ... ok
test thumbnails::tests::long_text_tokens_keep_their_position_in_the_excerpt ... ok
test thumbnails::tests::launcher_outage_retries_without_poisoning_the_hash ... ok
test thumbnails::tests::oversized_text_skips_the_decoder_without_poisoning_a_stale_index_hash ... ok
test thumbnails::tests::renderer_outage_returns_to_retry_without_a_failure_marker ... ok
test thumbnails::tests::text_card_markdown_strips_yaml_frontmatter ... ok
test thumbnails::tests::text_thumbnail_input_is_an_escaped_markdown_excerpt ... ok
test thumbnails::tests::unresolved_mime_defers_markers_for_recognized_media_signatures ... ok
test thumbnails::tests::same_content_keeps_pdf_and_text_card_thumbnail_entries_separate ... ok
test uploads::tests::upload_locks_serialize_one_upload_without_blocking_another ... ok
test uploads::tests::voice_memo_destination_rejects_unmerged_case_twins ... ok
test uploads::tests::voice_memo_destination_uses_existing_case_insensitive_folder ... ok
test user_bytes::tests::active_types_are_text_inline_and_kept_for_attachments ... ok
test user_bytes::tests::content_disposition_drops_bidi_and_control_characters ... ok
test user_bytes::tests::inline_is_requested_by_query_or_header_only ... ok
test user_bytes::tests::neutralized_representations_have_their_own_tag ... ok
test user_bytes::tests::svg_is_an_image_only_for_image_loads ... ok
test visible_markdown_path_tests::accepts_canvas_for_the_live_note_save_callback_only ... ok
test visible_markdown_path_tests::accepts_visible_markdown_anywhere_in_home ... ok
test visible_markdown_path_tests::rejects_hidden_non_markdown_and_escaping_paths ... ok
test uploads::admin_repair_upload_mutation ... ok
test tests::internal_temp_paths_never_enter_index_during_atomic_write_reconcile_storm ... ok
test thumbnails::tests::document_job_timeout_marks_failure_without_cache_temporary_files has been running for over 60 seconds
test thumbnails::tests::document_job_timeout_marks_failure_without_cache_temporary_files ... ok

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

     Running tests/jdrev2.rs (/home/kayg/build/targets/fs1575/debug/deps/jdrev2-022929d46a49ca3f)

running 9 tests
test cancel_recovery_restart_child ... ok

running 1 test
test cancel_recovery_restart_child ... ok

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


running 1 test
test cancel_recovery_restart_child ... ok

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


running 1 test
test cancel_recovery_restart_child ... ok

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

test cancel_keeps_ambiguous_proof_until_admin_repair ... ok
test ambiguous_recovery_serves_other_items_without_guessing ... ok

running 1 test
test cancel_recovery_restart_child ... ok

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

test cancel_keeps_applied_proof_when_source_is_missing ... ok
test legacy_receipts_compact_without_losing_retry_proof ... ok
test completion_never_expires_or_replays_source ... ok
test receipt_growth_after_a_year_is_bounded_to_the_retry_window ... ok
test pre_rename_timeout_then_log_edit_recovers_safely ... ok
test receipts_are_fixed_size_and_bounded_by_client_retention ... ok

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

   Doc-tests calternal_fs

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_files

running 0 tests

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

Cleanup (cargo clean), verbatim:

     Removed 6774 files, 5.5GiB total

The working tree is clean. No web build output remains. Review artifacts stay untracked in artifacts/. The issue remains open.

Completed #1575 on job/fs1575. Head SHA: aaaec5660e37c6c6149851e51867b8ec2f3cd996 Base and fetched origin/dev: 0c712b98c164b6734d54f63485012bd1a11005b4. The final job instruction prohibits merges. Fetch found no drift, so no integration was needed. No push, merge or deploy was done. Built: - Root::copy compares device and inode from opened source and target handles in the verified Blob store hard-link overwrite branch. - If both names use the same inode, the existing journal Remove step removes the staged name. The Version step stays first. Parent sync and durable journal removal keep the existing completion order. - The target repair check stays in place when Remove replaces Rename. A protected upload target remains refused. - Tests count reserved temporary names after repeated cross-Home overwrites, check exact bytes after repeated recovery, check Version contents and repair refusal, and SIGKILL a child at eight boundaries. Two boundaries exercise actual Root::copy journal fault points. The other boundaries cover staging, intent publication, Version publication, unlink before parent sync, parent sync and journal completion. Files: crates/calternal-fs/src/file_ops.rs only. Module and function comments were read again. No dependencies, lockfiles, API contracts or contracts/perf/ratchet.json changes. Regression evidence: the new success test against the original implementation failed with two temporary names (`left: 2`, `right: 0`). The fixed implementation passes. Decisions: - Reuse the existing Remove journal operation. No new journal encoding or recovery operation is needed. - Identical overwrites still create Versions. This keeps the existing overwrite contract. - No undecided product behavior was added. Expected cost: the hard-link overwrite branch adds one destination openat2 and one fstat. Source hashing and Version work stay the same. No extra directory walk or content read is added. This is a cleanup fix, not a performance job; the current verification policy does not call for a performance run. Known gaps: SIGKILL tests cover process interruption. They do not simulate power loss or a filesystem that fails to honor sync. Existing ignored performance/server tests stay ignored. The two calternal-fs ignored tests are child workers invoked by their parent tests. There are no UI changes or UX gaps in this job. Gates: all exited 0. CARGO_BUILD_JOBS=4, CARGO_PROFILE_DEV_DEBUG=line-tables-only, CARGO_INCREMENTAL=0 and TMPDIR in this worktree were set. The preset CARGO_TARGET_DIR was kept. Full gate output follows verbatim. cargo fmt --check ```text ``` cargo clippy -p calternal-fs --all-targets -- -D warnings ```text Checking libc v0.2.189 Checking cfg-if v1.0.5 Checking once_cell v1.21.4 Checking bitflags v2.13.2 Checking linux-raw-sys v0.12.1 Checking num-traits v0.2.19 Checking zerocopy v0.8.58 Checking rustix v1.1.5 Checking pin-project-lite v0.2.17 Checking getrandom v0.3.4 Checking getrandom v0.4.3 Checking fastrand v2.5.0 Checking rand_core v0.9.5 Checking wait-timeout v0.2.1 Checking tracing-core v0.1.36 Checking cpufeatures v0.3.1 Checking quick-error v1.2.3 Checking fnv v1.0.7 Checking arrayvec v0.7.8 Checking bit-vec v0.8.0 Checking bytes v1.12.1 Checking iana-time-zone v0.1.65 Checking tempfile v3.27.0 Checking tinyvec v1.13.3 Checking constant_time_eq v0.4.2 Checking tokio v1.53.1 Checking blake3 v1.8.7 Checking unicode-normalization v0.1.25 Checking rusty-fork v0.3.1 Checking chrono v0.4.45 Checking bit-set v0.8.0 Checking tracing v0.1.44 Checking thiserror v2.0.21 Checking rand_xorshift v0.4.0 Checking rand v0.9.5 Checking ppv-lite86 v0.2.21 Checking unicode-joining-type v1.0.0 Checking rand_chacha v0.9.0 Checking calternal-path v0.0.1 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-path) Checking percent-encoding v2.3.2 Checking regex-syntax v0.8.11 Checking unarray v0.1.4 Checking unicode-properties v0.1.4 Checking unicode-casefold v0.2.0 Checking calternal-fs v0.1.0 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-fs) Checking proptest v1.11.0 Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.62s ``` cargo test -p calternal-fs -p calternal-plugin-files -- --test-threads=4 ```text Compiling syn v3.0.6 Compiling syn v2.0.119 Compiling jobserver v0.1.35 Compiling serde v1.0.229 Compiling memchr v2.8.3 Compiling cc v1.4.7 Compiling serde_core v1.0.229 Compiling version_check v0.9.5 Compiling pkg-config v0.3.34 Compiling getrandom v0.2.17 Compiling log v0.4.34 Compiling libm v0.2.16 Compiling zeroize v1.9.0 Compiling num-traits v0.2.19 Compiling itoa v1.0.18 Compiling typenum v1.20.1 Compiling equivalent v1.0.2 Compiling rand_core v0.6.4 Compiling serde_derive v1.0.229 Compiling synstructure v0.14.0 Compiling displaydoc v0.2.7 Compiling zerofrom-derive v0.1.8 Compiling yoke-derive v0.8.4 Compiling zerovec-derive v0.11.6 Compiling zerofrom v0.1.8 Compiling hashbrown v0.17.1 Compiling tracing-attributes v0.1.31 Compiling subtle v2.6.1 Compiling writeable v0.6.4 Compiling litemap v0.8.3 Compiling futures-core v0.3.34 Compiling socket2 v0.6.5 Compiling smallvec v1.16.1 Compiling utf8_iter v1.0.4 Compiling tracing-core v0.1.36 Compiling icu_normalizer_data v2.3.0 Compiling icu_properties_data v2.3.0 Compiling generic-array v0.14.9 Compiling scopeguard v1.2.0 Compiling mio v1.2.3 Compiling tracing v0.1.44 Compiling errno v0.3.14 Compiling stable_deref_trait v1.2.1 Compiling const-oid v0.9.6 Compiling signal-hook-registry v1.4.8 Compiling tokio-macros v2.7.2 Compiling thiserror-impl v2.0.21 Compiling lock_api v0.4.14 Compiling tokio v1.53.1 Compiling form_urlencoded v1.2.2 Compiling cpufeatures v0.2.17 Compiling base64 v0.22.1 Compiling crypto-common v0.1.6 Compiling thiserror v2.0.21 Compiling block-buffer v0.10.4 Compiling yoke v0.8.3 Compiling zerocopy v0.8.58 Compiling digest v0.10.7 Compiling zerocopy-derive v0.8.58 Compiling getrandom v0.4.3 Compiling zmij v1.0.23 Compiling zerovec v0.11.8 Compiling serde_json v1.0.151 Compiling rand_core v0.10.1 Compiling chrono v0.4.45 Compiling futures-io v0.3.34 Compiling futures-task v0.3.34 Compiling siphasher v1.0.3 Compiling tinystr v0.8.4 Compiling vcpkg v0.2.15 Compiling futures-sink v0.3.34 Compiling icu_locale_core v2.3.0 Compiling potential_utf v0.1.6 Compiling zerotrie v0.2.5 Compiling indexmap v2.14.2 Compiling parking_lot_core v0.9.12 Compiling icu_provider v2.3.1 Compiling ppv-lite86 v0.2.21 Compiling icu_collections v2.3.0 Compiling ring v0.17.14 Compiling rand_chacha v0.3.1 Compiling cmake v0.1.58 Compiling rand v0.8.8 Compiling minimal-lexical v0.2.1 Compiling slab v0.4.12 Compiling icu_normalizer v2.3.0 Compiling icu_properties v2.3.0 Compiling fs_extra v1.3.0 Compiling idna_adapter v1.2.2 Compiling spin v0.9.9 Compiling futures-macro v0.3.34 Compiling http v1.5.0 Compiling untrusted v0.9.0 Compiling futures-util v0.3.34 Compiling idna v1.1.0 Compiling phf_shared v0.11.3 Compiling url v2.5.8 Compiling blake3 v1.8.7 Compiling dunce v1.0.5 Compiling crc-catalog v2.5.0 Compiling crc32fast v1.5.2 Compiling crc v3.4.0 Compiling aws-lc-sys v0.45.0 Compiling phf_generator v0.11.3 Compiling rustix v1.1.5 Compiling base64ct v1.8.3 Compiling adler2 v2.0.1 Compiling either v1.18.0 Compiling http-body v1.1.0 Compiling futures-channel v0.3.34 Compiling num-conv v0.2.2 Compiling linux-raw-sys v0.12.1 Compiling time-core v0.1.9 Compiling powerfmt v0.2.0 Compiling deranged v0.5.8 Compiling aws-lc-rs v1.18.1 Compiling siphasher v0.3.11 Compiling parking_lot v0.12.5 Compiling pem-rfc7468 v0.7.0 Compiling rustls-pki-types v1.15.1 Compiling tower-service v0.3.3 Compiling crossbeam-utils v0.8.23 Compiling httpdate v1.0.3 Compiling httparse v1.10.1 Compiling der v0.7.10 Compiling nom v7.1.3 Compiling tokio-util v0.7.19 Compiling hybrid-array v0.4.15 Compiling allocator-api2 v0.2.21 Compiling try-lock v0.2.5 Compiling atomic-waker v1.1.2 Compiling foldhash v0.2.0 Compiling want v0.3.1 Compiling h2 v0.4.19 Compiling hashbrown v0.16.1 Compiling spki v0.7.3 Compiling phf_shared v0.10.0 Compiling sha2 v0.10.9 Compiling sync_wrapper v1.0.2 Compiling zeroize_derive v1.5.0 Compiling tower-layer v0.3.3 Compiling rustls v0.23.45 Compiling ryu v1.0.23 Compiling ipnet v2.12.2 Compiling thiserror v1.0.69 Compiling parking v2.2.1 Compiling event-listener v5.4.2 Compiling crossbeam-queue v0.3.14 Compiling phf_generator v0.10.0 Compiling hashlink v0.11.1 Compiling pkcs8 v0.10.2 Compiling rand_chacha v0.9.0 Compiling http-body-util v0.1.5 Compiling phf_macros v0.11.3 Compiling thiserror-impl v1.0.69 Compiling hyper v1.11.1 Compiling rustversion v1.0.23 Compiling byteorder v1.5.0 Compiling glob v0.3.4 Compiling hyper-util v0.1.20 Compiling phf v0.11.3 Compiling rand v0.9.5 Compiling phf_codegen v0.10.0 Compiling calternal-fs v0.1.0 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-fs) Compiling tower v0.5.3 Compiling crypto-common v0.2.2 Compiling libsqlite3-sys v0.37.0 Compiling phf_shared v0.12.1 Compiling zstd-sys v2.1.0+zstd.1.5.7 Compiling unicase v2.9.0 Compiling mime v0.3.17 Compiling simd-adler32 v0.3.10 Compiling chrono-tz v0.10.4 Compiling strsim v0.11.1 Compiling heck v0.5.0 Compiling phf v0.12.1 Compiling tokio-stream v0.1.19 Compiling futures-intrusive v0.5.0 Compiling clang-sys v1.9.1 Compiling openssl-sys v0.9.117 Compiling uuid v1.26.1 Compiling num-integer v0.1.47 Compiling bzip2-sys v0.1.13+1.0.8 Compiling same-file v1.0.6 Compiling prettyplease v0.2.37 Compiling new_debug_unreachable v1.0.6 Compiling hex v0.4.3 Compiling walkdir v2.5.0 Compiling sqlx-core v0.9.0 Compiling atoi v2.0.0 Compiling futures-executor v0.3.34 Compiling serde_urlencoded v0.7.1 Compiling flume v0.12.0 Compiling inout v0.2.2 Compiling webpki-roots v1.0.9 Compiling time-macros v0.2.32 Compiling lazy_static v1.5.0 Compiling hmac v0.12.1 Compiling lzma-sys v0.1.20 Compiling cmov v0.5.4 Compiling regex-syntax v0.8.11 Compiling zstd-safe v7.3.0 Compiling syn v1.0.109 Compiling tempfile v3.27.0 Compiling ctutils v0.4.2 Compiling regex-automata v0.4.18 Compiling time v0.3.55 Compiling sqlx-sqlite v0.9.0 Compiling miniz_oxide v0.9.1 Compiling tower-http v0.6.11 Compiling block-buffer v0.12.1 Compiling string_cache_codegen v0.5.4 Compiling inout v0.1.4 Compiling signature v2.2.0 Compiling ff v0.13.1 Compiling serde_path_to_error v0.1.20 Compiling synstructure v0.13.2 Compiling ahash v0.8.12 Compiling libloading v0.8.9 Compiling winnow v1.0.4 Compiling dotenvy v0.15.7 Compiling mac v0.1.1 Compiling precomputed-hash v0.1.1 Compiling base16ct v0.2.0 Compiling getrandom v0.3.4 Compiling base64 v0.21.7 Compiling bindgen v0.72.1 Compiling rusty-fork v0.3.1 Compiling sec1 v0.7.3 Compiling toml_parser v1.1.3+spec-1.1.0 Compiling futf v0.1.5 Compiling sqlx-macros-core v0.9.0 Compiling asn1-rs-derive v0.5.1 Compiling cexpr v0.6.0 Compiling group v0.13.0 Compiling cipher v0.4.4 Compiling markup5ever v0.11.0 Compiling phf v0.10.1 Compiling cipher v0.5.2 Compiling flate2 v1.1.10 Compiling regex v1.13.1 Compiling universal-hash v0.6.1 Compiling hkdf v0.12.4 Compiling rustls-webpki v0.103.15 Compiling fdeflate v0.3.7 Compiling miniz_oxide v0.8.9 Compiling rusticata-macros v4.1.0 Compiling itertools v0.10.5 Compiling crypto-bigint v0.5.5 Compiling asn1-rs-impl v0.2.0 Compiling aho-corasick v1.1.5 Compiling quick-xml v0.42.0 Compiling dtoa v1.0.11 Compiling utf-8 v0.7.6 Compiling pxfm v0.1.30 Compiling quick-error v2.0.1 Compiling rustc-hash v2.1.3 Compiling byteorder-lite v0.1.0 Compiling semver v1.0.28 Compiling pulldown-cmark v0.13.4 Compiling zune-core v0.5.3 Compiling color_quant v1.1.0 Compiling ident_case v1.0.1 Compiling weezl v0.1.12 Compiling bumpalo v3.20.3 Compiling zip v2.4.2 Compiling toml_datetime v1.1.1+spec-1.1.0 Compiling shlex v1.3.0 Compiling inotify-sys v0.1.8 Compiling toml_edit v0.25.15+spec-1.1.0 Compiling gif v0.14.2 Compiling moxcms v0.8.1 Compiling tokio-rustls v0.26.6 Compiling zopfli v0.8.3 Compiling hyper-rustls v0.27.10 Compiling darling_core v0.24.1 Compiling zune-jpeg v0.5.15 Compiling rustc_version v0.4.1 Compiling image-webp v0.2.4 Compiling proptest v1.11.0 Compiling tendril v0.4.3 Compiling dtoa-short v0.3.5 Compiling elliptic-curve v0.13.8 Compiling asn1-rs v0.6.2 Compiling html5ever v0.26.0 Compiling utoipa-gen v6.0.1 Compiling pbkdf2 v0.12.2 Compiling png v0.18.1 Compiling webpki-roots v0.26.11 Compiling poly1305 v0.9.1 Compiling zstd v0.13.3 Compiling chacha20 v0.10.2 Compiling aes v0.8.4 Compiling xattr v1.6.1 Compiling sqlx-macros v0.9.0 Compiling xz2 v0.1.7 Compiling string_cache v0.8.9 Compiling bzip2 v0.5.2 Compiling aead v0.6.1 Compiling axum-core v0.5.6 Compiling mime_guess v2.0.5 Compiling selectors v0.25.0 Compiling find_cuda_helper v0.2.0 Compiling lzma-rs v0.3.0 Compiling sha1 v0.10.7 Compiling axum-macros v0.5.1 Compiling cssparser-macros v0.6.1 Compiling filetime v0.2.29 Compiling openssl v0.10.81 Compiling base64 v0.23.1 Compiling winnow v0.7.15 Compiling foreign-types-shared v0.1.1 Compiling deflate64 v0.1.12 Compiling matchit v0.8.4 Compiling pulldown-cmark-escape v0.11.0 Compiling oid-registry v0.7.1 Compiling linkme-impl v0.3.37 Compiling openssl-probe v0.2.1 Compiling pastey v0.1.1 Compiling bytemuck v1.25.2 Compiling unsafe-libyaml v0.2.11 Compiling constant_time_eq v0.3.1 Compiling utf8parse v0.2.2 Compiling anstyle-parse v1.0.0 Compiling image v0.25.10 Compiling serde_yaml v0.9.34+deprecated Compiling cron v0.17.0 Compiling base64urlsafedata v0.5.5 Compiling rustls-native-certs v0.8.4 Compiling axum v0.8.9 Compiling foreign-types v0.3.2 Compiling cssparser v0.31.2 Compiling tar v0.4.46 Compiling ureq v2.12.1 Compiling llama-cpp-sys-2 v0.1.158 Compiling chacha20poly1305 v0.11.0 Compiling sqlx v0.9.0 Compiling utoipa v6.0.0 Compiling darling_macro v0.24.1 Compiling curve25519-dalek v4.1.3 Compiling proc-macro-crate v3.5.0 Compiling bzip2 v0.4.4 Compiling rfc6979 v0.4.0 Compiling num-bigint v0.4.8 Compiling fxhash v0.2.1 Compiling hashify v0.2.9 Compiling servo_arc v0.3.0 Compiling derive_more v0.99.20 Compiling openssl-macros v0.1.1 Compiling webauthn-attestation-ca v0.5.5 Compiling anstyle-query v1.1.5 Compiling unicode-width v0.2.2 Compiling colorchoice v1.0.5 Compiling dyn-clone v1.0.20 Compiling xml v1.4.0 Compiling num-bigint-dig v0.8.6 Compiling is_terminal_polyfill v1.70.2 Compiling linkme v0.3.37 Compiling anstyle v1.0.14 Compiling getopts v0.2.24 Compiling anstream v1.0.0 Compiling der-parser v9.0.0 Compiling mail-parser v0.11.9 Compiling ecdsa v0.16.9 Compiling sherpa-onnx-sys v1.13.8 (/home/kayg/Developer/calternal-wt/fs1575/vendor/sherpa-onnx-sys) Compiling num_enum_derive v0.7.6 Compiling inotify v0.11.5 Compiling darling v0.24.1 Compiling calternal-db v0.1.0 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-db) Compiling calternal-notes-core v0.1.0 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-notes-core) Compiling rustls-platform-verifier v0.7.0 Compiling primeorder v0.13.6 Compiling num-iter v0.1.46 Compiling encoding_rs v0.8.41 Compiling multiversion-macros v0.9.0 Compiling headers-core v0.3.0 Compiling xmp_toolkit v1.12.1 Compiling half v2.7.1 Compiling curve25519-dalek-derive v0.1.1 Compiling bounded-static-derive v0.8.0 Compiling notify-types v2.1.0 Compiling bounded-static v0.8.0 Compiling ego-tree v0.6.3 Compiling webauthn-rs-core v0.5.5 Compiling clap_lex v1.1.1 Compiling data-encoding v2.11.1 Compiling scraper v0.18.1 Compiling clap_builder v4.6.7 Compiling x509-parser v0.16.0 Compiling notify v8.2.0 Compiling imap-types v2.0.0-alpha.7 Compiling serde_cbor_2 v0.13.0 Compiling headers v0.4.2 Compiling multiversion v0.9.0 Compiling reqwest v0.13.5 Compiling serde_with_macros v3.23.0 Compiling num_enum v0.7.6 Compiling xmltree v0.12.0 Compiling xml-rs v1.0.0 Compiling calternal-api v0.0.1 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-api) Compiling webauthn-rs-proto v0.5.5 Compiling reqwest v0.12.28 Compiling ed25519 v2.2.3 Compiling clap_derive v4.6.7 Compiling pkcs1 v0.7.5 Compiling abnf-core v0.6.0 Compiling hex-conservative v0.2.3 Compiling ordered-float v2.10.1 Compiling derive-where v1.7.0 Compiling enumflags2_derive v0.7.12 Compiling llama-cpp-2 v0.1.157 Compiling mail-builder v1.0.0 Compiling htmlescape v0.3.1 Compiling core_detect v1.0.0 Compiling multiversion_no_op v1.0.0 Compiling simdutf8 v0.1.5 Compiling calcard v0.3.14 Compiling dav-server v0.11.0 Compiling enumflags2 v0.7.12 Compiling serde-value v0.7.0 Compiling bitcoin_hashes v0.14.101 Compiling imap-codec v2.0.0-alpha.9 Compiling oauth2 v5.0.0 Compiling rsa v0.9.10 Compiling clap v4.6.7 Compiling ed25519-dalek v2.2.0 Compiling calternal-plugin v0.0.1 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-plugin) Compiling serde_with v3.23.0 Compiling p384 v0.13.1 Compiling p256 v0.13.2 Compiling calternal-media v0.0.1 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-media) Compiling password-hash v0.5.0 Compiling blake2 v0.10.6 Compiling geo-types v0.7.20 Compiling serde_plain v1.0.2 Compiling similar v3.2.0 Compiling calternal-auth v0.1.0 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-auth) Compiling iso6709parse v0.1.2 Compiling openidconnect v4.0.1 Compiling calternal-imap v0.0.1 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-imap) Compiling argon2 v0.5.3 Compiling calternal-dav v0.0.1 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-dav) Compiling sherpa-onnx v1.13.8 Compiling webauthn-rs v0.5.5 Compiling readability-rust v0.1.0 Compiling bip39 v3.0.0 Compiling plist v1.10.1 Compiling calternal-location v0.0.1 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-location) Compiling async-trait v0.1.92 Compiling async-stream-impl v0.3.6 Compiling nom v8.0.0 Compiling html2md-rs v0.12.2 Compiling async-stream v0.3.6 Compiling matchers v0.2.0 Compiling sharded-slab v0.1.7 Compiling zip v5.1.1 Compiling tracing-log v0.2.0 Compiling nom-exif v3.8.0 Compiling thread_local v1.1.10 Compiling nu-ansi-term v0.50.3 Compiling tracing-subscriber v0.3.23 Compiling calternal-tags v0.0.1 (/home/kayg/Developer/calternal-wt/fs1575/crates/calternal-tags) Compiling calternal-plugin-notes v0.0.1 (/home/kayg/Developer/calternal-wt/fs1575/crates/plugins/notes) Compiling calternal-plugin-files v0.0.1 (/home/kayg/Developer/calternal-wt/fs1575/crates/plugins/files) Finished `test` profile [unoptimized + debuginfo] target(s) in 4m 40s Running unittests src/lib.rs (/home/kayg/build/targets/fs1575/debug/deps/calternal_fs-b617787a451c9130) running 112 tests test appledouble::tests::internal_delete_and_move_do_not_require_a_home ... ok test file_ops::tests::same_inode_copy_crash_worker ... ignored, worker for same_inode_copy_recovers_after_process_kill test appledouble::tests::unrepresentable_destination_keeps_content_and_metadata ... ok test appledouble::tests::copy_preserves_metadata_and_untagged_overwrite_clears_it ... ok test file_ops::tests::same_inode_copy_preserves_repair_protection ... ok test history::tests::history_append_respects_home_quota ... ok test file_ops::tests::same_inode_copy_overwrite_removes_temporary_before_success ... ok test history::tests::history_consumes_own_reservation_and_checks_fold_staging ... ok test appledouble::tests::folder_attributes_follow_the_complete_lifecycle ... ok test history::tests::history_rejects_symlinked_segments_and_keeps_lock_after_fold ... ok test history::tests::materialization_marker_survives_reopen_and_failed_quota_write ... ok test history::tests::history_segments_are_confined_and_exclusively_locked ... ok test hls::tests::bounded_work_removes_incomplete_output_and_releases_admission ... ok test hls::tests::failed_video_renditions_do_not_need_a_subprocess_retry ... ok test journal::recovery_tests::recovery_scans_long_paths_with_bounded_descriptors ... ok test hls::tests::complete_work_without_index_ownership_is_removed ... ok test path::tests::ascii_fast_path_matches_the_full_fold ... ok test path::tests::relative_path_split_keeps_single_component_paths_rooted ... ok test path::tests::a_case_or_unicode_twin_is_a_conflict_in_a_large_folder ... ok test quota::batch_write_tests::batch_reservation_enforces_home_quota_and_releases ... ok test quota::batch_write_tests::intent_allowance_covers_journals_and_staged_sources ... ok test quota::batch_write_tests::intent_allowance_exchanges_bytes_across_batches ... ok test quota::batch_write_tests::journal_allowance_refuses_policy_changes_and_other_homes ... ok test quota::batch_write_tests::interrupted_batch_commit_recovers_every_target ... ok test quota::derived_tests::derived_and_upload_work_share_one_protected_reserve ... ok test review_case_crash::review_case_rename_worker ... ignored, worker for review_sigkill_at_each_case_rename_boundary test hls::tests::progressive_work_replaces_metadata_and_cancellation_removes_it ... ok test root::split_device_tests::split_blob_storage_rejects_a_different_device ... ok running 1 test test sidecar::tests::filesystem_pairing_ignores_a_sidecar_symlink_and_directory ... ok test sidecar::tests::identifies_full_lightroom_and_apple_forms ... ok test sidecar::tests::keeps_orphans_directories_and_unsupported_case_independent ... ok test sidecar::tests::only_pairs_a_sidecar_with_one_candidate_parent ... ok test sidecar::tests::pairs_all_standard_forms_without_treating_sidecars_as_parents ... ok test sidecar::tests::sidecar_names_keep_the_original_standard_form ... ok running 1 test test sidecar::tests::sidecars_in_another_folder_do_not_pair ... ok test temp_file::tests::scratch_file_is_private_and_disappears_when_dropped ... ok running 1 test test review_case_crash::review_sigkill_at_each_case_rename_boundary ... ok test quota::batch_write_tests::singleton_replay_keeps_source_and_version_at_each_step ... ok test tests::cancelled_write_removes_prejournal_temporary ... ok test tests::appledouble_metadata_is_private_bounded_and_follows_file_lifecycle ... ok test tests::checked_delete_keeps_a_concurrent_user_edit ... ok test tests::clip_model_assets_stay_private_below_the_held_root ... ok test tests::case_only_move_recovers_from_each_temporary_name_state ... ok test tests::conditional_note_replace_recovers_after_child_process_exits_mid_journal ... ok test tests::conditional_note_replace_recovers_each_journal_step ... ok test tests::copy_and_chunk_faults_remove_prejournal_temporaries ... ok test tests::empty_home_directory_removal_is_confined_and_refuses_contents ... ok test file_ops::tests::same_inode_copy_recovers_after_process_kill ... ok test tests::gc_waits_for_dedup_copy_after_source_unlink ... ok test tests::gc_waits_for_in_flight_blob_link_across_roots ... ok test tests::hls_cache_access_is_confined_to_valid_hashes_profiles_and_outputs ... ok test tests::photos_clip_index_directory_is_private_and_handle_relative ... ok test tests::recovery_discards_uncommitted_intent_file ... ok test tests::a_failure_after_the_rename_is_never_reported_as_a_lost_race ... ok test tests::recovery_preserves_active_prejournal_temporary ... ok test tests::recovery_removes_abandoned_home_and_upload_temporaries ... ok test tests::enospc_and_eio_leave_original_intact_at_write_upload_and_version_steps ... ok test tests::recovery_replaces_poisoned_blob_at_each_step ... ok test tests::recovery_streams_past_the_previous_entry_cutoff ... ok test tests::relative_paths_reject_ambiguous_components ... ok test tests::search_index_directory_is_opened_below_system_directory ... ok test tests::search_index_staging_swap_keeps_the_active_generation_intact ... ok test tests::search_index_startup_gate_serializes_starts ... ok test tests::search_index_startup_recovers_only_unlocked_writer_lock ... ok test tests::semantic_model_assets_stay_private_and_use_atomic_handles ... ok test tests::empty_trash_restarts_after_each_entry_without_partial_files ... ok test tests::system_secret_files_are_confined_and_report_open_file_mode ... ok test tests::system_secret_key_is_private_fixed_size_and_never_replaced ... ok test tests::system_secret_key_rejects_wrong_lengths_and_symlinks ... ok test tests::thinning_keeps_every_version_in_first_day ... ok test tests::split_roots_keep_user_files_and_system_state_on_their_configured_roots ... ok test tests::upload_ids_lists_staging_in_the_reserved_tree ... ok test tests::user_search_directories_are_disjoint_and_confined ... ok test tests::voice_model_download_resumes_and_publishes_only_complete_files ... ok test tests::thinning_restarts_after_each_deleted_version_without_losing_kept_bytes ... ok test tests::write_future_can_run_on_server_workers ... ok test thumbnails::sealed_input_tests::decoder_snapshot_does_not_alias_later_source_changes ... ok test thumbnails::sealed_input_tests::decoder_snapshot_has_all_kernel_seals_and_keeps_source_bytes ... ok test thumbnails::sealed_input_tests::decoder_snapshot_refuses_input_above_the_copy_limit ... ok test thumbnails::sealed_input_tests::large_media_snapshot_is_anonymous_read_only_and_independent ... ok test thumbnails::sealed_input_tests::large_media_snapshot_rejects_oversize_before_copying ... ok test thumbnails::sealed_input_tests::large_snapshot_preserves_the_shared_free_space_reserve ... ok test thumbnails::sealed_input_tests::startup_input_is_bounded_and_fully_sealed ... ok test thumbnails::tests::clearing_thumbnail_failure_is_scoped_to_one_renderer ... ok test thumbnails::tests::document_thumbnail_variants_keep_cache_entries_separate ... ok test tests::voice_recordings_and_results_use_private_opaque_names ... ok test thumbnails::tests::indexed_document_kind_matches_renderer_gates ... ok test thumbnails::tests::failed_thumbnail_publication_removes_its_temporary ... ok test thumbnails::tests::legacy_launcher_failure_does_not_poison_a_content_hash ... ok test thumbnails::tests::publishing_successful_media_clears_the_terminal_failure_marker ... ok test thumbnails::tests::recovery_preserves_active_thumbnail_temporary_until_publication ... ok test thumbnails::tests::stale_unversioned_failure_marker_allows_decoder_retry ... ok test thumbnails::tests::thumbnail_temp_is_a_precreated_regular_file_in_the_held_cache ... ok test trash::import_inverse_tests::inverse_refuses_changed_file_set ... ok test user_homes::tests::archive_keeps_a_fixed_expiry_and_purges_only_after_it ... ok running 1 test running 1 test running 1 test running 1 test test user_homes::tests::each_deletion_phase_recovers_after_process_exit_without_duplication ... ok test user_homes::tests::purge_is_idempotent_and_does_not_touch_another_home ... ok test user_homes::tests::purge_removes_a_flat_home_across_bounded_batches ... ok test tests::recovery_replays_overwrites_with_versions ... ok test trash::import_inverse_tests::inverse_recovers_after_each_journal_step ... ok test user_homes::tests::user_home_deletion_child_crash_hook ... ok test user_homes::tests::transfer_keeps_the_source_tree_together_and_is_repeatable ... ok test web_assets::tests::ten_deployments_keep_assets_and_measure_store_bytes ... ok test web_assets::tests::unknown_and_hostile_asset_paths_return_not_found ... ok test web_assets::tests::seven_day_window_and_minimum_ten_generation_retention ... ok test write::export_tests::rooted_export_creates_a_private_new_file_and_rejects_existing_symlinks ... ok test write::export_tests::staged_batch_refuses_new_repair_protection ... ok test write::export_tests::streaming_write_future_keeps_chunk_bytes_off_stack ... ok test write::export_tests::metadata_stage_io_failure_keeps_original_intact ... ok test write::export_tests::write_result_keeps_only_the_detection_prefix ... ok test tests::recovery_replays_each_move_trash_restore_and_install_step ... ok test user_homes::tests::purge_validation_and_directory_pages_keep_other_home_intact ... ok test result: ok. 110 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 33.23s Running tests/legacy_kernel_permissions.rs (/home/kayg/build/targets/fs1575/debug/deps/legacy_kernel_permissions-5f1f951cf586fd9d) running 1 test test upgrade_permissions_without_fchmodat2 ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s Running tests/private_permissions.rs (/home/kayg/build/targets/fs1575/debug/deps/private_permissions-a0d0c9a61e48b5c6) running 1 test test private_system_permissions_ignore_umask_and_repair_upgrades ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.03s Running tests/storage.rs (/home/kayg/build/targets/fs1575/debug/deps/storage-1ca9b42c6df46e03) running 54 tests test arbitrary_paths_never_escape ... ok test atomic_write_event_identifies_replaced_inode ... ok test blob_scrub_repair_skips_unaddressable_names_in_homes ... ok test blob_scrub_quarantines_and_repairs_shared_inode_from_private_copy ... ok test case_insensitive_child_lookup_returns_existing_path ... ok test case_only_directory_move_keeps_one_inode_and_no_old_name ... ok test blob_scrub_resumes_quarantined_links_after_a_good_copy_arrives ... ok test blob_scrub_cursor_checks_only_a_bounded_number_per_page ... ok test configured_quota_covers_copy_and_cross_home_move ... ok test conditional_replace_serializes_competing_writers_and_versions_winner ... ok test checked_rewrite_can_publish_without_a_parent_proof ... ok test copied_file_is_read_only_with_reflink_preference ... ok test cross_home_folder_move_checks_all_file_bytes ... ok test copy_of_deduped_file_reuses_blob ... ok test date_write_refuses_hard_link_outside_home ... ok test date_write_preserves_mtime_and_rejects_stale_inode ... ok test date_write_refuses_identical_rename_before_staging ... ok test directory_move_to_descendant_is_rejected_without_mutation ... ok test date_write_refuses_rename_over_before_mtime_restore ... ok test dedup_concurrent_writes ... ok test excessive_delete_depth_does_not_remove_siblings ... ok test excessive_mkdir_depth_does_not_leave_a_partial_home_tree ... ok test directory_pages_advance_with_cursor ... ok test existing_blob_with_wrong_bytes_is_replaced ... ok test directory_write_proof_survives_sibling_changes_and_rejects_replacement ... ok test new_name_policy_allows_joiners_only_in_writing_sequences ... ok test new_name_policy_normalizes_and_rejects_spoofing ... ok test orphan_blobs_are_collected ... ok test mirrored_versions_follow_directory_and_delete ... ok test moving_file_carries_versions ... ok test overwriting_move_carries_source_versions_and_preserves_target ... ok test public_listing_hides_reserved_names ... ok test quota_is_shared_and_override_only_lowers ... ok test percent_name_survives_trash_round_trip ... ok test reserved_internals_are_not_public_paths ... ok test sibling_collision_uses_unicode_casefold_after_nfc ... ok test overwriting_with_copy_or_move_keeps_destination_version ... ok test source_mtime_is_preserved_without_changing_same_content_sibling ... ok test symlink_parent_is_never_followed ... ok test stat_reports_the_filesystem_creation_time_when_available ... ok test replace_does_not_modify_another_hardlink ... ok test system_dedup_scrub_state_rejects_oversized_checkpoints ... ok test thinning_keeps_recent_and_bucket_representatives ... ok test system_dedup_scrub_state_is_private_and_atomic ... ok test symlink_swap_race_never_writes_outside ... ok test trash_collisions_get_distinct_names_and_empty ... ok test traversal_is_rejected ... ok test trash_restores_versions_without_mixing_new_file ... ok test utf8_listing_skips_names_that_cannot_become_relative_paths ... ok test trash_round_trip_and_quota ... ok test two_home_upload_reservations_are_isolated_and_exchange_on_install ... ok test version_counts_against_quota ... ok test zero_byte_file_gets_version_and_thins ... ok test bulk_write_proofs_bound_descriptors_with_a_slow_subscriber has been running for over 60 seconds test bulk_write_proofs_bound_descriptors_with_a_slow_subscriber ... ok test result: ok. 54 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 243.08s Running tests/voice_memos_review.rs (/home/kayg/build/targets/fs1575/debug/deps/voice_memos_review-a8460789b238fa8f) running 2 tests test review_legacy_symlink_is_rejected_without_target_change ... ok test review_case_fold_classes_are_explicit ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s Running unittests src/lib.rs (/home/kayg/build/targets/fs1575/debug/deps/calternal_plugin_files-963ac2c0871afda8) running 285 tests test archive::tests::source_cancel_during_skipped_prefix_stops_next_read ... ok test archive::tests::source_reads_stop_at_window_and_before_cancelled_prefix ... ok test archive::tests::windows_emit_only_selected_bytes_and_cancel_skipped_input ... ok test archive::tests::windows_style_parent_components_are_encoded ... ok test archive::tests::large_zip_reassembles_from_bounded_offsets ... ok test background_image_tests::background_upload_validation_decodes_supported_formats ... ok test background_image_tests::unsplash_ids_are_hashed_before_becoming_path_components ... ok test background_image_tests::xmp_text_is_xml_escaped_and_control_free ... ok test archive::tests::zip_contract_matches_continuation_route ... ok test archive::tests::replaced_source_fails_before_content_read ... ok test change_stream::tests::recipient_revoke_and_stale_path_fail_closed ... ok test change_stream::tests::files_bridge_keeps_legacy_feed_and_current_projection ... ok test agent_undo::tests::undo_restores_a_file_write_and_keeps_the_item_identity ... ok test dav::tests::finder_companion_rechecks_item_identity_and_preconditions ... ok test dav::tests::finder_content_abort_after_metadata_and_restart_removes_only_provisional_copy ... ok test dav::tests::finder_copy_preserves_folder_and_file_metadata ... ok test dav::tests::finder_expired_content_upload_rolls_back_after_restart ... ok test dav::tests::finder_failed_install_intent_rolls_back_its_unchanged_target ... ok test dav::tests::finder_folder_attributes_survive_shallow_copy ... ok test dav::tests::finder_old_metadata_abort_preserves_acknowledged_deletion ... ok test dav::tests::finder_http_companion_put_stages_the_body_for_renamed_copy ... ok test dav::tests::finder_old_metadata_abort_preserves_the_acknowledged_winner ... ok test dav::tests::finder_old_real_empty_file_survives_failed_metadata_and_content_edits ... ok test dav::tests::finder_rollback_preserves_later_empty_revision_and_versions ... ok test dav::tests::finder_root_directory_metadata_is_persistent ... ok test dav::tests::local_server_scripted_probe_and_rclone_ten_thousand_small_files ... ignored, starts a loopback server and transfers 10,000 files with rclone test dav::tests::finder_restricted_companions_follow_their_own_collision_renamed_copy ... ok test dav::tests::move_checks_quoted_current_and_stale_etags ... ok test dav::tests::path_resolution_rejects_traversal_and_reserved_names ... ok test dav::tests::move_copy_and_trash_use_files_index_operations ... ok test dav::tests::finder_restricted_content_continues_only_its_provisional_copy ... ok test dav::tests::upload_read_and_index_listing_share_one_file_revision ... ok test dav::tests::concurrent_finder_puts_keep_all_uploads ... ok test dav::tests::upload_preconditions_and_upload_only_name_collisions_are_enforced ... ok test index::movie_probe_tests::movie_probe_reader_holds_its_memory_permit ... ok test index::movie_probe_tests::movie_probe_slots_are_shared_across_files_states ... ok test media::tests::compressed_image_input_cap_is_a_fixed_limit ... ok test media::tests::conflicting_iso_bmff_brands_are_refused ... ok test media::tests::document_decoder_rejection_is_not_retried_or_returned ... ok test media::tests::document_launcher_failure_is_retryable_and_private ... ok test media::tests::document_launcher_spawn_failure_is_retryable ... ok test media::tests::every_native_media_command_starts_at_the_sandbox_wrapper ... ok test dav::tests::webdav_finder_oversized_appledouble_put_removes_new_empty_target ... ok test media::tests::image_header_dimensions_are_bounded_before_pixel_decode ... ok test media::tests::launcher_causes_are_distinct_from_bad_user_content ... ok test media::tests::media_decoders_are_selected_from_magic_bytes ... ok test media::tests::only_one_unambiguous_vips_header_dimension_pair_is_accepted ... ok test media::tests::output_limit_still_stops_the_decoder ... ok test media::tests::process_mode_preserves_the_caller_output_sink ... ok test media::tests::real_media_fixtures_route_to_the_expected_decoder ... ok test media::tests::real_startup_self_test_decodes_a_sealed_jpeg ... ignored, requires tests/adversarial/prepare-media-runtime.sh and its PATH test media::tests::retry_message_keeps_diagnostics_out_of_user_jobs ... ok test media::tests::slow_media_sink_does_not_block_unrelated_runtime_work ... ok test media::tests::stderr_flood_is_drained_and_classified_privately ... ok test dav::tests::webdav_finder_appledouble_is_hidden_persistent_and_follows_moves ... ok test media::tests::video_magic_is_gated_by_the_index_mime_and_dimension_caps ... ok test media_slot_tests::large_media_work_keeps_one_small_slot_available ... ok test media_slot_tests::small_media_work_and_large_work_share_a_two_slot_limit ... ok test dav::tests::webdav_keeps_xmp_sidecars_with_copy_move_and_delete ... ok test media::tests::framed_metadata_is_bounded_and_sink_refusal_reaps_the_child ... ok test public::tests::folder_link_checks_open_handle_and_selected_identity ... ok test public::tests::markdown_note_paths_follow_home_wide_note_index ... ok test public::tests::new_slugs_follow_the_strict_rule ... ok test public::tests::opened_public_item_requires_current_identity ... ok test public::tests::password_admission_refusal_spends_no_attempt ... ok test public::tests::hidden_names_stay_private_across_public_routes ... ok test public::tests::password_budget_bounds_waiters_and_retains_cancelled_workers ... ok test media::tests::timeout_kills_the_whole_media_process_group ... ok test public::tests::password_budget_releases_errors_and_rejects_long_input ... ok test public::tests::password_parallel_reservations_keep_exact_counters ... ok test public::tests::public_download_counts_same_grant_and_releases_lock ... ok test public::tests::password_aggregate_limits_are_atomic ... ok test public::tests::verified_ip_uses_only_the_server_header_and_handles_non_text ... ok test shares::overlay_tests::files_set_hidden_overlay_mutation ... ok test public::tests::public_download_revalidates_after_authorization_before_lock ... ok test tests::app_password_home_prefix_is_component_bounded_and_rejects_cursed_paths ... ok test public::tests::public_preview_revalidates_after_authorization_before_lock ... ok test tests::agent_turn_tags_its_write_without_claiming_a_prior_human_write ... ok test tests::attachment_download_is_guarded_and_names_are_rfc_8187 ... ok test tests::busy_upload_names_its_stage_in_a_private_safe_log ... ok test tests::browse_trash_restore_and_range ... ok test public::tests::current_grant_and_counter_refuse_stale_authority ... ok test tests::canvas_upload_validation_survives_resume_and_fails_closed ... ok test tests::change_adoption_preserves_server_replacement_and_adopts_new_item ... ok test tests::change_feed_and_sse_cursors_do_not_reveal_other_users_activity ... ok test tests::change_feed_tracks_move_and_trash_and_expires_old_cursor ... ok test tests::concurrent_upload_movie_detection_uses_bounded_lane ... ok test tests::competing_replacements_return_precondition_failed ... ok test tests::copied_folder_indexes_each_new_item_and_hash ... ok test tests::bulk_write_sidecar_candidates_keep_ambiguity_rules ... ok test tests::copy_into_self_or_descendant_returns_conflict_without_new_entries ... ok test tests::cursor_migration_preserves_retained_positions_and_floors ... ok test tests::data_scope_stays_inside_its_home_and_current_shares ... ok test tests::dev_files_schema_upgrades_through_share_log_and_sidecar_migrations ... ok test tests::concurrent_upload_rename_and_listing_keep_index_and_bytes_aligned ... ok test tests::empty_trash_recovery_forgets_deleted_item_and_grants ... ok test tests::entries_encode_optional_creation_time ... ok test tests::empty_trash_requires_account_before_any_mutation ... ok test tests::etag_survives_restart_and_changes_with_replaced_content ... ok test tests::copy_racing_trash_never_publishes_partial_bytes ... ok test tests::exact_address_shares_do_not_disclose_account_existence ... ok test tests::failed_upload_change_event_keeps_installed_attachment_retryable ... ok test tests::failed_finalizations_release_their_slots_at_once ... ok test tests::filename_search_filters_current_shares ... ok test tests::file_drop_rechecks_sidecar_at_final_install ... ok test tests::concurrent_uploads_keep_their_intents_until_patch_finishes ... ok test tests::files_index_detects_extensionless_heic_and_misleading_jpeg_name ... ok test tests::files_note_rename_and_move_rewrite_referrers_and_note_index ... ok test tests::files_pins_json_rejections_use_the_api_error_envelope ... ok test tests::files_pins_reject_invalid_lists_and_oversized_payloads ... ok test tests::files_pins_are_private_versioned_and_preserve_other_user_settings ... ok test tests::files_preferences_json_rejections_use_files_error_envelope ... ok test tests::files_visibility_preferences_default_off_and_preserve_other_settings ... ok test tests::folder_entries_use_stable_keyset_pages_and_return_total ... ok test tests::folder_listing_sorts_all_modes_in_both_directions_and_uses_nfc ... ok test tests::group_grants_resolve_current_members_and_revoke_live ... ok test tests::grant_changes_commit_on_full_and_ordinary_work_on_normal ... ok test tests::folder_reconcile_generation_coalesces_index_write_bursts ... ok test tests::hidden_entries::internal_share_recipients_do_not_see_hidden_entries ... ok test tests::hidden_entries::public_bytes_of_hidden_entries_are_refused_by_path ... ok test tests::hidden_entries::public_file_drop_refuses_hidden_targets ... ok test tests::hidden_entries::public_hidden_entries_cannot_be_reached_by_item_id ... ok test tests::hidden_entries::public_links_on_hidden_items_are_refused_and_dead ... ok test tests::hidden_entries::public_listing_omits_hidden_entries ... ok test tests::index_record_keeps_an_unchanged_row_without_new_feed_event ... ok test tests::idle_upload_frees_its_slot_after_the_idle_timeout ... ok test tests::index_record_retries_a_file_replaced_during_the_hash ... ok test tests::index_record_of_a_file_that_keeps_changing_is_a_conflict ... ok test tests::inline_svg_stays_an_image_for_img_tags_only ... ok test tests::inline_download_never_serves_active_content_as_a_page ... ok test tests::internal_temp_repair_cleans_derived_rows_and_compensates_published_paths ... ok test tests::invite_links_are_owner_bound_and_policy_gated ... ok test tests::http_index_write_checkout_timeout_returns_retryable_service_unavailable ... ok test tests::item_lookup_recent_people_and_trash_origin ... ok test tests::journal_deadline::journal_deadline_hands_off_applied_note_without_replay ... ok test tests::journal_deadline::journal_deadline_releases_pre_write_guards ... ok test tests::journal_retry::lost_success_receipt_preserves_later_log_and_one_note ... ok test tests::journal_retry::retarget_metadata_is_refused_before_and_after_completion ... ok test tests::journal_retry::startup_recovery_precedes_log_and_retains_original_retry ... ok test tests::journal_upload_busy_after_install_retries_same_identity ... ok test tests::journal_upload_busy_before_install_preserves_source ... ok test tests::journal_upload_cancelled_request_keeps_publication_guards ... ok test tests::journal_upload_excludes_notes_writer_until_publication ... ok test tests::journal_upload_stale_revision_never_installs ... ok test tests::known_item_ids_for_paths_reads_only_existing_indexed_items ... ok test tests::journal_upload_retry_keeps_later_note_edits ... ok test tests::large_version_download_reassembles_from_byte_ranges ... ok test tests::legacy_background_migration_keeps_item_ids_and_is_idempotent ... ok test tests::long_folder_signed_cursor_continues_the_api_page ... ok test tests::listing_shared_folder_does_not_reconcile_the_owner_index ... ok test tests::mime_rebuild_resumes_after_saved_keyset_page ... ok test tests::move_recovery_retains_grant_on_the_same_item ... ok test tests::new_sse_stream_skips_old_events_but_wakes_for_new_changes ... ok test tests::file_state_machine_matches_http_after_restarts ... ok test tests::one_user_cannot_open_unbounded_event_streams ... ok test tests::notes_sidebar_filter_hides_daily_notes_and_binds_its_cursor_scope ... ok test tests::note_share_access_tracks_level_revoke_and_item_identity ... ok test tests::opened_download_keeps_exact_bytes_across_revoke_and_trash ... ok test tests::opened_range_and_etag_refer_to_same_revision ... ok test tests::oversized_json_returns_payload_too_large ... ok test tests::people_contacts_mode_limits_identity_discovery ... ok test tests::owner_listing_filters_marker_hidden_items_before_counting_and_paging ... ok test tests::profile_stage_reports_stable_writer_origins ... ok test tests::owner_listing_hides_dot_entries_by_default_and_accepts_show_hidden_flag ... ok test tests::plain_canvas_write_callback_preserves_item_identity ... ok test tests::public_download_is_guarded ... ok test tests::public_download_names_survive_unicode_and_control_characters ... ok test tests::public_canvas_projection_and_revoke ... ok test tests::public_edit_is_denied_and_legacy_links_keep_view ... ok test tests::public_file_drop_never_creates_metadata_or_sidecars_for_existing_files ... ok test tests::public_hidden_names_are_addressed_by_item_id_only ... ok test tests::public_link_options_that_do_not_fit_are_refused ... ok test tests::public_note_preview_redacts_private_references ... ok test tests::public_link_preview_never_names_a_protected_or_hidden_link ... ok test tests::public_password_attempts_are_reserved_before_parallel_checks ... ok test tests::public_password_rejection_does_not_wait_for_data_mutation_lock ... ok test tests::public_view_only_never_serves_original_bytes_and_previews_never_count ... ok test tests::range_header_rejects_duplicates_and_opaque_values ... ok test tests::real_media_fixtures_generate_webp_thumbnails_with_sandboxed_decoders ... ok test tests::public_password_expiry_download_limit_and_upload_only ... ok test tests::reconciliation_drops_sidecar_relations_for_links_and_directories ... ok test tests::rejected_move_does_not_poison_next_index_intent ... ok test tests::reconciliation_rebinds_a_sidecar_after_a_webdav_parent_only_rename ... ok test tests::rename_same_name_is_noop_and_long_name_is_bad_request ... ok test tests::rename_unindexed_folder_adopts_item_identity ... ok test tests::rename_keeps_log_attachment_target_and_item_identity ... ok test tests::public_password_is_checked_once_then_parallel_requests_pass ... ok test tests::repeatedly_recreated_notes_folder_can_be_renamed ... ok test tests::retrying_an_installed_upload_completes_its_index_intent ... ok test tests::server_watcher_state_wakes_files_route_subscribers ... ok test tests::reused_directory_inode_does_not_preserve_parent_identity ... ok test tests::share_creation_rejects_a_nonexistent_recipient_before_indexing ... ok test tests::shared_canvas_plain_json_identity ... ok test tests::shared_current_file_does_not_expose_owner_versions ... ok test tests::shared_imported_note_identity_opens_and_revokes ... ok test tests::shared_physical_folder_entries_use_index_keyset_pages ... ok test tests::shared_notes_follow_recursive_grants_and_revoke ... ok test tests::shared_tree_checks_grants_after_revoke ... ok test tests::shared_zip_stops_when_grant_no_longer_covers_the_path ... ok test tests::sidecar_files_travel_with_the_parent_through_move_copy_trash_and_restore ... ok test tests::slow_upload_keeps_its_slot_while_bytes_arrive ... ok test tests::sqlite_snapshot_with_later_data_reconciles_and_keeps_grants ... ok test tests::sse_replays_persisted_changes_after_restart ... ok test tests::stale_folder_listing_serves_index_then_reconciles_and_publishes ... ok test tests::stale_share_and_public_link_do_not_reach_replacement_at_same_path ... ok test tests::startup_completion_precedes_blocked_mime_backfill ... ok test tests::sqlite_busy_index_update_retries_when_the_writer_lock_clears ... ok test tests::startup_mime_rebuild_updates_legacy_projection_once ... ok test tests::startup_reconcile_indexes_existing_home_content ... ok test tests::storm_cleanup_does_not_poll_consumed_worker_handles_twice ... ok test tests::thumbnail_is_guarded ... ok test tests::thumbnail_route_selects_the_requested_document_render_kind ... ok test tests::trash_detaches_log_links_and_restore_keeps_concurrent_entry_edits ... ok test tests::trash_recovery_and_restore_keep_item_identity_and_grants ... ok test tests::tus_background_uploads_cap_size_and_require_a_decodable_image ... ok test tests::tus_keeps_install_intent_until_the_index_matches_the_installed_file ... ok test tests::tus_preserves_a_valid_source_mtime_on_the_installed_file ... ok test tests::tus_quota_reservations_are_isolated_between_two_users ... ok test tests::tus_rejects_impossible_declared_length_before_staging ... ok test tests::tus_reports_conflict_when_another_upload_replaces_the_destination ... ok test tests::tus_reserves_declared_bytes_and_reports_staging ... ok test tests::tus_resumes_after_router_restart ... ok test tests::tus_upload_rejects_a_replaced_parent_directory ... ok test tests::sqlite_busy_index_updates_return_retryable_service_unavailable ... ok test tests::tus_upload_survives_parent_reindex_after_child_write ... ok test tests::startup_reconcile_keeps_batch_ids_and_change_feed_stable ... ok test tests::tus_upload_survives_unindexed_sibling_write_in_parent ... ok test tests::upload_only_app_password_lists_names_inside_its_home_prefix ... ok test tests::upload_follows_parent_item_after_rename ... ok test tests::upload_install_recovery_preserves_replaced_item_identity ... ok test tests::user_deletion_revokes_grants_before_idempotent_batched_cleanup ... ok test tests::version_download_is_guarded ... ok test tests::version_reads_preserve_historical_guest_attribution ... ok test tests::version_restore_returns_conditional_undo_identity_and_preserves_later_bytes ... ok test tests::version_restore_returns_exact_previous_bytes ... ok test tests::voice_memo_migration_rewrites_links_and_is_idempotent ... ok test tests::voice_memos_review::review_100k_background_batch_profile ... ignored, explicit 100k-file performance profile; run through bench/voice-memo-batches-618.sh test tests::voice_memo_pending_move_recovery_rewrites_links ... ok test tests::voice_memo_twin_merge_keeps_newest_and_conflict_copy ... ok test tests::voice_memos_review::review_empty_directory_merges_are_bounded ... ok test tests::internal_temp_paths_never_enter_index_during_atomic_write_reconcile_storm has been running for over 60 seconds test tests::voice_memos_review::review_background_batches_resume_and_keep_job_visible ... ok test tests::voice_memos_review::review_large_home_repair_time_and_io ... ignored, local 100k-file time and IO profile; run alone with --ignored --nocapture test tests::voice_memos_review::review_folder_scan_retains_landed_move_until_note_writer_recovers ... ok test tests::voice_memos_review::review_legacy_primary_is_journaled_before_first_batch ... ok test tests::voice_memos_review::review_partial_note_rewrite_replays_after_reopen ... ok test tests::voice_memos_review::review_older_source_keeps_file_id_and_removes_legacy_folder ... ok test tests::voice_memos_review::review_recording_during_queued_twin_repair ... ok test tests::voice_memos_review::review_conflict_note_writes_replay_without_identity_redirects ... ok test tests::voice_memos_review::review_repair_rewrites_a_note_inside_the_moved_folder ... ok test tests::voice_memos_review::review_twin_merge_preserves_both_recording_links ... ok test tests::voice_memos_review::review_two_legacy_twins_merge_without_initial_canonical ... ok test tests::voice_memos_review::review_same_process_retry_retains_recording_identity_and_grants ... ok test tests::voice_memos_review::review_unicode_folded_twins_keep_conflict_link_identities ... ok test tests::voice_memos_review::review_paused_upload_survives_voice_memo_directory_merge ... ok test tests::web_case_only_voice_memo_rename_keeps_one_indexed_identity ... ok test tests::webdav_case_only_voice_memo_move_keeps_one_indexed_identity ... ok test thumbnails::tests::cache_kind_matches_the_supported_document_selector ... ok test tests::zip_continuation_rejects_changed_sources ... ok test thumbnails::tests::header_probes_retain_source_io_errors ... ok test thumbnails::tests::incomplete_frontmatter_is_not_rendered_in_text_card ... ok test thumbnails::tests::indexed_thumbnail_capability_matches_worker_formats ... ok test thumbnails::tests::known_text_documents_use_cards_and_other_text_skips_media_jobs ... ok test tests::zip_folder_windows_reassemble_and_reject_membership_changes ... ok test thumbnails::tests::long_text_tokens_keep_their_position_in_the_excerpt ... ok test thumbnails::tests::launcher_outage_retries_without_poisoning_the_hash ... ok test thumbnails::tests::oversized_text_skips_the_decoder_without_poisoning_a_stale_index_hash ... ok test thumbnails::tests::renderer_outage_returns_to_retry_without_a_failure_marker ... ok test thumbnails::tests::text_card_markdown_strips_yaml_frontmatter ... ok test thumbnails::tests::text_thumbnail_input_is_an_escaped_markdown_excerpt ... ok test thumbnails::tests::unresolved_mime_defers_markers_for_recognized_media_signatures ... ok test thumbnails::tests::same_content_keeps_pdf_and_text_card_thumbnail_entries_separate ... ok test uploads::tests::upload_locks_serialize_one_upload_without_blocking_another ... ok test uploads::tests::voice_memo_destination_rejects_unmerged_case_twins ... ok test uploads::tests::voice_memo_destination_uses_existing_case_insensitive_folder ... ok test user_bytes::tests::active_types_are_text_inline_and_kept_for_attachments ... ok test user_bytes::tests::content_disposition_drops_bidi_and_control_characters ... ok test user_bytes::tests::inline_is_requested_by_query_or_header_only ... ok test user_bytes::tests::neutralized_representations_have_their_own_tag ... ok test user_bytes::tests::svg_is_an_image_only_for_image_loads ... ok test visible_markdown_path_tests::accepts_canvas_for_the_live_note_save_callback_only ... ok test visible_markdown_path_tests::accepts_visible_markdown_anywhere_in_home ... ok test visible_markdown_path_tests::rejects_hidden_non_markdown_and_escaping_paths ... ok test uploads::admin_repair_upload_mutation ... ok test tests::internal_temp_paths_never_enter_index_during_atomic_write_reconcile_storm ... ok test thumbnails::tests::document_job_timeout_marks_failure_without_cache_temporary_files has been running for over 60 seconds test thumbnails::tests::document_job_timeout_marks_failure_without_cache_temporary_files ... ok test result: ok. 281 passed; 0 failed; 4 ignored; 0 measured; 0 filtered out; finished in 183.51s Running tests/jdrev2.rs (/home/kayg/build/targets/fs1575/debug/deps/jdrev2-022929d46a49ca3f) running 9 tests test cancel_recovery_restart_child ... ok running 1 test test cancel_recovery_restart_child ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 8 filtered out; finished in 0.03s running 1 test test cancel_recovery_restart_child ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 8 filtered out; finished in 0.03s running 1 test test cancel_recovery_restart_child ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 8 filtered out; finished in 0.16s test cancel_keeps_ambiguous_proof_until_admin_repair ... ok test ambiguous_recovery_serves_other_items_without_guessing ... ok running 1 test test cancel_recovery_restart_child ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 8 filtered out; finished in 0.04s test cancel_keeps_applied_proof_when_source_is_missing ... ok test legacy_receipts_compact_without_losing_retry_proof ... ok test completion_never_expires_or_replays_source ... ok test receipt_growth_after_a_year_is_bounded_to_the_retry_window ... ok test pre_rename_timeout_then_log_edit_recovers_safely ... ok test receipts_are_fixed_size_and_bounded_by_client_retention ... ok test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.23s Doc-tests calternal_fs 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_files running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s ``` Cleanup (cargo clean), verbatim: ```text Removed 6774 files, 5.5GiB total ``` The working tree is clean. No web build output remains. Review artifacts stay untracked in artifacts/. The issue remains open.
Author
Owner

Deployed to calternal.cloud in merge round 40 (build c0f8da461, 01:38 IST 2026-10-12). Health state ok, /readyz 200, served-page check passed. Pre-deploy backup taken.

Deployed to calternal.cloud in merge round 40 (build c0f8da461, 01:38 IST 2026-10-12). Health state ok, /readyz 200, served-page check passed. Pre-deploy backup taken.
kayg closed this issue 2026-10-11 20:08:50 +00:00
Commenting is not possible because the repository is archived.
No labels
No milestone
No project
No assignees
1 participant
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-v0#1575
No description provided.