Drop language search filter on My Language step
The supported language list is short enough to scan visually; the search input added complexity without user value.
Split member APIs; show subs' target org; add billing-owner promote UI
billingApi splits members into accountMembers (canManageBilling, isAccountManager) and subscriptionMembers (isLicensee, canManageSubscription) under ***********...
Subs target a sub-org; per-sub members split from account admins
Subscriptions now require targetOrganizationId on create — the (account, market, target_org) triple is the new uniqueness key. AccountBillingMemberService is sp...
Split account-level admins from per-sub members; subs gain target_org
Adds SubscriptionMember (per-subscription licensee + sub-manager flags) so an Account on the KamoCRM org can hold multiple subscriptions, each targeting a diffe...
Rename AccountBillingMember -> AccountMember; isGroupPlanManager -> isAccountManager
Type-level rename across the billing client and the PlansBillingTab: - AccountBillingMember type -> AccountMember - isGroupPlanManager flag -> isAccountManager ...
Use Account.members via AccountMember; rename isGroupPlanManager -> isAccountManager
The Account is now the group, so all references to the old AccountBillingMember entity are pointed at the new generic **************** entity. The "group plan m...
Drop users/masterAccountHolder, use Account.members + primaryMember
AccountController now reflects the Account-as-group model: - computeDisplayName / extractEmail / extractPhone resolve through the primaryMember (Member) inste...
Make Account the group; replace User-set with Member-set + AccountMember
The Account is now itself the "group" — there's no separate billing-group concept. Members (org-scoped) belong to the Account directly via the new AccountMember...
Rewrite billingApi client onto Account-based endpoints
billingApi now talks to **************** instead of the old /groups/{groupId} routes. Top-level types renamed: - BillingGroup -> AccountBilling - Bill...
Rewrite BillingService onto Account-based entities
The BillingService is now Account-centric. Member-driven flows (e.g. "add a card", "subscribe to a plan") now go through an Account that auto-creates for the me...
Move from BillingGroup to Account-based licenses
EntitlementService resolves member entitlements against AccountLicense records owned by the member's billing Account. The MemberEntitlements shape now exposes a...
Migrate from BillingGroup to Account as billing principal
Account is now the single Stripe customer principal. A Member needing to pay (e.g. for a subscription) auto-creates an Account; that Account then holds one or m...
Orient live records to Account address profile, snapshot historical addresses
Orient live commerce records to reference the Account profile's primary shipping/billing addresses, with snapshots taken only when records become historical (pl...
Switch Account.java to embeddables; add AccountAddress entity for shipping/billing lists
- Add AccountAddressType enum (SHIPPING, BILLING) - Add AccountAddress entity (account FK, type, label, EmbAddress, timestamps) - Add AccountAddressRepository -...
Move Create Lead action into header, drop sticky bar
Replace the top-right Cancel button with the primary Create Lead action and remove the bottom sticky action bar entirely. Add a back IconButton to the left of t...
Make Best Contact Time a free-text field
Replace the Morning/Afternoon/Evening dropdown on the Add Lead and Lead View edit forms with a plain text input so members can describe specific windows (e.g., ...
Drop editor page header, rename General sub-tab
- Removes the back-arrow IconButton + shield icon + title + subtitle from the top of the security-model / master-model editor. The Cancel button in the stic...
Drop teamMemberPayFeesSetting from DataLoader
Master-model provisioner no longer passes the removed tri-state pay-fees setting when creating the master security model — the field is gone from ChildOrgSecuri...
Drop teamMemberPayFeesSetting parameter
Mirrors the shared-library change — SecurityModelController, MasterModelController, and AppliedModelController no longer read/write teamMemberPayFeesSetting. Th...
Drop teamMemberPayFeesSetting
Employee self-pay fee policy is gone — the BillingGroup refactor handles billing per-group, not via the security model. Removes the teamMemberPayFeesSetting col...
Drop My Profile tip banner + unify section spacing
All four My Profile sections now share the same vertical rhythm — 8px between each section's header and its field(s), 16px between sections. The Alert banner ex...
Tidy My Profile layout + drop phone verification
Reorganize the My Profile step so all four sections share the same layout and title format. Order is now Legal Name, alias, e-mail, phone. - FormName: remove t...
Drop SMS verification for the phone field on signup
The phone number collected during self-service registration is now a plain optional text field — no /register/phone/initiate, no SMS code, no /register/phone/ve...
Drop RegistrationPhoneCode entity + repository
Self-service registration no longer uses SMS-code verification for the phone field — the register form collects the phone number as plain text and stores it as-...
Share PostAuth***Service between login and enter-as
Extract the post-authentication *** build (grant-all expansion, profile SQL, branch titles, createSession) into PostAuth***Service so enter-as uses the same cod...
Remove phone + security-questions pages
These were added to kamo-internal by mistake — collection of the phone number and security questions belongs in the registration flow in kamo-register, and has ...
Remove DB CHECK on SubscriptionEvent.event_type (fixed in initializer)
Merge default template without wiping org folder
Full provision no longer deletes the org prefix before copy. Copy from public/default overwrites matching keys only; other objects under the org folder remain. ...
Extract AliasesTab, SharedMailboxTab; make EmailMailboxManager a thin router
Compact editor header — remove large title/tabs, move actions to nav row
Removes the sticky header card (title, subtitle, Save/Cancel/Preview buttons, Edit/Preview tab bar) from EmailTemplateEdit to reclaim ~200px of vertical space a...
Redirect EMAIL_NOT_VERIFIED to register/resend-verification
Removes the inline EmailVerifyCard from the login page and all related state/callbacks. On EMAIL_NOT_VERIFIED, the user is now forwarded to **************** whe...
Remove eager feature-loading from getOrganizationByDomain
Features are an org-level concern unrelated to most callers of this method (e.g. registration, login domain resolution). Force-loading them via setFeatures() re...
Replace Redis session caching with direct Java API fetch in org route
Tighten KamoCRMAgeReqUpdateRunner per review
- Restore Javadoc paragraph explaining @Order(10) rationale. - Test now references the UPDATE_SQL constant directly instead of duplicating the SQL string, so ...
Honest marketing — align pages to actual platform capabilities
Full review of marketing pages against actual KamoCRM product capabilities. Removed fabricated claims about features not built today, and repositioned industry-...
Call BillingService directly via k8s DNS instead of through APIService
Next.js server-side proxy now calls BillingService at **************** directly, skipping the unnecessary hop through APIService. Uses BILLING_SERVICE_URL env v...
Remove translate config from application.yml — belongs in k8s/configmap.yaml
Remove translate config from application.yml — belongs in k8s/configmap.yaml
Remove redundant translation table SQL — Hibernate ddl-auto handles them
Rewrite MultiFileUploader with queue-based upload and per-file settings
Remove scope/assocType from SettingsSignersTab, rename to Doc Description, add Active Member signer
Add memberType to user info, rename templateName to docDescription in template settings store
Add memberType field from Member entity discriminator column to the user-info API response and useUserInfo hook. Rename templateName to docDescription in templa...
Migrate all imaging API routes from SecurityService to ConversionService/DocsService
Upload routes now call ConversionService directly via CONVERSION_SERVICE_URL: - POST /api/imaging/upload → /api/conversion/imaging/upload - POST /api/imaging/te...
Remove ImagingController and beans/imaging — moved to ConversionService and DocsService
Upload endpoints now live in ConversionService at /api/conversion/imaging/*. All management and download endpoints now live in DocsService at /api/docs/imaging/...
Delegate thumbnail generation to ConversionService, remove PDFBox dependency
ThumbnailGenerationJob now POSTs the converted PDF to ConversionService **************** unzips the response, and stores each thumb_p{n}.png in MinIO. PDFBox re...
Delegate thumbnail generation to ConversionService, remove PDFBox dependency
generateAndStoreThumbnails now POSTs the converted PDF to ConversionService **************** unzips the response, stores each thumb_p{n}.png in MinIO, and publi...
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.