feat(trail): show a spinner during tune's gather and agent run · Entire
feat(trail): show a spinner during tune's gather and agent run
38afd32→main·
Soph·3w ago·1 file·+4 added/-2 removed
The two opaque waits in tune — gathering repository signal (gh, checkpoint listing, trails API) and the headless agent run — printed a static line and then sat silent. Wrap both in the shared startSpinner helper so there's live "still working" feedback on a TTY, degrading to a "✓
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
Sessions
99c1933c8608View transcript
[?
Refine Risk Review Prompt TemplateClaude Code·Opus 4.8[1m]·1 step](/content/gh/entireio/cli/session/d70d405d-5421-4b68-beab-2e3bcaaf25a7#timeline-99c1933c8608/index.html)
Changes
1
cmd/entire/cli
Mtrail_tune_cmd.go+4/-2
106 unmodified lines
107
108
109
110
110
111
112
113
114
115
50 unmodified lines
166
167
168
168
169
170
171
172
173
174
106 unmodified lines
return err
}
fmt.Fprintln(errW, "Gathering repository signal…")
stopGather := startSpinner(errW, "Gathering repository signal")
brief := gatherTuningContext(ctx, errW, repoRoot, src, opts.limit, opts.insecureHTTP)
stopGather(true)
prompt := buildTunePrompt(brief, runners)
if opts.debugDir != ""
50 unmodified lines
return fmt.Errorf("provider %s cannot generate text", provider.Name)
}
fmt.Fprintf(errW, "Tuning %d runner(s) with %s…\n", len(runners), provider.DisplayName)
stop := startSpinner(errW, fmt.Sprintf("Tuning %d runner(s) with %s", len(runners), provider.DisplayName))
out, err := textGen.GenerateText(ctx, prompt, provider.Model)
stop(err == nil)
if err != nil {
return fmt.Errorf("agent run failed: %w", err)
}
Mcmd/entire/cli/trail_tune_cmd.go+4/-2