Compiled 2026-07-18 at working-tree commit 21d024fcf2 by direct inspection of
apps/oshun/web and libs/oshun/*. Covers the eight dimensions YSD-0106 names:
routes, shared navigation, authentication, tenant context, Library persistence,
design tokens, responsive layouts, accessibility primitives.
Routes (apps/oshun/web/src/app/)#
- Top-level route groups include:
(workspace)/workspace,library(collection,collections),nisaba(notebook,notebooks,graph,compare,plan,scholar,manuscript,lexicon,daily),metis,studio,auth/verify-email,onboarding,billing,legal,messages,notifications,explore,activity,events,assistant,mobile,operator, plus product-specific groups (lilith,lilith-studio,mawu-studio,egbe-studio,atelier,arete,nyx,d,domains). Error/loading/not-found boundaries exist at the root (error.tsx,global-error.tsx,loading.tsx,not-found.tsx). /studiohas 58 route directories. Domain surfaces:yemaya,aja,hathor,bellona,isis,neith,nous,tara,compose,generation,generation-gallery,authoring,project-obsidian,concordia-workbench. Platform surfaces (directly reusable for the study workspace):authentication-architecture,rbac-permission-policy,enterprise-tenant-isolation,real-time-collaboration-substrate,presence-cursor-systems,commenting-annotation-system,file-media-ingestion,asset-preview-pipeline,background-jobs-progress-ux,navigation-commands,workspace-context-switching,cross-domain-entity-model,search-discovery,notification-center,review-approval-workflows,data-retention-lifecycle-controls,audit-compliance-surfaces,accessibility-governance,internationalization-localization,design-language,color-system,typography,spacing-layout,component-primitives,complex-interactions,resilience-error-ux,performance-budgets,experimentation-feature-flags,security-hardening-program,session-device-management./studio/studydoes not exist yet — created by YSD-1002 after the YSD-0122 route decision.apps/oshun/web/src/components/studio/holds 1,464 components; the YSD-0101/0102 caveat applies — many Studio panels are fixture-driven (verified example:StudioHathorDirectorPerformanceReplaySystemPanel.tsx) and each must be re-verified before being treated as a working primitive.
Shared navigation#
libs/oshun/navigation—customer-ia.ts,admin-ia.ts(+bindings),cross-domain-target.ts,current-domain-store.ts,assistant-continuity-journey.ts(all with tests).libs/oshun/shell-core—command-surface.ts,deep-links.ts,account-switcher.ts,current-domain-persistence.ts,auth-lifecycle.ts,activity-timeline.ts.- App components:
CommandPalette.tsx,DomainSwitcherEntryPanel.tsx,CrossDomainQuickActionsMenu.tsx,DeepLinkBuilder.tsx,DomainRouteExperience.tsx,DomainTransition.tsx,DomainStartupGate.tsx,DomainErrorBoundary.tsx,KeyboardShortcutHelp.tsx,FocusModeToggle.tsx. - Additional shells:
libs/oshun/shell-desktop,shell-wearable,shell-assistant,shell-routines,shell-achievements.
Authentication#
libs/oshun/auth—auth-client.ts,customer-auth-model.ts,admin-access.ts,admin-operator-directory.ts, plus customer consent/data-deletion/data-export/support-history stores (the deletion and export stores matter for YSD-3060+ deletion flows).- App side:
apps/oshun/web/src/auth/,src/lib/auth-session.ts(OSHUN_SESSION_COOKIE_NAME='oshun-session',OSHUN_ACCESS_TOKEN_COOKIE_NAME='oshun-access',WebAuthUserwithplan: 'free'|'pro'|'premium', linked accounts), routeauth/verify-email. apps/oshun/bffis the client-facing API composition layer (the workspace BFF routes belong here or follow its pattern).
Tenant context#
libs/oshun/tenant-console(tenant administration),apps/oshun/tenant-adminapp, Studio surfacestudio/enterprise-tenant-isolation.- Persistence is tenant-scoped: oshun Prisma projections carry
tenantIdwith tenant-scoped uniqueness (e.g.NisabaAnnotation @@unique([tenantId, contractSchema, sourceRecordId]));libs/shared/live-media/src/identifiers.tsprovides a UUID-brandedTenantIdSchemareusable in new contracts.
Library persistence#
- Routes:
/librarywithcollection/andcollections/. libs/oshun/persistence/prisma/schema.prisma—model LibraryLibraryCollection(line 1594) backs shared Library collections; the same schema holds the cross-domain Nisaba projections (NisabaNotebook,NisabaStudyPlan,NisabaAnnotation,NisabaConceptGraphNode) that give the shell its Nisaba continuity.- Nisaba surfaces already mounted in the shell (
/nisaba/notebook(s),/graph,/compare,/plan,/scholar) prove the Library/notebook continuity path the proposal relies on.
Design tokens#
libs/oshun/design-tokens— shared token package (tokens.ts+ tests).apps/oshun/web/src/design-system/tokens.ts— app-level tokens (+ alilith/tokens.tsproduct variant,__tests__/tokens.test.ts).libs/oshun/design-languageand Studio documentation routes (design-language,color-system,typography,spacing-layout,component-primitives) document the system.
Responsive layouts#
apps/oshun/web/src/design-system/tokens.ts:329-344exportsbreakpoints(sm/md/lg/xl),BreakpointKey, andmediaQueries(min-width queries) — the responsive baseline the YSD-1015 test matrix should reference.apps/oshun/web/src/mobileroute group plusadmin-mobile,mobile,wearableapps define the smaller-form-factor surfaces.
Accessibility primitives#
apps/oshun/web/src/components/AccessibilityShell.tsx— the shell-level accessibility wrapper.FocusModeToggle.tsx,KeyboardShortcutHelp.tsx,LanguageSwitcher.tsx; Studio governance surfacestudio/accessibility-governance.libs/oshun/i18n+apps/oshun/web/src/i18nfor locale support;studio/internationalization-localizationdocuments the i18n system.- Iris owns accessibility policy (YSD-0162); these shell primitives are the Oshun-side implementation hooks the workspace must compose with.
Adjacent shell capabilities worth reusing#
apps/oshun/web/src/offline+libs/oshun/offline(offline behavior, YSD-7/17 relevance),src/observability,src/notifications,src/performance,src/experimentation,CookieConsentBanner.tsx,CustomerShellStatusBannerStack.tsx,DomainDegradation.tsx(degraded-state UX pattern for YSD-2007 responses),apps/oshun/clipper-extension(browser clipper — reuse candidate for YSD-5011).
Gaps for the study workspace#
- No
/studio/studyroute (YSD-1002; blocked on YSD-0122 route decision). - No study-specific navigation entry in the customer IA (
Studyglobal nav item per proposal §3.3/§8.1). - Studio yemaya/aja/hathor panels are fixture-driven until re-verified — the 1,464-component surface is a design-reference library, not a primitive library.