mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-30 05:16:50 +01:00
feat: return completed handoffs to Agent Chat (#14408)
Return completed Agent Chat handoffs through a durable outbox and scope each generated update to its supplied tasks. Add recovery, browser delivery, result access, and calibrated quality coverage. Validated with two consecutive ten-case Claude/Codex campaigns, all CI checks, and a 5/5 review. Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
1 parent
3b4b270650
commit
83076d7e7c
59 files changed
+2696
-83
No files matched your search
@@ -44,7 +44,7 @@ export function buildNativeContinuationPrompt(input: {
|
||||
});
|
||||
// Other provider, attachment, question, approval, and recovery paths keep
|
||||
// their specialized framing. A matching prior run still gates every delta.
|
||||
if ((wake.externalChatProvider && !externalChat) ||
|
||||
if (rawWake.chatCompletionUpdates || (wake.externalChatProvider && !externalChat) ||
|
||||
(!['issue_commented', 'issue_children_completed'].includes(wake.reason ?? '') &&
|
||||
!(externalChat && wake.reason === "External chat message received")) ||
|
||||
wake.fallbackFetchNeeded || wake.truncated || wake.recovery || continuation?.interruptedRunId ||
|
||||
|
||||
@@ -969,7 +969,7 @@ export async function repairCommittedNativeChatResponse(
|
||||
input.issueId,
|
||||
resolved.text,
|
||||
{ agentId: run.agentId, runId: run.id },
|
||||
{ authorizationReason: CHAT_RUN_PRESENTATION_AUTHORIZATION_REASON },
|
||||
{ authorizationReason: CHAT_RUN_PRESENTATION_AUTHORIZATION_REASON, completionReply: true },
|
||||
tx,
|
||||
);
|
||||
const presentationDecision = {
|
||||
|
||||
@@ -1944,6 +1944,7 @@ export async function commitNativeStatusDecision(input: {
|
||||
completedChildIssueId: input.issueId,
|
||||
childIssueIds: parent.childIssueIds,
|
||||
childIssueSummaries: parent.childIssueSummaries,
|
||||
onboardingCompletion: parent.onboardingCompletion,
|
||||
childIssueSummaryTruncated: parent.childIssueSummaryTruncated,
|
||||
}
|
||||
: null;
|
||||
@@ -1988,12 +1989,14 @@ export async function commitNativeStatusDecision(input: {
|
||||
completedChildIssueId: input.issueId,
|
||||
childIssueIds: parent.childIssueIds,
|
||||
childIssueSummaries: parent.childIssueSummaries,
|
||||
onboardingCompletion: parent.onboardingCompletion,
|
||||
childIssueSummaryTruncated: parent.childIssueSummaryTruncated,
|
||||
},
|
||||
contextSnapshot: {
|
||||
completedChildIssueId: input.issueId,
|
||||
childIssueIds: parent.childIssueIds,
|
||||
childIssueSummaries: parent.childIssueSummaries,
|
||||
onboardingCompletion: parent.onboardingCompletion,
|
||||
childIssueSummaryTruncated: parent.childIssueSummaryTruncated,
|
||||
},
|
||||
});
|
||||
@@ -2005,6 +2008,7 @@ export async function commitNativeStatusDecision(input: {
|
||||
parentIssueId: parent.id,
|
||||
completedChildIssueId: input.issueId,
|
||||
childIssueSummaries: parent.childIssueSummaries,
|
||||
onboardingCompletion: parent.onboardingCompletion,
|
||||
childIssueSummaryTruncated: parent.childIssueSummaryTruncated,
|
||||
},
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user