Feature File Map
Use this document to find the first files to inspect for common Compass changes.
App Boot And Routing
- Frontend bootstrap:
packages/web/src/index.tsx - App provider tree:
packages/web/src/components/App/App.tsx - Root authenticated shell:
packages/web/src/views/Root.tsx - Router config:
packages/web/src/routers/index.tsx - Router loaders:
packages/web/src/routers/loaders.ts - Client version polling:
packages/web/src/components/Sidebar/SidebarActions/useVersionCheck.ts - Update CTA wiring:
packages/web/src/components/Sidebar/SidebarActions/SidebarActions.tsx
Authentication And Session
- Session initialization and SuperTokens wiring:
packages/web/src/auth/compass/session/SessionProvider.tsx - User profile bootstrap:
packages/web/src/auth/compass/user/context/UserProvider.tsx - Google authorization app flow:
packages/web/src/auth/google/authorization - Google redirect callback:
packages/web/src/views/GoogleAuthCallback/GoogleAuthCallback.tsx - Google authorization intent storage:
packages/web/src/auth/google/authorization/google-authorization.storage.ts - Auth schemas:
packages/web/src/auth/compass/schemas/auth.schemas.ts - Backend auth routes:
packages/backend/src/auth/auth.routes.config.ts - Backend auth controllers/services:
packages/backend/src/auth/controllers,packages/backend/src/auth/services
Events
- Shared event schema/types:
packages/core/src/types/event.contracts.ts - Event helpers and recurrence utilities:
packages/core/src/util/event - Web Event reads, cache utilities, and view models:
packages/web/src/events/queries - Web Event persisted mutations and pending state:
packages/web/src/events/mutations - Web Event draft/interaction Zustand state:
packages/web/src/events/stores/draft.store.ts - Event API/repositories:
packages/web/src/events/event.api.ts,packages/web/src/events/repositories - Backend event routes:
packages/backend/src/event/event.routes.config.ts - Backend event controller/service:
packages/backend/src/event/controllers/event.controller.ts,packages/backend/src/event/services/event.service.ts
Day / Week Views
- Day view route and content:
packages/web/src/views/Day/view - Day view header (includes sidebar toggle control):
packages/web/src/views/Day/components/Header/Header.tsx - Day keyboard shortcuts:
packages/web/src/views/Day/hooks/shortcuts/useDayViewShortcuts.ts - Sidebar toggle (
]):packages/web/src/views/Week/hooks/shortcuts/useGlobalShortcuts.ts - Day view hooks:
packages/web/src/views/Day/hooks - Week view:
packages/web/src/views/Week - Responsive layout controller (auto-collapse on breakpoint crossings):
packages/web/src/components/AuthenticatedLayout/useResponsiveLayout.ts - Dedication dialog implementation (native
dialog+ hotkeys):packages/web/src/views/Week/components/Dedication/Dedication.tsx - Dedication dialog mount points:
- week view:
packages/web/src/views/Week/WeekView.tsx - day view:
packages/web/src/views/Day/view/DayViewContent.tsx
- week view:
Sidebar
- Shared sidebar shell:
packages/web/src/components/Sidebar/Sidebar.tsx - Month picker:
packages/web/src/components/Sidebar/MonthPicker/MonthPicker.tsx - Account identity/sync indicator:
packages/web/src/components/Sidebar/CalendarList/CalendarListHeader.tsx - Sidebar actions and shortcuts overlay:
packages/web/src/components/Sidebar/SidebarActions/SidebarActions.tsx,packages/web/src/components/Sidebar/ShortcutsOverlay/ShortcutsOverlay.tsx - Week mount point:
packages/web/src/views/Week/WeekView.tsx - Day mount point:
packages/web/src/views/Day/view/DayViewContent.tsx
Offline Storage
- Offline data store singleton and readiness:
packages/web/src/common/storage/offline-data/offline-data.store.registry.ts - IndexedDB implementation:
packages/web/src/common/storage/offline-data/indexeddb-offline-data.store.ts - Legacy schema migration:
packages/web/src/common/storage/offline-data/legacy-primary-key.migration.ts - Data/external migrations:
packages/web/src/common/storage/migrations - Browser key-value state:
packages/web/src/common/storage/browser-key-value.store.ts
Sync And SSE
- SSE client:
packages/web/src/sse/client/sse.client.ts - SSE hooks:
packages/web/src/sse/hooks - Focus refresh (silent Sync catch-up on mount / long hide):
packages/web/src/sse/hooks/useSyncFocusRefresh.ts - Shared “visible after hidden” helper:
packages/web/src/common/hooks/useVisibleAfterHidden.ts - Google refresh coordinator:
packages/web/src/auth/google/state/google.sync.refresh.ts - SSE provider:
packages/web/src/sse/provider/SSEProvider.tsx - SSE transport constant + message union:
packages/core/src/constants/sse.constants.ts,packages/core/src/types/server-message.contracts.ts - Backend SSE server:
packages/backend/src/servers/sse/sse.server.ts - Events stream route:
packages/backend/src/events/events.routes.config.ts - Sync change-feed poller (backend → Sync):
packages/backend/src/servers/sse/sync-change-feed.bridge.ts - Sync invalidation → SSE message translation:
packages/backend/src/servers/sse/sync-invalidation.to-server-message.ts - Google revoked/pruned handling:
packages/backend/src/common/services/gcal/google-revoked.util.ts - Backend Sync client:
packages/backend/src/common/services/sync-service/
Standalone Sync Service (packages/sync)
Owns Google Calendar sync end to end (OAuth, webhooks, imports, jobs) — see Google Sync And SSE Flow for the full picture.
- Service entrypoint + internal routes:
packages/sync/src/app.ts,packages/sync/src/server/ - Diagnostics / retention / principal purge:
packages/sync/src/server/diagnostic.routes.ts,packages/sync/src/domain/connection-retention.service.ts,packages/sync/src/domain/principal-purge.service.ts - Sync DB backup/restore CLI:
packages/scripts/src/commands/sync-backup.ts,sync-restore.ts
Users / Metadata
- User queries/services:
packages/backend/src/user - User metadata service:
packages/backend/src/user/services/user-metadata.service.ts - Mobile waitlist gate (web-only external link):
packages/web/src/components/MobileGate/MobileGate.tsx
Billing And Trial
- Shared plan/price copy:
packages/core/src/constants/billing.constants.ts - Anonymous trial clock:
packages/web/src/billing/trial.storage.ts,packages/web/src/billing/useTrialStatus.ts - Server access + paid gate:
packages/web/src/billing/useAppAccess.ts,packages/web/src/billing/BillingGateModal.tsx - Backend billing:
packages/backend/src/billing - Overview: Billing And Trial
Environment And Infra
- Backend config parsing:
packages/backend/src/common/constants/config.constants.ts - Web env parsing:
packages/web/src/common/constants/env.constants.ts - Express middleware order:
packages/backend/src/servers/express/express.server.ts - Health endpoint route/controller/tests:
packages/backend/src/health/health.routes.config.ts,packages/backend/src/health/controllers/health.controller.ts,packages/backend/src/health/controllers/health.controller.db.test.ts - Self-host compose profile derivation (
selfhosted/syncfromcompass.yaml):self-host/config.sh(sourced byinstall.sh,install-manual.sh, and~/compass/compass)
CLI / Maintenance
- CLI entrypoint:
packages/scripts/src/cli.ts - Build commands:
packages/scripts/src/commands/build.backend.ts,build.sync.ts - Other CLI commands: see CLI
Test Anchors
- Per-file test launchers:
packages/scripts/src/testing/test-mongo-env.ts(Mongo packages),packages/scripts/src/testing/test-parallel.ts(core + web + fast tiers) - Web injectable test seams (session, toast, Google auth):
packages/web/src/__tests__/helpers/web-test-seams.ts - Core test setup:
packages/core/src/__tests__ - Web test setup:
packages/web/src/__tests__ - Web mock server handlers:
packages/web/src/__tests__/__mocks__/server/mock.handlers.ts - Web test router helper:
packages/web/src/__tests__/utils/providers/createTestRouter.tsx - Backend test setup:
packages/backend/src/__tests__ - E2E tests:
e2e