diff --git a/tui_gateway/session_compression.py b/tui_gateway/session_compression.py index 05d5b8ad36..e2e6f54975 100644 --- a/tui_gateway/session_compression.py +++ b/tui_gateway/session_compression.py @@ -242,7 +242,13 @@ def _compress_session_history( request = parse_compress_args(focus_topic or "") if request.aggressive: raise ValueError(AGGRESSIVE_UNSUPPORTED) - result = compress_now(agent, before_messages, request, task_id=session.get("session_key") or "default") + # RPC thread: bind the session cwd, or the boundary prompt rebuild resolves the backend's cwd and + # persists a prompt every other process then rejects as stale runtime (fresh build, no tools pin). + tokens = _set_session_context(session.get("session_key") or "", cwd=_session_cwd(session)) + try: + result = compress_now(agent, before_messages, request, task_id=session.get("session_key") or "default") + finally: + _clear_session_context(tokens) if result.status == "preview": return 0, _get_usage(agent) # Lock-skipped: raise so callers surface a clear message instead of "No changes from compression".