From ea3b3b2ffc4a1d3c335994e22056a957cd962d21 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Wed, 22 Jul 2026 09:54:49 +0300 Subject: feat(sync): make backup fail-fast per-destination and add forcePush/descriptionSync creation support Backup failures now disable retries only for the failing remote instead of the whole session, add an opt-in forcePush flag for backup organizations, and allow repository creation to go through descriptionSyncHost/Root when configured so the git remote endpoint can stay restricted. Also fixes the AI release-notes cache being bypassed by --force, which is meant to control sync scheduling, not cache invalidation. Co-Authored-By: Claude Sonnet 5 --- internal/cli/release.go | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) (limited to 'internal/cli/release.go') diff --git a/internal/cli/release.go b/internal/cli/release.go index d57148d..c3cb1c5 100644 --- a/internal/cli/release.go +++ b/internal/cli/release.go @@ -447,7 +447,8 @@ func resolveReleaseNotes( } cacheKey := fmt.Sprintf("%s:%s", repoName, tag) - if cachedNotes, exists := aiReleaseNotesCache[cacheKey]; exists && !flags.Force { + // Force controls sync scheduling and must not invalidate release-note cache entries. + if cachedNotes, exists := aiReleaseNotesCache[cacheKey]; exists { if mode == releaseNotesModeUpdate { fmt.Printf(" Using cached AI release notes for existing release %s\n", tag) } else { @@ -456,18 +457,10 @@ func resolveReleaseNotes( return cachedNotes, true } - if flags.Force && aiReleaseNotesCache[cacheKey] != "" { - if mode == releaseNotesModeUpdate { - fmt.Printf(" Force regenerating AI release notes for existing release %s (ignoring cache)\n", tag) - } else { - fmt.Printf(" Force regenerating AI release notes for %s (ignoring cache)\n", tag) - } + if mode == releaseNotesModeUpdate { + fmt.Printf(" Generating AI release notes for existing release %s...\n", tag) } else { - if mode == releaseNotesModeUpdate { - fmt.Printf(" Generating AI release notes for existing release %s...\n", tag) - } else { - fmt.Printf(" Generating AI release notes for %s...\n", tag) - } + fmt.Printf(" Generating AI release notes for %s...\n", tag) } aiNotes, err := releaseManager.GenerateAIReleaseNotes(repoPath, repoName, tag, localTags, commits) -- cgit v1.2.3