Skip to content

v0.5.101

Choose a tag to compare

@jaspertey jaspertey released this 30 Oct 13:06
df7496a

Added

  • CI guards the adoption inventory's completeness (contributor-facing). composer test:adoption-completeness (tests/AdoptionCompletenessCheck.php, in the same CI job as the other adoption checks) fails when a page, layout or shell component a feature installs under resources/js/pages is named by no surfaces.json row's uses.files, uses.components or uses.imports and has no entry in the new resources/adoption/internal.json, and when a row with handRolled signals has no adoption fixture expecting it hand-rolled (or an unproven entry there). Stale internal.json entries fail too, and every entry needs a reason. Rows adopted in no fixture are listed as a note. To pass, uses.files now also names the shell partials (UserMenu, WorkspaceSwitcher, Breadcrumbs, GlobalSearch, UserAvatar, Wordmark, FocusShell under shell.workspace; GuestShell and Public/Markdown under shell.public), the remaining auth screens (ResetPassword, ConfirmPassword, VerifyEmail), the dashboard partials, Sections/Index, Search, the placeholder, error and no-workspace pages (workspace.pages), Settings/Delete (workspace.settings) and the People pages and invitation page (access.members); internal.json lists the sample notes pages and the welcome steps. New fixtures pin a hand-rolled outcome for the 23 rows that had none: public-shell-hand-rolled, split-hand-rolled, search-hand-rolled, action-bar-hand-rolled, button-hand-rolled, menu-hand-rolled, confirm-hand-rolled, modal-hand-rolled, rich-text-hand-rolled, list-hand-rolled, badge-hand-rolled, avatar-hand-rolled, alert-hand-rolled, toast-hand-rolled, activity-hand-rolled, theme-hand-rolled, timezone-hand-rolled, auth-hand-rolled, passkeys-hand-rolled, teams-hand-rolled (workspace.pages, access.members, workspaces.tenancy) and mcp-hand-rolled. No stub changes, no re-pin.

Changed

  • A workspace without the dashboard opens its first navigation page. With workspace.dashboard off, the workspace root (/@{workspace}, and / in the short form) was a 404. It now redirects (302) to the first primary navigation page the viewer may open, or to /me/workspaces when there is none. At the kit's home, a person with several workspaces still goes to the root of the one they last used, so with the dashboard off they land on its first page instead of the workspace list (docs/dashboard.md › Without a dashboard). Give your page order < -10 to make it first. Only the capability being off redirects: a role that lacks dashboard.read, a non-member and a JSON client are refused as before. An accepted invitation's landing uses the same lookup, unchanged. No stub changes, no re-pin. composer test:workspace-root (new, in CI) covers it; test:capability-guard now expects the root's redirect.

Fixed

  • The adoption inventory reads hand-rolled account and settings pages wherever they live. account.pages and workspace.settings applied only when a route URI said settings, so an app serving its own account page at /account, or workspace settings at /w/{workspace}/deletion, read n/a. Two facts computed from file names close that: has-account-pages (pages under Account/, Me/, Profile/, Security/, Preferences/, Settings/{Account,Profile,Security,Password,Preferences}/, and *AccountSettings*, *ProfileSettings*, *UserSettings*, *UserPreferences* pages) and has-workspace-settings-pages (Teams/Show.vue, Team*/Settings/, Workspace*/Edit, Workspace*/Deletion/, Organisation/Organization settings, Settings/Workspace*, Settings/Team*, and *TeamSettings*, *WorkspaceSettings*, *OrganizationSettings* pages). Both read inside tey/mod module page folders too, and never flag the kit's own Workspace/Account/** and Workspace/Settings/** pages or components/ui/**. A domain component such as SlideSettings.vue matches none of them. account.pages also counts the kit's Password and Delete pages as adoption.
  • New surfaces: settings.frame and mcp.connections. settings.frame is the account and workspace settings frame (Workspace/Account/Layout.vue, Workspace/Settings/Layout.vue); an app's own Account/Layout.vue, Settings/Layout.vue, Settings/Index or layouts/settings/** reads hand-rolled. mcp.connections is the AI assistants page (Workspace/Settings/Connections/Page.vue); *Connection*, *ConnectedApp*, *Assistant* and *Token* pages under Settings/, Account/, Profile/ or Me/, ConnectedApp*/, ApiTokens/ and Jetstream's API/ pages, and an app controller, view model, action or Livewire class referencing Passport's Token/TokenRepository or Sanctum's PersonalAccessToken read hand-rolled.
  • platform.timezone flags an app's own timezone picker. A *Timezone*.vue outside the kit's components and Welcome timezone pages reads hand-rolled. The kit ships no passkey management page (only the PasskeyOffer), so auth.passkeys is unchanged.

The fixtures account-hand-rolled, account-kit-installed and slide-settings-domain pin these outcomes. No stub changes, no re-pin.


What's Changed

  • Read hand-rolled account and settings pages in the adoption inventory (0.5.x) by @jaspertey in #466
  • Guard the adoption inventory's completeness in CI (0.5.x) by @jaspertey in #471
  • Open the first navigation page at a workspace root without a dashboard (0.5.x) by @jaspertey in #458
  • Release v0.5.101 by @jaspertey in #472

Full Changelog: v0.5.100...v0.5.101