feature/recipe_implementation #5

Merged
gmgauthier merged 54 commits from feature/recipe_implementation into master 2026-03-07 23:17:54 +00:00
Showing only changes of commit c5bdd44e55 - Show all commits

View File

@ -1,7 +1,7 @@
package recipe package recipe
import ( import (
_ "bufio" "bufio"
"fmt" "fmt"
"os" "os"
"path/filepath" "path/filepath"
@ -99,7 +99,7 @@ func (r *Runner) discoverFiles() []string {
return files return files
} }
// handleApplyStep now uses a more flexible regex that matches both formats Grok uses // handleApplyStep with flexible regex that matches Grok's current output style
func (r *Runner) handleApplyStep(previousResults []string) { func (r *Runner) handleApplyStep(previousResults []string) {
if len(previousResults) == 0 { if len(previousResults) == 0 {
fmt.Println(" ⚠️ No previous results to apply — skipping.") fmt.Println(" ⚠️ No previous results to apply — skipping.")
@ -124,11 +124,8 @@ func (r *Runner) handleApplyStep(previousResults []string) {
fmt.Println(" Review it, then run with dry_run=false to apply.") fmt.Println(" Review it, then run with dry_run=false to apply.")
} }
// Flexible regex that works whether Grok puts "// filename" or just "filename" // Flexible regex — matches both old and new Grok formats
var blockRe = regexp.MustCompile(`(?s)^(?://\s*)?(.+?\.go)\n` + var blockRe = regexp.MustCompile(`(?s)```go\n(?://\s*)?(.+?\.go)\n(.*?)\n````)
"```go\n" +
`(.*?)\n` +
"```")
func extractCodeBlocks(text string) map[string]string { func extractCodeBlocks(text string) map[string]string {
blocks := make(map[string]string) blocks := make(map[string]string)
@ -155,4 +152,4 @@ func createUnifiedPatch(blocks map[string]string, patchPath string) error {
} }
} }
return nil return nil
} }