Two related papercuts in the guided ingest flow, both raised from a real session.
1. The prompt line is a bare ?
The guided flow builds its prompter as surveyPrompter{bare: true}, and bare makes the survey message empty:
func (s surveyPrompter) message(label string) string {
if s.bare { return "" }
return label
}
So the line renders as ? plus whatever you type. The intent was sound — the CLI already prints the question as a Step 3 of 4 · Where is your data? header, and repeating it on the prompt line would duplicate it.
The cost is a label-less prompt, and the codebase already contradicts itself on this: Confirm is deliberately never bare, with the comment "a bare ? (y/N) there would be a label-less destructive prompt". The same objection applies to the others, and it gets worse now that answers are pre-filled — ? [~/mydata] is a question mark, a bracket and a path, with no verb.
Proposed: give each guided prompt a short noun label — ? Path:, ? Name:, ? Split:, ? Task:. Context without duplication.
Not free: the prompter fake keys scripted answers by label, so this rekeys roughly 50 assertions across interactive_test.go, copy_catalog_test.go and path_examples_test.go, plus a golden regen. Kept out of the always-ask change deliberately so the behaviour diff stayed reviewable.
2. Arrow-up does not recall previous answers
Reported as: "usually when you use a terminal and use the arrow keys up and down it shows past commands, but it doesn't for the ones we are doing… if I re-run through the same process and have to manually type everything in again, it annoys me."
This is expected, not a regression: ↑ is the shell's history. Once the CLI takes the terminal in raw mode the keystroke is ours, and survey's Input has no history — KeyArrowUp/KeyArrowDown are handled only while a suggestion list is open.
Two things survey already gives us:
Default — now used, so anything passed on the command line is pre-filled (#711).
Suggest func(toComplete string) []string — Tab completion. Wiring it to the filesystem for the path prompt would make Tab complete paths, and ↑/↓ would then navigate the suggestions.
Proposed, in order of value:
- Remember the previous run's answers and offer them as defaults, so the default chain is: command-line value → last run → the flow's own fallback. This is what actually answers the complaint — re-running the same ingest becomes four Enters.
- Tab completion for the path prompt via
Suggest.
(1) needs a home for the state. internal/config is env-scoped profiles holding tokens at mode 0600 with a versioned schema and migration — mixing remembered answers into the credential file is the wrong shape. A small separate state file under ~/.tracebloc is likely better, and it should be wiped by tracebloc delete like the rest.
Neither is urgent; both are small and directly improve repeat use.
Two related papercuts in the guided ingest flow, both raised from a real session.
1. The prompt line is a bare
?The guided flow builds its prompter as
surveyPrompter{bare: true}, andbaremakes the survey message empty:So the line renders as
?plus whatever you type. The intent was sound — the CLI already prints the question as aStep 3 of 4 · Where is your data?header, and repeating it on the prompt line would duplicate it.The cost is a label-less prompt, and the codebase already contradicts itself on this:
Confirmis deliberately never bare, with the comment "a bare? (y/N)there would be a label-less destructive prompt". The same objection applies to the others, and it gets worse now that answers are pre-filled —? [~/mydata]is a question mark, a bracket and a path, with no verb.Proposed: give each guided prompt a short noun label —
? Path:,? Name:,? Split:,? Task:. Context without duplication.Not free: the prompter fake keys scripted answers by label, so this rekeys roughly 50 assertions across
interactive_test.go,copy_catalog_test.goandpath_examples_test.go, plus a golden regen. Kept out of the always-ask change deliberately so the behaviour diff stayed reviewable.2. Arrow-up does not recall previous answers
Reported as: "usually when you use a terminal and use the arrow keys up and down it shows past commands, but it doesn't for the ones we are doing… if I re-run through the same process and have to manually type everything in again, it annoys me."
This is expected, not a regression: ↑ is the shell's history. Once the CLI takes the terminal in raw mode the keystroke is ours, and survey's
Inputhas no history —KeyArrowUp/KeyArrowDownare handled only while a suggestion list is open.Two things survey already gives us:
Default— now used, so anything passed on the command line is pre-filled (#711).Suggest func(toComplete string) []string— Tab completion. Wiring it to the filesystem for the path prompt would make Tab complete paths, and ↑/↓ would then navigate the suggestions.Proposed, in order of value:
Suggest.(1) needs a home for the state.
internal/configis env-scoped profiles holding tokens at mode 0600 with a versioned schema and migration — mixing remembered answers into the credential file is the wrong shape. A small separate state file under~/.traceblocis likely better, and it should be wiped bytracebloc deletelike the rest.Neither is urgent; both are small and directly improve repeat use.