Skip to content

Fix ARIEL enhancement pipeline & semantic search (#193)#194

Open
thellert wants to merge 1 commit intomainfrom
fix/ariel-enhancement-factory-193
Open

Fix ARIEL enhancement pipeline & semantic search (#193)#194
thellert wants to merge 1 commit intomainfrom
fix/ariel-enhancement-factory-193

Conversation

@thellert
Copy link
Copy Markdown
Collaborator

Summary

Fixes #193osprey ariel enhance --module text_embedding returns "No enhancement modules enabled or selected" and semantic search returns no results.

Root cause: The enhancement factory called registry.list_ariel_enhancement_modules(), which requires registry.initialize() to populate the internal _registries dict. But CLI commands (enhance, quickstart) never call initialize(), so the factory always returned an empty list — no embeddings were ever generated.

Fix: The factory now reads module registrations directly from registry.config.ariel_enhancement_modules (populated at construction time, no initialize() needed) and imports classes inline via importlib. This affects all three CLI code paths: enhance, quickstart, and status.

Changes

  • factory.py — Use registry.config registrations + inline imports instead of _registries dict
  • ariel.py — Improved error message with actionable config.yml guidance
  • test_enhancement_factory_real_registry.py — New regression tests using a real (non-mock) registry to prevent this class of bug
  • E2E tests — Hardened ARIEL E2E tests against transient API rate limits (convert 429s to pytest.skip)

Test plan

  • New regression tests pass (5/5) — previously 4/5 failed
  • Existing enhancement tests pass (47/47) — no regressions
  • Full ARIEL test suite passes (777/777)
  • Full project test suite passes (4074 passed, 0 failed)
  • E2E tests pass (26 passed, 1 skipped due to rate limit)

The enhancement factory relied on registry.list_ariel_enhancement_modules(),
which requires registry.initialize() — but CLI commands like `osprey ariel
enhance` and `osprey ariel quickstart` never call initialize(). This caused
create_enhancers_from_config() to return [], silently skipping all
enhancement work including text embedding generation.

Fix: read module registrations directly from registry.config (populated at
construction) and import classes inline via importlib, bypassing the need
for full registry initialization.

Also: improve "no modules enabled" error message with actionable guidance,
harden ARIEL E2E tests against transient API rate limits, and add regression
tests using a real (non-mock) registry.
@RemiLehe
Copy link
Copy Markdown
Collaborator

I confirm that this fixes the problem, thanks!

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.

Ariel tutorial: how to enable/use text embeddings for semantic search?

2 participants