V3.3 AI主管自动开工:新建项目必选AI主管+多选干活团队,创建即自动跑起来
- 新建项目必填 AI 主管(manager_worker_id)+ 干活团队(project_team_workers 多选,默认AI牛/AI马),均可随时更换
- 创建后立即自动开工:AI主管WBS拆解→轮询分派团队→DAG自动执行→全程监控(autostart.py)
- 失败任务由AI主管诊断原因并修订指令重试(最多2次),全程记入 project_logs 动态
- 项目页新增「AI主管动态」面板:状态/最新动态/主管与团队/动态流水,运行中每3秒自动刷新看板
- 支持手动「🚀 AI主管开工」:已有任务跳过规划直接执行存量;换主管/团队后按新配置生效
- 收工自动汇总完成数/失败数/待审核数/总成本,触发交付体系通知送达者
- 老库自动迁移:projects 新增 manager_worker_id/auto_status 等列 + project_team_workers/project_logs 表
This commit is contained in:
@@ -23,10 +23,23 @@ CREATE TABLE IF NOT EXISTS projects (
|
||||
workspace_dir TEXT DEFAULT '', -- 项目工作目录(相对 data/ 的目录名)
|
||||
demo_url TEXT DEFAULT '', -- 网页交付物 Demo 访问地址
|
||||
delivered_at INTEGER, -- 最近一次交付/送达时间
|
||||
manager_worker_id INTEGER, -- V3.3 AI 主管 Worker id(负责拆解/派活/监控)
|
||||
auto_status TEXT DEFAULT 'none', -- V3.3 自动开工状态 none/running/done/failed
|
||||
auto_message TEXT DEFAULT '', -- V3.3 自动开工最新动态
|
||||
auto_started_at INTEGER, -- V3.3 最近一次自动开工时间
|
||||
auto_finished_at INTEGER, -- V3.3 最近一次自动收尾时间
|
||||
created_at INTEGER,
|
||||
updated_at INTEGER
|
||||
);
|
||||
|
||||
-- V3.3 项目干活团队:AI 主管支配的多个 Worker
|
||||
CREATE TABLE IF NOT EXISTS project_team_workers (
|
||||
project_id INTEGER NOT NULL,
|
||||
worker_id INTEGER NOT NULL,
|
||||
created_at INTEGER,
|
||||
PRIMARY KEY (project_id, worker_id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS workers (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name TEXT NOT NULL,
|
||||
@@ -73,6 +86,15 @@ CREATE TABLE IF NOT EXISTS task_logs (
|
||||
created_at INTEGER
|
||||
);
|
||||
|
||||
-- V3.3 AI 主管项目级动态(拆解/派活/监控/诊断重试)
|
||||
CREATE TABLE IF NOT EXISTS project_logs (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
project_id INTEGER NOT NULL,
|
||||
level TEXT DEFAULT 'info',
|
||||
message TEXT DEFAULT '',
|
||||
created_at INTEGER
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS cost_records (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
task_id INTEGER,
|
||||
@@ -396,6 +418,29 @@ def _migrate():
|
||||
# V3.2:projects 送达者改为用户 id(实时取邮箱)
|
||||
if 'deliver_user_id' not in pcols:
|
||||
conn.execute('ALTER TABLE projects ADD COLUMN deliver_user_id INTEGER')
|
||||
# V3.3:projects AI 主管 + 自动开工状态
|
||||
for col, ddl in (
|
||||
('manager_worker_id', 'ALTER TABLE projects ADD COLUMN manager_worker_id INTEGER'),
|
||||
('auto_status', "ALTER TABLE projects ADD COLUMN auto_status TEXT DEFAULT 'none'"),
|
||||
('auto_message', "ALTER TABLE projects ADD COLUMN auto_message TEXT DEFAULT ''"),
|
||||
('auto_started_at', 'ALTER TABLE projects ADD COLUMN auto_started_at INTEGER'),
|
||||
('auto_finished_at', 'ALTER TABLE projects ADD COLUMN auto_finished_at INTEGER'),
|
||||
):
|
||||
if col not in pcols:
|
||||
conn.execute(ddl)
|
||||
conn.execute('''CREATE TABLE IF NOT EXISTS project_team_workers (
|
||||
project_id INTEGER NOT NULL,
|
||||
worker_id INTEGER NOT NULL,
|
||||
created_at INTEGER,
|
||||
PRIMARY KEY (project_id, worker_id)
|
||||
)''')
|
||||
conn.execute('''CREATE TABLE IF NOT EXISTS project_logs (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
project_id INTEGER NOT NULL,
|
||||
level TEXT DEFAULT 'info',
|
||||
message TEXT DEFAULT '',
|
||||
created_at INTEGER
|
||||
)''')
|
||||
# V3.2:users 邮箱列 + 存量用户默认邮箱 + 旧项目按邮箱回填送达者用户
|
||||
ucols = {r['name'] for r in conn.execute('PRAGMA table_info(users)')}
|
||||
if 'email' not in ucols:
|
||||
|
||||
Reference in New Issue
Block a user