fix(permission): 新建对话时优先加载个人空间偏好的默认权限模式
- core/web_terminal.py: create_new_conversation 中反转权限模式优先级, 优先使用 prefs.default_permission_mode,无效时再 fallback 到终端当前模式 - server/conversation.py: active_task 分支创建视图对话时同样使用用户偏好
This commit is contained in:
parent
bd338f7ad4
commit
a2a04b9529
@ -130,13 +130,14 @@ class WebTerminal(MainTerminal):
|
||||
logger.warning("忽略无效默认模型 %s: %s", preferred_model, exc)
|
||||
|
||||
preferred_mode = prefs.get("default_run_mode")
|
||||
preferred_permission_mode = None
|
||||
try:
|
||||
preferred_permission_mode = self.get_permission_mode()
|
||||
except Exception:
|
||||
preferred_permission_mode = None
|
||||
preferred_permission_mode = prefs.get("default_permission_mode") or None
|
||||
if preferred_permission_mode not in ("readonly", "approval", "auto_approval", "unrestricted"):
|
||||
try:
|
||||
preferred_permission_mode = self.get_permission_mode()
|
||||
except Exception:
|
||||
preferred_permission_mode = None
|
||||
if not isinstance(preferred_permission_mode, str) or not preferred_permission_mode.strip():
|
||||
preferred_permission_mode = prefs.get("default_permission_mode") or "unrestricted"
|
||||
preferred_permission_mode = "unrestricted"
|
||||
if isinstance(preferred_mode, str) and preferred_mode.lower() in {"fast", "thinking", "deep"}:
|
||||
try:
|
||||
self.set_run_mode(preferred_mode.lower())
|
||||
|
||||
@ -482,6 +482,9 @@ def create_conversation(terminal: WebTerminal, workspace: UserWorkspace, usernam
|
||||
safe_run_mode = candidate if candidate in {"fast", "thinking", "deep"} else "fast"
|
||||
safe_thinking = bool(thinking_mode) if thinking_mode is not None else safe_run_mode != "fast"
|
||||
previous_cm_current = getattr(cm, "current_conversation_id", None)
|
||||
default_permission_mode = (prefs or {}).get("default_permission_mode")
|
||||
if default_permission_mode not in ("readonly", "approval", "auto_approval", "unrestricted"):
|
||||
default_permission_mode = None
|
||||
conversation_id = cm.create_conversation(
|
||||
project_path=str(workspace.project_path),
|
||||
thinking_mode=safe_thinking,
|
||||
@ -489,7 +492,7 @@ def create_conversation(terminal: WebTerminal, workspace: UserWorkspace, usernam
|
||||
initial_messages=[],
|
||||
model_key=(prefs or {}).get("default_model") or getattr(terminal, "model_key", None),
|
||||
metadata_overrides={
|
||||
"permission_mode": getattr(terminal, "get_permission_mode", lambda: "unrestricted")(),
|
||||
"permission_mode": default_permission_mode or getattr(terminal, "get_permission_mode", lambda: "unrestricted")(),
|
||||
"execution_mode": getattr(terminal, "get_execution_mode", lambda: "sandbox")(),
|
||||
},
|
||||
)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user