mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-09-04 02:01:48 +03:00
refactor(agent): let runner own context compaction (#5568)
* refactor(agent): consolidate accepted history under pressure * fix(agent): align provider and session compaction * refactor(agent): simplify runner context compaction * refactor(agent): remove background token consolidation * fix(agent): keep injected transcript messages distinct * refactor(agent): unify native compaction summaries * fix(agent): preserve native compaction boundary * fix(agent): unify context compaction paths * fix(agent): preserve exact compaction request boundaries
This commit is contained in:
@@ -404,10 +404,9 @@ class TestEphemeralDirect:
|
||||
with (
|
||||
patch("nanobot.agent.loop.SessionManager"),
|
||||
patch("nanobot.agent.loop.SubagentManager") as mock_sub,
|
||||
patch("nanobot.agent.loop.Consolidator") as mock_consolidator_cls,
|
||||
patch("nanobot.agent.loop.Consolidator"),
|
||||
):
|
||||
mock_sub.return_value.cancel_by_session = AsyncMock(return_value=0)
|
||||
mock_consolidator_cls.return_value.maybe_consolidate_by_tokens = AsyncMock()
|
||||
loop = AgentLoop(
|
||||
bus=bus,
|
||||
provider=provider,
|
||||
@@ -493,20 +492,6 @@ class TestEphemeralDirect:
|
||||
|
||||
assert captured.get("ephemeral") is False
|
||||
|
||||
async def test_ephemeral_skips_consolidator(self, tmp_path, _make_loop):
|
||||
"""When ephemeral=True, consolidator.maybe_consolidate_by_tokens is not called."""
|
||||
from unittest.mock import patch
|
||||
|
||||
loop, store = _make_loop
|
||||
|
||||
with patch.object(
|
||||
loop.consolidator, "maybe_consolidate_by_tokens",
|
||||
) as mock_consolidate:
|
||||
await loop.process_direct(
|
||||
"test", session_key="dream:consolidate-test", ephemeral=True,
|
||||
)
|
||||
mock_consolidate.assert_not_called()
|
||||
|
||||
async def test_ephemeral_response_reports_stop_reason(self, tmp_path, _make_loop):
|
||||
loop, store = _make_loop
|
||||
loop.provider.chat_with_retry.return_value = LLMResponse(
|
||||
@@ -701,10 +686,9 @@ class TestEphemeralHooks:
|
||||
with (
|
||||
patch("nanobot.agent.loop.SessionManager"),
|
||||
patch("nanobot.agent.loop.SubagentManager") as mock_sub,
|
||||
patch("nanobot.agent.loop.Consolidator") as mock_consolidator_cls,
|
||||
patch("nanobot.agent.loop.Consolidator"),
|
||||
):
|
||||
mock_sub.return_value.cancel_by_session = AsyncMock(return_value=0)
|
||||
mock_consolidator_cls.return_value.maybe_consolidate_by_tokens = AsyncMock()
|
||||
loop = AgentLoop(
|
||||
bus=bus,
|
||||
provider=provider,
|
||||
|
||||
Reference in New Issue
Block a user