Description
crates/zeph-skills/src/matcher.rs has doc comments on SkillMatcherBackend methods that reference [Self::Qdrant] unconditionally, but the Qdrant variant itself is behind #[cfg(feature = "qdrant")] (matcher.rs:570-571). When the crate is documented without the qdrant feature enabled, rustdoc's intra-doc link resolver cannot find Self::Qdrant and the link is broken.
Discovered while working on #6481 (unrelated zeph-skills embedding refactor): confirmed via git stash that the failure reproduces identically on an unmodified main checkout, so it predates and is unrelated to that change.
Note: the project's own CI-matching rustdoc gate (.claude/rules/branching.md, feature set desktop,ide,server,chat,pdf,scheduler) does not include the qdrant feature, so this does not currently fail local pre-commit checks or (presumably) CI's rustdoc job — it only surfaces when documenting with --all-features/full or another feature superset that omits qdrant. Worth confirming whether any CI job actually builds docs with qdrant disabled; if not, this bug is currently invisible to the standard gate.
Reproduction Steps
- From repo root:
RUSTDOCFLAGS="--deny rustdoc::broken_intra_doc_links" cargo doc --no-deps -p zeph-skills --features full (or any feature superset that does not enable qdrant, or a build with default features only)
- Observe rustdoc error(s) for broken intra-doc links to
Self::Qdrant
Expected Behavior
Doc comments referencing Self::Qdrant should resolve correctly regardless of whether the qdrant feature is enabled, or should be written so they don't produce a broken-link error when the variant doesn't exist in the current feature set (e.g. via #[cfg_attr(docsrs, doc(cfg(feature = "qdrant")))] plus feature-gating the reference itself, or rephrasing to avoid an intra-doc link when unavailable).
Actual Behavior
cargo doc with --deny rustdoc::broken_intra_doc_links fails on crates/zeph-skills/src/matcher.rs:578 and :609 (both reference [Self::Qdrant]) when the qdrant feature is not enabled.
Environment
- Version: main, confirmed 2026-07-20
- Component:
crates/zeph-skills/src/matcher.rs
Logs / Evidence
See PR #6532 description for the discovery context (developer's handoff during #6481 implementation).
Description
crates/zeph-skills/src/matcher.rshas doc comments onSkillMatcherBackendmethods that reference[Self::Qdrant]unconditionally, but theQdrantvariant itself is behind#[cfg(feature = "qdrant")](matcher.rs:570-571). When the crate is documented without theqdrantfeature enabled, rustdoc's intra-doc link resolver cannot findSelf::Qdrantand the link is broken.Discovered while working on #6481 (unrelated
zeph-skillsembedding refactor): confirmed viagit stashthat the failure reproduces identically on an unmodifiedmaincheckout, so it predates and is unrelated to that change.Note: the project's own CI-matching rustdoc gate (
.claude/rules/branching.md, feature setdesktop,ide,server,chat,pdf,scheduler) does not include theqdrantfeature, so this does not currently fail local pre-commit checks or (presumably) CI'srustdocjob — it only surfaces when documenting with--all-features/fullor another feature superset that omitsqdrant. Worth confirming whether any CI job actually builds docs withqdrantdisabled; if not, this bug is currently invisible to the standard gate.Reproduction Steps
RUSTDOCFLAGS="--deny rustdoc::broken_intra_doc_links" cargo doc --no-deps -p zeph-skills --features full(or any feature superset that does not enableqdrant, or a build with default features only)Self::QdrantExpected Behavior
Doc comments referencing
Self::Qdrantshould resolve correctly regardless of whether theqdrantfeature is enabled, or should be written so they don't produce a broken-link error when the variant doesn't exist in the current feature set (e.g. via#[cfg_attr(docsrs, doc(cfg(feature = "qdrant")))]plus feature-gating the reference itself, or rephrasing to avoid an intra-doc link when unavailable).Actual Behavior
cargo docwith--deny rustdoc::broken_intra_doc_linksfails oncrates/zeph-skills/src/matcher.rs:578and:609(both reference[Self::Qdrant]) when theqdrantfeature is not enabled.Environment
crates/zeph-skills/src/matcher.rsLogs / Evidence
See PR #6532 description for the discovery context (developer's handoff during #6481 implementation).