V3.4 负责人验收制+邮件修复+事件面板+真实网页交付

- 项目级验收:全部任务完成后进入「待验收」,邮件通知负责人,验收通过才算完成;公开验收链接 /review/<token> 免登录一键通过/打回(打回必填原因)
- 打回自动返工:自动生成含负责人意见的返工任务,AI主管立即重做并再次提交验收;平台内也可验收
- 真实网页交付:任务HTML产出自动落盘工作目录(剥离围栏/前置叙述),Demo展示真实页面;返工产出覆盖入口页;老项目已回填
- 事件记录面板:合并AI主管动态+任务日志+交付记录,可展开/收起(记忆状态),任务事件可点击定位
- 邮件通道修复:补 Date/Message-ID 头(amavisd 拒收 invalid header section 根因),打包附件/通知恢复送达;notify.py 改标准 MIME
- 规划重试:WBS 拆解失败自动重试3次,仍失败邮件通知负责人
- 项目状态新增 review(待验收),全端展示
This commit is contained in:
2026-08-14 13:33:59 +08:00
parent 3b5c06fdd9
commit 7c4cbf8994
10 changed files with 514 additions and 42 deletions
+10
View File
@@ -28,6 +28,8 @@ CREATE TABLE IF NOT EXISTS projects (
auto_message TEXT DEFAULT '', -- V3.3 自动开工最新动态
auto_started_at INTEGER, -- V3.3 最近一次自动开工时间
auto_finished_at INTEGER, -- V3.3 最近一次自动收尾时间
review_token TEXT DEFAULT '', -- V3.4 项目验收令牌(发给负责人,公开链接免登录验收)
review_required INTEGER DEFAULT 1, -- V3.4 是否需负责人验收后才算完成(默认需要)
created_at INTEGER,
updated_at INTEGER
);
@@ -428,6 +430,14 @@ def _migrate():
):
if col not in pcols:
conn.execute(ddl)
# V3.4:负责人验收
pcols = {r['name'] for r in conn.execute('PRAGMA table_info(projects)')}
for col, ddl in (
('review_token', "ALTER TABLE projects ADD COLUMN review_token TEXT DEFAULT ''"),
('review_required', 'ALTER TABLE projects ADD COLUMN review_required INTEGER DEFAULT 1'),
):
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,