Gate Docs tab on VIEW_DOCUMENTS / MANAGE_DOCS_SETTINGS
Mirrors the Email + Phone tab gates. A member without VIEW_DOCUMENTS (basic user-level access) and without MANAGE_DOCS_SETTINGS (admin) no longer sees the Docs ...
Gate Email + Phone tabs on rights, gate VOIP config edit, periodic session refresh
Adds the missing right-gating so a basic Member without ACCESS_MAIL / ACCESS_VOIP can no longer see the Email & Mailbox or Phone Settings tabs on their own acco...
Align Type/Name/TTL fields by moving TTL hint to a tooltip
The TTL field rendered its 'use 1 hour if your registrar shows a dropdown' hint as a paragraph below the input. That column ended up taller than Type and Name, ...
SSL card stops claiming records are verified before they are
The SSL card had two states (installing / complete) so the "installing" copy ("All required records are verified, we're installing the certificate now") was sho...
Remove header gap, ungate subdomains, drop registrar picker
- Move DnsProvisioningPanel inside DnsSetupStudio so the empty px:4 pt:3 wrapper around it (which created a band of whitespace above the hero when the panel...
Unified DNS Setup Studio with inline help per record
Replaces the split DnsProgressView + AliasStatusTable + ManualDnsGuide trio with a single guided experience: each TXT/CNAME record now lives in one card alongsi...
Land on parent's /setup/dns after org create
The wizard previously redirected the creator to **************** right after POST /api/security/org returned. The new org's domain has no DNS yet, so the redire...
Retrigger build to pick up fully-translated dictionary
The deployed image ec1a3dad was built before kamo-translation-dictionary zh.json crossed from ~0.06% Chinese to 99.9% Chinese. The build step copies messages/ f...
Wire t() into remaining hardcoded UI strings across ~88 files
Replaces hardcoded English with next-intl t() calls in places the prior conversion missed: DataGrid headerName values (~238 across pipeline, account, leads, doc...
Render inline cid: images via the new EmailService endpoint
When a message exposes inline parts (each carrying a contentId), the email renderer now rewrites <img src="cid:..."> references at mount time to ***************...
Broken inline images, attachment downloads, and view-pane flicker
- Strip <img> with cid: src in the email sanitizer so embedded images don't render as a flickering broken-image icon, and hide images that fail at runtime v...
Fix doubly-namespaced t() calls in clubhouse member list
Calls were resolving to **************** instead of **************** — switch to use the properly-scoped tMember handle for searchPlaceholder, searchAriaLabel, ...
Translate remaining UI strings outside main batches
NavInfo (placeholder name), NavTab (Print/Share buttons), NotImplemented (message), SecureIFrame (iframe title), useUserInfo HOCs (Loading/Please log in/permiss...
Translate POS6 (10 final files) — pos batch complete
97 strings across MarketCardGrid, MarketAgreementTemplates, MarketRentalAssets, MarketSubscriptionPlans, and 6 SubscriptionPlan* tabs (AddOns, Bundles, Details,...
Translate provider help (10 setup guides)
117 strings across BigCommerce, Ecwid, Magento, OpenCart, PrestaShop, Shift4Shop, Shopify, Squarespace, Wix, WooCommerce setup guides. Step text uses t.rich() w...
Translate POS4 ****************
74 strings. **************** **************** keys.
Translate POS3 ****************
92 strings. **************** **************** keys.
Translate MarketProducts + MarketCustomers
118 strings. **************** marketCustomers}.* keys with ICU plural patterns and refactored SUB_VIEWS/ATTR_TYPE_LABELS to hold translation keys instead of lit...
Translate MarketTaxShipping + MarketDiscounts
151 strings (78+73). **************** marketDiscounts}.* keys with ICU plural patterns for method/entry counts. DiscountTypeBadge refactored from helper into su...
Translate E5 (16 small files) — email batch complete
61 strings. **************** **************** **************** **************** signatureTemplateSelector}.* keys. All 27 email files now at 0 audit hits.
Translate E4 ****************
62 strings. **************** **************** keys.
Translate E3 ****************
74 strings. **************** domainManager,caldavPersonal}.* keys.
Translate E2 ****************
92 strings. **************** **************** keys.
Translate EmailTemplateEdit (114 strings)
Largest file in the email batch. Refactored module-level legalTextOptions constant into buildLegalTextOptions(t) function for runtime translation. Inner EmailFr...
Translate P5 (6 medium tabs)
96 strings across VerticalSection, EngagementsTab, RetailFulfillmentTab, RetailCustomersTab, VendorsTab, SignupsTab. Uses t() with **************** ************...
Translate Commitments tab
34 strings. Uses t() with **************** keys.
Translate P3 (Applications+Dashboard) + P4
7 files. P3 partial — Commitments reverted (rate-limit kill mid-batch), Applications and Dashboard salvaged with 0 audit hits. P4 complete (ServiceRequests, Ret...
Translate WorkOrders + Procurement tabs
116 strings. Reused existing **************** procurementTab keys aggressively plus common.fields/actions/states.
Translate Bookings + Orders tabs
101 strings. Reused existing **************** keys plus common.* (status, dates, fields, actions).
Translate 5 essential settings managers
206 strings across DepartmentManager, JobTitleManager, LabelManager, SecurityRoleManager, SubdomainBranchesDialog. Uses t() with **************** **************...
Translate 6 security settings tabs
195 strings across APIManager, AccessBlockManager, OAuth2Manager, SuspiciousManager, SystemAccessLogsManager, SystemDebug. Uses t() with **************** access...
Translate 7 account settings components
130 strings across BranchSetupManager, DefaultRoleTemplatesSection, FeaturesManager, RelationshipManager, **************** **************** StatsManager. Uses t...
Translate 6 AI settings tabs
98 strings across AiGeneralSettings, McpServersTab, ProviderSetupTab, SalesAgentSetupTab, SecurityModelsTab, UsageOverviewTab. Uses t() with **************** us...
Translate all 4 webinar files
LeadWebinarsSection, MyWebinarsTab, WebinarScheduleWizard, settings/ WebinarSettingsTab. Uses t() with **************** scheduleWizard,settings}.* keys. Reused ...
Translate OrderWizard
42 strings. Uses t() with **************** keys. Reused common.actions/states/fields. Existing tUi placeholder hook preserved alongside new top-level t.
Translate ****************
3 files (94 strings). Extracted agreement template defaults (HTML body, sample data, type colors, helper) into a sibling .ts file so the audit no longer flags t...
Translate AddOns/Bundles/VolumeDiscounts
3 files (57 strings). Uses t() with **************** bundles,volumeDiscounts}.* keys. Reused common.actions/fields/states.
Translate MatrixCell + DashboardCards
Partial start of subscription batch — 2 small files (5 strings): MatrixCell "Unlimited" pill labels in ReadMode and NumericEditor; SubscriptionDashboardCards ti...
Translate UI
30 files: leads (BusinessCard/Header/Manager); tools (ai-chat 5 files, calculator 6 files, media-player, message 2 files, sms 2 files); image-to-svg ***********...
Translate UI strings
27 files: **************** **************** ManageSourcesDialog}; **************** **************** **************** messages/{ConversationListView, ***********...
Translate settings features components
12 files in **************** meets: **************** settings tabs. phone: multi/AggregatedTabs **************** and multi/ProvidersTab. docs: AssocConfigPanel,...
Translate CRM settings components
11 files in **************** CustomFormManager, FieldMappingInterface, LeadAutoImportManager, LeadManualImportManager, LeadMarketManager, LeadStatusLabelManager...
Translate small components subdirs
24 files across **************** **************** hardcoded UI strings now use t() with keys grouped by directory under components.* namespace. SmsChatTab.tsx d...
Translate error/loading/not-found pages
Use t() for ERROR badge, headline, subtitle, action buttons, and support link on error.tsx; loading message on loading.tsx; random message and description array...
Translate hardcoded UI
commerce (10 files): applications, bookings, commitments, orders, procurement, requests, service, service-requests, signups, subscriptions detail pages. setting...
Redesign ChatsList rows — elegant layout, no horizontal scroll, online dots, unread badge, relative timestamps
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
