// Slugs of apps whose `route` is hardcoded in the tx-os SPA router // (see artifacts/tx-os/src/App.tsx). Editing the route of one of these // apps in the admin panel breaks navigation silently — the launcher // would set the new path but no matches it. Task #517: server // rejects route changes for these slugs and the admin form locks the // route field with a helpful notice. Add a slug here whenever you wire // a new hardcoded in App.tsx for a seeded app. export const BUILTIN_APP_SLUGS = [ "services", "notifications", "admin", "notes", "my-orders", "executive-meetings", ] as const; export type BuiltinAppSlug = (typeof BUILTIN_APP_SLUGS)[number]; export function isBuiltinAppSlug(slug: string): slug is BuiltinAppSlug { return (BUILTIN_APP_SLUGS as readonly string[]).includes(slug); }