fix(project): create_project默认project_type去SDLC语义(web_app→general)+补pipeline_id/default_model参数——pipeline_id必须与alloc_project_dir的space一致,此前目录按general建而pipeline_id走DB默认sdlc_general,工作空间解析space=pipeline_id错位;注:本函数当前无调用方(实建项目走agent_loop_v2._t_create_project与bidding直插),此修复为防御性,生效路径是m0018迁移改DB列默认值
This commit is contained in:
parent
655d50bde8
commit
ac82d2f32d
@ -85,29 +85,38 @@ async def _transition(project_id, from_state, to_state, action,
|
||||
return True, to_state
|
||||
|
||||
|
||||
async def create_project(name, project_type="web_app", description="",
|
||||
org_id="0", created_by="", who=None, agent_id=None):
|
||||
"""创建项目:新建记录,status=draft。返回 (ok, project_id_or_message)。"""
|
||||
async def create_project(name, project_type="general", description="",
|
||||
org_id="0", created_by="", who=None, agent_id=None,
|
||||
pipeline_id="", default_model=""):
|
||||
"""创建项目:新建记录,status=draft。返回 (ok, project_id_or_message)。
|
||||
|
||||
pipeline_id 必须与建目录用的 space 一致(工作空间解析 space=pipeline_id,
|
||||
不一致会导致「上传落盘目录 ≠ agent 工作目录」错位)。缺省 'general' 表示
|
||||
通用会话项目,不挂任何产线。
|
||||
"""
|
||||
if not name or not name.strip():
|
||||
return False, "缺少项目名称"
|
||||
db, dbname = _get_db()
|
||||
async with db.sqlorContext(dbname) as sor:
|
||||
pid = getID()
|
||||
space = pipeline_id or 'general'
|
||||
# 创建时定死项目目录并写库(统一机制:解析只读库不推导,
|
||||
# 保证上传落盘=agent工作目录=工作控件显示目录)
|
||||
from .workspace import alloc_project_dir
|
||||
ws_path, dname = await alloc_project_dir(
|
||||
sor, org_id or '0', 'general', name.strip(), pid)
|
||||
sor, org_id or '0', space, name.strip(), pid)
|
||||
await sor.C(TABLE, {
|
||||
'id': pid,
|
||||
'name': name.strip(),
|
||||
'description': description or '',
|
||||
'project_type': project_type or 'web_app',
|
||||
'project_type': project_type or 'general',
|
||||
'status': S_DRAFT,
|
||||
'org_id': org_id or '0',
|
||||
'created_by': created_by or '',
|
||||
'workspace_dir': ws_path,
|
||||
'directory_name': dname,
|
||||
'pipeline_id': space,
|
||||
'default_model': default_model or '',
|
||||
})
|
||||
await record_audit(pid, TABLE, pid, 'create',
|
||||
to_state=S_DRAFT, who=_normalize_role(who),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user