What happens
Showcase → Workspace → New Project (Wizard), signed in as the seeded admin, zh-CN session:
- Step 1: name + account (Northwind). Next.
- Step 2: 状态 = Active, 健康度 = Green. Next.
- Step 3: budget 50000, dates. Create →
POST /api/v1/data/showcase_project → 400 VALIDATION_FAILED, banner + toast Invalid project status transition. - Back to step 2, 状态 = Planned, Next, Create → 201.
So the wizard lets the author pick a status the project state machine does not accept as an initial state, and the only feedback comes three steps later, in English, without naming the field.
Three things to decide
- Showcase content: the wizard's status select should only offer the state machine's initial states on create (or default to
planned and hide the select), so the demo of "state machine + wizard" does not demo a dead end. - Product: a form for a create (
recordId absent) could derive the allowed initial values from the object's stateMachine / status transitions and constrain the select — the metadata already says which transitions exist. - Error surface: the validation error should be located (
status) so the wizard can jump back to the step that owns the field, and the message should go through the translation packs (it is the only English error on an otherwise zh-CN form).
Evidence
Network: POST /api/v1/data/showcase_project → 400 then → 201 after changing the status. Showcase source: examples/app-showcase/src/ui/pages/new-project-wizard.page.ts, examples/app-showcase/src/data/objects/project.object.ts (status state machine).
Also observed on the same run: the sticky error toast stays on screen next to the later success toast ("Your new project is ready…"), so the final screen shows both.
Found during the objectui pin-bump dogfood (PR #14295).
Generated by Claude Code
What happens
Showcase → Workspace → New Project (Wizard), signed in as the seeded admin, zh-CN session:
POST /api/v1/data/showcase_project→ 400 VALIDATION_FAILED, banner + toastInvalid project status transition.So the wizard lets the author pick a status the project state machine does not accept as an initial state, and the only feedback comes three steps later, in English, without naming the field.
Three things to decide
plannedand hide the select), so the demo of "state machine + wizard" does not demo a dead end.recordIdabsent) could derive the allowed initial values from the object'sstateMachine/ status transitions and constrain the select — the metadata already says which transitions exist.status) so the wizard can jump back to the step that owns the field, and the message should go through the translation packs (it is the only English error on an otherwise zh-CN form).Evidence
Network:
POST /api/v1/data/showcase_project → 400then→ 201after changing the status. Showcase source:examples/app-showcase/src/ui/pages/new-project-wizard.page.ts,examples/app-showcase/src/data/objects/project.object.ts(status state machine).Also observed on the same run: the sticky error toast stays on screen next to the later success toast ("Your new project is ready…"), so the final screen shows both.
Found during the objectui pin-bump dogfood (PR #14295).
Generated by Claude Code