Is your feature request related to a problem?
The current /assessment module does not align with the approved UI/UX design, leading to confusion and inefficiencies for users navigating assessments.
Describe the solution you'd like
Rebuild the /assessment module to match the approved design and migrate it to the BATCH assessments API. Key changes include:
- Home: Replace
Datasets / Config / Result tabs with Assessors and Runs panels.
- Wizard: Implement a streamlined 4-step flow with new entry modes.
- Prompt editor: Add token highlighting, two-stage
@-mentions, live preview, draggable split pane, and model picker.
- Save: Enable versioning only on significant diffs.
- Results: Provide a results table with modal details, CSV export, and polling for status.
- API: Create new
/api/assessment/batch routes and restructure fetchers.
Additionally, review notes highlight significant LOC reduction and necessary decisions on certain components.
Original issue
Rebuilds /assessment to match the approved design (docs/assessment-ui-ux-flow.md) and moves it onto the BATCH assessments API.
What changes
Home — replaces the Datasets / Config / Result tabs with two panels: Assessors (search, version chips, cursor pagination, delete) and Runs (filter by assessor/version, status, Export, View results). Selecting a version is the pivot that enables Edit and New run.
Wizard — one 4-step flow (Submission → Pre-filter → Assessment → Run) with three entry modes: new assessor, edit version, run existing. Column mapping is gone; text and attachment columns are derived from the prompt's @Column / <Column> tokens.
Prompt editor (steps 2–3) — two zones per step with token highlighting, two-stage @-mentions (pick column → pick Text/Image/PDF), a live preview filled with row 1, a draggable split pane and heading-anchored scroll sync. Model picker per step in the flow strip.
Save — Review & save writes a new version (vN+1), enabled only on a real diff against the loaded version; whitespace-only edits don't count.
Results — table with row-detail modal (scores + reasons, feedback, attachments), CSV export, and the existing spreadsheet view one click away. Polls until the run reaches a terminal status.
API — new /api/assessment/batch BFF routes; fetchers split into lib/assessment/api/{assessors,runs,submissions}.ts. Assessors are ASSESSMENT-tagged configs, so configBlob.ts maps between the wizard draft and the stored blob (input_schema carries attachment types both ways). batchResults.ts flattens the nested BATCH result into the wide row the table reads.
Notes for review
- ~6.7k LOC deleted: the legacy wizard, the multi-config fan-out UI, and the old review sections. A run now targets one assessor version instead of 1–4 configs.
- Duplicate detection is no longer configurable in the wizard; the stage still renders on a run.
PostProcessingPanel.tsx / PostProcessingStep.tsx are kept but currently unreachable — the 4-step flow has no place for them. Needs a call on whether to re-host or drop.
tsc, npm run lint and npm run build all clean.
Is your feature request related to a problem?
The current
/assessmentmodule does not align with the approved UI/UX design, leading to confusion and inefficiencies for users navigating assessments.Describe the solution you'd like
Rebuild the
/assessmentmodule to match the approved design and migrate it to the BATCH assessments API. Key changes include:Datasets / Config / Resulttabs with Assessors and Runs panels.@-mentions, live preview, draggable split pane, and model picker./api/assessment/batchroutes and restructure fetchers.Additionally, review notes highlight significant LOC reduction and necessary decisions on certain components.
Original issue
Rebuilds
/assessmentto match the approved design (docs/assessment-ui-ux-flow.md) and moves it onto the BATCH assessments API.What changes
Home — replaces the
Datasets / Config / Resulttabs with two panels: Assessors (search, version chips, cursor pagination, delete) and Runs (filter by assessor/version, status, Export, View results). Selecting a version is the pivot that enables Edit and New run.Wizard — one 4-step flow (Submission → Pre-filter → Assessment → Run) with three entry modes: new assessor, edit version, run existing. Column mapping is gone; text and attachment columns are derived from the prompt's
@Column/<Column>tokens.Prompt editor (steps 2–3) — two zones per step with token highlighting, two-stage
@-mentions (pick column → pick Text/Image/PDF), a live preview filled with row 1, a draggable split pane and heading-anchored scroll sync. Model picker per step in the flow strip.Save — Review & save writes a new version (
vN+1), enabled only on a real diff against the loaded version; whitespace-only edits don't count.Results — table with row-detail modal (scores + reasons, feedback, attachments), CSV export, and the existing spreadsheet view one click away. Polls until the run reaches a terminal status.
API — new
/api/assessment/batchBFF routes; fetchers split intolib/assessment/api/{assessors,runs,submissions}.ts. Assessors are ASSESSMENT-tagged configs, soconfigBlob.tsmaps between the wizard draft and the stored blob (input_schemacarries attachment types both ways).batchResults.tsflattens the nested BATCH result into the wide row the table reads.Notes for review
PostProcessingPanel.tsx/PostProcessingStep.tsxare kept but currently unreachable — the 4-step flow has no place for them. Needs a call on whether to re-host or drop.tsc,npm run lintandnpm run buildall clean.