Comfy-Org / Comfy-Org/github-workflows
cursor-review: label-scoped concurrency lets a veto race an in-flight panel; workflows_ref duplicates the uses: SHA by hand
- Ngôn ngữ chính
- Shell
- Star
- 6
- Fork
- 1
- Merge trung bình
- 14 giờ 9 phút
- Pull request đã merge (30 ngày)
- 99
Mô tả
Two findings from the Cursor panel reviewing a thin caller (comfy-typescript-sdk#111), both properties of the shared pattern rather than of any one caller, so filing here where the fix can land once.
## 1. The documented caller concurrency group can't cancel across labels
The recommended caller sets:
```yaml
group: cursor-review-pr-${{ github.event.pull_request.number }}-${{ github.event.label.name }}
```
The label in the group is load-bearing (this workflow fires on every `labeled`/`unlabeled` event, and a shared per-PR group with `cancel-in-progress: true` would let ANY label add kill an in-flight panel). But it also means the two events that interact — `labeled: cursor-review` and the veto/unblock label — land in different groups and never cancel each other: applying `skip-cursor-review` while a panel is mid-flight runs a Gate that vetoes nothing already running, and toggling both within a panel's runtime can land two full reviews (the head-SHA dedupe is check-then-act, evaluated before either posts). Since the Gate owns the label semantics, the clean fix is probably Gate-side: on a veto event, cancel the PR's in-flight review runs via the API rather than relying on group collision.
## 2. `workflows_ref` is a hand-maintained duplicate of the `uses:` SHA
Every caller pins the reusable workflow by SHA and must copy the same SHA into `workflows_ref` so prompts/scripts load from the same commit — enforced only by a comment. A bump that updates one and not the other silently runs the workflow definition from one commit and its scripts from another. Options: default `workflows_ref` to the workflow's own ref where resolvable, or add a startup assertion that the two match and fail loudly.
Raised by: gpt-5.6-sol-max + claude-opus-5-thinking-max + kimi-k3-high panel legs on the caller PR.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu với điểm vào Gate dùng chung và cách xử lý workflow có thể tái sử dụng của workflows_ref; theo dõi cách các sự kiện có nhãn và không có nhãn hình thành các nhóm đồng thời, cũng như cách các bên gọi ghép uses: với workflows_ref. Công việc được xem là hoàn tất khi các lệnh phủ quyết hủy các lượt đánh giá PR đang thực hiện và độ lệch SHA được phát hiện hoặc loại bỏ, với phạm vi kiểm thử bao phủ cả các cuộc đua giữa các sự kiện và các điểm không khớp của ref.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- github-actions
- Lĩnh vực
- ci-cd, devops
- Loại issue
- Lỗi
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức độ hoạt động
- Sôi nổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100