Skip to content

fix(memory): --features extract compile désormais seule#1610

Merged
cyberlife-coder merged 2 commits into
developfrom
fix/extract-feature-compiles-alone
Jul 26, 2026
Merged

fix(memory): --features extract compile désormais seule#1610
cyberlife-coder merged 2 commits into
developfrom
fix/extract-feature-compiles-alone

Conversation

@cyberlife-coder

Copy link
Copy Markdown
Owner

Dette pré-existante, reproduite puis corrigée.

Le rouge

$ cargo check -p velesdb-memory --no-default-features --features extract
error[E0425]: cannot find function `keep_alive` in module `crate::embedder`

puis, une fois celle-là levée :

error[E0425]: cannot find value `DEFAULT_KEEP_ALIVE` in this scope

Les deux sont gatés sur ollama, alors qu'extract.rs les appelle et que extract = ["dep:ureq"] ne tire pas ollama.

Le correctif

cfg(any(feature = "ollama", feature = "extract")) plutôt que d'ajouter ollama aux dépendances d'extract : un utilisateur qui ne veut que l'extraction n'a pas à embarquer l'embedder.

Pourquoi la CI ne pouvait pas l'attraper

Son garde-fou est cargo check --workspace --no-default-features. Sur un workspace, les features s'unifient entre crates : une feature qui ne compile que grâce à une voisine activée ailleurs passe quand même. C'est exactement ce qui s'est produit — ollama était toujours présent via un autre membre.

Chaque feature optionnelle de velesdb-memory est désormais vérifiée isolément, dans une boucle bornée avec des groupes de log lisibles.

Matrice vérifiée en local

<aucune>, extract, ollama, ollama,extract, context, persistence, context,persistence — les sept passent.

cargo check -p velesdb-memory --no-default-features --features extract
echouait sur 'cannot find function keep_alive', puis sur DEFAULT_KEEP_ALIVE :
les deux etaient gates sur 'ollama', alors qu'extract.rs les appelle et que
extract = [dep:ureq] ne tire pas ollama. Defaut pre-existant.

Les deux passent en cfg(any(ollama, extract)) plutot que d'ajouter ollama aux
dependances d'extract : un utilisateur qui ne veut que l'extraction n'a pas a
embarquer l'embedder.

La CI ne pouvait pas l'attraper. Son check --no-default-features porte sur le
WORKSPACE, donc les features s'unifient entre crates et une feature qui ne
compile que grace a une voisine passe quand meme. Chaque feature optionnelle
de velesdb-memory est desormais verifiee isolement.

Matrice verifiee en local : aucune, extract, ollama, ollama+extract, context,
persistence, context+persistence.
@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 0 complexity

Metric Results
Complexity 0

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

Le nouveau gate par-feature l'a immediatement attrape : avec RUSTFLAGS=-Dwarnings
comme en CI, --features ollama, extract ou persistence echouaient sur
'function stable_id_bytes is never used'.

La fonction est pub, mais le module id est pub(crate) : hors du crate elle
n'est joignable par personne, et son seul appelant est context/media.rs, qui
adresse par contenu des octets bruts. Sans la feature context, elle est donc
reellement morte.

Gatee sur cfg(feature = context), ses deux tests aussi, plutot qu'un
allow(dead_code) qui aurait masque le fait au lieu de le dire.

Matrice verifiee sous -Dwarnings : aucune, ollama, extract, context,
persistence, context+persistence, ollama+extract.
@cyberlife-coder
cyberlife-coder merged commit 6113933 into develop Jul 26, 2026
39 checks passed
@cyberlife-coder
cyberlife-coder deleted the fix/extract-feature-compiles-alone branch July 26, 2026 19:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant