feat(memory): restore Dream model preset override (#5107)
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
import pytest
|
||||
|
||||
from nanobot.agent.memory import MemoryStore
|
||||
from nanobot.config.schema import ModelPresetConfig
|
||||
from nanobot.providers.base import LLMResponse
|
||||
from nanobot.security.workspace_access import (
|
||||
bind_workspace_scope,
|
||||
@@ -385,6 +386,21 @@ class TestEphemeralDirect:
|
||||
|
||||
return loop, store
|
||||
|
||||
def test_dream_runtime_uses_preset_without_changing_default(self, _make_loop):
|
||||
loop, _ = _make_loop
|
||||
loop.runtime_resolver._model_presets = {
|
||||
"dream": ModelPresetConfig(model="dream-model"),
|
||||
}
|
||||
loop.dream_model_preset = "dream"
|
||||
|
||||
runtime = loop.dream_runtime()
|
||||
|
||||
assert runtime is not None
|
||||
assert runtime.model == "dream-model"
|
||||
assert runtime.model_preset == "dream"
|
||||
assert loop.model == "test-model"
|
||||
assert loop.model_preset is None
|
||||
|
||||
async def test_ephemeral_skips_raw_archive(self, tmp_path, _make_loop):
|
||||
"""When ephemeral=True, raw_archive must not be called."""
|
||||
from unittest.mock import patch
|
||||
|
||||
@@ -171,11 +171,13 @@ async def test_dream_internal_run_silences_progress(tmp_path) -> None:
|
||||
|
||||
sessions_dir = tmp_path / "sessions"
|
||||
sessions_dir.mkdir()
|
||||
dream_runtime = object()
|
||||
loop = SimpleNamespace(
|
||||
bus=bus,
|
||||
context=SimpleNamespace(memory=store, timezone="UTC"),
|
||||
sessions=SimpleNamespace(sessions_dir=sessions_dir),
|
||||
process_direct=process_direct,
|
||||
dream_runtime=lambda: dream_runtime,
|
||||
)
|
||||
ctx = CommandContext(msg=msg, session=None, key=msg.session_key, raw="/dream", args="", loop=loop)
|
||||
|
||||
@@ -184,6 +186,7 @@ async def test_dream_internal_run_silences_progress(tmp_path) -> None:
|
||||
|
||||
assert len(calls) == 1
|
||||
assert callable(calls[0][1]["on_progress"])
|
||||
assert calls[0][1]["runtime"] is dream_runtime
|
||||
|
||||
|
||||
def _build_runnable_dream(
|
||||
|
||||
@@ -267,6 +267,24 @@ def test_validator_rejects_unknown_preset() -> None:
|
||||
})
|
||||
|
||||
|
||||
def test_validator_accepts_dream_model_preset() -> None:
|
||||
config = Config.model_validate({
|
||||
"modelPresets": {
|
||||
"dream": {"model": "anthropic/claude-haiku-4-5", "provider": "anthropic"},
|
||||
},
|
||||
"agents": {"defaults": {"dream": {"modelOverride": "dream"}}},
|
||||
})
|
||||
|
||||
assert config.agents.defaults.dream.model_override == "dream"
|
||||
|
||||
|
||||
def test_validator_rejects_unknown_dream_model_preset() -> None:
|
||||
with pytest.raises(ValueError, match="Dream model preset 'unknown' not found"):
|
||||
Config.model_validate({
|
||||
"agents": {"defaults": {"dream": {"modelOverride": "unknown"}}},
|
||||
})
|
||||
|
||||
|
||||
def test_model_preset_accepts_explicit_default_name() -> None:
|
||||
config = Config.model_validate({
|
||||
"agents": {
|
||||
|
||||
Reference in New Issue
Block a user