fix(cli): resolve four runtime bugs flagged in PR #578 review

- embed search: embed query text before calling search_vectors (was passing
  raw string to query_vector positional arg, causing TypeError on every call)
- ontology version: import OntologyVersionManager not OntologyVersioning
  (symbol never existed; command always failed even with package installed)
- ingest --watch: forward watch flag into _ingest() kwargs (was accepted
  but silently dropped, so --watch had no effect)
- store migrate: replace fake success stub with honest ClickException pointing
  to the export+embed-index workaround (no bulk-dump API exists in vector store layer)
This commit is contained in:
KaifAhmad1
2026-06-01 11:27:59 +05:30
parent b22c93e9ec
commit eef5f9a850
+15 -10
View File
@@ -668,6 +668,8 @@ def ingest(
kwargs["format"] = fmt
if recursive:
kwargs["recursive"] = True
if watch:
kwargs["watch"] = True
if store_override or cli_ctx.store_backend:
kwargs["store"] = store_override or cli_ctx.store_backend
if output:
@@ -960,10 +962,12 @@ def embed_search(cli_ctx: CLIContext, query_text: str, store: Optional[str],
def _action() -> None:
try:
from .embeddings.methods import embed_text
from .vector_store import search_vectors
query_vector = embed_text(query_text)
results = search_vectors(
query=query_text,
top_k=top_k,
query_vector,
k=top_k,
hybrid=hybrid,
store=store or cli_ctx.vector_store_backend,
namespace=namespace,
@@ -2079,8 +2083,8 @@ def ontology_version(cli_ctx: CLIContext, local_json: bool) -> None:
def _action() -> None:
try:
from .change_management import OntologyVersioning
v = OntologyVersioning(config=cli_ctx.config.to_dict())
from .change_management import OntologyVersionManager
v = OntologyVersionManager(**cli_ctx.config.to_dict())
result = v.current()
except ImportError as exc:
raise click.ClickException(f"Change management module not available: {exc}") from exc
@@ -2520,12 +2524,13 @@ def store_migrate(cli_ctx: CLIContext, from_backend: str, to_backend: str,
if _is_dry(cli_ctx, local_dry):
_dry(cli_ctx, "migrate", from_backend=from_backend, to_backend=to_backend)
return
try:
from .vector_store import store_vectors
result = {"migrated": True, "from": from_backend, "to": to_backend}
except ImportError as exc:
raise click.ClickException(f"Store module not available: {exc}") from exc
_ok(cli_ctx, f"Migrated {from_backend}{to_backend}")
raise click.ClickException(
f"Direct backend migration ({from_backend}{to_backend}) is not yet supported "
"by the vector store layer. To migrate, export your data first:\n"
" semantica export --format parquet --output dump.parquet\n"
f" semantica embed index dump.parquet --store {to_backend}"
+ (f" --namespace {namespace}" if namespace else "")
)
_run_with_error_handling(_action)