Từ chối, rework & xung đột merge
Đối tượng: approver khi diff chưa đạt hoặc merge bị conflict. Điều kiện: đã quen Review View.
Request Changes — vòng rework (tối đa 3 chu kỳ)
- Trong Review Panel bấm Request Changes → ReworkModal.
- Viết ghi chú cụ thể — đây là toàn b ộ thông tin agent nhận được:
Ghi chú tốt vs ghi chú tệ
- Tệ: "Sửa lại đi".
- Tốt: "Bổ sung try-catch retry 3 lần với backoff khi VNPay timeout, thêm unit test cho nhánh timeout".
- Server ghi
task_runsloạirework, bơm ghi chú vào.board/history.md, chuyển task vềin-progresstrên cùng worktree và branch cũ (không rẽ nhánh mới). - Agent sửa xong → quay lại
reviewcho vòng duyệt tiếp. Tra cứu chuỗi verdict:GET /api/tasks/:id/reviews;task_runscórun_indextăng dần vớikind='rework'.
Quá 3 chu kỳ vẫn bị từ chối?
Hệ thống khoá tự chạy lại, task chuyển needs-human để người can thiệp tay.
Xung đột merge — auto-rework đúng 1 lần
Bối cảnh: hai task song song sửa cùng file; task A merge trước; khi approve task B, git báo conflict.
- Bảo vệ repo gốc trước tiên: merge fail →
git merge --abortngay (repo gốc luôn sạch, lock được nhả). Task sangmerge-conflict, API trả 409 có cấu trúc (không phải 500). - Dò xung đột cách ly: trong
task.worktreePath, merge thửmainvào nhánh task, lấy danh sách file conflict, rồi abort — không chiếm lock repo gốc nên không chặn task khác. - Auto-rework đúng 1 lần: ghi hướng dẫn vào
.board/history.md, gọi lại rework vớikind='auto_conflict_resolution'trên cùng worktree. - Agent gỡ xong → merge lần 2 →
done. Agent thất bại →needs-human, giao cho người.
Task không dùng worktree (
useWorktree=false)?Dừng ngay ở needs-human, không auto-rework — không có nơi cách ly để thử. Xử lý tay:
docker exec -it agentjira_server sh -c 'cd <worktreePath> && git status'
Gỡ conflict, commit, rồi approve lại trên UI.
Rollback Wiki & nhánh tri thức
- Rollback trang Wiki (
POST /api/wiki/pages/:slug/revisions/:version/rollback?projectId=…): cần Boardadminvà human thật (cùng cổngwiki:approvevới duyệt draft) — rollback tạo version mới, không ghi đè lịch sử. - Member/agent gọi rollback → 403 ngay tại cổng Board (thiếu
adminhoặc không phải human). - Vượt qua cổng Board nhưng Arkon từ chối quyền → 502 kèm detail (
Failed to roll back page: …): đó là cổng Arkon, liên hệ owner Space / sysadmin kiểm tra department và token. - Merge / close nhánh Wiki (
POST /api/wiki/branches/:id/merge·.../close) cũng cầnadmin+ human — merge là duyệt mọi draft trong nhánh trong 1 transaction (kẹt conflict giữa đường → 409, giữ nguyên để bạn xử lý).