Implementation
Source inventory and ownership
Trace documented components to their actual source files and the exact audited baseline.
On this page
Baseline
Source repository: ../makeable-helpdesk. Commit: 10f45d1377b591eba0ab2889504d8cbf8c11327c. Audit date: 2026-10-08. The file hashes include audited working-tree contents, so the commit alone is not sufficient if the source had local changes.
Audited source files
| Path | Exported functions |
|---|---|
| app/(helpdesk)/[[...route]]/page.tsx | HelpdeskPage |
| app/(helpdesk)/layout.tsx | HelpdeskLayout |
| app/api/internal/jobs/drain/route.ts | POST |
| app/api/webhooks/brevo/inbound/route.ts | POST |
| app/api/webhooks/brevo/transactional/route.ts | POST |
| app/api/webhooks/stripe/route.ts | POST |
| app/globals.css | Module/configuration/contract |
| app/layout.tsx | RootLayout |
| components/app-header.tsx | AppHeader |
| components/helpdesk-app.tsx | HelpdeskApp |
| components/inbox/composer.tsx | Composer |
| components/inbox/contact-drawer.tsx | ContactDrawer |
| components/inbox/conversation-detail.tsx | ConversationDetail |
| components/inbox/conversation-details-dialog.tsx | ConversationDetailsDialog |
| components/inbox/conversation-list.tsx | ConversationList |
| components/inbox/follow-up-dialog.tsx | FollowUpDialog |
| components/inbox/merge-dialog.tsx | MergeDialog |
| components/inbox/message-details-dialog.tsx | MessageDetailsDialog |
| components/inbox/new-message-view.tsx | NewMessageView |
| components/inbox/queue-menu.tsx | QueueMenu |
| components/inbox/thread-participants.tsx | ThreadParticipants |
| components/sidebar.tsx | Sidebar |
| components/sonarist-logo.tsx | SonaristLogo |
| components/theme-toggle.tsx | ThemeToggle |
| components/ui/centered-subnav.tsx | CenteredSubnav |
| components/ui/centered-view-header.tsx | CenteredViewHeader |
| components/ui/dialog.tsx | Dialog |
| components/ui/email-address-field.tsx | EmailAddressField |
| components/ui/icon.tsx | Icon |
| components/ui/multi-email-address-field.tsx | MultiEmailAddressField |
| components/ui/primitives.tsx | Button, IconButton, Select, IconSelect, Avatar, Badge, EmptyState |
| components/views/billing-settings.tsx | BillingSettings |
| components/views/email-domains-settings.tsx | EmailDomainsSettings |
| components/views/people-view.tsx | PeopleView |
| components/views/person-editor-dialog.tsx | PersonEditorDialog |
| components/views/person-profile-view.tsx | PersonProfileView |
| components/views/settings-editors.tsx | CompanyEditor, ProductEditor, InboxEditor, SignatureEditor, KitConnectionEditor |
| components/views/settings-view.tsx | SettingsView |
| components/views/team-view.tsx | TeamView |
| db/migrations/0001_foundation.sql | Module/configuration/contract |
| db/migrations/0002_billing.sql | Module/configuration/contract |
| db/runtime-roles.sql | Module/configuration/contract |
| helpdesk-notes/Billing Infrastructure.md | Module/configuration/contract |
| helpdesk-notes/Email Domain Infrastructure.md | Module/configuration/contract |
| helpdesk-notes/Infrastructure Architecture.md | Module/configuration/contract |
| helpdesk-notes/Infrastructure Setup Runbook.md | Module/configuration/contract |
| helpdesk-notes/Project Brief.md | Module/configuration/contract |
| lib/brand.ts | Module/configuration/contract |
| lib/helpers.ts | cn, getInbox, getProductByInbox, getCompanyByInbox, getAssignee, getConversationContact, conversationMatchesScope |
| lib/mock-data.ts | Module/configuration/contract |
| lib/routes.ts | isConversationState, isSettingsTab, queuePath, conversationPath, senderReviewPath, referenceConversationPath, viewPath, settingsPath |
| lib/server/billing/checkout.ts | createAnnualCheckoutSession, createBillingPortalSession, enqueueSeatSync |
| lib/server/billing/summary.ts | getBillingSummary |
| lib/server/config/env.ts | getAppConfig, getDatabaseConfig, getBrevoConfig, getStorageConfig, getWorkerConfig, getStripeConfig, getSecurityConfig |
| lib/server/db/client.ts | getPlatformSql, getTenantSql, tenantTransaction, assertUuid |
| lib/server/db/migrations.ts | Module/configuration/contract |
| lib/server/email/domains.ts | beginDomainSetup, requestDomainVerification, queueSenderSetup, ensureInboxForwardingRoute |
| lib/server/email/outbound.ts | queueReply |
| lib/server/jobs/process-attachments.ts | processInboundAttachment |
| lib/server/jobs/process-billing.ts | syncWorkspaceSeatQuantity |
| lib/server/jobs/process-domain.ts | processDomainProvision, processDomainVerification, processSenderProvision |
| lib/server/jobs/process-email.ts | processOutboundEmail |
| lib/server/jobs/process-stripe-events.ts | processStripeEvent |
| lib/server/jobs/process-webhooks.ts | processInboundReceipt, processTransactionalReceipt |
| lib/server/jobs/queue.ts | claimJobs, completeJob, failJob, retryDelaySeconds |
| lib/server/jobs/worker.ts | drainJobs |
| lib/server/providers/billing/stripe.ts | getStripeClient, getBillingProvider |
| lib/server/providers/billing/types.ts | Module/configuration/contract |
| lib/server/providers/email/brevo.ts | getEmailProvider |
| lib/server/providers/email/types.ts | Module/configuration/contract |
| lib/server/providers/storage/b2.ts | getObjectStorage |
| lib/server/providers/storage/types.ts | attachmentObjectKey |
| lib/server/security/crypto.ts | encryptSecret, decryptSecret, activeRoutingHash, allRoutingHashes, constantTimeEqual |
| lib/server/security/http.ts | requireBearerToken, readBoundedJson, safeRouteError |
| lib/server/webhooks/brevo-schemas.ts | parseBrevoInbound, parseBrevoTransactional, mailboxAddress, mailboxName, referenceIds |
| lib/server/webhooks/ingest.ts | ingestBrevoInbound, ingestBrevoTransactional |
| lib/server/webhooks/stripe-ingest.ts | ingestStripeEvent |
| lib/types.ts | Module/configuration/contract |
| next.config.ts | Module/configuration/contract |
| package.json | Module/configuration/contract |
Public versus internal components
ConversationGroup, MessageCard, CollapsedMessage, SenderReviewBar and domain setup helpers are internal compositions. Their documented behavior belongs to the exported parent; do not import them as if they were exported package APIs. Sidebar exists in the repository but the current HelpdeskApp mounts AppHeader instead.
Source references
| File | Responsibility |
|---|---|
| components/helpdesk-app.tsx | Current shell |
| components/sidebar.tsx | Legacy alternate shell; not current applied capture |
Reference downloads
Related topics
Source audit: 2026-10-08 · Revision 10f45d1377b5 · Documentation v1.0.0