feat(FN-5103): complete Step 1 — add merge details attribution flags

Fusion-Task-Id: FN-5103
Fusion-Task-Lineage: e4e4d9ba-4884-4feb-b18b-a30e799c3fb1
This commit is contained in:
Fusion (runfusion.ai)
2026-05-18 23:02:29 -07:00
committed by gsxdsm
parent 045616b39f
commit 4420abe6af

View File

@@ -1246,6 +1246,29 @@ export interface MergeDetails {
* Use `/api/tasks/:id/diff` for lineage-backed landed totals.
*/
deletions?: number;
/**
* True when rebase-strategy capture found zero commits attributable to this
* task — the branch's work was already on main (verified-short-circuit /
* already-on-main path). When true, `landedFiles` will be `[]` and stats
* will be 0. Squash-strategy merges never set this flag.
*/
noOpVerifiedShortCircuit?: boolean;
/**
* True when `landedFiles` / `filesChanged` / `insertions` / `deletions` were
* captured from task-attributable commits only (rebase-strategy success path
* via `filterFilesToOwnTaskCommits`). Self-healing `recoverDoneTaskMergeMetadata`
* must NOT overwrite these values with the full `rebaseBaseSha..sha` range,
* which would re-inflate them.
*/
landedFilesAttributionRestricted?: boolean;
/**
* Set ONLY when `filterFilesToOwnTaskCommits` threw and the merger fell back
* to the legacy unrestricted `<rebaseBaseSha>..<sha>` walk. Stored
* `landedFiles` / stats may include foreign commits; this flag opts
* self-healing back into reconcile (the inflated values are NOT intentional).
* Never set on success paths.
*/
landedFilesCaptureFallback?: "attribution-failed";
mergeCommitMessage?: string;
mergedAt?: string;
mergeConfirmed?: boolean;