Base UI toast now counts
shadscan now recognizes the new shadcn Toast built on Base UI, following a mounted Toaster through local wrappers to the @base-ui/react/toast runtime without mistaking unrelated Base UI primitives for toast infrastructure.
- Base UI Toast satisfies both toast setup checks.
- The @base-ui/react package is linked to its /toast import path.
- Local shadcn Toaster wrappers keep their runtime provenance.
- Unrelated Base UI imports still fail the toast checks.
- Rule IDs, scoring weights, and report schemas are unchanged.
The toast was already there
shadcn added a new Toast component built on Base UI. Applications installed
@base-ui/react, imported Toast from @base-ui/react/toast, and mounted the
generated Toaster from their app shell. The notification infrastructure was
real and reachable, but shadscan still failed both toast checks.
The mismatch was in package identity. Existing toast runtimes use the same
string in package.json and in source imports. Base UI does not: the installed
package is @base-ui/react, while the toast runtime lives at its /toast
subpath. The detector required an exact dependency/import match and stopped
before following the mounted wrapper.
Package and subpath are now linked
Toast runtime detection now describes the dependency and import path
separately. A mounted local Toaster can resolve through project-owned
wrappers to @base-ui/react/toast, while dependency verification still checks
for the actual @base-ui/react package.
Both toast-provider-present and toast-provider-mounted use the same runtime
analysis, so they now agree on the Base UI setup and cite the toast subpath in
their evidence.
What still does not count
Installing Base UI alone is not enough. Importing a button, dialog, or any
other Base UI primitive from another subpath does not qualify, and a local
component named Toaster without runtime provenance still fails. The provider
must remain mounted from a supported app shell, directly or through a
resolvable local wrapper.
This is a recognition fix only. Rule IDs, scoring weights, report schemas, and the bundled ruleset version do not change.