fix(sandbox): improve sandbox security and preserve multimodal content (#2114)

* fix: improve sandbox security and preserve multimodal content

* Add unit test modifications for test_injects_uploaded_files_tag_into_list_content

* format updated_content

* Add regression tests for multimodal upload content and host bash default safety
This commit is contained in:
yorick
2026-04-11 16:52:10 +08:00
committed by GitHub
parent 024ac0e464
commit 02569136df
4 changed files with 25 additions and 13 deletions
@@ -1,5 +1,6 @@
from types import SimpleNamespace
from deerflow.sandbox.security import is_host_bash_allowed
from deerflow.tools.tools import get_available_tools
@@ -79,3 +80,8 @@ def test_get_available_tools_keeps_bash_for_aio_sandbox(monkeypatch):
assert "bash" in names
assert "ls" in names
def test_is_host_bash_allowed_defaults_false_when_sandbox_missing():
assert is_host_bash_allowed(SimpleNamespace()) is False
assert is_host_bash_allowed(SimpleNamespace(sandbox=None)) is False
@@ -256,8 +256,10 @@ class TestBeforeAgent:
assert result is not None
updated_msg = result["messages"][-1]
assert "<uploaded_files>" in updated_msg.content
assert "analyse this" in updated_msg.content
assert isinstance(updated_msg.content, list)
combined_text = "\n".join(block.get("text", "") for block in updated_msg.content if isinstance(block, dict))
assert "<uploaded_files>" in combined_text
assert "analyse this" in combined_text
def test_preserves_additional_kwargs_on_updated_message(self, tmp_path):
mw = _middleware(tmp_path)