From fae274a04d98c89d1ac7cdadfbe496855fb4ce21 Mon Sep 17 00:00:00 2001 From: Yiorgis Gozadinos Date: Thu, 15 Jan 2026 10:30:45 +0200 Subject: [PATCH] Remove defensive checks in info() --- haiku_rag_slim/haiku/rag/app.py | 59 ++++++------------- .../haiku/rag/store/repositories/settings.py | 7 +-- 2 files changed, 19 insertions(+), 47 deletions(-) diff --git a/haiku_rag_slim/haiku/rag/app.py b/haiku_rag_slim/haiku/rag/app.py index 06a71ca0..6305bc70 100644 --- a/haiku_rag_slim/haiku/rag/app.py +++ b/haiku_rag_slim/haiku/rag/app.py @@ -79,7 +79,6 @@ class HaikuRAGApp: # Connect without going through Store to avoid upgrades/validation writes db = lancedb.connect(self.db_path) - table_names = set(db.table_names()) versions = get_package_versions() @@ -90,24 +89,17 @@ class HaikuRAGApp: table_stats = store.get_stats() # Read settings after Store init (migrations have run) - stored_version = "unknown" - embed_provider: str | None = None - embed_model: str | None = None - vector_dim: int | None = None - - if "settings" in table_names: - settings_tbl = db.open_table("settings") - arrow = settings_tbl.search().where("id = 'settings'").limit(1).to_arrow() - rows = arrow.to_pylist() if arrow is not None else [] - if rows: - raw = rows[0].get("settings") or "{}" - data = json.loads(raw) if isinstance(raw, str) else (raw or {}) - stored_version = str(data.get("version", stored_version)) - embeddings = data.get("embeddings", {}) - embed_model_obj = embeddings.get("model", {}) - embed_provider = embed_model_obj.get("provider") - embed_model = embed_model_obj.get("name") - vector_dim = embed_model_obj.get("vector_dim") + settings_tbl = db.open_table("settings") + arrow = settings_tbl.search().where("id = 'settings'").limit(1).to_arrow() + rows = arrow.to_pylist() + raw = rows[0].get("settings") or "{}" + data = json.loads(raw) if isinstance(raw, str) else (raw or {}) + stored_version = str(data.get("version", "unknown")) + embeddings = data.get("embeddings", {}) + embed_model_obj = embeddings.get("model", {}) + embed_provider = embed_model_obj.get("provider", "unknown") + embed_model = embed_model_obj.get("name", "unknown") + vector_dim = embed_model_obj.get("vector_dim") store.close() @@ -122,32 +114,17 @@ class HaikuRAGApp: num_unindexed_rows = table_stats["chunks"].get("num_unindexed_rows", 0) # Table versions per table (direct API) - doc_versions = ( - len(list(db.open_table("documents").list_versions())) - if "documents" in table_names - else 0 - ) - chunk_versions = ( - len(list(db.open_table("chunks").list_versions())) - if "chunks" in table_names - else 0 - ) + doc_versions = len(list(db.open_table("documents").list_versions())) + chunk_versions = len(list(db.open_table("chunks").list_versions())) self.console.print( f" [repr.attrib_name]haiku.rag version (db)[/repr.attrib_name]: {stored_version}" ) - if embed_provider or embed_model or vector_dim: - provider_part = embed_provider or "unknown" - model_part = embed_model or "unknown" - dim_part = f"{vector_dim}" if vector_dim is not None else "unknown" - self.console.print( - " [repr.attrib_name]embeddings[/repr.attrib_name]: " - f"{provider_part}/{model_part} (dim: {dim_part})" - ) - else: - self.console.print( - " [repr.attrib_name]embeddings[/repr.attrib_name]: unknown" - ) + dim_part = f"{vector_dim}" if vector_dim is not None else "unknown" + self.console.print( + " [repr.attrib_name]embeddings[/repr.attrib_name]: " + f"{embed_provider}/{embed_model} (dim: {dim_part})" + ) self.console.print( f" [repr.attrib_name]documents[/repr.attrib_name]: {num_docs} " f"({format_bytes(doc_bytes)})" diff --git a/haiku_rag_slim/haiku/rag/store/repositories/settings.py b/haiku_rag_slim/haiku/rag/store/repositories/settings.py index 4e8b8dc2..79f86e4c 100644 --- a/haiku_rag_slim/haiku/rag/store/repositories/settings.py +++ b/haiku_rag_slim/haiku/rag/store/repositories/settings.py @@ -85,12 +85,7 @@ class SettingsRepository: if existing: # Preserve existing version if present to avoid interfering with upgrade flow - try: - existing_settings = ( - json.loads(existing[0].settings) if existing[0].settings else {} - ) - except Exception: - existing_settings = {} + existing_settings = json.loads(existing[0].settings) if "version" in existing_settings: current_config["version"] = existing_settings["version"]