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...
Revert "fix(settings): show Plans & Billing tab regardless of root-org status"
This reverts commit ****************
Translate hardcoded UI strings
setup/dns (6 files): page, AliasStatusTable, DnsProgressView, DnsProvisioningPanel, DomainEntryForm, ManualDnsGuide. settings (10 files): diagnostics, essential...
Translate hardcoded UI strings
account/view: 40 strings reused from existing namespace (no new keys). kb (13 files): translate article editor, viewer, reviews, resources, versions, navigation...
Translate remaining hardcoded UI strings
Tasks page: Save Changes, Close, Add Task Item To Automation Stream, Edit title tooltip. Notes page: Dismiss, Loading notes, Delete Note dialog title. Doc manag...
Replace hardcoded English with t() across leads pages
Translate remaining hardcoded UI strings in allotments, new, reports, and view/[id] to use next-intl. Add scripts/i18n-audit.py to detect remaining hardcoded st...
Revert "feat(billing): wire FeaturesManager to platform subscription for child-org gating"
This reverts commit ****************
Revert "feat(billing): add platform-subscription endpoint for cross-org feature gating"
This reverts commit ****************
Revert "chore(messages): add wave3 translation merge fragments (JSON)"
This reverts commit ****************
Revert "feat(setup-dns): show platform kamocrm domain on custom domain entry"
This reverts commit ****************
AccountGroup -> AccountTier; customer-group routes -> customer-tier
Frontend types and API calls updated to match the shared-lib + service rename of AccountGroup to AccountTier. The "Group" naming was leaking into the customer-s...
AccountGroup -> AccountTier; endpoints /groups -> /tiers
Account-group endpoints (customer segmentation tiers, not billing) renamed throughout to use "tier" terminology consistently with the shared-lib rename: - /api/...
AccountGroup -> AccountTier (customer segmentation, not billing)
The retail customer-segmentation entity (with discountPercentage, used by PriceList for tier-based pricing) collided in name with the now-removed billing-group ...
debug+fix(softphone): inspect <audio> element state, auto-recover when bytes arrive but sound stays silent
WebRTC stats from a recent call showed inboundBytes=39680 / receivers unmuted / ICE pair succeeded — the bridge was delivering audio to the browser — yet the op...
Dump WebRTC state again 5s after Established + track all state changes
The Established-time dump always shows receivers with muted=true because DTLS handshake and SRTP keying haven't completed yet. To diagnose "call connects but no...
Dump WebRTC negotiation state on Established
To diagnose "call connects but no audio between parties", log the peer-connection state (ice / dtls / signaling) along with sender and receiver tracks (kind / e...
Pipe sip.js init steps to server log via beacon
The browser-side SDK init failure is currently invisible — the popup just says "Phone SDK failed to initialize" with no message, the WebSocket never opens, and ...
Surface SIP.js init/transport errors to browser console
Empty "Phone SDK failed to initialize" messages were hiding the actual failure from sip.js. Turn on logBuiltinEnabled so the library writes its transport / regi...
Add diagnostic logging to /names endpoint
Log orgId, member count, and per-member name resolution to diagnose why the assigned-member name is not resolving correctly.
Add logging to uploadBackground endpoint
Log org/index, file info, userId, auth decisions, and MinIO staging key to trace why background uploads are not appearing in staging bucket.
Add logging to upload-background proxy route
Log org/index, file name/size/type, and upstream response status to diagnose why background uploads are not reaching APIService.
Temporary console.log to trace TicketChat STOMP subscription path
Adds console logs at every stage of the subscribe pipeline (effect fire, guard pass, subscribe() call, attachSessionSubscription, client.subscribe, /app/chat/su...
Enable Hibernate SQL logging to diagnose members query returning 0
Temporarily enabled org.hibernate.SQL=DEBUG to see what SQL the TYPE() JPQL query generates for the members-subscribers endpoint.
Add diagnostic logging to getMembersAndSubscribers endpoint
Logs orgId, query result count, and per-member isActive status to help diagnose why Members tab shows empty list.
Je, unaona nini kuhusu usafiri?
Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.