feat(FN-4761): finalize review auto-move docs and release note
Fusion-Task-Id: FN-4761 Fusion-Task-Lineage: b6b1ed73-c396-4dd2-b97f-366272d05c7f
This commit is contained in:
committed by
gsxdsm
parent
9cee0ef083
commit
3d7e737fbe
5
.changeset/FN-4761-pr-reviews.md
Normal file
5
.changeset/FN-4761-pr-reviews.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@runfusion/fusion": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Sync GitHub PR reviews and review comments into Fusion task comments, expose a PR reviews API for dashboard threading, and auto-move in-review tasks back to todo when GitHub review decision changes to CHANGES_REQUESTED while preserving progress/worktree and saving reviewer feedback context.
|
||||||
@@ -1582,6 +1582,12 @@ The GitHub tracking state listener now attaches to every registered project stor
|
|||||||
- `404` when the task has no associated PR
|
- `404` when the task has no associated PR
|
||||||
- `429` when `githubRateLimiter` denies the repo request window, including `retryAfter`/`resetAt` details
|
- `429` when `githubRateLimiter` denies the repo request window, including `retryAfter`/`resetAt` details
|
||||||
|
|
||||||
|
#### PR review ingestion and auto-transition
|
||||||
|
- `POST /api/tasks/:id/pr/refresh` and background `refreshPrInBackground()` call `getPrReviewSnapshot()` and sync review data into task comments with idempotency on `(source, externalId)`.
|
||||||
|
- Synced comment sources are `github-review` and `github-review-comment`; refinement auto-creation is skipped for these external comments.
|
||||||
|
- `GET /api/tasks/:id/pr/reviews` returns the live GitHub review snapshot plus the Fusion-threaded stored review comments for the task.
|
||||||
|
- When review decision transitions to `CHANGES_REQUESTED` while the task is in `in-review`, Fusion auto-moves the task back to `todo` with `preserveProgress` and `preserveWorktree`, writes a `review-feedback` task document, and records run-audit mutation `pr:changes-requested-auto-move`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 14) Key Design Decisions
|
## 14) Key Design Decisions
|
||||||
|
|||||||
@@ -3368,7 +3368,7 @@ export function registerGitGitHubRoutes(ctx: ApiRoutesContext): void {
|
|||||||
const retryAfter = resetTime
|
const retryAfter = resetTime
|
||||||
? Math.max(0, Math.ceil((resetTime.getTime() - Date.now()) / 1000))
|
? Math.max(0, Math.ceil((resetTime.getTime() - Date.now()) / 1000))
|
||||||
: undefined;
|
: undefined;
|
||||||
throw rateLimited("GitHub API rate limit exceeded for this repository", {
|
throw new ApiError(429, "GitHub API rate limit exceeded for this repository", {
|
||||||
retryAfter,
|
retryAfter,
|
||||||
resetAt: resetTime?.toISOString(),
|
resetAt: resetTime?.toISOString(),
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user