fix(FN-4761): correct review-feedback document persistence

Fusion-Task-Id: FN-4761
Fusion-Task-Lineage: b6b1ed73-c396-4dd2-b97f-366272d05c7f
This commit is contained in:
Fusion (runfusion.ai)
2026-05-17 10:48:10 -07:00
committed by gsxdsm
parent 5bde911bdb
commit 9cee0ef083
2 changed files with 18 additions and 2 deletions

View File

@@ -36,7 +36,7 @@ function createStore(task: Task): TaskStore {
updatePrInfo: vi.fn().mockResolvedValue(undefined),
addComment: vi.fn().mockResolvedValue(task),
moveTask: vi.fn().mockResolvedValue({ ...task, column: "todo" }),
writeTaskDocument: vi.fn().mockResolvedValue({ key: "review-feedback" }),
upsertTaskDocument: vi.fn().mockResolvedValue({ key: "review-feedback" }),
getRootDir: vi.fn().mockReturnValue("/tmp/project"),
listTasks: vi.fn().mockResolvedValue([]),
createTask: vi.fn(),

View File

@@ -1069,7 +1069,11 @@ async function applyChangesRequestedTransition(
: "",
].join("\n").trim();
await store.writeTaskDocument(task.id, "review-feedback", feedbackBody || "Reviewer requested changes.", "system");
await store.upsertTaskDocument(task.id, {
key: "review-feedback",
content: feedbackBody || "Reviewer requested changes.",
author: "system",
});
await store.moveTask(task.id, "todo", {
preserveProgress: true,
preserveWorktree: true,
@@ -3358,6 +3362,18 @@ export function registerGitGitHubRoutes(ctx: ApiRoutesContext): void {
}
}
const repoKey = `${owner}/${repo}`;
if (!githubRateLimiter.canMakeRequest(repoKey)) {
const resetTime = githubRateLimiter.getResetTime(repoKey);
const retryAfter = resetTime
? Math.max(0, Math.ceil((resetTime.getTime() - Date.now()) / 1000))
: undefined;
throw rateLimited("GitHub API rate limit exceeded for this repository", {
retryAfter,
resetAt: resetTime?.toISOString(),
});
}
const client = new GitHubClient();
const snapshot = await client.getPrReviewSnapshot(owner, repo, task.prInfo.number);
const fusionThread = (task.comments ?? []).filter((comment) =>