feat(memory): restore Dream model preset override (#5107)

This commit is contained in:
chengyongru
2026-07-27 14:43:25 +08:00
committed by GitHub
parent 281b4b7f0b
commit c13df29457
8 changed files with 66 additions and 3 deletions
+16
View File
@@ -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
+3
View File
@@ -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(
+18
View File
@@ -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": {