DELETE /v1/tasks/{id} 从硬删(DELETE + CASCADE + rmdir)改为软删(置 deleted_at),
messages/usage_events 及工作目录文件全部保留,留作训练语料且可恢复;新增
POST /v1/tasks/{id}/restore;list_tasks/list_folders 计数过滤 deleted_at IS NULL;
delete_file 顶层目录 409 引用检查排除软删 task(避免"任务删了文件夹却删不掉")。
0010 migration 加 tasks.deleted_at(additive 可空,存量行自动视为未删)。
推翻 DESIGN 原 hard-cascade 决策;文件归档方案(restic 备份 + DB 事件日志)写入 DESIGN 待办。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| 20260514_0930_0001_initial_schema.py | ||
| 20260515_1011_0002_task_dir_relative.py | ||
| 20260517_1830_0003_task_name_and_working_dir.py | ||
| 20260518_1200_0004_drop_runs_usage_events.py | ||
| 20260519_1500_0005_users_email_unique.py | ||
| 20260519_1600_0006_usage_events_v2_and_message_model.py | ||
| 20260520_1800_0007_cost_usd_to_cny.py | ||
| 20260527_1000_0008_user_disk_usage.py | ||
| 20260612_1000_0009_users_role.py | ||
| 20260617_1000_0010_task_soft_delete.py | ||