inspect: drop em dashes from config UI text · Entire

inspect: drop em dashes from config UI text

2522f90→main·

dipree·1mo ago·2 files·+20 added/-20 removed

Replace em dashes in the inspect configuration flow with plain ASCII (hyphens, colons, semicolons, or periods) across the focus/output/scope pickers, slot + model labels, profile chooser, the --configure agent catalog, the --set-output help line, and first-run messages. No behavior change; run-time output (TUI/dump) and Go comments are left as is.

Sessions

c104c98fc155View transcript

[?
Checkout the hand off doc that I just added.Pi·Opus 4.8·1 step](/content/gh/entireio/cli/session/019eca64-8c2c-7b00-90c6-3aa49738c497#timeline-c104c98fc155/index.html)

Changes

2

114 unmodified lines

115
116
117
118
118
119
120
121
325 unmodified lines

447
448
449
450
450
451
452
452
453
454
455
5 unmodified lines

461
462
463
464
464
465
466
467
34 unmodified lines

502
503
504
505
505
506
507
508
508
509
510
511
250 unmodified lines

762
763
764
765
765
766
767
768

114 unmodified lines

otherwise it opens the wizard (interactive) without starting agents.
  --set-agents   with --configure: comma-separated inspector agents for the profile
  --set-judge    with --configure: the consolidating judge as agent[=model]
  --set-output   with --configure: where the verdict goes — local (default) or trail
  --set-output   with --configure: where the verdict goes: local (default) or trail
  --local        with --configure: save to .entire/settings.local.json (just you)
                 instead of .entire/settings.json (shared). Interactive setup asks.
  --set-task     with --configure: the profile's canonical task text
325 unmodified lines

cfg := profile.Agents[worker]
            status := reviewHooksInstalledStatus
            if _, ok := installedSet[reviewAgentName(worker, cfg)]; !ok {
                status = "hooks NOT installed — run `entire configure --agent " + reviewAgentName(worker, cfg) + "`"
                status = "hooks NOT installed; run `entire configure --agent " + reviewAgentName(worker, cfg) + "`"
            }
            fmt.Fprintf(out, "  %s — %s\n", reviewWorkerLabel(worker, cfg), status)
            fmt.Fprintf(out, "  %s: %s\n", reviewWorkerLabel(worker, cfg), status)
        }
        fmt.Fprintln(out)
        fmt.Fprintln(out, "See all available agents and profiles with `entire inspect --configure`.")
5 unmodified lines

catalog := availableReviewAgents(installed, deps.ReviewerFor)
        fmt.Fprintln(out, "No review profile configured yet. Available review agents:")
        for _, e := range catalog {
            status := "not installed — run `entire configure --agent " + e.Name + "`"
            status := "not installed; run `entire configure --agent " + e.Name + "`"
            if e.Installed {
                status = reviewHooksInstalledStatus
            }
34 unmodified lines

func printReviewConfigCatalog(out io.Writer, profileName string, catalog []reviewAgentCatalogEntry, s *settings.EntireSettings) {
    fmt.Fprintln(out, "Available review agents:")
    if len(catalog) == 0 {
        fmt.Fprintln(out, "  (none — install one with `entire configure --agent claude-code`)")
        fmt.Fprintln(out, "  (none; install one with `entire configure --agent claude-code`)")
    }
    for _, e := range catalog {
        status := "not installed — run `entire configure --agent " + e.Name + "`"
        status := "not installed; run `entire configure --agent " + e.Name + "`"
        if e.Installed {
            status = reviewHooksInstalledStatus
        }
250 unmodified lines

return silentErr(defaultErr)
        }
        profile = defaultProfile
        fmt.Fprintf(out, "No review profiles found — using default %q profile with %s.\n", profileForSetup, strings.Join(sortedProfileAgentNames(profile), ", "))
        fmt.Fprintf(out, "No review profiles found; using default %q profile with %s.\n", profileForSetup, strings.Join(sortedProfileAgentNames(profile), ", "))
        fmt.Fprintln(out, "Configure later with `entire inspect --configure`.\n")
    }

Mcmd/entire/cli/review/cmd.go+7/-7

50 unmodified lines

51
52
53
54
54
55
56
57
129 unmodified lines

187
188
189
190
191
192
190
191
192
193
194
195
4 unmodified lines

200
201
202
203
203
204
205
206
57 unmodified lines

264
265
266
267
267
268
269
270
224 unmodified lines

495
496
497
498
498
499
500
501
20 unmodified lines

522
523
524
525
525
526
527
528
3 unmodified lines

532
533
534
535
535
536
537
538
139 unmodified lines

678
679
680
681
682
681
682
683
684
685
16 unmodified lines

702
703
704
705
706
705
706
707
708
709

50 unmodified lines

// setup phase explicit, and the trailing "running review now" line in the
// caller closes the loop on what comes next.
func ConfirmFirstRunSetup(ctx context.Context, out io.Writer) bool {
    fmt.Fprintln(out, "No review profiles found — let's set one up first.")
    fmt.Fprintln(out, "No review profiles found. Let's set one up first.")
    fmt.Fprintln(out)
    fmt.Fprintln(out, "You'll choose a review focus and inspector agents. They're saved to")
    fmt.Fprintln(out, "local review preferences; configure later with `entire inspect --configure`.\n")
    }
129 unmodified lines

current = strings.TrimSpace(current)
    picked := DefaultProfileName
    presets := []struct{ label, value string }{
        {"General — correctness, regressions, tests", DefaultProfileName},
        {"Security — auth, injection, secrets", "security"},
        {"Accessibility — keyboard, screen readers, contrast", "accessibility"},
        {"General - correctness, regressions, tests", DefaultProfileName},
        {"Security - auth, injection, secrets", "security"},
        {"Accessibility - keyboard, screen readers, contrast", "accessibility"},
    }
    options := make([]huh.Option[string], 0, len(presets)+1)
    for _, p := range presets {
4 unmodified lines

}
    options = append(options, huh.NewOption(label, p.value))
}
CustomLabel := "Custom… — describe your own task"
CustomLabel := "Custom… - describe your own task"
if current == customProfileName {
    CustomLabel += "  (current)"
    picked = reviewFocusCustomSentinel
57 unmodified lines

label += " (default)"
        }
        if len(workers) > 0 {
            label += " — " + strings.Join(workers, ", ")
            label += " - " + strings.Join(workers, ", ")
        }
        options = append(options, huh.NewOption(label, name))
    }
}
224 unmodified lines

}
        }
    }
    title := "Add a slot — which agent?"
    title := "Add a slot: which agent?"
    if editing {
        title = "Change agent"
    }
20 unmodified lines

for _, m := range models {
    label := m.ID
    if m.Note != "" {
        label = m.ID + "  — " + m.Note
        label = m.ID + "  - " + m.Note
    }
    options = append(options, huh.NewOption(label, m.ID))
    if m.ID == seedModel {
3 unmodified lines

// Preserve a previously-set custom model so editing a slot doesn't silently
    // drop it: surface it as a selectable option.
    if seedModel != "" && !seedAdvertised {
        options = append(options, huh.NewOption(seedModel+"  — current", seedModel))
        options = append(options, huh.NewOption(seedModel+"  - current", seedModel))
    }
    options = append(options, huh.NewOption("Custom… (type any value)", reviewModelCustomSentinel))

139 unmodified lines

Title("Where should the verdict go?").
            Description("Local keeps it on this machine; Trail also posts it to this branch's trail.").
            Options(
                huh.NewOption("Local — printed and saved to local findings", ReviewOutputLocal),
                huh.NewOption("Trail — also posted to this branch's trail as a finding", ReviewOutputTrail),
                huh.NewOption("Local - printed and saved to local findings", ReviewOutputLocal),
                huh.NewOption("Trail - also posted to this branch's trail as a finding", ReviewOutputTrail),
            ).
            Value(&picked),
        ))
16 unmodified lines

Title("Where should this profile be saved?").
            Description("Project is shared with the team and committed; Local is just for you.").
            Options(
                huh.NewOption(settings.EntireSettingsFile+" — shared with the team (committed)", reviewScopeProject),
                huh.NewOption(settings.EntireSettingsLocalFile+" — just you (git-ignored)", reviewScopeLocal),
                huh.NewOption(settings.EntireSettingsFile+" - shared with the team (committed)", reviewScopeProject),
                huh.NewOption(settings.EntireSettingsLocalFile+" - just you (git-ignored)", reviewScopeLocal),
            ).
            Value(&picked),
        ))