@@ -305,7 +305,7 @@ def observe(
305305 run_name = run_name ,
306306 dataset_item_id = dataset_item_id ,
307307 trace_id = trace_id ,
308- metadata = run_metadata or {"testing_framework" : "tavern-e2e" },
308+ metadata = run_metadata or {},
309309 run_description = "" ,
310310 )
311311 _log .debug (
@@ -383,14 +383,31 @@ def build_run_context(
383383 dataset_name : str ,
384384 run_timestamp : str | None ,
385385 model_version_override : str | None ,
386+ run_metadata_extra : dict [str , Any ] | None = None ,
386387) -> tuple [str , dict [str , Any ]]:
387- """Return (run_name_base, run_metadata) with model version resolved from workspace API."""
388+ """Return (run_name_base, run_metadata) with model version resolved from workspace API.
389+
390+ Args:
391+ host: GoodData host URL.
392+ token: API token used to resolve the workspace model version.
393+ workspace_id: Workspace whose active LLM provider is read when no override is given.
394+ dataset_name: Langfuse dataset name; used as the run-name prefix.
395+ run_timestamp: Shared run timestamp for the run name (falls back to the current time).
396+ model_version_override: Explicit model-version tag; when set it wins over the
397+ workspace lookup.
398+ run_metadata_extra: Optional extra key/values added to the dataset-run metadata
399+ (e.g. a testing-framework tag or a CI run id for scoping). Default None keeps
400+ behavior unchanged. The SDK-derived model_version is applied last and cannot
401+ be overwritten by this dict.
402+ """
388403 model = get_model_version (host , token , workspace_id , model_version_override )
389404 ts = run_timestamp or datetime .now ().strftime ("%Y-%m-%d_%H-%M-%S" )
390405 base = f"{ dataset_name } _{ ts } "
391406 if model :
392407 base = f"{ base } _{ model } "
393- metadata : dict [str , Any ] = {"testing_framework" : "tavern-e2e" }
408+ # Caller supplies its own run tags (e.g. testing_framework); model_version is applied
409+ # last so the SDK-derived value cannot be overwritten by run_metadata_extra.
410+ metadata : dict [str , Any ] = dict (run_metadata_extra ) if run_metadata_extra else {}
394411 if model :
395412 metadata ["model_version" ] = model
396413 return base , metadata
0 commit comments