Motivation
Several surfaces render raw kernel identifiers where a person is reading: the batch table shows in_annotation verbatim (BatchesScreen.tsx:100) while the label helper sits 30 lines away in batchState.ts:52; the ingest run badge shows pending/running/completed/failed raw; the failure table shows unsupported/corrupt raw; and the asset-progress label map exists twice (batchState.ts:190-196 and AnnotationPage.tsx:799-805), free to drift. Separately, the "Versions" tab holds schema versions — dataset releases live on the Dataset screen — and the founder has flagged the name as confusing. This is the mechanical layer of the vocabulary pass: label strings only, no identifier/URL/testid changes.
Scope
BatchesScreen.tsx:100 — render batchStateLabel(batch.state) instead of raw batch.state.
IngestScreen.tsx run badge — label map for IngestState: pending → "Waiting", running → "Processing", completed → "Done", failed → "Failed". Failure table kind badge — unsupported → "Unsupported format", corrupt → "Corrupt file". Both follow batchState.ts's convention: fall through to the raw string for unknown members (batchState.ts:41-44).
- Consolidate the two asset-progress label maps into
batchState.ts's PROGRESS_LABEL; AnnotationPage imports it.
- Rename tab label "Versions" → "Schema history":
ProjectScreen.tsx:154 only (TAB_LABELS value). The union value "versions", testids, and ?tab=versions stay — they are public API. Update the two exact label-list assertions (screens.test.tsx:976-981, :989-993) and the Versions tab's descriptive prose so it says schema versions.
SchemaEditor.tsx diff badges: keep the words (accurate) but sentence-case them ("Additive"/"Destructive").
- Every touched test assertion listed in the PR description.
Out of scope
Affected files
frontend/ui-core/src/screens/BatchesScreen.tsx, IngestScreen.tsx, batchState.ts, ProjectScreen.tsx, SchemaEditor.tsx
frontend/ui-core/src/annotator/AnnotationPage.tsx
- test updates:
screens.test.tsx, ingest.test.tsx, frontend/app/e2e/annotate.spec.ts (asset-progress badge text)
Test impact
String assertions move with their strings, in the same commit. Known: screens.test.tsx:976-993 (tab labels), ingest.test.tsx:683 (run-state "completed" → "Done"), screens.test.tsx:591-592 (diff badge case), annotate.spec.ts:311/330/357 (asset-progress badge capitalization follows the consolidated map).
Motivation
Several surfaces render raw kernel identifiers where a person is reading: the batch table shows
in_annotationverbatim (BatchesScreen.tsx:100) while the label helper sits 30 lines away inbatchState.ts:52; the ingest run badge showspending/running/completed/failedraw; the failure table showsunsupported/corruptraw; and the asset-progress label map exists twice (batchState.ts:190-196andAnnotationPage.tsx:799-805), free to drift. Separately, the "Versions" tab holds schema versions — dataset releases live on the Dataset screen — and the founder has flagged the name as confusing. This is the mechanical layer of the vocabulary pass: label strings only, no identifier/URL/testid changes.Scope
BatchesScreen.tsx:100— renderbatchStateLabel(batch.state)instead of rawbatch.state.IngestScreen.tsxrun badge — label map forIngestState: pending → "Waiting", running → "Processing", completed → "Done", failed → "Failed". Failure table kind badge — unsupported → "Unsupported format", corrupt → "Corrupt file". Both followbatchState.ts's convention: fall through to the raw string for unknown members (batchState.ts:41-44).batchState.ts'sPROGRESS_LABEL;AnnotationPageimports it.ProjectScreen.tsx:154only (TAB_LABELSvalue). The union value"versions", testids, and?tab=versionsstay — they are public API. Update the two exact label-list assertions (screens.test.tsx:976-981,:989-993) and the Versions tab's descriptive prose so it says schema versions.SchemaEditor.tsxdiff badges: keep the words (accurate) but sentence-case them ("Additive"/"Destructive").Out of scope
ProjectTabunion values, testids,?tab=URL values (public API —index.ts:188, pinned byshell.spec.ts/navigation.spec.ts).patterns/AsyncStates.tsx:116) — a design decision, not a bug; Vocabulary pass, layer 2 + Dataset & Releases (DISCUSSION FIRST — do not implement) #293.Affected files
frontend/ui-core/src/screens/BatchesScreen.tsx,IngestScreen.tsx,batchState.ts,ProjectScreen.tsx,SchemaEditor.tsxfrontend/ui-core/src/annotator/AnnotationPage.tsxscreens.test.tsx,ingest.test.tsx,frontend/app/e2e/annotate.spec.ts(asset-progress badge text)Test impact
String assertions move with their strings, in the same commit. Known:
screens.test.tsx:976-993(tab labels),ingest.test.tsx:683(run-state "completed" → "Done"),screens.test.tsx:591-592(diff badge case),annotate.spec.ts:311/330/357(asset-progress badge capitalization follows the consolidated map).