refactor(mention): 重构 _validate_thread_id 为公有函数以防范跨模块访问 protected 成员

This commit is contained in:
supreme0597 2026-05-22 13:30:26 +08:00
parent 27fb208c81
commit 8b7d006cf8
2 changed files with 5 additions and 5 deletions

View File

@ -21,7 +21,7 @@ def get_virtual_path_prefix() -> str:
return "/" + VIRTUAL_PATH_PREFIX.strip("/")
def _validate_thread_id(thread_id: str) -> str:
def validate_thread_id(thread_id: str) -> str:
value = str(thread_id or "").strip()
if not value:
raise ValueError("thread_id is required")
@ -31,7 +31,7 @@ def _validate_thread_id(thread_id: str) -> str:
def _thread_root_dir(thread_id: str) -> Path:
safe_thread_id = _validate_thread_id(thread_id)
safe_thread_id = validate_thread_id(thread_id)
return Path(conf.save_dir) / "threads" / safe_thread_id / "user-data"
@ -55,7 +55,7 @@ def sandbox_user_data_dir(thread_id: str) -> Path:
def sandbox_workspace_dir(thread_id: str, user_id: str) -> Path:
_validate_thread_id(thread_id)
validate_thread_id(thread_id)
return _global_user_data_dir(user_id) / WORKSPACE_DIR_NAME

View File

@ -43,9 +43,9 @@ async def search_mention_files(
# 此时该 thread 专属的 uploads/outputs 目录还没创建或为空,
# 用户仅能安全地搜索到自己全局的工作区 (workspace) 文件。
try:
from yuxi.agents.backends.sandbox.paths import _validate_thread_id
from yuxi.agents.backends.sandbox.paths import validate_thread_id
_validate_thread_id(thread_id)
validate_thread_id(thread_id)
except ValueError:
raise HTTPException(status_code=400, detail="非法的 thread_id 格式")