[INFO] fetching crate hyalo-core 0.21.0...
[INFO] documenting hyalo-core-0.21.0 against da3f5c31e5535b3dc210067de660a45784ae1e9c for pr-162169
[INFO] extracting crate hyalo-core 0.21.0 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate hyalo-core 0.21.0
[INFO] removed 0 missing examples
[INFO] finished tweaking crates.io crate hyalo-core 0.21.0
[INFO] tweaked toml for crates.io crate hyalo-core 0.21.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate hyalo-core 0.21.0 on toolchain da3f5c31e5535b3dc210067de660a45784ae1e9c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+da3f5c31e5535b3dc210067de660a45784ae1e9c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate hyalo-core 0.21.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+da3f5c31e5535b3dc210067de660a45784ae1e9c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 5384f563542daaea00309060fa411e085b11ac866b32fac119481dd8846423f4
[INFO] running `Command { std: "docker" "start" "5384f563542daaea00309060fa411e085b11ac866b32fac119481dd8846423f4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5384f563542daaea00309060fa411e085b11ac866b32fac119481dd8846423f4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5384f563542daaea00309060fa411e085b11ac866b32fac119481dd8846423f4" "/opt/rustwide/cargo-home/bin/cargo" "+da3f5c31e5535b3dc210067de660a45784ae1e9c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5384f563542daaea00309060fa411e085b11ac866b32fac119481dd8846423f4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5384f563542daaea00309060fa411e085b11ac866b32fac119481dd8846423f4" "/opt/rustwide/cargo-home/bin/cargo" "+da3f5c31e5535b3dc210067de660a45784ae1e9c" "doc" "--frozen" "--no-deps" "--document-private-items" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking memchr v2.8.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.20
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]     Checking once_cell v1.21.4
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking bstr v1.12.1
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]    Compiling anyhow v1.0.104
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]     Checking winnow v1.0.2
[INFO] [stderr]     Checking anstyle v1.0.14
[INFO] [stderr]     Checking linux-raw-sys v0.12.1
[INFO] [stderr]     Checking bitflags v2.11.1
[INFO] [stderr]     Checking arraydeque v0.5.1
[INFO] [stderr]     Checking toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]     Checking annotate-snippets v0.12.16
[INFO] [stderr]     Checking encoding_rs_io v0.1.7
[INFO] [stderr]     Checking rmp v0.8.15
[INFO] [stderr]     Checking rayon-core v1.13.0
[INFO] [stderr]     Checking toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]     Checking serde_spanned v1.1.1
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking nohash-hasher v0.2.0
[INFO] [stderr]     Checking hashbrown v0.17.0
[INFO] [stderr]     Checking toml_writer v1.1.1+spec-1.1.0
[INFO] [stderr]     Checking fastrand v2.4.1
[INFO] [stderr]     Checking toml v1.1.2+spec-1.1.0
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking indexmap v2.14.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking dunce v1.0.5
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking globset v0.4.18
[INFO] [stderr]     Checking saphyr-parser-bw v0.0.611
[INFO] [stderr]     Checking ignore v0.4.25
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking rust-stemmers v1.2.0
[INFO] [stderr]     Checking rmp-serde v1.3.1
[INFO] [stderr]     Checking serde-saphyr v0.0.23
[INFO] [stderr]  Documenting hyalo-core v0.21.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: public documentation for `hyalo_core` links to private item `case_index`
[INFO] [stdout]   --> src/lib.rs:14:31
[INFO] [stdout]    |
[INFO] [stdout] 14 | //! - **Plumbing modules** ([`case_index`], [`common_words`], [`fs_util`],
[INFO] [stdout]    |                               ^^^^^^^^^^ this item is private
[INFO] [stdout]    |
[INFO] [stdout]    = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout]    = note: `#[warn(rustdoc::private_intra_doc_links)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `hyalo_core` links to private item `common_words`
[INFO] [stdout]   --> src/lib.rs:14:47
[INFO] [stdout]    |
[INFO] [stdout] 14 | //! - **Plumbing modules** ([`case_index`], [`common_words`], [`fs_util`],
[INFO] [stdout]    |                                               ^^^^^^^^^^^^ this item is private
[INFO] [stdout]    |
[INFO] [stdout]    = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `hyalo_core` links to private item `fs_util`
[INFO] [stdout]   --> src/lib.rs:14:65
[INFO] [stdout]    |
[INFO] [stdout] 14 | //! - **Plumbing modules** ([`case_index`], [`common_words`], [`fs_util`],
[INFO] [stdout]    |                                                                 ^^^^^^^ this item is private
[INFO] [stdout]    |
[INFO] [stdout]    = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `github_slug` links to private item `heading_slugs`
[INFO] [stdout]    --> src/anchor.rs:120:42
[INFO] [stdout]     |
[INFO] [stdout] 120 | /// document-level concern, applied by [`heading_slugs`].
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `lookup_unique`
[INFO] [stdout]   --> src/case_index.rs:48:27
[INFO] [stdout]    |
[INFO] [stdout] 48 | /// 1. **Path lookup** ([`lookup_unique`], [`lookup_all`]) — case-insensitive
[INFO] [stdout]    |                           ^^^^^^^^^^^^^ no item named `lookup_unique` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout]    = note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `lookup_all`
[INFO] [stdout]   --> src/case_index.rs:48:46
[INFO] [stdout]    |
[INFO] [stdout] 48 | /// 1. **Path lookup** ([`lookup_unique`], [`lookup_all`]) — case-insensitive
[INFO] [stdout]    |                                              ^^^^^^^^^^ no item named `lookup_all` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `enable_case_insensitive_paths`
[INFO] [stdout]   --> src/case_index.rs:49:39
[INFO] [stdout]    |
[INFO] [stdout] 49 | ///    full-path matching. Gated on [`enable_case_insensitive_paths`] so a vault
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `enable_case_insensitive_paths` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] help: there's a similarly named item `probe_case_insensitive_stat`
[INFO] [stdout]    |
[INFO] [stdout] 49 - ///    full-path matching. Gated on [`enable_case_insensitive_paths`] so a vault
[INFO] [stdout] 49 + ///    full-path matching. Gated on [`probe_case_insensitive_stat`] so a vault
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `set_case_insensitive_paths`
[INFO] [stdout]   --> src/case_index.rs:52:10
[INFO] [stdout]    |
[INFO] [stdout] 52 | ///    [`set_case_insensitive_paths`].
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `set_case_insensitive_paths` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `lookup_stem`
[INFO] [stdout]   --> src/case_index.rs:53:27
[INFO] [stdout]    |
[INFO] [stdout] 53 | /// 2. **Stem lookup** ([`lookup_stem`], [`lookup_stem_all`]) — bare-basename
[INFO] [stdout]    |                           ^^^^^^^^^^^ no item named `lookup_stem` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `lookup_stem_all`
[INFO] [stdout]   --> src/case_index.rs:53:44
[INFO] [stdout]    |
[INFO] [stdout] 53 | /// 2. **Stem lookup** ([`lookup_stem`], [`lookup_stem_all`]) — bare-basename
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^ no item named `lookup_stem_all` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `lookup_unique`
[INFO] [stdout]   --> src/case_index.rs:65:25
[INFO] [stdout]    |
[INFO] [stdout] 65 |     /// When `false`, [`lookup_unique`] and [`lookup_all`] return empty results.
[INFO] [stdout]    |                         ^^^^^^^^^^^^^ no item named `lookup_unique` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `lookup_all`
[INFO] [stdout]   --> src/case_index.rs:65:47
[INFO] [stdout]    |
[INFO] [stdout] 65 |     /// When `false`, [`lookup_unique`] and [`lookup_all`] return empty results.
[INFO] [stdout]    |                                               ^^^^^^^^^^ no item named `lookup_all` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `set_case_insensitive_paths`
[INFO] [stdout]   --> src/case_index.rs:66:47
[INFO] [stdout]    |
[INFO] [stdout] 66 |     /// Stem lookups are unaffected. Set by [`set_case_insensitive_paths`] from
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `set_case_insensitive_paths` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `set_case_insensitive_paths`
[INFO] [stdout]    --> src/case_index.rs:120:22
[INFO] [stdout]     |
[INFO] [stdout] 120 |     /// index (see [`set_case_insensitive_paths`]).
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `set_case_insensitive_paths` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `lookup_stem`
[INFO] [stdout]    --> src/case_index.rs:176:18
[INFO] [stdout]     |
[INFO] [stdout] 176 |     /// Unlike [`lookup_stem`] (which returns `None` for ambiguous matches),
[INFO] [stdout]     |                  ^^^^^^^^^^^ no item named `lookup_stem` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `mode_enabled` links to private item `probe_case_insensitive_cached`
[INFO] [stdout]    --> src/case_index.rs:554:23
[INFO] [stdout]     |
[INFO] [stdout] 554 | /// - `Auto` → runs [`probe_case_insensitive_cached`]; falls back to `false`
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `normalized_target_escapes_vault` links to private item `normalize_link_target`
[INFO] [stdout]     --> src/discovery.rs:1068:13
[INFO] [stdout]      |
[INFO] [stdout] 1068 | /// After [`normalize_link_target`] has resolved `.`/`..` components, a target
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]      |
[INFO] [stdout]      = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `resolve_link_from_source` links to private item `normalize_link_target`
[INFO] [stdout]     --> src/discovery.rs:1104:7
[INFO] [stdout]      |
[INFO] [stdout] 1104 | /// [`normalize_link_target`] helper — that `find --broken-links` and the
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]      |
[INFO] [stdout]      = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `resolve_link_from_source` links to private item `classify_link_from_source`
[INFO] [stdout]     --> src/discovery.rs:1108:36
[INFO] [stdout]      |
[INFO] [stdout] 1108 | /// Its Classify-mode sibling is [`classify_link_from_source`], which returns
[INFO] [stdout]      |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]      |
[INFO] [stdout]      = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `matches` links to private item `resolve_prop`
[INFO] [stdout]   --> src/filter/match_props.rs:62:35
[INFO] [stdout]    |
[INFO] [stdout] 62 |     /// Resolution goes through [`resolve_prop`], so nested dot-paths (maps and
[INFO] [stdout]    |                                   ^^^^^^^^^^^^ this item is private
[INFO] [stdout]    |
[INFO] [stdout]    = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `write_frontmatter` links to private item `crate::fs_util::atomic_write`
[INFO] [stdout]    --> src/frontmatter/parse.rs:441:41
[INFO] [stdout]     |
[INFO] [stdout] 441 | /// Writes via the boundary-unchecked [`crate::fs_util::atomic_write`] — a
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `atomic_write_within` links to private item `atomic_write`
[INFO] [stdout]    --> src/fs_util.rs:226:12
[INFO] [stdout]     |
[INFO] [stdout] 226 | /// Like [`atomic_write`], but refuses to follow a symlink whose target escapes
[INFO] [stdout]     |            ^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `atomic_write_within` links to private item `ensure_resolved_within`
[INFO] [stdout]    --> src/fs_util.rs:233:51
[INFO] [stdout]     |
[INFO] [stdout] 233 | /// **Residual TOCTOU:** the boundary check (in [`ensure_resolved_within`])
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `bm25_tokens`
[INFO] [stdout]   --> src/index.rs:64:49
[INFO] [stdout]    |
[INFO] [stdout] 64 |     /// Stemming language used when producing [`bm25_tokens`]. Matches the
[INFO] [stdout]    |                                                 ^^^^^^^^^^^ no item named `bm25_tokens` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `bm25_tokens`
[INFO] [stdout]   --> src/index.rs:66:33
[INFO] [stdout]    |
[INFO] [stdout] 66 |     /// default). `None` when [`bm25_tokens`] is `None`.
[INFO] [stdout]    |                                 ^^^^^^^^^^^ no item named `bm25_tokens` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `bm25_tokens`
[INFO] [stdout]   --> src/index.rs:69:60
[INFO] [stdout]    |
[INFO] [stdout] 69 |     /// [`crate::bm25::TOKENIZER_VERSION`] that produced [`bm25_tokens`]. `None`
[INFO] [stdout]    |                                                            ^^^^^^^^^^^ no item named `bm25_tokens` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `bm25_tokens`
[INFO] [stdout]   --> src/index.rs:70:16
[INFO] [stdout]    |
[INFO] [stdout] 70 |     /// when [`bm25_tokens`] is `None`, or when the snapshot predates this field
[INFO] [stdout]    |                ^^^^^^^^^^^ no item named `bm25_tokens` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `rescan_entry`
[INFO] [stdout]    --> src/index.rs:458:40
[INFO] [stdout]     |
[INFO] [stdout] 458 |     /// Shared implementation behind [`rescan_entry`] and [`refresh_links`]:
[INFO] [stdout]     |                                        ^^^^^^^^^^^^ no item named `rescan_entry` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `refresh_links`
[INFO] [stdout]    --> src/index.rs:458:61
[INFO] [stdout]     |
[INFO] [stdout] 458 |     /// Shared implementation behind [`rescan_entry`] and [`refresh_links`]:
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^ no item named `refresh_links` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `refresh_entry`
[INFO] [stdout]    --> src/index.rs:678:60
[INFO] [stdout]     |
[INFO] [stdout] 678 |     /// This is the preferred move/rename counterpart of [`refresh_entry`].
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^ no item named `refresh_entry` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `remove_entry`
[INFO] [stdout]    --> src/index.rs:679:26
[INFO] [stdout]     |
[INFO] [stdout] 679 |     /// Unlike calling [`remove_entry`] followed by [`insert_entry`] (two
[INFO] [stdout]     |                          ^^^^^^^^^^^^ no item named `remove_entry` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `insert_entry`
[INFO] [stdout]    --> src/index.rs:679:55
[INFO] [stdout]     |
[INFO] [stdout] 679 |     /// Unlike calling [`remove_entry`] followed by [`insert_entry`] (two
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^ no item named `insert_entry` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `load`
[INFO] [stdout]    --> src/index.rs:930:51
[INFO] [stdout]     |
[INFO] [stdout] 930 |     /// Load a snapshot silently — identical to [`load`] but suppresses the
[INFO] [stdout]     |                                                   ^^^^ no item named `load` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `newest_dir_mtime` links to private item `STALENESS_PROBE_MAX_DEPTH`
[INFO] [stdout]     --> src/index.rs:1197:15
[INFO] [stdout]      |
[INFO] [stdout] 1197 | /// down to [`STALENESS_PROBE_MAX_DEPTH`] levels, as whole seconds since the
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]      |
[INFO] [stdout]      = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `newest_dir_mtime` links to private item `STALENESS_PROBE_MAX_DEPTH`
[INFO] [stdout]     --> src/index.rs:1212:7
[INFO] [stdout]      |
[INFO] [stdout] 1212 | /// [`STALENESS_PROBE_MAX_DEPTH`] directories from `dir` is invisible —
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]      |
[INFO] [stdout]      = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `link_fix` links to private item `crate::discovery::classify_link_from_source`
[INFO] [stdout]  --> src/link_fix.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | //!    [`crate::discovery::classify_link_from_source`].
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]   |
[INFO] [stdout]   = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `BasenameFallback`
[INFO] [stdout]    --> src/link_fix.rs:130:11
[INFO] [stdout]     |
[INFO] [stdout] 130 |     /// [`BasenameFallback`] instead, whatever the leading character.
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^ no item named `BasenameFallback` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `LinkCaseMismatch`
[INFO] [stdout]    --> src/link_fix.rs:134:26
[INFO] [stdout]     |
[INFO] [stdout] 134 |     /// be reported as [`LinkCaseMismatch`] — a *relocation* dressed up as a
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^ no item named `LinkCaseMismatch` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `find_match`
[INFO] [stdout]    --> src/link_fix.rs:519:29
[INFO] [stdout]     |
[INFO] [stdout] 519 | /// Build once, then call [`find_match`] for each broken link target.
[INFO] [stdout]     |                             ^^^^^^^^^^ no item named `find_match` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `candidate_confidence`
[INFO] [stdout]    --> src/link_fix.rs:576:29
[INFO] [stdout]     |
[INFO] [stdout] 576 | /// flat constant — it is [`candidate_confidence`], which adds up to
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^ no item named `candidate_confidence` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `with_site_prefix` links to private item `Self::find_match`
[INFO] [stdout]    --> src/link_fix.rs:592:50
[INFO] [stdout]     |
[INFO] [stdout] 592 |     /// Broken-link targets reach [`find_match`](Self::find_match) exactly as
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `apply_fixes` links to private item `apply_replacements`
[INFO] [stdout]    --> src/link_fix.rs:951:36
[INFO] [stdout]     |
[INFO] [stdout] 951 | /// wikilinks), applies them via [`apply_replacements`], and writes back via
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `execute_plans`
[INFO] [stdout]    --> src/link_fix.rs:952:7
[INFO] [stdout]     |
[INFO] [stdout] 952 | /// [`execute_plans`].
[INFO] [stdout]     |       ^^^^^^^^^^^^^ no item named `execute_plans` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `rebuild_lower_index` links to private item `Self::remove_source`
[INFO] [stdout]    --> src/link_graph.rs:200:64
[INFO] [stdout]     |
[INFO] [stdout] 200 |     /// [`rename_path`](Self::rename_path) / [`remove_source`](Self::remove_source).
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `remove_source`
[INFO] [stdout]    --> src/link_graph.rs:447:11
[INFO] [stdout]     |
[INFO] [stdout] 447 |     /// [`remove_source`] first to clear the old ones, then this method to
[INFO] [stdout]     |           ^^^^^^^^^^^^^ no item named `remove_source` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `wikilink`
[INFO] [stdout]    --> src/link_graph.rs:696:56
[INFO] [stdout]     |
[INFO] [stdout] 696 | /// Also scans configured frontmatter properties for [[wikilink]] strings.
[INFO] [stdout]     |                                                        ^^^^^^^^ no item named `wikilink` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `wikilink`
[INFO] [stdout]    --> src/link_graph.rs:703:50
[INFO] [stdout]     |
[INFO] [stdout] 703 |     /// Frontmatter property names to scan for [[wikilink]] patterns.
[INFO] [stdout]     |                                                  ^^^^^^^^ no item named `wikilink` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `LinkResolver` links to private item `LinkSpan`
[INFO] [stdout]   --> src/link_resolve.rs:67:33
[INFO] [stdout]    |
[INFO] [stdout] 67 | /// Unified resolver: given a [`LinkSpan`] and its source file, decide whether
[INFO] [stdout]    |                                 ^^^^^^^^ this item is private
[INFO] [stdout]    |
[INFO] [stdout]    = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `directory_similarity` links to private item `DIR_PREFIX_WEIGHT`
[INFO] [stdout]    --> src/link_score.rs:197:40
[INFO] [stdout]     |
[INFO] [stdout] 197 | /// * **shared leading components** ([`DIR_PREFIX_WEIGHT`]) — `a/b/c` and
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `link_write` links to private item `LinkWriter::rewrite`
[INFO] [stdout]  --> src/link_write.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | //! [`LinkWriter::rewrite`] splices a `LinkSpan` in the source line, replacing
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]   |
[INFO] [stdout]   = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `extract_links_from_text` links to private item `extract_links_from_text_with_original`
[INFO] [stdout]    --> src/links.rs:126:7
[INFO] [stdout]     |
[INFO] [stdout] 126 | /// [`extract_links_from_text_with_original`] to preserve backtick-wrapped
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `and`
[INFO] [stdout]    --> src/links.rs:672:55
[INFO] [stdout]     |
[INFO] [stdout] 672 | /// Parse the inner content of a wikilink (between [[ and ]]).
[INFO] [stdout]     |                                                       ^^^ no item named `and` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `target`
[INFO] [stdout]    --> src/links.rs:734:47
[INFO] [stdout]     |
[INFO] [stdout] 734 | /// Try to parse a markdown-style link [text](target) at position `start`.
[INFO] [stdout]     |                                               ^^^^^^ no item named `target` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `lookup_unique`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the link appears in this line:
[INFO] [stdout]           
[INFO] [stdout]           1. **Path lookup** ([`lookup_unique`], [`lookup_all`]) — case-insensitive
[INFO] [stdout]                                ^^^^^^^^^^^^^^^
[INFO] [stdout]   = note: no item named `lookup_unique` in scope
[INFO] [stdout]   = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `lookup_all`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the link appears in this line:
[INFO] [stdout]           
[INFO] [stdout]           1. **Path lookup** ([`lookup_unique`], [`lookup_all`]) — case-insensitive
[INFO] [stdout]                                                   ^^^^^^^^^^^^
[INFO] [stdout]   = note: no item named `lookup_all` in scope
[INFO] [stdout]   = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `enable_case_insensitive_paths`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the link appears in this line:
[INFO] [stdout]           
[INFO] [stdout]              full-path matching. Gated on [`enable_case_insensitive_paths`] so a vault
[INFO] [stdout]                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   = note: no item named `enable_case_insensitive_paths` in scope
[INFO] [stdout]   = help: there's a similarly named item `probe_case_insensitive_stat`
[INFO] [stdout]   = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `set_case_insensitive_paths`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the link appears in this line:
[INFO] [stdout]           
[INFO] [stdout]              [`set_case_insensitive_paths`].
[INFO] [stdout]               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   = note: no item named `set_case_insensitive_paths` in scope
[INFO] [stdout]   = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `lookup_stem`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the link appears in this line:
[INFO] [stdout]           
[INFO] [stdout]           2. **Stem lookup** ([`lookup_stem`], [`lookup_stem_all`]) — bare-basename
[INFO] [stdout]                                ^^^^^^^^^^^^^
[INFO] [stdout]   = note: no item named `lookup_stem` in scope
[INFO] [stdout]   = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `lookup_stem_all`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the link appears in this line:
[INFO] [stdout]           
[INFO] [stdout]           2. **Stem lookup** ([`lookup_stem`], [`lookup_stem_all`]) — bare-basename
[INFO] [stdout]                                                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   = note: no item named `lookup_stem_all` in scope
[INFO] [stdout]   = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `mode_enabled` links to private item `probe_case_insensitive_cached`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the link appears in this line:
[INFO] [stdout]           
[INFO] [stdout]           - `Auto` → runs [`probe_case_insensitive_cached`]; falls back to `false`
[INFO] [stdout]                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `atomic_write_within` links to private item `atomic_write`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the link appears in this line:
[INFO] [stdout]           
[INFO] [stdout]           Like [`atomic_write`], but refuses to follow a symlink whose target escapes
[INFO] [stdout]                 ^^^^^^^^^^^^^^
[INFO] [stdout]   = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `atomic_write_within` links to private item `ensure_resolved_within`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the link appears in this line:
[INFO] [stdout]           
[INFO] [stdout]           **Residual TOCTOU:** the boundary check (in [`ensure_resolved_within`])
[INFO] [stdout]                                                        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/case_index.rs:59:1
[INFO] [stdout]    |
[INFO] [stdout] 59 | / pub struct CaseInsensitiveIndex {
[INFO] [stdout] 60 | |     /// Map from lowercased path → list of real (original-casing) paths.
[INFO] [stdout] 61 | |     map: HashMap<String, Vec<String>>,
[INFO] [stdout] 62 | |     /// Map from lowercased filename stem → list of real (original-casing) paths.
[INFO] [stdout] ...  |
[INFO] [stdout] 68 | |     case_insensitive_paths: bool,
[INFO] [stdout] 69 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `Case-insensitive link resolution (was `hyalo_core::case_index`).`
[INFO] [stdout]    = help: ends near `Lowercased-relative-path → list of real relative paths (forward-slash form).`
[INFO] [stdout]    = note: `#[deny(rustdoc::unportable_markdown)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/case_index.rs:59:1
[INFO] [stdout]    |
[INFO] [stdout] 59 | / pub struct CaseInsensitiveIndex {
[INFO] [stdout] 60 | |     /// Map from lowercased path → list of real (original-casing) paths.
[INFO] [stdout] 61 | |     map: HashMap<String, Vec<String>>,
[INFO] [stdout] 62 | |     /// Map from lowercased filename stem → list of real (original-casing) paths.
[INFO] [stdout] ...  |
[INFO] [stdout] 68 | |     case_insensitive_paths: bool,
[INFO] [stdout] 69 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `Lowercased-relative-path → list of real relative paths (forward-slash form).`
[INFO] [stdout]    = help: ends near `Lowercased-relative-path → list of real relative paths (forward-slash form).`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/case_index.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | / pub enum CaseInsensitiveMode {
[INFO] [stdout] 10 | |     /// Enable only if the filesystem is probed as case-insensitive.
[INFO] [stdout] 11 | |     #[default]
[INFO] [stdout] 12 | |     Auto,
[INFO] [stdout] ...  |
[INFO] [stdout] 16 | |     On,
[INFO] [stdout] 17 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `Case-insensitive link resolution (was `hyalo_core::case_index`).`
[INFO] [stdout]    = help: ends near `Mode for case-insensitive link resolution fallback.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/case_index.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | / pub enum CaseInsensitiveMode {
[INFO] [stdout] 10 | |     /// Enable only if the filesystem is probed as case-insensitive.
[INFO] [stdout] 11 | |     #[default]
[INFO] [stdout] 12 | |     Auto,
[INFO] [stdout] ...  |
[INFO] [stdout] 16 | |     On,
[INFO] [stdout] 17 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `Mode for case-insensitive link resolution fallback.`
[INFO] [stdout]    = help: ends near `Mode for case-insensitive link resolution fallback.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/case_index.rs:559:1
[INFO] [stdout]     |
[INFO] [stdout] 559 | / pub fn mode_enabled(mode: CaseInsensitiveMode, dir: &Path) -> bool {
[INFO] [stdout] 560 | |     match mode {
[INFO] [stdout] 561 | |         CaseInsensitiveMode::Off => false,
[INFO] [stdout] 562 | |         CaseInsensitiveMode::On => true,
[INFO] [stdout] ...   |
[INFO] [stdout] 565 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Case-insensitive link resolution (was `hyalo_core::case_index`).`
[INFO] [stdout]     = help: ends near `Resolve a `CaseInsensitiveMode` to a concrete `bool` given a directory.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/case_index.rs:559:1
[INFO] [stdout]     |
[INFO] [stdout] 559 | / pub fn mode_enabled(mode: CaseInsensitiveMode, dir: &Path) -> bool {
[INFO] [stdout] 560 | |     match mode {
[INFO] [stdout] 561 | |         CaseInsensitiveMode::Off => false,
[INFO] [stdout] 562 | |         CaseInsensitiveMode::On => true,
[INFO] [stdout] ...   |
[INFO] [stdout] 565 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Resolve a `CaseInsensitiveMode` to a concrete `bool` given a directory.`
[INFO] [stdout]     = help: ends near `Resolve a `CaseInsensitiveMode` to a concrete `bool` given a directory.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/case_index.rs:340:1
[INFO] [stdout]     |
[INFO] [stdout] 340 | / pub fn sweep_stale_case_probes(dir: &Path) -> usize {
[INFO] [stdout] 341 | |     sweep_case_probes_older_than(dir, std::time::Duration::from_mins(1))
[INFO] [stdout] 342 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Case-insensitive link resolution (was `hyalo_core::case_index`).`
[INFO] [stdout]     = help: ends near `probe that was killed between creating and deleting its probe file.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/case_index.rs:340:1
[INFO] [stdout]     |
[INFO] [stdout] 340 | / pub fn sweep_stale_case_probes(dir: &Path) -> usize {
[INFO] [stdout] 341 | |     sweep_case_probes_older_than(dir, std::time::Duration::from_mins(1))
[INFO] [stdout] 342 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Remove orphaned `.hyalo-case-probe-*` files left in `dir` by a fallback`
[INFO] [stdout]     = help: ends near `Remove orphaned `.hyalo-case-probe-*` files left in `dir` by a fallback`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/common_words.rs:842:1
[INFO] [stdout]     |
[INFO] [stdout] 842 | / pub fn is_common_word(title: &str) -> bool {
[INFO] [stdout] 843 | |     let title = title.trim();
[INFO] [stdout] 844 | |     if title.len() < MIN_COMMON_WORD_LEN || !title.is_ascii() {
[INFO] [stdout] 845 | |         return false;
[INFO] [stdout] ...   |
[INFO] [stdout] 870 | |     false
[INFO] [stdout] 871 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Common-word heuristic for `links auto` advisory notes.`
[INFO] [stdout]     = help: ends near `filename, and therefore a likely source of auto-link noise.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/common_words.rs:842:1
[INFO] [stdout]     |
[INFO] [stdout] 842 | / pub fn is_common_word(title: &str) -> bool {
[INFO] [stdout] 843 | |     let title = title.trim();
[INFO] [stdout] 844 | |     if title.len() < MIN_COMMON_WORD_LEN || !title.is_ascii() {
[INFO] [stdout] 845 | |         return false;
[INFO] [stdout] ...   |
[INFO] [stdout] 870 | |     false
[INFO] [stdout] 871 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ``true` when `title` is an ordinary English word or a generic documentation`
[INFO] [stdout]     = help: ends near ``true` when `title` is an ordinary English word or a generic documentation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/fs_util.rs:242:1
[INFO] [stdout]     |
[INFO] [stdout] 242 | / pub fn atomic_write_within(vault_root: &Path, path: &Path, data: &[u8]) -> Result<()> {
[INFO] [stdout] 243 | |     write_impl(Some(vault_root), path, data)
[INFO] [stdout] 244 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Vault-boundary file writing and refusal messaging (was `hyalo_core::fs_util`).`
[INFO] [stdout]     = help: ends near ``vault_root`.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/fs_util.rs:242:1
[INFO] [stdout]     |
[INFO] [stdout] 242 | / pub fn atomic_write_within(vault_root: &Path, path: &Path, data: &[u8]) -> Result<()> {
[INFO] [stdout] 243 | |     write_impl(Some(vault_root), path, data)
[INFO] [stdout] 244 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Like [`atomic_write`], but refuses to follow a symlink whose target escapes`
[INFO] [stdout]     = help: ends near `Like [`atomic_write`], but refuses to follow a symlink whose target escapes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/fs_util.rs:135:1
[INFO] [stdout]     |
[INFO] [stdout] 135 | / pub fn escaping_write_target(vault_root: &Path, path: &Path) -> Result<Option<PathBuf>> {
[INFO] [stdout] 136 | |     let canonical_root = dunce::canonicalize(vault_root).with_context(|| {
[INFO] [stdout] 137 | |         format!(
[INFO] [stdout] 138 | |             "failed to canonicalize vault dir {} while checking a write destination",
[INFO] [stdout] ...   |
[INFO] [stdout] 159 | |     Ok(Some(canonical_anchor.join(suffix)))
[INFO] [stdout] 160 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Vault-boundary file writing and refusal messaging (was `hyalo_core::fs_util`).`
[INFO] [stdout]     = help: ends near `outside `vault_root`.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/fs_util.rs:135:1
[INFO] [stdout]     |
[INFO] [stdout] 135 | / pub fn escaping_write_target(vault_root: &Path, path: &Path) -> Result<Option<PathBuf>> {
[INFO] [stdout] 136 | |     let canonical_root = dunce::canonicalize(vault_root).with_context(|| {
[INFO] [stdout] 137 | |         format!(
[INFO] [stdout] 138 | |             "failed to canonicalize vault dir {} while checking a write destination",
[INFO] [stdout] ...   |
[INFO] [stdout] 159 | |     Ok(Some(canonical_anchor.join(suffix)))
[INFO] [stdout] 160 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Report where a prospective write to `path` would really land, when that is`
[INFO] [stdout]     = help: ends near `Report where a prospective write to `path` would really land, when that is`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/fs_util.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | / pub fn outside_vault_hint(vault_dir: &Path) -> String {
[INFO] [stdout] 112 | |     format!(
[INFO] [stdout] 113 | |         "pass a path relative to {}, or cd to a parent of it",
[INFO] [stdout] 114 | |         vault_dir.display()
[INFO] [stdout] 115 | |     )
[INFO] [stdout] 116 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Vault-boundary file writing and refusal messaging (was `hyalo_core::fs_util`).`
[INFO] [stdout]     = help: ends near `The shared self-healing hint text for a vault-boundary refusal (iter-235).`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/fs_util.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | / pub fn outside_vault_hint(vault_dir: &Path) -> String {
[INFO] [stdout] 112 | |     format!(
[INFO] [stdout] 113 | |         "pass a path relative to {}, or cd to a parent of it",
[INFO] [stdout] 114 | |         vault_dir.display()
[INFO] [stdout] 115 | |     )
[INFO] [stdout] 116 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `The shared self-healing hint text for a vault-boundary refusal (iter-235).`
[INFO] [stdout]     = help: ends near `The shared self-healing hint text for a vault-boundary refusal (iter-235).`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/fs_util.rs:72:1
[INFO] [stdout]    |
[INFO] [stdout] 72 | / pub fn outside_vault_message(subject: &str, resolved: Option<&Path>) -> String {
[INFO] [stdout] 73 | |     match resolved {
[INFO] [stdout] 74 | |         Some(target) => format!(
[INFO] [stdout] 75 | |             "{subject} resolves outside vault boundary: {}",
[INFO] [stdout] ...  |
[INFO] [stdout] 80 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `Vault-boundary file writing and refusal messaging (was `hyalo_core::fs_util`).`
[INFO] [stdout]    = help: ends near `The one wording every vault-boundary refusal in hyalo uses (iter-202 L-16).`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/fs_util.rs:72:1
[INFO] [stdout]    |
[INFO] [stdout] 72 | / pub fn outside_vault_message(subject: &str, resolved: Option<&Path>) -> String {
[INFO] [stdout] 73 | |     match resolved {
[INFO] [stdout] 74 | |         Some(target) => format!(
[INFO] [stdout] 75 | |             "{subject} resolves outside vault boundary: {}",
[INFO] [stdout] ...  |
[INFO] [stdout] 80 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `The one wording every vault-boundary refusal in hyalo uses (iter-202 L-16).`
[INFO] [stdout]    = help: ends near `The one wording every vault-boundary refusal in hyalo uses (iter-202 L-16).`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/fs_util.rs:93:1
[INFO] [stdout]     |
[INFO] [stdout]  93 | / pub fn outside_vault_message_with_dir(
[INFO] [stdout]  94 | |     subject: &str,
[INFO] [stdout]  95 | |     resolved: Option<&Path>,
[INFO] [stdout]  96 | |     vault_dir: &Path,
[INFO] [stdout] ...   |
[INFO] [stdout]  99 | |     format!("{base} (vault: {})", vault_dir.display())
[INFO] [stdout] 100 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Vault-boundary file writing and refusal messaging (was `hyalo_core::fs_util`).`
[INFO] [stdout]     = help: ends near `in the same message, rather than guessing another absolute path.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/fs_util.rs:93:1
[INFO] [stdout]     |
[INFO] [stdout]  93 | / pub fn outside_vault_message_with_dir(
[INFO] [stdout]  94 | |     subject: &str,
[INFO] [stdout]  95 | |     resolved: Option<&Path>,
[INFO] [stdout]  96 | |     vault_dir: &Path,
[INFO] [stdout] ...   |
[INFO] [stdout]  99 | |     format!("{base} (vault: {})", vault_dir.display())
[INFO] [stdout] 100 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Like [`outside_vault_message`] but names the effective vault directory so`
[INFO] [stdout]     = help: ends near `Like [`outside_vault_message`] but names the effective vault directory so`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/util.rs:39:1
[INFO] [stdout]    |
[INFO] [stdout] 39 | / pub fn is_iso8601_date(s: &str) -> bool {
[INFO] [stdout] 40 | |     if s.len() != 10 {
[INFO] [stdout] 41 | |         return false;
[INFO] [stdout] ...  |
[INFO] [stdout] 65 | |     day <= days_in_month
[INFO] [stdout] 66 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `Date-validation and string-distance helpers used by CLI lint rules.`
[INFO] [stdout]    = help: ends near `actual range, including leap-year February).`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/util.rs:39:1
[INFO] [stdout]    |
[INFO] [stdout] 39 | / pub fn is_iso8601_date(s: &str) -> bool {
[INFO] [stdout] 40 | |     if s.len() != 10 {
[INFO] [stdout] 41 | |         return false;
[INFO] [stdout] ...  |
[INFO] [stdout] 65 | |     day <= days_in_month
[INFO] [stdout] 66 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `Returns `true` for strings that are both YYYY-MM-DD formatted **and**`
[INFO] [stdout]    = help: ends near `Returns `true` for strings that are both YYYY-MM-DD formatted **and**`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/util.rs:74:1
[INFO] [stdout]     |
[INFO] [stdout]  74 | / pub fn is_iso8601_datetime(s: &str) -> bool {
[INFO] [stdout]  75 | |     if s.len() != 19 {
[INFO] [stdout]  76 | |         return false;
[INFO] [stdout] ...   |
[INFO] [stdout] 103 | |     hour < 24 && minute < 60 && second < 60
[INFO] [stdout] 104 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Date-validation and string-distance helpers used by CLI lint rules.`
[INFO] [stdout]     = help: ends near `strict: no `Z` suffix, no timezone offset, no fractional seconds.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/util.rs:74:1
[INFO] [stdout]     |
[INFO] [stdout]  74 | / pub fn is_iso8601_datetime(s: &str) -> bool {
[INFO] [stdout]  75 | |     if s.len() != 19 {
[INFO] [stdout]  76 | |         return false;
[INFO] [stdout] ...   |
[INFO] [stdout] 103 | |     hour < 24 && minute < 60 && second < 60
[INFO] [stdout] 104 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Returns `true` for strings that are both `YYYY-MM-DDThh:mm:ss` formatted`
[INFO] [stdout]     = help: ends near `Returns `true` for strings that are both `YYYY-MM-DDThh:mm:ss` formatted`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/util.rs:119:1
[INFO] [stdout]     |
[INFO] [stdout] 119 | / pub fn is_iso8601_datetime_tz(s: &str) -> bool {
[INFO] [stdout] 120 | |     // Split off the offset suffix, then validate the leading naive datetime.
[INFO] [stdout] 121 | |     let Some(base) = s.get(..19) else {
[INFO] [stdout] 122 | |         return false;
[INFO] [stdout] ...   |
[INFO] [stdout] 128 | |     is_valid_tz_offset(offset)
[INFO] [stdout] 129 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Date-validation and string-distance helpers used by CLI lint rules.`
[INFO] [stdout]     = help: ends near `either the literal `Z` (UTC / Zulu) or a numeric offset `±hh:mm`.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/util.rs:119:1
[INFO] [stdout]     |
[INFO] [stdout] 119 | / pub fn is_iso8601_datetime_tz(s: &str) -> bool {
[INFO] [stdout] 120 | |     // Split off the offset suffix, then validate the leading naive datetime.
[INFO] [stdout] 121 | |     let Some(base) = s.get(..19) else {
[INFO] [stdout] 122 | |         return false;
[INFO] [stdout] ...   |
[INFO] [stdout] 128 | |     is_valid_tz_offset(offset)
[INFO] [stdout] 129 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Returns `true` for RFC 3339 / ISO 8601 timezone-aware datetimes, i.e. a`
[INFO] [stdout]     = help: ends near `Returns `true` for RFC 3339 / ISO 8601 timezone-aware datetimes, i.e. a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/util.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | / pub fn levenshtein(a: &str, b: &str) -> usize {
[INFO] [stdout]  6 | |     let a: Vec<char> = a.chars().collect();
[INFO] [stdout]  7 | |     let b: Vec<char> = b.chars().collect();
[INFO] [stdout] ...  |
[INFO] [stdout] 30 | |     prev[n]
[INFO] [stdout] 31 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `Date-validation and string-distance helpers used by CLI lint rules.`
[INFO] [stdout]    = help: ends near `Compute the Levenshtein edit distance between two strings.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/util.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | / pub fn levenshtein(a: &str, b: &str) -> usize {
[INFO] [stdout]  6 | |     let a: Vec<char> = a.chars().collect();
[INFO] [stdout]  7 | |     let b: Vec<char> = b.chars().collect();
[INFO] [stdout] ...  |
[INFO] [stdout] 30 | |     prev[n]
[INFO] [stdout] 31 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `Compute the Levenshtein edit distance between two strings.`
[INFO] [stdout]    = help: ends near `Compute the Levenshtein edit distance between two strings.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not document `hyalo-core`
[INFO] running `Command { std: "docker" "inspect" "5384f563542daaea00309060fa411e085b11ac866b32fac119481dd8846423f4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5384f563542daaea00309060fa411e085b11ac866b32fac119481dd8846423f4", kill_on_drop: false }`
[INFO] [stdout] 5384f563542daaea00309060fa411e085b11ac866b32fac119481dd8846423f4
