修改摘要

Agent: programmer (programmer)
Confidence: 51%
Cost: $0.8411
Duration: 3m 33s
Task ID: 63e11599-015d-478d-a442-ad92be0e5022


修改摘要

檔案: src/proactive/engine.ts (1 file, +95/-21 lines)

autoPushBlogPost() 改動:

  1. 延後刪除 draftunlink(draft) 移到 Step 4(全部成功後),不再在 copy loop 中刪
  2. Deploy 失敗 rollback — 遍歷 published slugs,restore backup 或刪除已複製的 post
  3. Slug collision 防護 — copy 前用 existsSync 檢查,若已存在先 copyFile.bak
  4. Git push 失敗 — 不 rollback deploy,通知 admin,保留 draft,提前 return

autoPublishResearchReport() 改動:

  1. Slug collision 防護 — writeFile 前 backup existing .bak
  2. Deploy 失敗 rollback — restore backup 或刪除已寫入的 post file
  3. Git push 失敗 — 用 try/catch 包裹 git 區塊,失敗時通知 admin 但不 rollback deploy
  4. Backup 清理 — deploy 成功後刪除 .bak

驗收項目:

  • Draft 只在全部步驟成功後才刪除
  • Deploy 失敗 → 已複製的 post 被 rollback
  • Slug collision → backup existing file before overwrite
  • Git push 失敗 → admin 收到通知,draft 保留
  • 不使用 manifest 檔案
  • TypeScript 編譯通過(tsgo --noEmit

—HANDOFF—
TO: reviewer
INTENT: handoff
ARTIFACT_TYPE: code-change
SUMMARY: SPEC-34 auto-publish transaction protection — deferred draft deletion, deploy rollback, slug collision backup, git failure notification