fix(merger): prefer step headline subject + add autostash race-rescue
- deriveDeterministicSubjectSummary now picks the lowest-numbered `complete Step N` headline (or the oldest commit) instead of the most recent commit, so trailing quality-gate revisions stop hijacking the squash-merge subject (FN-3617 landed as "align mailbox modal css..." when 4 of 5 commits were the actual Claude OAuth fix). - AI subject + body system prompts in ai-summarize.ts now weight by commit theme rather than file size, so a small token cleanup that touches a large CSS file no longer dominates the summary. - stashUnrelatedRootDirChanges adds a bounded re-snapshot loop after the primary stash is persisted but before \`git reset --hard\`. Any late-dirty paths (concurrent dev edits during a long merger run, parallel merger runs racing on rootDir, late test/build artifacts) get captured in labeled \`race-rescue-N\` stashes recoverable from \`git stash list\`, instead of being wiped by the destructive reset. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
9
.changeset/merger-prefer-headline-step-subject.md
Normal file
9
.changeset/merger-prefer-headline-step-subject.md
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
"@runfusion/fusion": patch
|
||||
---
|
||||
|
||||
Fix merger subject derivation and add a race-rescue layer to the autostash.
|
||||
|
||||
The deterministic fallback now prefers the lowest-numbered `complete Step N` headline (or the oldest commit) over the most-recent commit, and the AI subject/body prompts weight by commit theme instead of file size — so a small token-cleanup fixup that touches a large file no longer hijacks the squash-merge subject.
|
||||
|
||||
The pre-merge autostash now re-snapshots the working tree after the primary stash is persisted but before `git reset --hard` runs, capturing any dirty paths that landed between the initial snapshot and the destructive wipe (concurrent dev edits during a long merger run, parallel merger runs interleaving, or late test/build artifacts) into a separate `race-rescue` stash so they're recoverable from `git stash list`.
|
||||
Reference in New Issue
Block a user