[agent/codex:gpt-5.4-mini] Read ~/spec/code/core/go/cli/RFC.md fully. Find features des... #67

Merged
Virgil merged 1 commit from agent/read---spec-code-core-go-cli-rfc-md-full into dev 2026-04-02 10:21:46 +00:00
2 changed files with 37 additions and 6 deletions
Showing only changes of commit b8bfdcf731 - Show all commits

View file

@ -105,6 +105,8 @@ func renderSearchResults(results []*gohelp.SearchResult, query string) error {
cli.Println("%s", cli.DimStr(" "+snippet))
}
}
cli.Blank()
renderHelpHint(query)
return nil
}
@ -112,7 +114,9 @@ func renderHelpHint(query string) {
cli.Hint("browse", "core help")
if trimmed := strings.TrimSpace(query); trimmed != "" {
cli.Hint("search", fmt.Sprintf("core help search %q", trimmed))
return
}
cli.Hint("search", "core help search <topic>")
}
func renderTopicList(topics []*gohelp.Topic) error {
@ -127,6 +131,8 @@ func renderTopicList(topics []*gohelp.Topic) error {
cli.Println("%s", cli.DimStr(" "+summary))
}
}
cli.Blank()
renderHelpHint("")
return nil
}
@ -158,4 +164,6 @@ func renderTopic(t *gohelp.Topic) {
cli.Blank()
cli.Println("%s", t.Content)
cli.Blank()
renderHelpHint(t.ID)
cli.Blank()
}

View file

@ -74,6 +74,8 @@ func TestAddHelpCommands_Good(t *testing.T) {
})
assert.Contains(t, out, "AVAILABLE HELP TOPICS")
assert.Contains(t, out, topics[0].ID)
assert.Contains(t, out, "browse")
assert.Contains(t, out, "core help search <topic>")
}
func TestAddHelpCommands_Good_Serve(t *testing.T) {
@ -118,6 +120,8 @@ func TestAddHelpCommands_Good_Search(t *testing.T) {
assert.Contains(t, out, "SEARCH RESULTS")
assert.Contains(t, out, query)
assert.Contains(t, out, "browse")
assert.Contains(t, out, "core help search")
}
func TestRenderSearchResults_Good(t *testing.T) {
@ -137,6 +141,8 @@ func TestRenderSearchResults_Good(t *testing.T) {
assert.Contains(t, out, "SEARCH RESULTS")
assert.Contains(t, out, "config - Configuration")
assert.Contains(t, out, "Core is configured via environment variables.")
assert.Contains(t, out, "browse")
assert.Contains(t, out, "core help search \"config\"")
}
func TestRenderTopicList_Good(t *testing.T) {
@ -154,6 +160,23 @@ func TestRenderTopicList_Good(t *testing.T) {
assert.Contains(t, out, "AVAILABLE HELP TOPICS")
assert.Contains(t, out, "config - Configuration")
assert.Contains(t, out, "Core is configured via environment variables.")
assert.Contains(t, out, "browse")
assert.Contains(t, out, "core help search <topic>")
}
func TestRenderTopic_Good(t *testing.T) {
out := captureOutput(t, func() {
renderTopic(&gohelp.Topic{
ID: "config",
Title: "Configuration",
Content: "Core is configured via environment variables.",
})
})
assert.Contains(t, out, "Configuration")
assert.Contains(t, out, "Core is configured via environment variables.")
assert.Contains(t, out, "browse")
assert.Contains(t, out, "core help search \"config\"")
}
func TestAddHelpCommands_Bad(t *testing.T) {
@ -189,16 +212,16 @@ func TestAddHelpCommands_Bad(t *testing.T) {
root := &cli.Command{Use: "core"}
AddHelpCommands(root)
cmd, _, err := root.Find([]string{"help", "search"})
require.NoError(t, err)
cmd, _, findErr := root.Find([]string{"help", "search"})
require.NoError(t, findErr)
require.NotNil(t, cmd)
var err error
var runErr error
out := captureOutput(t, func() {
err = cmd.RunE(cmd, nil)
runErr = cmd.RunE(cmd, nil)
})
require.Error(t, err)
assert.Contains(t, err.Error(), "help search query is required")
require.Error(t, runErr)
assert.Contains(t, runErr.Error(), "help search query is required")
assert.Contains(t, out, "browse")
assert.Contains(t, out, "core help")
})