From 2742a1fc42056322f555b93f89f054a908c798a2 Mon Sep 17 00:00:00 2001 From: mptyl Date: Tue, 7 Jul 2026 13:48:02 +0200 Subject: [PATCH] feat(finalize): auto-index the question->SQL pair (best-effort, never blocks) Co-Authored-By: Claude Fable 5 --- harness/tht/cli/session_cmd.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/harness/tht/cli/session_cmd.py b/harness/tht/cli/session_cmd.py index 01862561..57bc60ad 100644 --- a/harness/tht/cli/session_cmd.py +++ b/harness/tht/cli/session_cmd.py @@ -474,6 +474,25 @@ def finalize_cmd(session_id: str = typer.Argument(...), config: Path = CONFIG_OP manifest.updated_at = datetime.now(UTC) manifest.updated_by = current_author() manifest.to_yaml(sdir / MANIFEST) + # --- memoria attiva (parte B): indicizza la coppia domanda->SQL, best-effort --- + # Import lazy: memory_cmd importa da session_cmd (un import top-level qui sarebbe + # circolare). Qualunque errore (writer key assente, VPN giu', Ollama spento) NON + # deve bloccare il finalize: l'indice e' derivato e recuperabile con + # `tht memory solved-index `. + try: + from tht.cli.memory_cmd import index_solved_session + + if index_solved_session(cfg, session_id): + typer.secho( + "OK: coppia domanda->SQL indicizzata nel vectordb (solved_question).", + fg=typer.colors.GREEN, + ) + except Exception as e: + typer.secho( + f"ATTENZIONE: coppia domanda->SQL non indicizzata ({e}). " + f"Recupera con `tht memory solved-index {session_id}`.", + fg=typer.colors.YELLOW, err=True, + ) typer.secho(f"OK: sessione {session_id} finalizzata. Artefatti:", fg=typer.colors.GREEN) for name in ARTIFACT_FILES: state = "presente" if (sdir / name).exists() else "assente"