THE BUG ======= Issue #94 flagged: the active config's fallback_model pointed to Google Gemini cloud. The enabled Health Monitor cron job had model=null, provider=null — so it inherited whatever the config defaulted to. If the default was ever accidentally changed back to cloud, every 5-minute cron tick would phone home. THE FIX ======= config.yaml: - fallback_model → local Ollama (hermes3:latest on localhost:11434) - Google Gemini custom_provider → renamed '(emergency only)' - tts.openai.model → disabled (use edge TTS locally) cron/jobs.json: - Health Monitor → explicit model/provider/base_url fields - No enabled job can ever inherit cloud defaults again tests/test_sovereignty_enforcement.py (NEW — 13 tests): - Default model is localhost - Fallback model is localhost (the #94 fix) - No enabled cron has null model/provider - No enabled cron uses cloud URLs - First custom_provider is local - TTS and STT default to local tests/test_local_runtime_defaults.py (UPDATED): - Now asserts fallback is Ollama, not Gemini WHAT STILL WORKS ================ Google Gemini is still available for explicit override: hermes --model gemini-2.5-pro It's just not automatic anymore. You have to ask for it. FULL SUITE ========== 36/36 pass. Zero regressions. Closes #94 Signed-off-by: gemini <gemini@hermes.local>
23 lines
743 B
Python
23 lines
743 B
Python
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
|
|
import yaml
|
|
|
|
|
|
def test_config_defaults_to_local_llama_cpp_runtime() -> None:
|
|
config = yaml.safe_load(Path("config.yaml").read_text())
|
|
|
|
assert config["model"]["provider"] == "custom"
|
|
assert config["model"]["default"] == "hermes4:14b"
|
|
assert config["model"]["base_url"] == "http://localhost:8081/v1"
|
|
|
|
local_provider = next(
|
|
entry for entry in config["custom_providers"] if entry["name"] == "Local llama.cpp"
|
|
)
|
|
assert local_provider["model"] == "hermes4:14b"
|
|
|
|
assert config["fallback_model"]["provider"] == "ollama"
|
|
assert config["fallback_model"]["model"] == "hermes3:latest"
|
|
assert "localhost" in config["fallback_model"]["base_url"]
|