summaryrefslogtreecommitdiff
path: root/internal/cli/release.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-07-22 09:54:49 +0300
committerPaul Buetow <paul@buetow.org>2026-07-22 09:54:49 +0300
commitea3b3b2ffc4a1d3c335994e22056a957cd962d21 (patch)
tree601aecf10b5d4a4721e895698d64e97b47561b5f /internal/cli/release.go
parent813077134132a62d0c9c73c7020ed734ff9add0b (diff)
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 <noreply@anthropic.com>
Diffstat (limited to 'internal/cli/release.go')
-rw-r--r--internal/cli/release.go17
1 files changed, 5 insertions, 12 deletions
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)