This commit is contained in:
Lourenço Castro 2026-09-13 12:08:45 +00:00 committed by GitHub
commit bedc5b4f84
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 26 additions and 5 deletions

View File

@ -3239,7 +3239,16 @@ describeEmbeddedPostgres("heartbeat comment wake batching", () => {
expect(runs[1]?.contextSnapshot).toMatchObject({
retryReason: "missing_issue_comment",
});
expect(runs[1]?.contextSnapshot).not.toHaveProperty("modelProfile");
for (const key of [
"modelProfile",
"paperclipModelProfile",
"recoveryIntent",
"allowDeliverableWork",
"allowDocumentUpdates",
"resumeRequiresNormalModel",
]) {
expect(runs[1]?.contextSnapshot).not.toHaveProperty(key);
}
} finally {
gateway.releaseFirstWait();
await gateway.close();
@ -3444,9 +3453,19 @@ describeEmbeddedPostgres("heartbeat comment wake batching", () => {
),
);
expect(missingCommentRetries).toHaveLength(1);
expect(missingCommentRetries[0]?.payload).not.toHaveProperty(
expect(missingCommentRetries[0]?.payload).toMatchObject({
retryReason: "missing_issue_comment",
});
for (const key of [
"modelProfile",
);
"paperclipModelProfile",
"recoveryIntent",
"allowDeliverableWork",
"allowDocumentUpdates",
"resumeRequiresNormalModel",
]) {
expect(missingCommentRetries[0]?.payload).not.toHaveProperty(key);
}
} finally {
gateway.releaseFirstWait();
await gateway.close();

View File

@ -13786,6 +13786,8 @@ export function heartbeatService(
const contextSnapshot = parseObject(run.contextSnapshot);
const taskKey = deriveTaskKeyWithHeartbeatFallback(contextSnapshot, null);
const sessionBefore = await resolveSessionBeforeForWakeup(agent, taskKey);
// Missing-comment retries continue the original deliverable work, so they
// must not inherit the status-only mutation guards.
const retryContextSnapshot = withRecoveryContext(
{
...contextSnapshot,
@ -13794,7 +13796,7 @@ export function heartbeatService(
retryReason: "missing_issue_comment",
missingIssueCommentForRunId: run.id,
},
"status_only",
"normal_model",
);
const responsibleUserId = await resolveResponsibleUserIdForRunContext(
run,
@ -13833,7 +13835,7 @@ export function heartbeatService(
retryOfRunId: run.id,
retryReason: "missing_issue_comment",
},
"status_only",
"normal_model",
),
status: "queued",
requestedByActorType: "system",