Found by the ingest-flow UX audit (2026-07-07), verified against code.
The tracebloc data ingest run is functionally solid but speaks Kubernetes and goes silent at the worst moment. Three MED issues:
1. Silent hang after submit
After the CLI prints that it's submitting the run, WatchJob calls waitForJobPod, which polls up to PodReadyTimeout (5 min) for the ingestor Pod to schedule + pull its image — printing nothing. To the user the CLI looks hung right after the most important step.
2. The 1-hour watch cap is undisclosed
JobWatchTimeout is 1 hour; when it elapses the CLI silently "detaches". The user is never told up front that watching is time-boxed or that --detach exists for longer runs.
3. Kubernetes jargon in the happy-path output
Every run surfaces stage Pod, jobs-manager spawned ingestor Job, port-forward, kubectl cp, Streaming logs from Job <ns>/<job> to a data-scientist who never touches k8s.
Fix (PR incoming)
- A live spinner during the pod-scheduling/image-pull wait ("Waiting for the ingestion to start…", with a Ctrl-C hint), then a clean "Ingestion started — live progress:" before logs stream.
- Disclose the 1-hour follow window up front in step 4 (and only when NOT
--detach). - De-jargon the happy-path narrative: upload-channel wording instead of "stage Pod", "Submitted — tracebloc is validating your data…", "Connecting to your workspace to submit the run…", plain-language detach/timeout messages (the raw
kubectl logs reconnect stays, but as a labelled optional follow — there's no CLI re-attach verb yet).
Out of scope (follow-ups): the terminology sweep (client vs workspace vs cluster), the orphan-warning kubectl delete copy, naming the destination table in the success summary, and a real re-attach verb.
Parent QA epic: #67.
Found by the ingest-flow UX audit (2026-07-07), verified against code.
The
tracebloc data ingestrun is functionally solid but speaks Kubernetes and goes silent at the worst moment. Three MED issues:1. Silent hang after submit
After the CLI prints that it's submitting the run,
WatchJobcallswaitForJobPod, which polls up toPodReadyTimeout(5 min) for the ingestor Pod to schedule + pull its image — printing nothing. To the user the CLI looks hung right after the most important step.2. The 1-hour watch cap is undisclosed
JobWatchTimeoutis 1 hour; when it elapses the CLI silently "detaches". The user is never told up front that watching is time-boxed or that--detachexists for longer runs.3. Kubernetes jargon in the happy-path output
Every run surfaces
stage Pod,jobs-manager spawned ingestor Job,port-forward,kubectl cp,Streaming logs from Job <ns>/<job>to a data-scientist who never touches k8s.Fix (PR incoming)
--detach).kubectl logsreconnect stays, but as a labelled optional follow — there's no CLI re-attach verb yet).Out of scope (follow-ups): the terminology sweep (
clientvsworkspacevscluster), the orphan-warningkubectl deletecopy, naming the destination table in the success summary, and a real re-attach verb.Parent QA epic: #67.