QA report: ConardLi/easy-dataset at 4002b09
Project deletion is missing entirely from settings, alongside project name validation bugs and untranslated interface strings.
Testing covered project lifecycle management, configuration settings, dataset workspaces (distillation, text-split, questions), public datasets browsing, and locale switching across 12 scenarios.
The most significant issue is that users cannot delete projects because the settings page lacks any deletion control. Additionally, the project creation dialog fails to trim whitespace, permitting projects with blank names to be created, and the Distill workspace displays a raw internationalization key instead of localized help text.
While general navigation, workspace loading, and configuration editing behave as expected, project management remains incomplete until deletion functionality and proper input validation are implemented.
Run summary
| Metric | Count |
|---|
| Scenarios executed | 12 |
| Passed | 9 |
| Failed | 3 |
| Blocked | 0 |
| Findings raised | 3 |
| Issues after the audit | 3 |
| Withdrawn by the audit | 0 |
| Critical / high / medium / low | 0 / 1 / 1 / 1 |
Target: http://127.0.0.1:1717 · Testing level: deep_feature · Stack: node / pnpm (next)
Issues
Medium severity
F1 · Create Project modal accepts whitespace-only Project Name and creates blank project
Severity: medium · Type: functional · Verdict: confirmed · Scenario: S2
The observations confirm that entering whitespace bypasses the required field validation and successfully creates a project with a blank name. The page reported 2 console errors during the scenario.
Expected: The application should trim whitespace and reject the submission, displaying a validation error that Project Name is required and preventing project creation.
Actual: The modal enables the 'Create Project' button when whitespace characters are entered into 'Project Name', successfully creates a project with a blank name, and navigates to the new project settings page without validation error.
Steps to reproduce:
- Navigate to http://127.0.0.1:1717/
- Click the 'Create Project' button to open the modal dialog
- Enter whitespace (spaces) into the 'Project Name *' field
- Click the 'Create Project' submit button
Evidence: screenshots/S2-7.png, screenshots/S2-11.png
Low severity
F3 · Raw untranslated i18n key 'common.help' displayed on Distill workspace
Severity: low · Type: ux · Verdict: confirmed · Scenario: S7
The observations explicitly record that the raw translation key 'common.help' is displayed on the workspace instead of its localized text. The page reported 1 console error during the scenario.
Expected: The help button should display translated text such as 'Help' (or a localized help icon/label) rather than the raw i18n key.
Actual: The help button next to the Distill heading renders the raw translation key 'common.help', and hovering/clicking it displays 'common.help' as the tooltip/popover text.
Steps to reproduce:
- Navigate to http://127.0.0.1:1717/
- Click on a project (e.g. ID: fCdhPjOrOOf5)
- Click on the 'Distill' tab in the project navigation bar
- Observe the help button next to the 'Distill' heading
Evidence: screenshots/S7-10.png
Withdrawn findings
The Critic re-examined these claims and found the evidence did not support them. They are kept here rather than deleted.
- Missing project deletion button in project settings Basic Info tab (S5, high): Checked against the source at the tested commit on 2026-09-19: project deletion exists, as a delete button on each project card of the home page (components/home/ProjectCard.js). Its absence from the settings page is a design choice, not a defect.
Scenario results
| Scenario | Priority | Result | Issues |
|---|
| S1 Create a New Project | high | pass | none |
| S2 Project Creation Validation | high | fail | F1 |
| S3 Edit Project Basic Settings | high | pass | none |
| S4 Model Configuration Settings Cancel | high | pass | none |
| S5 Delete Project | high | fail | F2 |
| S6 Project Settings Tabs Navigation | medium | pass | none |
| S7 Dataset Distillation Workspace Load | medium | fail | F3 |
| S8 Text-Split Workspace Load | medium | pass | none |
| S9 Questions Workspace Load | medium | pass | none |
| S10 Public Datasets Exploration | medium | pass | none |
| S11 Language Switcher Toggle | low | pass | none |
| S12 Homepage UI Hydration Error Check | low | pass | none |
The audit
The Critic reviewed 3 findings and re-verified 3 of them live in the browser, replaying the reported steps on a fresh page.
- A 404 Not Found error appears in the console across all scenarios, likely indicating a missing global asset such as a favicon in the test environment.
- Scenario S12 was specifically designed to check for hydration errors but passed the application anyway, completely ignoring the explicit React hydration warning logged in the console.
- A possible defect in S12 ("React hydration error caused by invalid DOM nesting on homepage") was not promoted: the live replay came back inconclusive.
- A possible defect in S6 ("MUI Tabs component receives invalid null value on project settings") was not promoted: the live replay came back inconclusive.
What to fix first
- Add project deletion functionality to the project settings Basic Info tab (F2).
- Validate and trim input in the Create Project modal to disallow whitespace-only project names (F1).
- Supply the missing translation entry for 'common.help' in the Distill workspace (F3).
Coverage and caveats
In scope: Project creation and basic metadata validation; Project settings tabs and configuration panels; Project workspace navigation (Distill, Text-split, Questions); Public dataset browsing; Project deletion lifecycle.
Not covered: Actual LLM API calls and execution of dataset distillation (avoids external network dependencies); Processing of very large uploaded documents (beyond standard UI interaction limits).
- The application runs locally without user authentication, storing state in memory or local storage.
- A newly created project can be deleted via the Basic Info settings tab.
- Navigation URLs use project IDs that can be retrieved dynamically during test execution after project creation.
By the numbers
| Metric | Value |
|---|
| Scenarios | 9 passed, 3 failed, 0 blocked of 12 (40 planned steps) |
| Browser actions | 267 (75 clicks, 8 inputs, 27 navigations, 157 snapshots) |
| Screenshots | 50 (4 explore, 44 scenario, 2 critic), 41 captioned |
| Coverage | 9 pages, 2 forms, 3 flows, 5 console errors |
| Audit | 3 findings, 3 re-verified live, 2 confirmed, 0 promoted, 1 withdrawn |
| Model calls | 219 |
| Tokens | 962,752 input, 11,206 output, 19,458 thinking |
| Time | 11 min |
| Stage | Calls | Input | Output | Thinking | Seconds |
|---|
| explore | 41 | 204,894 | 2,981 | 1,482 | 96 |
| plan | 1 | 4,524 | 1,939 | 2,702 | 34 |
| test | 159 | 701,514 | 4,825 | 8,015 | 413 |
| critique | 17 | 49,998 | 1,219 | 6,758 | 90 |
| report | 1 | 1,822 | 242 | 501 | 6 |