fix(tools): respect session cwd in file tools

This commit is contained in:
Gille
2026-06-15 14:00:42 +05:30
committed by kshitijk4poor
parent 95715dcb03
commit d6a8d9dcab
3 changed files with 91 additions and 10 deletions
+23 -1
View File
@@ -21,6 +21,7 @@ from pathlib import Path
import pytest
import tools.file_tools as ft
import tools.terminal_tool as terminal_tool
@pytest.fixture
@@ -218,6 +219,28 @@ def test_absolute_terminal_cwd_anchors_with_empty_registry(_isolated_cwd, monkey
assert not str(resolved).startswith(str(decoy))
def test_registered_task_cwd_override_anchors_before_terminal_env_exists(_isolated_cwd, monkeypatch):
"""TUI/Desktop sessions register cwd by raw session key before tools run.
CWD-only overrides collapse to the shared terminal environment key, but the
file resolver must still read the raw task/session override before falling
back to TERMINAL_CWD or the process cwd.
"""
workspace, decoy = _isolated_cwd
task_id = "desktop-session-cwd"
monkeypatch.setattr(ft, "_get_live_tracking_cwd", lambda task_id="default": None)
monkeypatch.delenv("TERMINAL_CWD", raising=False)
monkeypatch.setattr(terminal_tool, "_task_env_overrides", {})
terminal_tool.register_task_env_overrides(task_id, {"cwd": str(workspace)})
resolved = ft._resolve_path_for_task("target.py", task_id=task_id)
assert terminal_tool._resolve_container_task_id(task_id) == "default"
assert resolved == (workspace / "target.py")
assert not str(resolved).startswith(str(decoy))
def test_warning_fires_from_terminal_cwd_when_registry_empty(_isolated_cwd, monkeypatch):
"""Divergence warning must fire even before any terminal command runs.
@@ -291,4 +314,3 @@ def test_patch_reports_resolved_absolute_path(_isolated_cwd, monkeypatch):
assert "WORKSPACE_PATCHED" in (workspace / "target.py").read_text()
# And the decoy copy is untouched.
assert (decoy / "target.py").read_text() == "DECOY_ORIGINAL\n"