mirror of
https://github.com/usestrix/strix.git
synced 2026-08-23 11:22:37 +02:00
fix: --config flag now fully overrides ~/.strix/cli-config.json (#457)
* fix: --config flag now fully overrides ~/.strix/cli-config.json (fixes #377) Previously, env vars applied from the default config at module import time were not cleared when --config was later processed, causing settings from ~/.strix/cli-config.json to leak into runs that specified a custom config. Track which vars were applied by the initial default-config load in Config._applied_from_default. In apply_config_override, clear those vars before applying the custom config so only the custom file's settings take effect. * Add config override regression test * Make config override test setup explicit --------- Co-authored-by: octo-patch <octo-patch@github.com> Co-authored-by: bearsyankees <bearsyankees@gmail.com>
This commit is contained in:
co-authored by
octo-patch
bearsyankees
parent
60abc09ff9
commit
9fb101282f
+10
-1
@@ -2,7 +2,7 @@ import contextlib
|
||||
import json
|
||||
import os
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
from typing import Any, ClassVar
|
||||
|
||||
|
||||
STRIX_API_BASE = "https://models.strix.ai/api/v1"
|
||||
@@ -56,6 +56,10 @@ class Config:
|
||||
# Config file override (set via --config CLI arg)
|
||||
_config_file_override: Path | None = None
|
||||
|
||||
# Tracks env vars set by the initial default-config load so they can be
|
||||
# cleared when a --config override is later applied (avoids leakage).
|
||||
_applied_from_default: ClassVar[dict[str, str]] = {}
|
||||
|
||||
@classmethod
|
||||
def _tracked_names(cls) -> list[str]:
|
||||
return [
|
||||
@@ -151,6 +155,11 @@ class Config:
|
||||
os.environ[var_name] = var_value
|
||||
applied[var_name] = var_value
|
||||
|
||||
# Record what was applied from the default config so it can be cleared
|
||||
# if a --config override is later provided (prevents leakage).
|
||||
if cls._config_file_override is None and not force:
|
||||
cls._applied_from_default = applied
|
||||
|
||||
return applied
|
||||
|
||||
@classmethod
|
||||
|
||||
Reference in New Issue
Block a user