1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
[]
= "fathomdb-engine"
= "FathomDB engine — embedded vector + JSON database core (storage, projection, ingest, query)."
# 0.8.20 Slice 39 (R-20-DOC) — see the fathomdb facade manifest for the rationale
# behind `readme` being explicit and `categories` being absent (HITL seq-198).
= "README.md"
= ["database", "embedded", "sqlite", "vector-search", "full-text-search"]
= true
= true
= true
# 0.8.20 Slice 39 (R-20-DOC): ships the repo-root MIT LICENSE inside this
# crate's `.crate` tarball. Path is resolved relative to the workspace root.
= true
= true
= true
[]
= true
= true
= true
= true
= { = "0.31", = ["bundled"] }
= { = "0.18", = false }
= "1"
= "0.11"
= "=0.1.7"
[]
= []
# Slice 27 fix-1 (Q5=BIND-RUST, AC-074): the operator/recovery seam
# (rebuild_*, excise_source, dump_*, trace_source_ref, truncate_wal,
# verify_embedder, check_integrity, safe_export, recompute_mean + their
# operator-exclusive private helpers) is gated behind this feature so the
# DEFAULT engine surface is recovery-clean at the method level. Behavior is
# identical with the feature on (gate, not delete). `fathomdb-cli` enables it.
= []
# EU-5b: turning on this feature causes `EmbedderChoice::Default` to
# materialize a real `CandleBgeEmbedder` via the loader at `Engine::open`.
# Without it, `EmbedderChoice::Default` returns a typed `EmbedderError`
# rather than attempting a network fetch (preserves the no-network build
# closure per ADR-0.7.1-default-embedder-weight-fetch).
= ["fathomdb-embedder/default-embedder"]
# GPU acceleration (opt-in; forwards to the embedder; default stays CPU).
# Activate at runtime via FATHOMDB_EMBED_DEVICE=cuda|metal.
= ["default-embedder", "fathomdb-embedder/embed-cuda"]
= ["default-embedder", "fathomdb-embedder/embed-metal"]
# 0.8.1 Slice 10 (R1): enabling this feature gates the CPU cross-encoder CE
# inference path (TinyBERT-L-2 via Candle) in `rerank_fused`. Without this
# feature, `rerank_fused` is always the identity (soft-fallback) path — no
# network call, no ML dependency. With the feature ON and weights cached
# locally, `rerank_depth > 0` activates the CE scorer + score-blend.
# Design memo: dev/design/0.8.1-slice-10-reranker-design.md.
# 0.8.2 Slice E1: forwards to the embedder's `default-reranker` feature, which
# owns the Candle + tokenizers CE stack (`CandleTinyBertReranker`). The default
# engine build enables neither, staying ML-free + no-network.
= ["fathomdb-embedder/default-reranker"]
# 0.8.12 — GPU acceleration for the CE reranker (opt-in; forwards to the
# embedder; default stays CPU). Activate at runtime via the separate knob
# FATHOMDB_RERANK_DEVICE=cuda|metal. Mirrors the embed-cuda passthrough.
= ["default-reranker", "fathomdb-embedder/rerank-cuda"]
= ["default-reranker", "fathomdb-embedder/rerank-metal"]
# The corpus-ingest example calls the operator-seam `trace_source_ref`, so it
# only builds when the `operator` feature is enabled (skipped on default builds).
[[]]
= "ingest_corpus"
= ["operator"]
# Slice 27 fix-2: these integration-test targets exercise the operator/recovery
# `Engine` methods that fix-1 gated behind `operator`. They are PURE-operator
# (every `#[test]` calls a gated method), so the whole target is skipped on the
# default build and runs under `--features operator`. This makes
# `cargo test -p fathomdb-engine` (default) compile again without un-gating any
# method. (The mixed `pr2b_mean_recompute.rs` is NOT here — its non-operator
# carve-out test stays default-runnable via per-fn `#[cfg(feature = "operator")]`.)
[[]]
= "check_integrity"
= ["operator"]
[[]]
= "dump_profile"
= ["operator"]
[[]]
= "dump_row_counts"
= ["operator"]
[[]]
= "dump_schema"
= ["operator"]
[[]]
= "eu7_real_corpus_ac"
= ["operator"]
[[]]
= "erasure_projection_registry"
= ["operator"]
[[]]
= "erasure_completeness"
= ["operator"]
[[]]
= "provenance_mandatory"
= ["operator"]
[[]]
= "excise_source"
= ["operator"]
[[]]
= "rebuild_projections"
= ["operator"]
[[]]
= "rebuild_report"
= ["operator"]
[[]]
= "rebuild_vec0"
= ["operator"]
[[]]
= "safe_export"
= ["operator"]
[[]]
= "trace_source_ref"
= ["operator"]
[[]]
= "truncate_wal"
= ["operator"]
[[]]
= "verify_embedder"
= ["operator"]
# 0.8.2 Slice E1: the CE-reorders test exercises the real reranker, so the whole
# target only compiles/runs under `--features default-reranker`. The default
# build skips it (and the soft-fallback identity tests in `pr_g10_reranker.rs`
# stay default-runnable).
[[]]
= "pr_g10_reranker_ce"
= ["default-reranker"]
# 0.8.2 Slice E2: the standalone-rerank helper (`rerank_passages`) reorder test
# exercises the real reranker, so the whole target only compiles/runs under
# `--features default-reranker` (same gate as `pr_g10_reranker_ce`).
[[]]
= "pr_e2_rerank_passages"
= ["default-reranker"]
# 0.8.2 Slice E2 fix-1 [P2]: is_finite guard tests — no feature gate because the
# guard fires before the CE model path (depth/feature state irrelevant).
[[]]
= "pr_e2_rerank_nonfinite"
[]
= "0.2"
= "1"
= { = "0.31", = ["bundled"] }
= "1"
= "0.11"
= "3"