diff options
| author | Paul Buetow <paul@buetow.org> | 2026-03-19 21:10:30 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-03-19 21:10:30 +0200 |
| commit | a694dd751eb16d47b0956facd5594ef575c9dce4 (patch) | |
| tree | 7be0801d61f1daf17a5e96b6e38c16556f458ce9 | |
| parent | b1faeca09f1cd98a64e5c7c17db990b19803750a (diff) | |
chore(release): bump version to 0.15.8v0.15.8
Remove aichat support from release notes and showcase AI tool chains.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
| -rw-r--r-- | internal/cmd/release.go | 4 | ||||
| -rw-r--r-- | internal/cmd/showcase.go | 6 | ||||
| -rw-r--r-- | internal/cmd/sync.go | 2 | ||||
| -rw-r--r-- | internal/release/release.go | 19 | ||||
| -rw-r--r-- | internal/showcase/showcase.go | 23 | ||||
| -rw-r--r-- | internal/version/version.go | 2 |
6 files changed, 11 insertions, 45 deletions
diff --git a/internal/cmd/release.go b/internal/cmd/release.go index 656f4a6..88ce86b 100644 --- a/internal/cmd/release.go +++ b/internal/cmd/release.go @@ -20,7 +20,7 @@ var releaseCmd = &cobra.Command{ Short: "Manage releases across platforms", Long: `Check for version tags without releases and create them across GitHub and Codeberg. Supports AI-generated release notes via amp (stdin pipeline), -with fallback to hexai, Claude, or aichat.`, +with fallback to hexai or Claude.`, } var releaseCheckCmd = &cobra.Command{ @@ -109,5 +109,5 @@ func init() { releaseCreateCmd.Flags().BoolVar(&noAINotes, "no-ai-notes", false, "disable AI-generated release notes (AI notes are enabled by default)") releaseCreateCmd.Flags().BoolVar(&updateExisting, "update-existing", false, "update existing releases with new AI-generated notes") releaseCreateCmd.Flags().StringVar(&templatePath, "template", "", "custom template for release notes") - releaseCreateCmd.Flags().StringVar(&aiTool, "ai-tool", "amp", "AI tool to use for release notes (amp, claude, aichat, or hexai; amp is tried first if available)") + releaseCreateCmd.Flags().StringVar(&aiTool, "ai-tool", "amp", "AI tool to use for release notes (amp, claude, or hexai; amp is tried first if available)") } diff --git a/internal/cmd/showcase.go b/internal/cmd/showcase.go index c48dee1..3217318 100644 --- a/internal/cmd/showcase.go +++ b/internal/cmd/showcase.go @@ -22,7 +22,7 @@ var showcaseCmd = &cobra.Command{ Short: "Generate AI-powered project showcase", Long: `Generate a comprehensive showcase of all your projects using AI. This feature creates a formatted document with project summaries, statistics, -and code snippets. By default uses opencode (local Ollama), with fallback to amp, hexai, claude, and aichat.`, +and code snippets. By default uses opencode (local Ollama), with fallback to amp, hexai, and claude.`, Example: ` # Generate showcase with cached summaries gitsyncer showcase @@ -60,9 +60,9 @@ func init() { // Showcase flags showcaseCmd.Flags().BoolVarP(&forceRegenerate, "force", "f", false, "force regeneration of cached summaries") - showcaseCmd.Flags().StringVarP(&outputPath, "output", "o", "", "custom output path (default: ~/git/foo.zone-content/gemtext/about/showcase.gmi.tpl)") + showcaseCmd.Flags().StringVarP(&outputPath, "output", "o", "", "custom output eath (default: ~/git/foo.zone-content/gemtext/about/showcase.gmi.tpl)") showcaseCmd.Flags().StringVar(&outputFormat, "format", "gemtext", "output format: gemtext, markdown, html") showcaseCmd.Flags().StringVar(&excludePattern, "exclude", "", "exclude repos matching pattern") - showcaseCmd.Flags().StringVar(&showcaseAITool, "ai-tool", "opencode", "AI tool for summaries: opencode, amp, hexai, claude, claude-code, or aichat (default tries opencode→amp→hexai→claude→aichat)") + showcaseCmd.Flags().StringVar(&showcaseAITool, "ai-tool", "opencode", "AI tool for summaries: opencode, amp, hexai, claude, or claude-code (default tries opencode→amp→hexai→claude)") showcaseCmd.Flags().StringVar(&showcaseRepo, "repo", "", "only generate showcase for a single repository") } diff --git a/internal/cmd/sync.go b/internal/cmd/sync.go index 75d8c88..a4fff84 100644 --- a/internal/cmd/sync.go +++ b/internal/cmd/sync.go @@ -194,7 +194,7 @@ func init() { syncCmd.PersistentFlags().BoolVar(&noReleases, "no-releases", false, "skip release checking after sync") syncCmd.PersistentFlags().BoolVar(&autoCreate, "auto-create-releases", false, "automatically create releases without confirmation") syncCmd.PersistentFlags().BoolVar(&noAIReleaseNotes, "no-ai-release-notes", false, "disable AI-generated release notes (AI notes are enabled by default)") - syncCmd.PersistentFlags().StringVar(&syncAITool, "ai-tool", "opencode", "AI tool to use for release notes when auto-creating (opencode, amp, claude, aichat, or hexai; opencode is tried first if available)") + syncCmd.PersistentFlags().StringVar(&syncAITool, "ai-tool", "opencode", "AI tool to use for release notes when auto-creating (opencode, amp, claude, or hexai; opencode is tried first if available)") syncCmd.PersistentFlags().BoolVarP(&syncForce, "force", "f", false, "force sync even if normal sync interval checks would skip a repository") syncCmd.PersistentFlags().BoolVar(&throttle, "throttle", false, "throttle syncing based on local repo activity") } diff --git a/internal/release/release.go b/internal/release/release.go index 4ac134a..0b0bcdf 100644 --- a/internal/release/release.go +++ b/internal/release/release.go @@ -496,8 +496,7 @@ func (m *Manager) GenerateAIReleaseNotes(repoPath, repoName, tag string, allTags if releaseNotes == "" && aiTool == "claude" { fmt.Println(" Running claude CLI command...") if _, err := exec.LookPath("claude"); err != nil { - fmt.Println(" claude CLI not found, falling back to aichat...") - aiTool = "aichat" + fmt.Println(" claude CLI not found, all fallbacks exhausted") } else { cmd := exec.Command("claude", "--model", "sonnet", fullPrompt) cmd.Env = append(os.Environ(), "CLAUDE_DEBUG=1") @@ -505,28 +504,12 @@ func (m *Manager) GenerateAIReleaseNotes(repoPath, repoName, tag string, allTags notes, err := m.executeAICommand(cmd, "claude") if err != nil { fmt.Printf(" Claude CLI failed: %v\n", err) - fmt.Println(" Falling back to aichat...") - aiTool = "aichat" } else { releaseNotes = notes } } } - if releaseNotes == "" && aiTool == "aichat" { - fmt.Println(" Running aichat CLI command...") - if _, err := exec.LookPath("aichat"); err != nil { - return "", fmt.Errorf("aichat CLI not found in PATH and fallbacks failed") - } - - cmd := exec.Command("aichat", fullPrompt) - notes, err := m.executeAICommand(cmd, "aichat") - if err != nil { - return "", fmt.Errorf("aichat CLI failed: %w", err) - } - releaseNotes = notes - } - if releaseNotes == "" && (aiTool == "opencode" || aiTool == "amp") { return "", fmt.Errorf("opencode/amp CLI not found in PATH and fallbacks failed") } diff --git a/internal/showcase/showcase.go b/internal/showcase/showcase.go index 24662e9..25f28f9 100644 --- a/internal/showcase/showcase.go +++ b/internal/showcase/showcase.go @@ -216,7 +216,7 @@ func findReadmeContent(repoPath string) ([]byte, string, bool) { func selectSummaryTool(aiTool string) string { switch aiTool { case "opencode", "": - // Default chain: opencode → amp → hexai → claude → aichat + // Default chain: opencode → amp → hexai → claude if _, err := exec.LookPath("opencode"); err == nil { return "opencode" } @@ -229,11 +229,8 @@ func selectSummaryTool(aiTool string) string { if _, err := exec.LookPath("claude"); err == nil { return "claude" } - if _, err := exec.LookPath("aichat"); err == nil { - return "aichat" - } case "amp": - // Explicit amp: amp → hexai → claude → aichat + // Explicit amp: amp → hexai → claude if _, err := exec.LookPath("amp"); err == nil { return "amp" } @@ -243,9 +240,6 @@ func selectSummaryTool(aiTool string) string { if _, err := exec.LookPath("claude"); err == nil { return "claude" } - if _, err := exec.LookPath("aichat"); err == nil { - return "aichat" - } case "claude", "claude-code": if _, err := exec.LookPath("claude"); err == nil { return "claude" @@ -253,10 +247,7 @@ func selectSummaryTool(aiTool string) string { if _, err := exec.LookPath("hexai"); err == nil { return "hexai" } - if _, err := exec.LookPath("aichat"); err == nil { - return "aichat" - } - case "hexai", "aichat": + case "hexai": if _, err := exec.LookPath(aiTool); err == nil { return aiTool } @@ -297,14 +288,6 @@ func runSummaryTool(selectedTool, prompt, repoPath, readmeFile string, readmeCon cmd = exec.Command("hexai", prompt) cmd.Stdin = strings.NewReader(string(readmeContent)) } - case "aichat": - fmt.Printf("Running aichat command:\n") - if readmeFound { - fmt.Printf(" echo <README content> | aichat \"%s\"\n", prompt) - fmt.Printf(" Using %s as input\n", readmeFile) - cmd = exec.Command("aichat", prompt) - cmd.Stdin = strings.NewReader(string(readmeContent)) - } } if cmd == nil { diff --git a/internal/version/version.go b/internal/version/version.go index 5be3a9e..feb050c 100644 --- a/internal/version/version.go +++ b/internal/version/version.go @@ -7,7 +7,7 @@ import ( var ( // Version is the current version of gitsyncer - Version = "0.15.7" + Version = "0.15.8" // GitCommit is the git commit hash at build time GitCommit = "unknown" |
