Repository navigation
v0.5.101
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 underresources/js/pagesis named by nosurfaces.jsonrow'suses.files,uses.componentsoruses.importsand has no entry in the newresources/adoption/internal.json, and when a row withhandRolledsignals has no adoption fixture expecting ithand-rolled(or anunprovenentry there). Staleinternal.jsonentries fail too, and every entry needs a reason. Rowsadoptedin no fixture are listed as a note. To pass,uses.filesnow also names the shell partials (UserMenu,WorkspaceSwitcher,Breadcrumbs,GlobalSearch,UserAvatar,Wordmark,FocusShellundershell.workspace;GuestShellandPublic/Markdownundershell.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.jsonlists 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) andmcp-hand-rolled. No stub changes, no re-pin.
Changed
- A workspace without the dashboard opens its first navigation page. With
workspace.dashboardoff, 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/workspaceswhen 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 pageorder< -10 to make it first. Only the capability being off redirects: a role that lacksdashboard.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-guardnow expects the root's redirect.
Fixed
- The adoption inventory reads hand-rolled account and settings pages wherever they live.
account.pagesandworkspace.settingsapplied only when a route URI saidsettings, so an app serving its own account page at/account, or workspace settings at/w/{workspace}/deletion, readn/a. Two facts computed from file names close that:has-account-pages(pages underAccount/,Me/,Profile/,Security/,Preferences/,Settings/{Account,Profile,Security,Password,Preferences}/, and*AccountSettings*,*ProfileSettings*,*UserSettings*,*UserPreferences*pages) andhas-workspace-settings-pages(Teams/Show.vue,Team*/Settings/,Workspace*/Edit,Workspace*/Deletion/,Organisation/Organizationsettings,Settings/Workspace*,Settings/Team*, and*TeamSettings*,*WorkspaceSettings*,*OrganizationSettings*pages). Both read inside tey/mod module page folders too, and never flag the kit's ownWorkspace/Account/**andWorkspace/Settings/**pages orcomponents/ui/**. A domain component such asSlideSettings.vuematches none of them.account.pagesalso counts the kit's Password and Delete pages as adoption. - New surfaces:
settings.frameandmcp.connections.settings.frameis the account and workspace settings frame (Workspace/Account/Layout.vue,Workspace/Settings/Layout.vue); an app's ownAccount/Layout.vue,Settings/Layout.vue,Settings/Indexorlayouts/settings/**reads hand-rolled.mcp.connectionsis the AI assistants page (Workspace/Settings/Connections/Page.vue);*Connection*,*ConnectedApp*,*Assistant*and*Token*pages underSettings/,Account/,Profile/orMe/,ConnectedApp*/,ApiTokens/and Jetstream'sAPI/pages, and an app controller, view model, action or Livewire class referencing Passport'sToken/TokenRepositoryor Sanctum'sPersonalAccessTokenread hand-rolled. platform.timezoneflags an app's own timezone picker. A*Timezone*.vueoutside the kit's components and Welcome timezone pages reads hand-rolled. The kit ships no passkey management page (only thePasskeyOffer), soauth.passkeysis 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