feat(FN-4809): complete Step 2 — emit merge attempt audit events
Fusion-Task-Id: FN-4809 Fusion-Task-Lineage: bd632e33-b376-47de-ad99-da4610ae4690
This commit is contained in:
committed by
gsxdsm
parent
dcd6bf60f3
commit
4e5bcee14f
@@ -139,6 +139,33 @@ const WORKFLOW_SCRIPT_OUTPUT_MAX_CHARS = 4_000;
|
|||||||
const PULL_REBASE_TIMEOUT_MS = 120_000;
|
const PULL_REBASE_TIMEOUT_MS = 120_000;
|
||||||
const PUSH_TIMEOUT_MS = 60_000;
|
const PUSH_TIMEOUT_MS = 60_000;
|
||||||
|
|
||||||
|
export async function emitMergeAttemptAuditEvent(params: {
|
||||||
|
audit: RunAuditor;
|
||||||
|
branch: string;
|
||||||
|
attemptNum: 1 | 2 | 3;
|
||||||
|
mergeConflictStrategy: CanonicalMergeConflictStrategy;
|
||||||
|
attemptLabel: string;
|
||||||
|
taskId: string;
|
||||||
|
}): Promise<void> {
|
||||||
|
const { audit, branch, attemptNum, mergeConflictStrategy, attemptLabel, taskId } = params;
|
||||||
|
try {
|
||||||
|
await audit.git({
|
||||||
|
type: "merge:start",
|
||||||
|
target: branch,
|
||||||
|
metadata: {
|
||||||
|
phase: `merge-attempt-${attemptNum}`,
|
||||||
|
attemptNum,
|
||||||
|
mergeConflictStrategy,
|
||||||
|
attemptLabel,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
} catch (auditErr: unknown) {
|
||||||
|
mergerLog.warn(
|
||||||
|
`${taskId}: failed to emit run_audit event for merge-attempt-${attemptNum}: ${auditErr instanceof Error ? auditErr.message : String(auditErr)}`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/** Maximum characters for commit log in merge prompt — prevents context overflow on large branches */
|
/** Maximum characters for commit log in merge prompt — prevents context overflow on large branches */
|
||||||
const MERGE_COMMIT_LOG_MAX_CHARS = 5000;
|
const MERGE_COMMIT_LOG_MAX_CHARS = 5000;
|
||||||
|
|
||||||
@@ -6802,6 +6829,23 @@ export async function aiMergeTask(
|
|||||||
"merger",
|
"merger",
|
||||||
);
|
);
|
||||||
|
|
||||||
|
try {
|
||||||
|
await audit.git({
|
||||||
|
type: "merge:start",
|
||||||
|
target: branch,
|
||||||
|
metadata: {
|
||||||
|
phase: `merge-attempt-${attemptNum}`,
|
||||||
|
attemptNum,
|
||||||
|
mergeConflictStrategy,
|
||||||
|
attemptLabel,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
} catch (auditErr: unknown) {
|
||||||
|
mergerLog.warn(
|
||||||
|
`${taskId}: failed to emit run_audit event for merge-attempt-${attemptNum}: ${auditErr instanceof Error ? auditErr.message : String(auditErr)}`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// Capture HEAD before the squash so the verification-fix finalizer can
|
// Capture HEAD before the squash so the verification-fix finalizer can
|
||||||
// tell whether the AI agent actually created a commit (HEAD moved) or
|
// tell whether the AI agent actually created a commit (HEAD moved) or
|
||||||
// bailed via fn_report_build_failure (HEAD didn't move). Without this,
|
// bailed via fn_report_build_failure (HEAD didn't move). Without this,
|
||||||
|
|||||||
Reference in New Issue
Block a user