Centralized browser-based verification of the entire 16.0 release. Each item is a shipped 16.0 capability with a concrete path to exercise it and the expected result. Source of truth: content/docs/releases/v16.mdx (PRs #3322 / #3331 / #3357).
Environment
- Boot the showcase / CRM example app and drive it in a browser as admin + a regular user (see the
dogfood-verification skill). Showcase seeds make most features demonstrable out of the box.
- Legend: 🖥️ = verify in the Console/Studio browser UI · 🔌 = backend/API/CLI — not directly browser-driven, verify via REST/
os CLI or an API panel · ⚠️ = a fix that is easiest to confirm by reproducing the old broken behavior.
1. Approvals 🖥️
2. Automation / Flow (Studio) 🖥️
3. Dashboards & Analytics 🖥️
4. Records / Lists / Detail / Forms 🖥️
5. Access / Studio pillar 🖥️
6. Auth / Login / Identity 🖥️
7. i18n 🖥️
8. Gantt (plugin-gantt) 🖥️
9. Backend / API / CLI (indirect) 🔌
Notes
- Track findings by checking boxes; file a linked bug per failure with repro steps + the responsible PR/ADR from
v16.mdx.
⚠️ items are regressions/holes fixed in 16.0 — the strongest test is to reproduce the old broken behavior and confirm it no longer happens.
Centralized browser-based verification of the entire 16.0 release. Each item is a shipped 16.0 capability with a concrete path to exercise it and the expected result. Source of truth:
content/docs/releases/v16.mdx(PRs #3322 / #3331 / #3357).Environment
dogfood-verificationskill). Showcase seeds make most features demonstrable out of the box.osCLI or an API panel ·1. Approvals 🖥️
quorum+minApprovals; submit; confirm it approves once the threshold is met, and that a single rejection still vetoes.per_groupwith 2 named groups (e.g. manager + finance); confirm it needs one approver from each group; try the showcaseExpenseSignoffFlow.?request=<id>opens the request drawer directly.sys_userpicker (not a free-text id box).2. Automation / Flow (Studio) 🖥️
timeRelative(offsetDays: [60,30,7]orwithinDays); confirm the first-class designer panel; verify it fires per matching record on the daily sweep.loop/parallel/try_catchnode shows its nested region inline (not an opaque card); select and edit a node inside a region through the schema-driven inspector.{var:value}map renders akeyValueeditor (not raw JSON); a number array rendersnumberList.summaryfield; set a child-rowfiltervia the visual editor; confirm the parent total only counts matching children.os dev/serve, a misauthored auto-launched flow surfaces⚠lines in theFlows:startup banner and ERROR logs on a failed trigger run.3. Dashboards & Analytics 🖥️
dataset+dimensions+values.categoryField); confirm a loud parse error naming the key + pointing at the dataset shape (was: silently renders nothing).4. Records / Lists / Detail / Forms 🖥️
multiple/accept/maxSize).autonumberparam maps to the AutoNumber widget.visibleWhenparity — a dependent select/multiselect/radio/checkboxes option shows/hides as its parent changes (cascading +dependsOn);select + multiplerenders a multi-value chip picker.$top/$skip(doesn’t load every row).owner_idstays out of leading columns and lands in the detail meta section.5. Access / Studio pillar 🖥️
record.visibleverdict with the deciding layer.systemobjects distinguished fromengine-ownedin badges + empty states.6. Auth / Login / Identity 🖥️
ssoEnforcedon first paint (no password wall flash); a hung sign-in recovers via watchdog.os devlogin page shows the dev-seeded admin credential hint.7. i18n 🖥️
collab.assignmentbell notification title is localized (recipient locale), opens a localized detail page, and mark-as-read clears the unread state on standalone/os dev(the notifications REST routes are now mounted).sys_filedetail page labels + the Pending/Committed/Deleted status pipeline render in the workspace locale.8. Gantt (plugin-gantt) 🖥️
beforeTaskUpdatehost veto blocks a bad drag;dependencyTypesswitch hidden for id-only stores.9. Backend / API / CLI (indirect) 🔌
organizationIdin hooks/actions —ctx.user.organizationId/ctx.session.organizationIdresolve;tenantIdalias removed.OS_MCP_STDIO_API_KEYfails closed; with a valid key, reads honor RLS/FLS.client.capabilities.transactionalBatchreflects whether/batchis mounted + transaction-capable.readonlyfields stripped on INSERT+UPDATE via REST;owner_idforge/transfer denied; cross-object/batchgated by per-object API rules; bulk-update runs validation rules.record.due_date == today()matches;cond ? x : null+floor/ceilwork; date arithmetic (end - start + 1) is now a build-time error inos build.visibleWhenenforced server-side — a crafted write of a gatedcheckboxesoption is rejected.events:['delete'], a webhookundelete/apitrigger, oraiStudio/aiSeatfails at parse/build.OS_SERVER_TIMING/X-OS-Debug-Timing, an admin sees auth/db/hooks/serialize spans; a non-admin does not.validate_expression— an agent validating a formula against an object schema gets errors/warnings/inferred type.Notes
v16.mdx.⚠️items are regressions/holes fixed in 16.0 — the strongest test is to reproduce the old broken behavior and confirm it no longer happens.