[security] fix(workspace): restrict session workspaces to trusted roots (#416)
* fix(workspace): restrict session workspaces to trusted roots * fix: use boot-time DEFAULT_WORKSPACE instead of profile default for trusted workspace root _profile_default_workspace() reads the agent's terminal.cwd which may differ from the WebUI's configured workspace root. Use _BOOT_DEFAULT_WORKSPACE (which respects HERMES_WEBUI_DEFAULT_WORKSPACE for test isolation) to stay consistent with how new_session() seeds the initial workspace. * docs: v0.50.34 release — version badge and CHANGELOG --------- Co-authored-by: hinotoi-agent <paperlantern.agent@gmail.com> Co-authored-by: Nathan Esquenazi <nesquena@gmail.com>
This commit is contained in:
@@ -145,10 +145,13 @@ def test_session_update():
|
||||
"""Create session, update workspace and model, verify persisted."""
|
||||
data, _ = post("/api/session/new", {})
|
||||
sid = data["session"]["session_id"]
|
||||
current_ws = pathlib.Path(data["session"]["workspace"])
|
||||
child_ws = current_ws / f"session-update-{uuid.uuid4().hex[:6]}"
|
||||
child_ws.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
updated, status = post("/api/session/update", {
|
||||
"session_id": sid,
|
||||
"workspace": "/tmp",
|
||||
"workspace": str(child_ws),
|
||||
"model": "anthropic/claude-sonnet-4.6"
|
||||
})
|
||||
assert status == 200
|
||||
|
||||
Reference in New Issue
Block a user