@@ -71,9 +71,15 @@ export const SETUP_APP: App = {
7171 label : 'Platform' ,
7272 icon : 'layers' ,
7373 children : [
74- { id : 'nav_apps' , type : 'object' , label : 'Apps' , objectName : 'sys_app' , icon : 'layout-grid' } ,
75- { id : 'nav_packages' , type : 'object' , label : 'Packages' , objectName : 'sys_package' , icon : 'package' } ,
76- { id : 'nav_package_installations' , type : 'object' , label : 'Installations' , objectName : 'sys_package_installation' , icon : 'package-check' } ,
74+ // `sys_app` / `sys_package` / `sys_package_installation` are
75+ // contributed by `@objectstack/service-tenant` (control-plane scope).
76+ // Single-project runtimes do not register them — the `requiresObject`
77+ // capability flag tells the frontend to hide these entries when the
78+ // backing object is not in the SchemaRegistry, avoiding the
79+ // 404-when-clicked trap.
80+ { id : 'nav_apps' , type : 'object' , label : 'Apps' , objectName : 'sys_app' , icon : 'layout-grid' , requiresObject : 'sys_app' } ,
81+ { id : 'nav_packages' , type : 'object' , label : 'Packages' , objectName : 'sys_package' , icon : 'package' , requiresObject : 'sys_package' } ,
82+ { id : 'nav_package_installations' , type : 'object' , label : 'Installations' , objectName : 'sys_package_installation' , icon : 'package-check' , requiresObject : 'sys_package_installation' } ,
7783 { id : 'nav_metadata' , type : 'object' , label : 'All Metadata' , objectName : 'sys_metadata' , icon : 'file-cog' } ,
7884 ] ,
7985 } ,
0 commit comments