重构: 文档汇总+进度看板+孤儿任务清理脚本+gitignore 噪音排除
- docs/02 架构设计: 新增 aichat审查/异步审批构想/流式渲染调研/generating状态机/密钥迁移健壮性/工作流脚本执行边界/条件表达式引擎/F-07 trait下沉/Agent架构说明/任务推进构想/功能创意池;更新功能决策记录+归档/对抗论证/文档记录规范/经验记录
- docs/03 模块文档: 新增 AI对话引擎/DAG引擎详解;更新 df-knowledge/df-nodes/df-storage/df-workflow/df-ai
- docs/05 代码审查: 新增 全栈审查/全局review/架构审查/近期改动审查/工作区多角度走查/自研memo流式渲染审查
- docs/09 问题排查: 新增 aichat-apikey-401
- docs/INDEX+README 索引同步;docs/todo 待办看板(2026-06-15 汇总)
- PROGRESS.md Sprint 22-25;URGENT.md 加急清单快照(5 项 P0 已全修)
- scripts/cleanup_orphan_tasks.{py,sh} 孤儿任务清理工具
- .gitignore 补 *.broken.bak + tmp/ 噪音排除
This commit is contained in:
75
scripts/cleanup_orphan_tasks.sh
Normal file
75
scripts/cleanup_orphan_tasks.sh
Normal file
@@ -0,0 +1,75 @@
|
||||
#!/usr/bin/env bash
|
||||
# 清理孤儿任务 — 删除不属于任何现有项目的任务记录
|
||||
# 用法:bash scripts/cleanup_orphan_tasks.sh
|
||||
#
|
||||
# 数据库路径:Windows %APPDATA%/top.1216.devflow/devflow-dev.db (dev) 或 devflow.db (release)
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# 自动定位数据库文件
|
||||
DB_PATH="${1:-}"
|
||||
|
||||
if [ -z "$DB_PATH" ]; then
|
||||
# 尝试常见路径
|
||||
for candidate in \
|
||||
"$APPDATA/top.1216.devflow/devflow-dev.db" \
|
||||
"$LOCALAPPDATA/top.1216.devflow/devflow-dev.db" \
|
||||
"$HOME/AppData/Roaming/top.1216.devflow/devflow-dev.db"; do
|
||||
if [ -f "$candidate" ]; then
|
||||
DB_PATH="$candidate"
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [ -z "$DB_PATH" ] || [ ! -f "$DB_PATH" ]; then
|
||||
echo "❌ 未找到数据库文件,请手动指定路径:"
|
||||
echo " bash scripts/cleanup_orphan_tasks.sh <db_path>"
|
||||
echo ""
|
||||
echo " 通常位于: %APPDATA%\\top.1216.devflow\\devflow-dev.db"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "📍 数据库: $DB_PATH"
|
||||
echo ""
|
||||
|
||||
# 先查看孤儿任务
|
||||
echo "=== 孤儿任务列表(project_id 不在 projects 表中)==="
|
||||
sqlite3 "$DB_PATH" "
|
||||
SELECT t.id, t.title, t.project_id
|
||||
FROM tasks t
|
||||
LEFT JOIN projects p ON t.project_id = p.id
|
||||
WHERE p.id IS NULL
|
||||
ORDER BY t.project_id, t.created_at;
|
||||
"
|
||||
echo ""
|
||||
|
||||
# 统计数量
|
||||
COUNT=$(sqlite3 "$DB_PATH" "
|
||||
SELECT COUNT(*)
|
||||
FROM tasks t
|
||||
LEFT JOIN projects p ON t.project_id = p.id
|
||||
WHERE p.id IS NULL;
|
||||
")
|
||||
|
||||
echo "📊 孤儿任务总数: $COUNT"
|
||||
echo ""
|
||||
|
||||
if [ "$COUNT" -eq 0 ]; then
|
||||
echo "✅ 无孤儿任务,无需清理。"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
read -p "确认删除以上 $COUNT 条孤儿任务?(y/N) " confirm
|
||||
if [ "$confirm" != "y" ] && [ "$confirm" != "Y" ]; then
|
||||
echo "已取消。"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# 执行删除
|
||||
sqlite3 "$DB_PATH" "
|
||||
DELETE FROM tasks
|
||||
WHERE project_id NOT IN (SELECT id FROM projects);
|
||||
"
|
||||
|
||||
echo "✅ 已删除 $COUNT 条孤儿任务。"
|
||||
Reference in New Issue
Block a user