Skip to content

Guided ingest skips a question when the value came from the command line — a moved dataset becomes a dead end #509

Description

@LukasWodka

Summary

The guided ingest flow skips any question whose value arrived on the command line. For a path that is a dead end: the user is sitting at a prompt, ready to answer, and instead gets a hard error about a path they were never asked for.

Reported from a real session:

Step 1 of 4 · Do you want to ingest training or test data?
? test

Step 2 of 4 · Please name the dataset.
? testing12344

Error: no such file or directory: "data" — check the path to your dataset

The check itself is correct — data was passed as the positional argument and no such folder existed. But step 3 never ran, because it is guarded by:

if a.LocalPath == "" {
    p.PromptStep(3, 4, "Where is your data?")

Every step carries the same guard: intent, name, path, task, and the per-task extras.

Why the rule is wrong for a path specifically

A name or a task that you passed is still true on the next run. A path is the one answer that silently stops being true — data moves. So anyone with muscle memory for tb data ingest ./data hard-errors the moment their dataset moves, with no way to correct it in the flow.

Proposed rule

In guided mode, every question relevant to the chosen task is asked. A value that arrived on the command line becomes that question's default — Enter accepts it — never a reason to skip. In non-interactive mode (--no-input, no TTY, --output-json) nothing is ever asked and flags/positionals are obeyed exactly as today.

Task relevance stays as the only gate: which questions apply still depends on the task chosen at step 4 (self-supervised text has no label and no extras).

Non-interactive must be untouched — the positional is the only way to pass a path (there is no --path flag), so scripts and CI depend on it.

Acceptance

  • Every core question asked in guided mode, even when supplied.
  • Supplied values survive as prompt defaults (never silently replaced by the flow's own fallback).
  • An explicit --task pre-selects rather than skipping, and settles the family so the user's own answer is among the options.
  • Non-interactive behaviour byte-identical.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions