Go to file
caoqianming 976ef45e87 core(POST /v1/tasks/{id}/messages): 同 task 单活 run 锁 + 启动 reaper
挡住"用户连点 send 两条 → 两个 BG 线程争 messages.idx UniqueConstraint
race"的旧 TODO。POST /messages 把所有权 + 活跃 Run 检查 + 新 Run INSERT
收进一个事务,首步 SELECT Task … FOR UPDATE 锁 task 行,命中 running 已
存在则 409。lifespan 加 stale-run reaper,把进程 crash 留下的孤儿 running
标 error,避免对应 task 被 409 永挂。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 08:27:48 +08:00
config Initial import: zcbot personal task agent 2026-05-06 11:02:59 +08:00
core core(0003): name + working_dir + skill schema 重构 + per-user .memory 2026-05-17 19:15:37 +08:00
db/migrations core(0003): name + working_dir + skill schema 重构 + per-user .memory 2026-05-17 19:15:37 +08:00
prompts/system 修三处 v3 遗留: Iconify 不触发 / mkdir -p 误创目录 / 平台无知 2026-05-06 13:12:17 +08:00
skills core(0003): name + working_dir + skill schema 重构 + per-user .memory 2026-05-17 19:15:37 +08:00
tools 修三处 v3 遗留: Iconify 不触发 / mkdir -p 误创目录 / 平台无知 2026-05-06 13:12:17 +08:00
web core(POST /v1/tasks/{id}/messages): 同 task 单活 run 锁 + 启动 reaper 2026-05-18 08:27:48 +08:00
.gitignore 添加col.ps1到gitignore 2026-05-08 08:03:49 +08:00
CLAUDE.md core(§7 D + D'): /v1 JSON API + PLATFORM_KEY→JWT auth + dev SPA 2026-05-15 16:14:25 +08:00
DESIGN.md core(POST /v1/tasks/{id}/messages): 同 task 单活 run 锁 + 启动 reaper 2026-05-18 08:27:48 +08:00
PROGRESS.md core(POST /v1/tasks/{id}/messages): 同 task 单活 run 锁 + 启动 reaper 2026-05-18 08:27:48 +08:00
RUN.md core(POST /v1/tasks/{id}/messages): 同 task 单活 run 锁 + 启动 reaper 2026-05-18 08:27:48 +08:00
alembic.ini core(§7 B Step 1): Storage 基建 — SQLAlchemy ORM + alembic + db CLI 2026-05-14 10:41:44 +08:00
cli.py core(0003): name + working_dir + skill schema 重构 + per-user .memory 2026-05-17 19:15:37 +08:00
main.py core(0003): name + working_dir + skill schema 重构 + per-user .memory 2026-05-17 19:15:37 +08:00
requirements.txt core(§7 D + D'): /v1 JSON API + PLATFORM_KEY→JWT auth + dev SPA 2026-05-15 16:14:25 +08:00